:root {
  --ink: #17211d;
  --muted: #66736d;
  --paper: #f6f4ef;
  --white: #ffffff;
  --accent: #c85736;
  --accent-soft: #f4ddd4;
  --green: #1f4b3c;
  --green-soft: #dfe9e4;
  --line: rgba(23, 33, 29, 0.14);
  --shadow: 0 24px 70px rgba(25, 37, 32, 0.13);
  --radius-lg: 32px;
  --radius-md: 20px;
  --page: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible { outline: 3px solid rgba(200, 87, 54, 0.42); outline-offset: 4px; }
img { display: block; width: 100%; }

.page-width { width: var(--page); margin-inline: auto; }
.section-pad { padding: 112px 0; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(246, 244, 239, 0.86);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid transparent;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.site-header.scrolled { border-color: var(--line); box-shadow: 0 10px 30px rgba(20, 31, 26, .04); }
.nav-shell {
  width: var(--page);
  margin: 0 auto;
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.brand { display: inline-flex; align-items: center; gap: 11px; font-weight: 750; letter-spacing: -.02em; }
.brand-mark {
  display: grid; place-items: center;
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--green);
  color: white;
  font-family: Georgia, serif;
  font-size: 22px;
}
.main-nav { display: flex; align-items: center; gap: 28px; font-size: 14px; font-weight: 650; }
.main-nav > a:not(.nav-cta) { color: #39463f; }
.main-nav > a:not(.nav-cta):hover { color: var(--accent); }
.nav-cta { padding: 10px 15px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.55); }
.nav-cta:hover { background: white; }
.menu-toggle { display:none; border:0; padding:8px; background:transparent; cursor:pointer; }
.menu-toggle span { display:block; width:24px; height:2px; margin:5px 0; background:var(--ink); }

.hero { overflow: hidden; padding-top: 90px; }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 90px; min-height: 690px; }
.eyebrow {
  margin: 0 0 20px;
  color: var(--accent);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
h1, h2, h3 { margin-top: 0; }
h1 {
  margin-bottom: 28px;
  max-width: 760px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(64px, 8vw, 118px);
  font-weight: 400;
  letter-spacing: -.06em;
  line-height: .88;
}
.hero-lead { max-width: 720px; margin: 0; font-size: clamp(19px, 2vw, 24px); color: #53605a; line-height: 1.55; }
.hero-lead a { color: var(--ink); border-bottom: 1px solid var(--accent); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin: 38px 0 34px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding: 0 20px; border-radius:999px; font-size:14px; font-weight:750; transition:transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--green); color:#fff; }
.button-ghost { border:1px solid var(--line); background:rgba(255,255,255,.5); }
.button-light { background:white; color:var(--ink); margin-top:26px; }
.research-tags { display:flex; flex-wrap:wrap; gap:8px; }
.research-tags span { padding:8px 12px; border:1px solid var(--line); border-radius:999px; color:#59655f; font-size:12px; font-weight:650; background:rgba(255,255,255,.35); }

.portrait-wrap { position:relative; max-width: 450px; justify-self:end; }
.portrait-card { position:relative; z-index:2; overflow:hidden; border-radius: 220px 220px 36px 36px; background:#e7e4dc; box-shadow: var(--shadow); }
.portrait-card img { aspect-ratio: .82; object-fit: cover; object-position: center 35%; filter:saturate(.82) contrast(1.02); }
.portrait-caption { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 24px; background:rgba(255,255,255,.92); font-size:13px; }
.portrait-caption span { color:var(--muted); }
.orbit { position:absolute; border:1px solid rgba(31,75,60,.22); border-radius:50%; pointer-events:none; }
.orbit-one { width:520px; height:190px; right:-95px; top:140px; transform:rotate(-22deg); }
.orbit-two { width:470px; height:170px; right:-55px; top:190px; transform:rotate(24deg); border-color:rgba(200,87,54,.18); }

.quote-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.45); }
.quote-inner { position:relative; padding:72px 0 68px 96px; }
.quote-glyph { position:absolute; left:0; top:45px; color:var(--accent); font: 100px/1 Georgia, serif; opacity:.65; }
.quote-inner blockquote { margin:0; font: italic 30px/1.45 Georgia, serif; letter-spacing:-.02em; }
.quote-inner cite { display:block; margin-top:20px; color:var(--muted); font-size:13px; font-style:normal; text-transform:uppercase; letter-spacing:.08em; }

.section-heading { max-width: 790px; }
.section-heading h2 { margin-bottom:22px; font-family:Georgia,serif; font-size:clamp(42px,5vw,72px); font-weight:400; line-height:1; letter-spacing:-.045em; }
.section-heading > p:last-child { max-width:720px; color:var(--muted); font-size:18px; }
.row-heading { max-width:none; display:flex; align-items:end; justify-content:space-between; gap:42px; margin-bottom:54px; }
.row-heading h2 { margin-bottom:0; }
.text-link { flex:none; padding-bottom:4px; border-bottom:1px solid currentColor; font-size:14px; font-weight:750; }
.text-link:hover { color:var(--accent); }

.research-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:58px; }
.research-card { min-height:270px; padding:30px; border:1px solid var(--line); border-radius:var(--radius-md); background:rgba(255,255,255,.55); transition:transform .25s ease, box-shadow .25s ease, background .25s ease; }
.research-card:hover { transform:translateY(-5px); background:white; box-shadow:0 20px 40px rgba(30,43,37,.07); }
.card-index { display:inline-block; color:var(--accent); font-size:12px; font-weight:800; margin-bottom:72px; }
.research-card h3 { margin-bottom:12px; font: 400 29px/1.1 Georgia,serif; letter-spacing:-.02em; }
.research-card p { max-width:460px; margin:0; color:var(--muted); }
.profile-links { display:flex; gap:26px; flex-wrap:wrap; margin-top:36px; font-size:13px; font-weight:750; }
.profile-links a { padding-bottom:3px; border-bottom:1px solid var(--line); }
.profile-links a:hover { color:var(--accent); }

.section-alt { background:#eeece6; }
.paper-list { border-top:1px solid var(--line); }
.paper { display:grid; grid-template-columns:90px 1fr 50px; gap:26px; align-items:start; padding:28px 0; border-bottom:1px solid var(--line); }
.paper-year { padding-top:7px; color:var(--muted); font-size:13px; font-weight:750; }
.paper-body h3 { margin-bottom:8px; max-width:900px; font-size:21px; line-height:1.35; letter-spacing:-.015em; }
.paper-body h3 a:hover { color:var(--accent); }
.paper-body p { margin:0 0 6px; color:var(--muted); font-size:14px; }
.paper-meta { color:#89928e; font-size:12px; }
.paper-arrow { width:40px; height:40px; display:grid; place-items:center; justify-self:end; border:1px solid var(--line); border-radius:50%; transition:all .2s ease; }
.paper-arrow:not(.muted):hover { background:var(--green); color:white; border-color:var(--green); transform:translateY(-2px); }
.paper-arrow.muted { border:0; color:#a3aaa6; }

.gallery-grid { display:grid; grid-template-columns:1.25fr .75fr; grid-template-rows:repeat(2,260px); gap:16px; }
.gallery-card { position:relative; overflow:hidden; border-radius:var(--radius-md); background:white; border:1px solid var(--line); }
.gallery-large { grid-row:1 / 3; }
.gallery-card img { width:100%; height:100%; object-fit:contain; padding:26px; transition:transform .45s ease; }
.gallery-card:hover img { transform:scale(1.035); }
.gallery-overlay { position:absolute; left:18px; right:18px; bottom:18px; display:flex; align-items:end; justify-content:space-between; gap:20px; padding:13px 15px; border-radius:14px; background:rgba(22,33,29,.88); color:white; backdrop-filter:blur(8px); }
.gallery-overlay strong { font-size:14px; }
.gallery-overlay small { color:rgba(255,255,255,.65); }

.section-dark { background:#17352c; color:white; }
.events-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:90px; }
.dark-heading .eyebrow { color:#ef9d80; }
.dark-heading > p:last-of-type { color:rgba(255,255,255,.62); }
.event-list { border-top:1px solid rgba(255,255,255,.17); }
.event { display:grid; grid-template-columns:160px 1fr; gap:30px; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.17); }
.event time { color:#ef9d80; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.event h3 { margin-bottom:7px; font-size:19px; line-height:1.35; }
.event p { margin:0; color:rgba(255,255,255,.55); font-size:14px; }

.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:start; }
.contact-card { border:1px solid var(--line); border-radius:var(--radius-lg); background:white; padding:12px 34px; }
.contact-item { display:grid; grid-template-columns:130px 1fr; gap:25px; padding:24px 0; border-bottom:1px solid var(--line); }
.contact-item:last-child { border-bottom:0; }
.contact-item > span { color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.contact-item a { font-weight:700; }
.contact-item a:hover { color:var(--accent); }
.contact-item p { margin:0; }

.site-footer { border-top:1px solid var(--line); padding:32px 0; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; color:var(--muted); font-size:12px; }
.footer-inner > div { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.footer-inner strong { color:var(--ink); }
.footer-right a { color:var(--ink); font-weight:700; }

.reveal { opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }


/* Current research projects */
.projects-section { background: #f6f4ef; }
.project-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.project-card { min-height:300px; padding:30px; border-radius:var(--radius-md); background:var(--green); color:white; position:relative; overflow:hidden; }
.project-card::after { content:""; position:absolute; width:170px; height:170px; border:1px solid rgba(255,255,255,.16); border-radius:50%; right:-54px; top:-58px; }
.project-kicker { display:inline-block; margin-bottom:90px; color:#ef9d80; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.project-card h3 { max-width:390px; margin-bottom:14px; font:400 29px/1.12 Georgia,serif; letter-spacing:-.02em; }
.project-card p { margin:0; color:rgba(255,255,255,.65); font-size:14px; }
@media (max-width:900px){ .project-grid{grid-template-columns:1fr;} .project-card{min-height:245px;} .project-kicker{margin-bottom:55px;} }

@media (max-width: 900px) {
  .section-pad { padding:82px 0; }
  .menu-toggle { display:block; }
  .main-nav {
    position:absolute; left:20px; right:20px; top:68px;
    display:none; flex-direction:column; align-items:stretch; gap:0;
    padding:12px; border:1px solid var(--line); border-radius:18px;
    background:rgba(250,249,246,.98); box-shadow:var(--shadow);
  }
  .main-nav.open { display:flex; }
  .main-nav a { padding:13px 12px; }
  .nav-cta { margin-top:5px; text-align:center; }
  .hero-grid, .events-grid, .contact-grid { grid-template-columns:1fr; gap:60px; }
  .hero-grid { min-height:auto; }
  .hero-copy { max-width:760px; }
  .portrait-wrap { justify-self:start; width:min(430px,90%); }
  .orbit-one, .orbit-two { display:none; }
  .research-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:380px 260px; }
  .gallery-large { grid-column:1 / 3; grid-row:auto; }
  .row-heading { align-items:start; flex-direction:column; gap:22px; }
}

@media (max-width: 620px) {
  :root { --page: min(100% - 28px, 1180px); }
  .section-pad { padding:66px 0; }
  .nav-shell { min-height:66px; }
  .brand-text { font-size:14px; }
  .hero { padding-top:48px; }
  .hero-grid { gap:44px; }
  h1 { font-size:clamp(58px,20vw,82px); }
  .hero-lead { font-size:18px; }
  .portrait-wrap { width:100%; }
  .quote-inner { padding:58px 0 56px 52px; }
  .quote-glyph { font-size:70px; left:-2px; top:40px; }
  .quote-inner blockquote { font-size:21px; }
  .section-heading h2 { font-size:44px; }
  .research-card { min-height:235px; padding:24px; }
  .card-index { margin-bottom:52px; }
  .paper { grid-template-columns:55px 1fr; gap:15px; }
  .paper-arrow { display:none; }
  .paper-body h3 { font-size:18px; }
  .gallery-grid { display:grid; grid-template-columns:1fr; grid-template-rows:repeat(3,280px); }
  .gallery-large { grid-column:auto; }
  .event { grid-template-columns:1fr; gap:9px; }
  .contact-card { padding:7px 20px; border-radius:22px; }
  .contact-item { grid-template-columns:1fr; gap:7px; }
  .footer-inner { align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
  .reveal { opacity:1; transform:none; }
}
