:root{
  --bg:#FBF7EF;
  --bg-raised:#F1E9D8;
  --ink:#113241;
  --ink-soft:#52646E;
  --rule:#E3DBC9;
  --brass:#2F666C;
  --brass-strong:#16444D;
  --accent-wash:#DCE7E6;
  --on-brass:#FBF7EF;

  --font-display:Georgia,'Times New Roman',serif;
  --font-body:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-mono:'IBM Plex Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;

  --fs-eyebrow:0.72rem;
  --fs-small:0.875rem;
  --fs-body:1.0625rem;
  --fs-lead:1.22rem;
  --fs-h2:clamp(1.55rem,1.15rem + 1.7vw,2.35rem);
  --fs-h1:clamp(1.75rem,1.4rem + 1.6vw,2.6rem);
  --fs-stat:clamp(1.9rem,1.5rem + 1.4vw,2.6rem);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0F1D24;
    --bg-raised:#172930;
    --ink:#EDE7DA;
    --ink-soft:#A9BCC2;
    --rule:#2A3F47;
    --brass:#6FB0AE;
    --brass-strong:#8FCCC0;
    --accent-wash:#1B2E33;
    --on-brass:#0F1D24;
  }
}
:root[data-theme="dark"]{
  --bg:#0F1D24;
  --bg-raised:#172930;
  --ink:#EDE7DA;
  --ink-soft:#A9BCC2;
  --rule:#2A3F47;
  --brass:#6FB0AE;
  --brass-strong:#8FCCC0;
  --accent-wash:#1B2E33;
  --on-brass:#0F1D24;
}

*{box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:var(--font-display);
  color:var(--ink);
  text-wrap:balance;
  line-height:1.1;
  margin:0;
}
h1{font-size:var(--fs-h1);font-weight:600;}
h2{font-size:var(--fs-h2);font-weight:600;}
h3{font-size:clamp(1.15rem,1rem + 0.6vw,1.4rem);font-weight:500;}
p{margin:0;}
a{color:inherit;}
a:focus-visible,button:focus-visible{outline:2px solid var(--brass-strong);outline-offset:3px;}
.prose{max-width:38rem;}
.prose + .prose{margin-top:1.1rem;}

.eyebrow{
  font-family:var(--font-mono);
  font-size:var(--fs-eyebrow);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--brass-strong);
}

.shell{max-width:1080px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:10;
  background:var(--bg);
  border-bottom:1px solid var(--rule);
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:0.95rem 0;
}
.wordmark{
  font-family:var(--font-display);font-weight:600;font-size:1.05rem;
  letter-spacing:0.01em;text-decoration:none;
  display:inline-flex;align-items:center;gap:0.6rem;
}
.nav-logo{width:200px;max-width:40vw;height:auto;display:block;flex:none;padding:0.5rem 0;}
.navlinks{display:flex;gap:1.75rem;align-items:center;font-size:0.92rem;}
.navlinks a{text-decoration:none;color:var(--ink-soft);position:relative;padding-bottom:0.2rem;}
.navlinks a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--brass-strong);transform:scaleX(0);transform-origin:left;
  transition:transform 0.2s ease;
}
.navlinks a:hover::after,.navlinks a:focus-visible::after,.navlinks a[aria-current="page"]::after{transform:scaleX(1);}
.navlinks a[aria-current="page"]{color:var(--ink);}

/* ---------- mobile menu ---------- */
.nav-actions{display:flex;align-items:center;gap:1rem;}
.menu-toggle-btn{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:6px;border:0;border-radius:2px;
  background:transparent;color:var(--ink);cursor:pointer;flex:none;
}
.menu-toggle-btn span{display:block;height:2px;width:100%;background:var(--ink);border-radius:1px;transition:transform 0.2s ease,opacity 0.2s ease;}
.mobile-menu{display:none;flex-direction:column;border-top:1px solid var(--rule);}
.mobile-menu a{
  padding:0.95rem clamp(1.25rem,4vw,3rem);text-decoration:none;color:var(--ink);
  border-bottom:1px solid var(--rule);font-size:1rem;
}
.mobile-menu a[aria-current="page"]{color:var(--brass-strong);font-weight:600;}
.mobile-menu:not([hidden]){display:flex;}
.mobile-menu[hidden]{display:none;}
.menu-toggle-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle-btn[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:960px){
  .navlinks{display:none;}
  .menu-toggle-btn{display:flex;}
}
@media (max-width:360px){
  .nav-actions{gap:0.25rem;}
}

