:root{
  --paper:#EFEDE4; --surface:#FFFFFF; --ink:#1E2624; --ink-soft:#443F35;
  --muted:#6B6558; --muted-2:#8A8578; --line:#D9D5C7; --teal:#2F6B63; --ochre:#C17A2E; --focus:#2F6B63;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#181F1D; --surface:#212B28; --ink:#EFEDE4; --ink-soft:#D9D5C7;
    --muted:#A6A192; --muted-2:#7C7869; --line:#3A473F; --teal:#5FB3A6; --ochre:#E0A15C; --focus:#5FB3A6;
  }
}
:root[data-theme="dark"]{
  --paper:#181F1D; --surface:#212B28; --ink:#EFEDE4; --ink-soft:#D9D5C7;
  --muted:#A6A192; --muted-2:#7C7869; --line:#3A473F; --teal:#5FB3A6; --ochre:#E0A15C; --focus:#5FB3A6;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--paper); color:var(--ink); font-family:'Public Sans', system-ui, -apple-system, sans-serif; -webkit-font-smoothing:antialiased;}
a{color:inherit; text-decoration:none;}
a:hover{color:var(--teal);}
img{max-width:100%; display:block;}
h1,h2{font-family:'Literata', Georgia, serif; margin:0;}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--focus); outline-offset:2px;}

/* HEADER / NAV */
header{display:flex; align-items:center; justify-content:space-between; padding:22px 64px; border-bottom:1px solid var(--line); background:var(--paper); position:sticky; top:0; z-index:20;}
.logo svg{height:40px; width:auto; display:block;}
.logo svg text{fill:var(--ink);}
.logo svg text.accent{fill:#66aaff;}
nav.primary-nav{display:flex; gap:32px; font-size:15px; font-weight:500;}
nav.primary-nav a.active, .mobile-nav a.active{color:var(--ink); font-weight:700; border-bottom:2px solid var(--teal);}
.lang-switch{display:flex; gap:14px; font-size:14px; font-weight:600;}
.lang-switch button{background:none; border:none; cursor:pointer; padding:4px 2px; color:var(--muted-2); border-bottom:2px solid transparent; font-weight:600; font-size:14px;}
.lang-switch button.active{color:var(--ink); border-bottom-color:var(--teal);}
.menu-btn{display:none; background:none; border:none; cursor:pointer; width:44px; height:44px; align-items:center; justify-content:center; flex-direction:column; gap:5px;}
.menu-btn span{display:block; width:22px; height:2px; background:var(--ink);}
.mobile-nav{display:none; flex-direction:column; padding:8px 20px 20px; border-bottom:1px solid var(--line); background:var(--paper); gap:2px;}
.mobile-nav.open{display:flex;}
.mobile-nav a{padding:12px 4px; font-size:16px; font-weight:500; border-bottom:1px solid var(--line);}
.mobile-nav .lang-switch{margin-top:14px;}

/* HERO (home only) */
.hero{display:grid; grid-template-columns:1.35fr 1fr; gap:32px; padding:88px 64px 72px;}
.hero h1{font-weight:400; font-size:52px; line-height:1.12; letter-spacing:-0.01em; max-width:14ch;}
.hero p{margin:22px 0 0; font-size:18px; line-height:1.6; color:var(--ink-soft); max-width:52ch;}
.hero-ctas{display:flex; gap:16px; margin-top:26px;}
.btn{padding:14px 26px; font-size:15px; font-weight:600; border-radius:3px; display:inline-block;}
.btn-primary{background:var(--teal); color:#FFFFFF;}
.btn-secondary{border:1px solid var(--ink); color:var(--ink);}

.spotlight{background:var(--surface); border:1px solid var(--line); padding:32px; display:flex; flex-direction:column; gap:14px; height:100%;}
.spotlight .label{font-size:13px; font-weight:600; color:var(--ochre);}
.spotlight .title{font-family:'Literata', Georgia, serif; font-size:22px; font-weight:600; line-height:1.3;}
.spotlight p{margin:0; font-size:14.5px; line-height:1.6; color:var(--ink-soft);}
.spotlight .link{margin-top:8px; font-size:14px; font-weight:600; color:var(--teal); border-bottom:1px solid var(--teal); align-self:flex-start;}

/* PAGE HEADER (subpages) */
.page-header{padding:64px 64px 40px; border-bottom:1px solid var(--line);}
.page-header h1{font-weight:400; font-size:40px; line-height:1.15; max-width:22ch;}
.page-header p{margin:16px 0 0; font-size:16px; line-height:1.6; color:var(--ink-soft); max-width:62ch;}

/* GENERIC SECTION */
.section{padding:24px 64px 56px;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:28px;}
.section-head h2{font-weight:600; font-size:28px;}
.view-all{font-size:14px; font-weight:600; color:var(--teal); white-space:nowrap;}
.two-col{display:grid; grid-template-columns:2fr 1fr; gap:48px;}

/* NEWS */
.news-item{display:grid; grid-template-columns:120px 1fr; gap:24px; padding:22px 0; border-bottom:1px solid var(--line);}
.news-item .date{font-size:13.5px; color:var(--ochre); font-weight:600; padding-top:3px;}
.news-item .title{font-family:'Literata', Georgia, serif; font-size:19px; font-weight:600; line-height:1.35;}
.news-item p{margin:6px 0 0; font-size:14.5px; line-height:1.55; color:var(--ink-soft); max-width:62ch;}

/* EVENTS */
aside h2{font-weight:600; font-size:22px; margin-bottom:24px;}
.event-card{border:1px solid var(--line); background:var(--surface); padding:20px; display:flex; flex-direction:column; gap:8px; margin-bottom:16px;}
.event-badge{display:inline-flex; align-self:flex-start; background:var(--paper); border:1px solid var(--ochre); color:var(--ochre); font-size:12.5px; font-weight:600; padding:3px 10px;}
.event-card .title{font-family:'Literata', Georgia, serif; font-size:17px; font-weight:600; line-height:1.3;}
.event-card .loc{font-size:13.5px; color:var(--muted);}
.event-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px;}
.subheading{font-size:15px; font-weight:600; color:var(--muted); text-transform:none; margin:36px 0 16px;}
.subheading:first-child{margin-top:0;}

/* TABS (projects + publications) */
.tabs{display:flex; gap:28px; margin:22px 0 32px; border-bottom:1px solid var(--line); flex-wrap:wrap;}
.tabs button{background:none; border:none; cursor:pointer; padding:10px 2px 14px; font-size:15.5px; font-weight:600; color:var(--muted-2); border-bottom:2px solid transparent;}
.tabs button.active{color:var(--ink); border-bottom-color:var(--teal);}

.project-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:24px;}
.project-card{border:1px solid var(--line); background:var(--surface); padding:28px; display:flex; flex-direction:column; gap:12px;}
.project-card .row{display:flex; align-items:center; justify-content:space-between;}
.project-card .period{font-size:13px; color:var(--muted);}
.project-card .status{font-size:12px; font-weight:600; padding:3px 10px; border:1px solid var(--teal); color:var(--teal);}
.project-card .status.done{border-color:var(--muted); color:var(--muted);}
.project-card .title{font-family:'Literata', Georgia, serif; font-size:20px; font-weight:600; line-height:1.3;}
.project-card p{margin:0; font-size:14.5px; line-height:1.6; color:var(--ink-soft);}

