@font-face{font-family:"Bricolage Grotesque";font-weight:700;font-display:swap;src:url(fonts/bricolage-grotesque-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:800;font-display:swap;src:url(fonts/bricolage-grotesque-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:400;font-display:swap;src:url(fonts/source-sans-3-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:400;font-style:italic;font-display:swap;src:url(fonts/source-sans-3-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:600;font-display:swap;src:url(fonts/source-sans-3-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:700;font-display:swap;src:url(fonts/source-sans-3-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

:root{
  color-scheme:light;
  --ground:#EEF2EF;--paper:#FBFCFA;--paper-2:#F4F7F4;
  --ink:#15201C;--ink-2:#44524C;--ink-3:#5E6C66;
  --line:#D3DBD6;--line-2:#BCC7C1;
  --teal:#0E5A54;--teal-2:#137068;--teal-soft:#DCEBE7;
  --pencil:#B8412A;--pencil-soft:#F6E2DC;
  --ok:#2C6B3A;--ok-soft:#DDEEDF;
  --on-accent:#FBFCFA;
  --display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --ground:#0E1513;--paper:#151E1B;--paper-2:#1A2521;
    --ink:#E3EAE6;--ink-2:#B3C0BA;--ink-3:#8FA099;
    --line:#2A3833;--line-2:#3A4A44;
    --teal:#6BC0B4;--teal-2:#86D0C5;--teal-soft:#193532;
    --pencil:#EC846C;--pencil-soft:#3A221C;
    --ok:#7CC98C;--ok-soft:#1B3222;
    --on-accent:#0E1513;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.55;padding-inline:20px}
h1,h2,h3,h4,p,ul,ol{margin:0}
h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.015em;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(2.3rem,5.6vw,4rem);font-weight:800}
h2{font-size:clamp(1.65rem,3.4vw,2.35rem);font-weight:800}
h3{font-size:1.15rem;font-weight:700}
a{color:var(--teal)}
a:hover{color:var(--teal-2)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:3px}
.wrap{max-width:1040px;margin-inline:auto}
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:12px;display:block}
.mono{font-family:var(--mono)}
.prose{max-width:62ch}
.muted{color:var(--ink-2)}

/* header */
header.site{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:22px;flex-wrap:wrap}
.brand{font-family:var(--display);font-weight:800;font-size:1.3rem;text-decoration:none;color:var(--ink);display:inline-flex;align-items:baseline;gap:7px}
.brand .tick{color:var(--pencil);font-family:var(--mono);font-weight:500}
header.site nav{display:flex;gap:22px;font-size:.95rem}
header.site nav a{color:var(--ink-2);text-decoration:none}
header.site nav a:hover{color:var(--ink)}

section{padding-block:64px;border-top:1px solid var(--line)}
section.first{border-top:0;padding-block:36px 64px}

/* hero */
.status-pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;color:var(--ink-2);border:1px solid var(--line-2);border-radius:99px;padding:5px 12px;background:var(--paper)}
.status-pill i{width:7px;height:7px;border-radius:50%;background:var(--pencil);display:inline-block}
.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;margin-top:26px}
.hero h1 em{font-style:normal;color:var(--teal)}
.lede{font-size:1.25rem;line-height:1.5;color:var(--ink-2);margin-top:20px;max-width:46ch}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-flex;align-items:center;border:1px solid var(--teal);background:var(--teal);color:var(--on-accent);padding:11px 20px;border-radius:6px;font-weight:600;text-decoration:none;font-size:1rem}
.btn:hover{background:var(--teal-2);border-color:var(--teal-2);color:var(--on-accent)}
.btn.ghost{background:transparent;color:var(--teal)}
.btn.ghost:hover{background:var(--teal-soft);color:var(--teal)}

/* specimen card */
.specimen{background:var(--paper);border:1px solid var(--line-2);border-radius:10px;overflow:hidden;box-shadow:0 1px 2px rgba(21,32,28,.06),0 14px 32px rgba(21,32,28,.08)}
.spec-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 16px;background:var(--paper-2);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.72rem;color:var(--ink-3);letter-spacing:.04em}
.spec-body{padding:16px;display:flex;flex-direction:column;gap:12px}
.doc-row{display:grid;grid-template-columns:1fr auto;gap:4px 14px;font-size:.92rem;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}
.doc-row .lab{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);grid-column:1/-1}
.doc-row b{font-weight:600}
.doc-row .val{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.doc-row.flag{border-color:var(--pencil);background:var(--pencil-soft)}
.note-card{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:12px 14px;border-left:3px solid var(--pencil);background:var(--pencil-soft);border-radius:0 6px 6px 0;font-size:.93rem}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:.8rem}
.note-card small{display:block;font-family:var(--mono);font-size:.7rem;color:var(--ink-3);margin-bottom:3px}
.spec-foot{padding:10px 16px;border-top:1px solid var(--line);font-size:.78rem;color:var(--ink-3);background:var(--paper-2)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:34px}
.stat{border-top:3px solid var(--pencil);padding-top:14px}
.stat .n{font-family:var(--display);font-weight:800;font-size:clamp(2.6rem,6vw,3.8rem);color:var(--pencil);line-height:1}
.stat p{font-size:1.02rem;color:var(--ink-2);margin-top:10px;max-width:40ch}
.stat cite{display:block;font-style:normal;font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin-top:8px}
.stat cite a{color:var(--ink-3)}
.thesis{margin-top:38px;padding:20px 24px;border-left:3px solid var(--teal);background:var(--paper);border-radius:0 8px 8px 0;font-size:1.12rem;max-width:68ch}

/* steps */
.steps{list-style:none;padding:0;margin-top:34px;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.steps li{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:18px 16px}
.steps li.hot{border-color:var(--pencil);box-shadow:inset 0 0 0 1px var(--pencil)}
.steps .k{font-family:var(--mono);font-size:.74rem;color:var(--teal)}
.steps li.hot .k{color:var(--pencil)}
.steps h3{margin:8px 0 6px}
.steps p{font-size:.93rem;color:var(--ink-2);line-height:1.45}
.arch-note{margin-top:26px;color:var(--ink-2);max-width:68ch;font-size:1rem}

/* status */
.status-list{margin-top:30px;border-top:2px solid var(--ink);display:flex;flex-direction:column}
.status-row{display:grid;grid-template-columns:150px 1fr;gap:20px;padding-block:16px;border-bottom:1px solid var(--line);align-items:baseline}
.status-row .s{font-family:var(--mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}
.status-row .s.done{color:var(--ok)}
.status-row .s.now{color:var(--pencil)}
.status-row .s.next{color:var(--ink-3)}
.status-row p{color:var(--ink-2)}
.status-row p b{color:var(--ink)}

/* people & contact */
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px}
.person{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center;margin-top:20px}
.person .mono-av{width:64px;height:64px;border-radius:50%;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.3rem;border:1px solid var(--line-2)}
.person b{font-family:var(--display);font-size:1.15rem}
.person span{display:block;color:var(--ink-3);font-size:.95rem}
.contact-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px 24px;display:flex;flex-direction:column;gap:14px}
.contact-card .mail{font-family:var(--mono);font-size:1.05rem;word-break:break-all}
.contact-card ul{padding-left:18px;color:var(--ink-2);font-size:.98rem;display:flex;flex-direction:column;gap:6px}

footer.site{border-top:1px solid var(--line);padding-block:30px 44px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.88rem;color:var(--ink-3)}
footer.site a{color:var(--ink-2)}
footer.site nav{display:flex;gap:18px}

/* legal pages */
.legal{max-width:70ch;padding-block:24px 56px}
.legal h1{font-size:clamp(2rem,4.4vw,2.8rem)}
.legal h2{font-size:1.3rem;margin-top:34px;margin-bottom:8px}
.legal p,.legal ul{margin-top:10px;color:var(--ink-2)}
.legal ul{padding-left:20px}
.legal dl{display:grid;grid-template-columns:190px 1fr;gap:10px 20px;margin:16px 0 0}
.legal dt{color:var(--ink-3);font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;padding-top:4px}
.legal dd{margin:0;color:var(--ink)}
.legal .de{color:var(--ink-3);font-style:italic}

@media (max-width:860px){
  .hero-grid,.two{grid-template-columns:1fr;gap:34px}
  .steps{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr}
  section{padding-block:48px}
}
@media (max-width:520px){
  body{padding-inline:16px;font-size:17px}
  .steps{grid-template-columns:1fr}
  .status-row{grid-template-columns:1fr;gap:4px}
  .legal dl{grid-template-columns:1fr;gap:2px}
  .legal dt{padding-top:12px}
  header.site nav{gap:16px}
}