.btn{
  font-family:var(--font-body);font-size:0.9rem;font-weight:600;
  text-decoration:none;display:inline-flex;align-items:center;gap:0.5rem;
  padding:0.65rem 1.15rem;border-radius:2px;border:1px solid transparent;
  transition:background 0.18s ease,color 0.18s ease,border-color 0.18s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--brass);color:var(--on-brass);}
.btn-primary:hover{background:var(--brass-strong);color:var(--on-brass);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--rule);}
.btn-ghost:hover{border-color:var(--brass-strong);color:var(--brass-strong);}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(1.5rem,4vw,2.5rem) 0 clamp(1.5rem,3.5vw,2.25rem);}
.hero-eyebrow{opacity:0;animation:rise 0.6s ease-out 0.05s forwards;}
.hero h1{margin-top:0.6rem;max-width:50ch;opacity:0;animation:rise 0.6s ease-out 0.18s forwards;}
.hero .prose{margin-top:0.9rem;font-size:var(--fs-lead);color:var(--ink-soft);opacity:0;animation:rise 0.6s ease-out 0.3s forwards;}
.hero-cta{margin-top:1.3rem;display:flex;flex-wrap:wrap;gap:1.1rem;align-items:center;opacity:0;animation:rise 0.6s ease-out 0.42s forwards;}
.hero-cta .mail{font-family:var(--font-mono);font-size:0.88rem;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--rule);}
.hero-cta .mail:hover{color:var(--brass-strong);border-color:var(--brass-strong);}
@keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){
  .hero-eyebrow,.hero h1,.hero .prose,.hero-cta{animation:none;opacity:1;}
}

/* ---------- exhibits ---------- */
.exhibit{border-top:1px solid var(--rule);padding:clamp(2.4rem,6vw,3.6rem) 0;}
.exhibit-grid{display:grid;grid-template-columns:140px minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);}
@media (max-width:760px){ .exhibit-grid{grid-template-columns:1fr;gap:1rem;} }
.exhibit-label{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--brass-strong);line-height:1.5;}
.exhibit h2{margin-bottom:1rem;}

/* ---------- page header (subpages) ---------- */
.page-header{padding:clamp(2.8rem,7vw,4.5rem) 0 clamp(1.5rem,4vw,2rem);}
.page-header .eyebrow{margin-bottom:0.7rem;}
.back-link{
  display:inline-block;margin-top:1.6rem;font-family:var(--font-mono);font-size:0.85rem;
  color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--rule);
}
.back-link:hover{color:var(--brass-strong);border-color:var(--brass-strong);}

/* ---------- home teaser list ---------- */
.teasers{border-top:1px solid var(--rule);}
.teaser{
  border-bottom:1px solid var(--rule);
  padding:clamp(1.6rem,4vw,2.2rem) 0;
  text-decoration:none;display:block;color:inherit;
}
.teaser-inner{
  display:grid;grid-template-columns:140px minmax(0,1fr) auto;
  grid-template-areas:"label h2 arrow";
  gap:clamp(1.5rem,4vw,3rem);align-items:center;
}
.teaser-inner > .exhibit-label{grid-area:label;}
.teaser-inner > h2{grid-area:h2;}
.teaser-inner > .teaser-arrow{grid-area:arrow;}
@media (max-width:760px){
  .teaser-inner{
    grid-template-columns:1fr auto;
    grid-template-areas:"label label" "h2 arrow";
    gap:0.35rem 0.75rem;
  }
}
.teaser h2{font-size:clamp(1.2rem,1rem + 1vw,1.55rem);transition:color 0.18s ease;}
.teaser:hover h2{color:var(--brass-strong);}
.teaser-arrow{font-family:var(--font-mono);font-size:0.85rem;color:var(--brass-strong);white-space:nowrap;}

