:root{
  --paper:oklch(97.5% 0.006 85);
  --paper-2:oklch(94.5% 0.008 85);
  --ink:oklch(21% 0.012 260);
  --ink-soft:oklch(46% 0.012 260);
  --accent:oklch(38% 0.098 245);
  --accent-soft:oklch(62% 0.072 245);
  --rule:oklch(85% 0.008 85);
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --text-body:clamp(1rem,0.95rem + 0.25vw,1.0625rem);
  --text-lead:clamp(1.125rem,1rem + 0.6vw,1.375rem);
  --text-h2:clamp(1.75rem,1.3rem + 1.8vw,2.75rem);
  --text-hero:clamp(2.75rem,1.6rem + 5.2vw,6rem);
  --gutter:clamp(1rem,0.5rem + 3vw,4.5rem);
  --section:clamp(3.5rem,2.5rem + 5vw,8rem);
  --ease:cubic-bezier(0.16,1,0.3,1);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:oklch(17% 0.012 260);--paper-2:oklch(21% 0.014 260);
      --ink:oklch(94% 0.006 85);--ink-soft:oklch(71% 0.010 85);
      --accent:oklch(78% 0.085 245);--accent-soft:oklch(62% 0.072 245);
      --rule:oklch(30% 0.012 260);
  }
}
:root[data-theme="dark"]{
  --paper:oklch(17% 0.012 260);--paper-2:oklch(21% 0.014 260);
  --ink:oklch(94% 0.006 85);--ink-soft:oklch(71% 0.010 85);
  --accent:oklch(78% 0.085 245);--accent-soft:oklch(62% 0.072 245);
  --rule:oklch(30% 0.012 260);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:var(--text-body);line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.75rem 1.25rem;z-index:99}
.skip:focus{left:0}
.wrap{max-width:74rem;margin-inline:auto;padding-inline:var(--gutter);position:relative;z-index:1}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:1.08;margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

/* header */
.masthead{border-bottom:1px solid var(--rule);position:sticky;top:0;background:color-mix(in oklab,var(--paper) 88%,transparent);backdrop-filter:blur(12px);z-index:10}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.1rem}
.mark{font-family:var(--serif);font-size:1.3rem;letter-spacing:-0.01em;text-decoration:none;display:flex;align-items:baseline;gap:.55rem}
.mark span{font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.masthead nav{display:flex;gap:1.75rem;font-size:.82rem;letter-spacing:.04em}
.masthead nav a{text-decoration:none;color:var(--ink-soft);transition:color .2s var(--ease)}
.masthead nav a:hover{color:var(--accent)}
@media(max-width:620px){.masthead nav{display:none}}

/* hero */
.hero{padding-block:var(--section) calc(var(--section) * .72)}
.eyebrow{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-soft);margin:0 0 2rem}
.hero h1{font-size:var(--text-hero);max-width:15ch}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero .lead{font-size:var(--text-lead);color:var(--ink-soft);max-width:46ch;margin:2rem 0 0;line-height:1.5}
.hero-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(2rem,4vw,5rem);align-items:end}
@media(max-width:820px){.hero-grid{grid-template-columns:1fr}}
.hero-aside{border-left:2px solid var(--accent);padding-left:1.4rem;font-size:.9rem;color:var(--ink-soft)}
.hero-aside dt{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:.3rem}
.hero-aside dd{margin:0 0 1.1rem;color:var(--ink)}
.hero-aside dd:last-child{margin-bottom:0}

/* sections */
section{border-top:1px solid var(--rule);padding-block:var(--section)}
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:baseline;margin-bottom:3.5rem}
.sec-num{font-family:var(--serif);font-size:.95rem;color:var(--accent-soft)}
.sec-head h2{font-size:var(--text-h2);max-width:20ch}

/* capabilities — deliberately uneven rhythm */
.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(max-width:820px){.caps{grid-template-columns:1fr}}
.cap{background:var(--paper);padding:clamp(1.5rem,3vw,2.5rem);transition:background .3s var(--ease)}
.cap:hover{background:var(--paper-2)}
.cap h3{font-size:1.4rem;margin-bottom:.9rem}
.cap p{margin:0;color:var(--ink-soft);font-size:.93rem}
.cap ul{margin:1.2rem 0 0;padding:0;list-style:none;font-size:.82rem;color:var(--ink-soft)}
.cap li{padding:.4rem 0;border-top:1px solid var(--rule)}

/* engagement */
.engage{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2.5rem}
.engage h3{font-size:1.15rem;font-family:var(--sans);font-weight:600;letter-spacing:0;margin-bottom:.6rem}
.engage p{margin:0;color:var(--ink-soft);font-size:.92rem}
.engage .step{font-family:var(--serif);font-size:2.6rem;color:var(--rule);line-height:1;margin-bottom:.8rem}

/* company record */
.record{background:var(--paper-2);border:1px solid var(--rule);padding:clamp(1.5rem,3.5vw,3rem)}
.record dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1.8rem 2.5rem;margin:0}
.record dt{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:.45rem}
.record dd{margin:0;font-size:.95rem;line-height:1.5}
.record a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}

/* footer */
footer{border-top:1px solid var(--rule);padding-block:3rem;font-size:.8rem;color:var(--ink-soft)}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center}
footer a{color:var(--ink-soft);text-decoration:none}
footer a:hover{color:var(--accent)}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* legal pages */
.prose{max-width:46rem;padding-block:var(--section)}
.prose h1{font-size:clamp(2.2rem,1.5rem + 2.6vw,3.4rem);margin-bottom:.6rem}
.prose .updated{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-soft);margin:0 0 3rem}
.prose h2{font-size:1.5rem;margin:3rem 0 .9rem;padding-top:1.6rem;border-top:1px solid var(--rule)}
.prose p,.prose li{color:var(--ink-soft);font-size:.96rem}
.prose li{margin-bottom:.5rem}
.prose a{color:var(--accent);text-underline-offset:3px}
.prose strong{color:var(--ink);font-weight:600}

