@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Source+Sans+3:wght@400;500;600;700&display=swap');

:root{
  --ink:#18212a;
  --muted:#5a6774;
  --paper:#f4efe6;
  --panel:#fffaf0;
  --panel2:#eef4f3;
  --line:#d9cbb8;
  --blue:#213c4a;
  --petrol:#2f6260;
  --bordeaux:#7c2430;
  --gold:#c49b5a;
  --shadow:0 22px 55px rgba(28,45,55,.16);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(196,155,90,.18), transparent 34rem),
    linear-gradient(180deg, #f7f2e9 0%, #eaf0ee 54%, #f4efe6 100%);
  font-family:"Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height:1.58;
}
a{color:var(--bordeaux); text-decoration:none; font-weight:700}
a:hover{text-decoration:underline}
.page-shell{max-width:1240px; margin:0 auto; background:rgba(255,250,240,.78); box-shadow:0 0 80px rgba(34,51,58,.08)}
.site-header{
  position:sticky; top:0; z-index:20;
  display:flex; justify-content:space-between; align-items:center; gap:2rem;
  padding:1rem 2.2rem;
  background:rgba(255,250,240,.94); backdrop-filter: blur(12px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex; align-items:center; gap:1rem}
.brand-mark{
  width:54px; height:54px; border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--petrol));
  color:#fff; display:grid; place-items:center;
  font-family:"Libre Baskerville", serif; font-weight:700;
  box-shadow:0 8px 24px rgba(33,60,74,.25)
}
.home-link{font-family:"Libre Baskerville", serif; color:var(--ink); font-size:1.45rem}
.brand p{margin:.1rem 0 0; color:var(--muted); font-size:.95rem}
.main-nav{display:flex; gap:1.2rem; flex-wrap:wrap}
.main-nav a{color:var(--ink); font-weight:600}
.main-nav a:hover{color:var(--bordeaux); text-decoration:none}

.hero{position:relative; min-height:470px; overflow:hidden; background:#213c4a}
.hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.9) contrast(1.05)}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(90deg, rgba(24,33,42,.82) 0%, rgba(24,33,42,.52) 43%, rgba(24,33,42,.16) 100%)}
.hero-content{position:relative; z-index:2; color:#fff; padding:5.8rem 4rem; max-width:760px}
.eyebrow,.section-kicker{text-transform:uppercase; letter-spacing:.14em; font-size:.82rem; font-weight:800; color:var(--gold); margin:0 0 .6rem}
.hero h1{font-family:"Libre Baskerville", serif; font-size:clamp(3rem, 7vw, 6rem); line-height:1; margin:.2rem 0 1rem}
.hero p:not(.eyebrow){font-family:"Libre Baskerville", serif; font-size:clamp(1.2rem, 2.5vw, 2rem); max-width:640px}
.button{
  display:inline-flex; align-items:center; justify-content:center;
  margin-top:1.2rem; padding:.85rem 1.25rem; border-radius:999px;
  background:var(--bordeaux); color:#fff; box-shadow:0 12px 26px rgba(124,36,48,.28)
}
.button:hover{text-decoration:none; transform:translateY(-1px)}

main{padding:2rem}
section{margin:0 0 2rem}
.intro-grid{display:grid; grid-template-columns:minmax(0, 1.7fr) minmax(280px, .8fr); gap:1.2rem}
.content-card,.pub-block{
  background:rgba(255,250,240,.92); border:1px solid var(--line);
  border-radius:22px; padding:1.6rem; box-shadow:var(--shadow)
}
.content-card h2,.section-head h2,.publications h2,.books-section h2,.projects-section h2{
  font-family:"Libre Baskerville", serif; color:var(--blue); line-height:1.2;
}
.content-card.large h2{font-size:2rem; margin:.2rem 0 1rem}
.content-card.accent{background:linear-gradient(145deg, rgba(238,244,243,.95), rgba(255,250,240,.92))}
.tag-list{list-style:none; padding:0; margin:1rem 0 0; display:grid; gap:.7rem}
.tag-list li{padding:.75rem .9rem; border-left:4px solid var(--petrol); background:rgba(255,255,255,.55); border-radius:10px}

.section-head{max-width:920px; margin:0 0 1.2rem}
.section-head h2{font-size:2.15rem; margin:.2rem 0 .6rem}
.projects-section,.books-section,.publications{padding:1.4rem 0}
.timeline{display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:1rem}
.project-card{
  display:flex; flex-direction:column; gap:.9rem;
  min-height:260px; background:linear-gradient(180deg,#fffaf0,#eef4f3);
  border:1px solid var(--line); border-radius:20px; padding:1.2rem; box-shadow:var(--shadow)
}
.project-year{
  width:max-content; padding:.35rem .7rem; border-radius:999px;
  background:var(--blue); color:#fff; font-weight:800; letter-spacing:.03em
}
.project-card h3{font-family:"Libre Baskerville", serif; color:var(--bordeaux); margin:.1rem 0 .4rem; font-size:1.05rem}
.project-sub{font-weight:800; color:var(--petrol); margin:.2rem 0 .4rem}

.book-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(120px, 1fr));
  gap:1rem;
}
.book-card{
  background:rgba(255,250,240,.95); border:1px solid var(--line);
  border-radius:18px; padding:1rem; text-align:center; box-shadow:0 14px 34px rgba(28,45,55,.12);
  display:flex; flex-direction:column; align-items:center; justify-content:space-between; min-height:260px
}
.book-card img{max-width:100%; height:170px; object-fit:contain; filter:drop-shadow(0 8px 12px rgba(0,0,0,.2)); margin-bottom:.8rem}
.book-card h3{font-family:"Libre Baskerville", serif; color:var(--blue); font-size:.95rem; line-height:1.25; margin:0}

.publications{background:rgba(255,255,255,.28); border-radius:24px}
.pub-block{margin:1rem 0; box-shadow:0 10px 28px rgba(28,45,55,.10)}
.pub-block h3{
  font-family:"Libre Baskerville", serif; color:#fff; background:linear-gradient(90deg,var(--blue),var(--petrol));
  padding:.75rem 1rem; margin:-1.6rem -1.6rem 1rem; border-radius:22px 22px 0 0;
}
.pub-block ol{padding-left:1.25rem; margin:0}
.pub-block li{padding:.55rem 0; border-bottom:1px solid rgba(217,203,184,.6)}
.pub-block li:last-child{border-bottom:none}

.site-footer{
  padding:2rem; color:#fff; text-align:center;
  background:linear-gradient(135deg,var(--blue),#142832 60%,var(--bordeaux))
}
.site-footer a{color:#fff}

@media (max-width:1050px){
  .timeline{grid-template-columns:repeat(2, minmax(0,1fr))}
  .book-grid{grid-template-columns:repeat(4, minmax(120px,1fr))}
}
@media (max-width:760px){
  .site-header{position:static; flex-direction:column; align-items:flex-start}
  .main-nav{gap:.8rem}
  .hero{min-height:420px}
  .hero-content{padding:4rem 1.5rem}
  main{padding:1rem}
  .intro-grid{grid-template-columns:1fr}
  .timeline{grid-template-columns:1fr}
  .book-grid{grid-template-columns:repeat(2, minmax(120px,1fr))}
}
