:root{
  --text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.8125rem);
  --text-sm:clamp(0.875rem,0.8rem + 0.2vw,0.9375rem);
  --text-base:clamp(1rem,0.95rem + 0.25vw,1.0625rem);
  --text-lg:clamp(1.125rem,1rem + 0.6vw,1.375rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.2vw,2.125rem);
  --text-2xl:clamp(2rem,1.3rem + 2.4vw,3.25rem);
  --text-3xl:clamp(2.5rem,1.4rem + 3.6vw,4.5rem);

  --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem; --space-6:1.5rem;
  --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem;
  --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --paper:#F2EEE6;
  --paper-2:#E9E3D8;
  --ink:#191714;
  --ink-soft:#3B3730;
  --muted:#736C60;
  --line:#CFC7B8;
  --rust:#9A5B32;

  --font-display:'Instrument Serif','Times New Roman',serif;
  --font-body:'Switzer','Inter',system-ui,sans-serif;
  --maxw:1240px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--text-base);
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;}
h1,h2,h3{margin:0;font-weight:400;line-height:1.02;letter-spacing:-0.015em;font-family:var(--font-display);}
p{margin:0;}

.grain{
  position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.16;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* NAV */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);
  padding:var(--space-4) clamp(1.25rem,4vw,3.5rem);
  background:rgba(242,238,230,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.mark{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink);}
.mark-glyph{width:24px;height:24px;flex:0 0 24px;}
.mark-text{
  font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;
}
.nav-links{display:flex;gap:clamp(1rem,2.5vw,2.25rem);}
.nav-links a{
  text-decoration:none;font-size:var(--text-xs);letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);
  padding-bottom:2px;border-bottom:1px solid transparent;transition:color .25s,border-color .25s;
}
.nav-links a:hover{color:var(--ink);border-color:var(--ink);}

/* HERO */
.hero{
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(3rem,7vw,6.5rem) clamp(1.25rem,4vw,3.5rem) clamp(3rem,6vw,5rem);
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.eyebrow{
  font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:var(--space-8);
}
.hero h1{font-size:var(--text-3xl);}
.hero h1 em{font-style:italic;color:var(--ink-soft);}
.lede{
  margin-top:var(--space-8);max-width:44ch;color:var(--ink-soft);
  font-size:var(--text-base);line-height:1.7;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-10);}
.btn{
  display:inline-block;text-decoration:none;
  font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;
  padding:.95rem 1.6rem;background:var(--ink);color:var(--paper);
  border:1px solid var(--ink);transition:background .25s,color .25s;
}
.btn:hover{background:transparent;color:var(--ink);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn-ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}

.hero-figure{margin:0;}
.hero-figure img{width:100%;aspect-ratio:3/4;object-fit:cover;}
.hero-figure figcaption{
  margin-top:var(--space-3);font-size:var(--text-xs);color:var(--muted);
  font-style:italic;font-family:var(--font-display);letter-spacing:.01em;
}

/* STATEMENT */
.statement{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:clamp(3rem,7vw,6rem) clamp(1.25rem,4vw,3.5rem);
  max-width:var(--maxw);margin:0 auto;
}
.statement p{
  font-family:var(--font-display);font-size:var(--text-xl);line-height:1.28;
  max-width:26ch;color:var(--ink);
}
.statement em{font-style:italic;color:var(--rust);}

/* STRIP */
.strip{
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(3rem,6vw,5rem) clamp(1.25rem,4vw,3.5rem);
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.75rem,4vw,3.5rem);
}
.strip-item .num{
  display:block;font-family:var(--font-display);font-size:var(--text-xl);
  color:var(--rust);margin-bottom:var(--space-3);line-height:1;
}
.strip-item p{font-size:var(--text-sm);color:var(--muted);max-width:32ch;line-height:1.65;}

/* DEPARTMENTS */
.departments{
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(2rem,4vw,3rem) clamp(1.25rem,4vw,3.5rem) clamp(4rem,8vw,7rem);
}
.section-title{
  font-size:var(--text-xl);margin-bottom:var(--space-10);
  padding-bottom:var(--space-4);border-bottom:1px solid var(--line);
}
.dept-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.75rem,4vw,3rem);}
.dept{display:flex;flex-direction:column;gap:var(--space-6);}
.dept-feature{grid-row:span 2;}
.dept img{width:100%;object-fit:cover;aspect-ratio:4/5;}
.dept-feature img{aspect-ratio:3/4;}
.dept-label{
  font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;
  color:var(--rust);margin-bottom:var(--space-3);
}
.dept h3{font-size:var(--text-lg);margin-bottom:var(--space-3);}
.dept-body p:last-child{font-size:var(--text-sm);color:var(--muted);line-height:1.7;max-width:46ch;}