/* scope */
.scope-list{list-style:none;margin:0.4rem 0 0;padding:0;max-width:42rem;display:flex;flex-direction:column;gap:0.85rem;}
.scope-list li{display:grid;grid-template-columns:1.1rem 1fr;gap:0.7rem;color:var(--ink-soft);}
.scope-list li::before{content:"—";font-family:var(--font-mono);color:var(--brass-strong);}

/* engagement */
.stamp{
  margin:1.7rem 0 1.7rem;max-width:42rem;
  border:1px solid var(--rule);border-left:3px solid var(--brass);
  background:var(--bg-raised);padding:1.15rem 1.35rem;
}
.stamp p{font-style:italic;color:var(--ink);font-size:1.02rem;line-height:1.55;}

/* proof */
.page-header.case-header{padding-top:1.5rem;padding-bottom:1.25rem;}
.case-header .case-disclosure{margin-top:0.5rem;font-size:var(--fs-small);color:var(--ink-soft);}
.case-exhibit{padding-top:1.5rem;}
.case{margin-top:0;padding-top:2.2rem;}
.case + .case{margin-top:2.6rem;border-top:1px solid var(--rule);padding-top:2.6rem;}
.case-tag{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);}
.case h2{margin:0.55rem 0 0;font-size:1.3rem;font-weight:500;max-width:36ch;}
.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:1.3rem 0 1.8rem;}
.stat{border-top:1px solid var(--brass);padding-top:0.65rem;min-width:0;}
.stat dt{font-size:var(--fs-small);color:var(--ink-soft);line-height:1.5;}
.stat dd{margin:0.35rem 0 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:clamp(1.7rem,1.2rem + 1.5vw,2.25rem);color:var(--ink);font-weight:500;white-space:nowrap;line-height:1.3;}
.stat dd small{font-family:var(--font-body);font-size:var(--fs-small);font-weight:400;}
@media (max-width:1000px){.stat-row{grid-template-columns:1fr;gap:1rem;}}
.case p{max-width:44rem;color:var(--ink-soft);margin-top:1rem;}
.case h3{margin-top:1.4rem;font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1.4;}
.case h3 + p{margin-top:0.4rem;}
.case-steps{max-width:44rem;margin:0.4rem 0 0;padding-left:1.35rem;color:var(--ink-soft);}
.case-steps li + li{margin-top:0.5rem;}
.case-steps strong{color:var(--ink);font-weight:600;}
.note{
  margin-top:1.1rem;max-width:44rem;padding-left:1rem;border-left:2px solid var(--brass);
}
.note p{font-style:italic;color:var(--ink-soft);}
.note .tag{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--brass-strong);display:block;margin-bottom:0.35rem;font-style:normal;}

/* principal */
.principal p{max-width:42rem;}
.principal-name{font-family:Georgia,'Times New Roman',serif;}
.principal-text p + p{margin-top:1.1rem;}
.principal-body{display:flex;gap:2rem;align-items:flex-start;flex-wrap:wrap;}
.principal-photo{width:150px;flex:none;border-radius:2px;filter:grayscale(0.15);}
.principal-text{flex:1 1 26rem;min-width:0;}

/* signature / contact */
.closing{border-top:1px solid var(--rule);padding:clamp(3rem,7vw,4.5rem) 0 clamp(2.5rem,5vw,3.5rem);}
.closing h2{max-width:20ch;}
.closing .prose{margin-top:1rem;color:var(--ink-soft);}
.sig{margin-top:2.4rem;max-width:26rem;}
.sig-line{border-top:1px solid var(--ink);padding-top:0.75rem;}
.sig-name{font-family:var(--font-display);font-size:1.15rem;}
.sig-role{font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-soft);letter-spacing:0.04em;margin-top:0.15rem;}
.contact-links{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:1.4rem;align-items:center;}
.contact-links a.plain{font-family:var(--font-mono);font-size:0.9rem;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--rule);}
.contact-links a.plain:hover{color:var(--brass-strong);border-color:var(--brass-strong);}

footer{padding:1.6rem 0 2.4rem;}
footer p{font-family:var(--font-mono);font-size:0.72rem;color:var(--ink-soft);letter-spacing:0.03em;}