/* PUBLICATIONS */
.pub-layout{display:grid; grid-template-columns:1fr 2fr; gap:48px;}
.pub-side{display:flex; flex-direction:column; gap:14px;}
.pub-side p{margin:0; font-size:15px; line-height:1.6; color:var(--ink-soft); max-width:34ch;}
.pub-tabs{display:flex; flex-direction:column; gap:2px; margin-top:12px;}
.pub-tabs button{text-align:left; background:none; border:none; cursor:pointer; padding:10px 2px 10px 14px; font-size:15px; font-weight:600; color:var(--muted-2); border-left:2px solid transparent;}
.pub-tabs button.active{color:var(--ink); border-left-color:var(--teal);}
.pub-item{display:flex; flex-direction:column; gap:4px; padding:20px 0; border-bottom:1px solid var(--line);}
.pub-item .title{font-family:'Literata', Georgia, serif; font-size:18px; font-weight:600; line-height:1.35;}
.pub-item .meta{font-size:13.5px; color:var(--muted);}

/* CONTACT */
.contact-section{background:var(--ink); color:var(--paper); padding:64px;}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
.contact-copy h1, .contact-copy h2{font-weight:400; font-size:34px; max-width:18ch; color:var(--paper);}
.contact-copy p{margin:22px 0 0; font-size:16px; line-height:1.65; color:#C9C6BA; max-width:48ch;}
.contact-info{display:flex; flex-direction:column; gap:14px; margin-top:24px;}
.contact-info .row{display:flex; align-items:center; gap:12px; font-size:14.5px;}
.contact-info svg{flex-shrink:0;}
form.contact-form{display:flex; flex-direction:column; gap:18px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:13.5px; color:#C9C6BA;}
.field input, .field textarea{background:var(--paper); border:1px solid #3A473F; color:var(--ink); padding:12px 14px; font-size:15px; font-family:inherit;}
.field textarea{resize:vertical;}
.submit-btn{align-self:flex-start; background:var(--ochre); color:var(--ink); border:none; padding:14px 26px; font-size:15px; font-weight:600; border-radius:3px; cursor:pointer; margin-top:4px;}
.thanks-box{background:#24312D; border:1px solid #3A473F; padding:32px; font-size:15.5px; line-height:1.6;}
.hidden{display:none !important;}

/* CTA BAND (home) */
.cta-band{background:var(--ink); color:var(--paper); padding:64px; display:flex; flex-direction:column; gap:16px; align-items:flex-start;}
.cta-band h2{color:var(--paper); font-weight:400; font-size:30px; max-width:20ch;}
.cta-band p{margin:0; color:#C9C6BA; font-size:16px; line-height:1.6; max-width:56ch;}
.cta-band .btn-primary{background:var(--ochre); color:var(--ink);}

footer{display:flex; align-items:center; justify-content:space-between; padding:24px 64px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); flex-wrap:wrap; gap:8px;}

@media (max-width: 860px){
  header{padding:16px 20px;}
  nav.primary-nav, .lang-switch.desktop-only{display:none;}
  .menu-btn{display:flex;}
  .hero{grid-template-columns:1fr; padding:32px 20px;}
  .hero h1{font-size:32px; max-width:none;}
  .hero p{font-size:15.5px; margin-top:16px;}
  .hero-ctas{flex-direction:column;}
  .page-header{padding:32px 20px 24px;}
  .page-header h1{font-size:28px;}
  .section{padding:24px 20px 40px;}
  .two-col{grid-template-columns:1fr; gap:8px;}
  .project-grid, .event-grid{grid-template-columns:1fr;}
  .pub-layout{grid-template-columns:1fr;}
  .pub-tabs{flex-direction:row; flex-wrap:wrap; gap:8px;}
  .pub-tabs button{border:1px solid var(--line); padding:7px 12px; font-size:13.5px;}
  .pub-tabs button.active{border-color:var(--teal);}
  .contact-section{padding:40px 20px;}
  .contact-grid{grid-template-columns:1fr; gap:32px;}
  .cta-band{padding:40px 20px;}
  footer{padding:20px; flex-direction:column; align-items:flex-start;}
}