/* MAP */
.map{background:var(--ink);color:var(--paper);}
.map-inner{
  max-width:760px;margin:0 auto;
  padding:clamp(4rem,9vw,7.5rem) clamp(1.25rem,4vw,3.5rem);
  text-align:center;
}
.eyebrow-light{color:rgba(242,238,230,.55);}
.map h2{font-size:var(--text-2xl);color:var(--paper);}
.map-lede{
  margin:var(--space-8) auto 0;max-width:52ch;
  color:rgba(242,238,230,.72);font-size:var(--text-sm);line-height:1.75;
}
.capture{
  display:flex;gap:var(--space-2);margin:var(--space-10) auto 0;
  max-width:480px;flex-wrap:wrap;
}
.capture input{
  flex:1 1 220px;min-width:0;
  background:transparent;border:1px solid rgba(242,238,230,.38);
  color:var(--paper);font-family:var(--font-body);font-size:var(--text-sm);
  padding:.95rem 1.1rem;border-radius:0;
}
.capture input::placeholder{color:rgba(242,238,230,.52);}
.capture input:focus{outline:none;border-color:var(--paper);}
.capture button{
  flex:0 0 auto;cursor:pointer;
  background:var(--paper);color:var(--ink);border:1px solid var(--paper);
  font-family:var(--font-body);font-size:var(--text-xs);
  letter-spacing:.16em;text-transform:uppercase;
  padding:.95rem 1.5rem;border-radius:0;transition:background .25s,color .25s;
}
.capture button:hover{background:transparent;color:var(--paper);}
.capture-note{
  margin-top:var(--space-4);font-size:var(--text-xs);
  color:rgba(242,238,230,.58);
}
.capture-note.done{color:var(--paper);}

/* CONTACT */
.contact{
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(4rem,8vw,7rem) clamp(1.25rem,4vw,3.5rem);
}
.contact-type{max-width:62ch;}
.contact-type > p{color:var(--ink-soft);line-height:1.75;}
.contact-links{list-style:none;padding:0;margin:var(--space-10) 0 0;display:grid;gap:var(--space-3);}
.contact-links a{
  text-decoration:none;font-size:var(--text-sm);
  border-bottom:1px solid var(--line);padding-bottom:3px;transition:border-color .25s;
}
.contact-links a:hover{border-color:var(--ink);}
.contact-license{
  margin-top:var(--space-8);padding-top:var(--space-5);
  border-top:1px solid var(--line);
  font-size:var(--text-xs);letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted);line-height:1.9;
}

/* FOOT */
.foot{
  border-top:1px solid var(--line);
  padding:var(--space-10) clamp(1.25rem,4vw,3.5rem) var(--space-16);
  max-width:var(--maxw);margin:0 auto;
}
.foot p{font-size:var(--text-xs);color:var(--muted);letter-spacing:.04em;}
.foot-fine{margin-top:var(--space-4);color:#8E877B;max-width:78ch;line-height:1.75;letter-spacing:.02em;font-size:11px;}

/* REVEAL */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s cubic-bezier(.2,.7,.3,1),transform .9s cubic-bezier(.2,.7,.3,1);}
.reveal.in{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* RESPONSIVE */
@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:clamp(2.5rem,7vw,4rem);}
  .hero-figure{order:-1;}
  .hero-figure img{aspect-ratio:4/3;}
  .dept-grid{grid-template-columns:1fr;}
  .dept-feature{grid-row:auto;}
  .dept-feature img,.dept img{aspect-ratio:4/3;}
  .strip{grid-template-columns:1fr;gap:var(--space-8);}
}
@media (max-width:560px){
  .hero h1{font-size:clamp(1.9rem,8.2vw,2.5rem);letter-spacing:-0.01em;}
  .nav{gap:var(--space-3);padding-left:1rem;padding-right:1rem;}
  .nav-links{gap:.6rem;}
  .nav-links a{letter-spacing:.04em;font-size:0.6875rem;white-space:nowrap;}
  .mark{gap:.5rem;}
  .mark-text{letter-spacing:.08em;font-size:0.75rem;white-space:nowrap;}
  .capture{flex-direction:column;}
  .capture input{flex:0 0 auto;width:100%;}
  .capture button{width:100%;}
  .statement p{max-width:none;}
}
@media (max-width:400px){
  .nav-links a{font-size:0.625rem;letter-spacing:.03em;}
  .mark-text{font-size:0.6875rem;letter-spacing:.05em;}
  .nav-links{gap:.5rem;}
}


.license-loc{display:block;margin-top:.45em;}
.nb{white-space:nowrap;}
