:root{color-scheme:light;--paper:#fafbf8;--ink:#233a46;--muted:#51656a;--line:#d8e1dc;--accent:#08796c;--soft:#eff5f3;--warm:#985c24;--max:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button,a,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--warm);outline-offset:5px}
.skip{position:absolute;left:16px;top:-80px;padding:12px;background:var(--paper);z-index:3}
.skip:focus{top:12px}
.masthead{position:sticky;top:0;z-index:2;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px max(24px,calc((100% - var(--max))/2))}
.brand{font-size:14px;letter-spacing:.12em;font-weight:750;text-decoration:none;color:var(--ink);white-space:nowrap}
.brand span{font-size:12px;font-weight:400;letter-spacing:.02em;color:var(--muted)}
nav{display:flex;flex-wrap:wrap;gap:24px;font-size:14px}nav a{color:var(--ink);text-decoration:none}
main{max-width:var(--max);margin:auto;padding:0 28px}
section{padding:64px 0;border-bottom:1px solid var(--line)}
.hero{padding-top:70px;padding-bottom:54px}
.eyebrow{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);margin:0 0 18px}
h1,h2,h3,p,figure{margin-top:0}
h1{font-size:clamp(42px,6.3vw,76px);letter-spacing:-.055em;line-height:1.07;font-weight:650;margin-bottom:28px}
h2{font-size:clamp(29px,3.7vw,42px);letter-spacing:-.035em;line-height:1.2;font-weight:600;margin-bottom:26px}
h3{font-size:20px;line-height:1.3;letter-spacing:-.015em;font-weight:650;margin-bottom:12px}
p{margin-bottom:20px}.lede{font-size:23px;line-height:1.5;max-width:770px;margin-bottom:28px}
.boundary{max-width:900px;color:var(--muted);border-left:3px solid var(--accent);padding-left:20px;font-size:16px}
.reading-links{display:flex;flex-wrap:wrap;gap:14px 28px;font-size:15px;font-weight:600;margin:26px 0 6px}
.section-heading{margin-bottom:24px}.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
figure{margin:0}.source,figcaption{font-size:13px;color:var(--muted)}figcaption{margin-top:14px;line-height:1.6}
.tree-domain{border:1px solid #9eafaa;background:var(--soft);padding:22px}
.tree-label{display:block;font-weight:650}.tree small{display:block;font-size:13px;color:var(--muted)}
.tree-level{border-left:2px solid var(--accent);margin-top:24px;padding-left:22px}
.tree-patches{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.tree-patches>div{background:var(--paper);border:1px solid var(--line);padding:14px}.tree-patches strong{font-size:16px}
.terms{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:42px}.terms article{border-top:2px solid var(--line);padding-top:20px}.terms p{font-size:15px;margin-bottom:10px}.terms code{font-size:12px;color:var(--muted)}
code{font-family:Consolas,"Courier New",monospace;font-size:.87em;overflow-wrap:anywhere}
.stage-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}
.stage-buttons button{font:600 14px/1.3 system-ui,sans-serif;color:var(--ink);border:1px solid #adbfba;border-radius:5px;background:transparent;padding:13px 16px;min-height:46px;cursor:pointer}
.stage-buttons button:hover{background:#e4eeea}.stage-buttons button[aria-pressed=true]{color:white;background:var(--ink);border-color:var(--ink)}
.stage-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:38px;align-items:center;padding:24px 0}
.grid-figure svg{width:100%;height:auto;display:block}.svg-label{font:16px system-ui,sans-serif;fill:var(--ink)}
.stage-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);font-weight:700;margin-bottom:10px}.stage-copy h3{font-size:27px}.stage-copy p{font-size:16px}
dl{margin:20px 0}dt{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}dd{margin:4px 0 14px;font-size:15px}
.stage-copy .stage-stat{border-top:1px solid var(--line);padding-top:16px;font-size:13px;font-weight:600;color:var(--accent);margin-bottom:0}
details{border-top:1px solid var(--line);padding:18px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-size:16px;font-weight:600;padding:4px 0}details p{margin:14px 0 4px;color:var(--muted);font-size:15px;max-width:890px}
.mac-figure svg{display:block;width:100%;max-width:400px;margin:auto}.mac-figure figcaption{text-align:center}
.field-shapes div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:8px 0}.field-shapes dt{font-size:13px;text-transform:none;letter-spacing:0}.field-shapes dd{margin:0;font-size:14px;font-variant-numeric:tabular-nums}
.note{background:var(--soft);border-left:3px solid var(--accent);padding:22px 26px;font-size:16px;margin-top:34px}
.interface-list{margin:28px 0}.interface-list article{display:grid;grid-template-columns:36px 1fr 95px;gap:22px;padding:24px 0;border-top:1px solid var(--line);align-items:start}.interface-list article:last-child{border-bottom:1px solid var(--line)}.number{font-size:15px;color:var(--accent);font-variant-numeric:tabular-nums;padding-top:3px}.interface-list p{font-size:16px;margin:0}.when{font-size:12px;color:var(--muted);text-align:right;padding-top:5px}
.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6;text-align:left}caption{text-align:left;font-size:13px;color:var(--muted);margin-bottom:15px}th,td{padding:16px 18px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}tbody th{font-weight:650;width:21%}td{width:39.5%}
.comparison{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin:42px 0 20px}.comparison article{border-top:3px solid var(--accent);padding-top:24px}.comparison article+article{border-color:var(--warm)}.comparison .eyebrow{color:var(--muted);font-size:11px;margin-bottom:12px}.comparison p{font-size:16px}.hierarchy-line{font-size:14px!important;font-weight:600}
.road{list-style:none;margin:32px 0 0;padding:0}.road li{display:grid;grid-template-columns:125px 1fr;gap:32px;border-top:1px solid var(--line);padding:28px 0}.road-id{font-size:13px;font-weight:750;letter-spacing:.03em;color:var(--accent);padding-top:4px}.road p{font-size:16px}.road .gate{font-size:15px;color:var(--muted);margin:0}.reading{border-bottom:0}.reading>p:last-child{margin-top:24px;max-width:800px;color:var(--muted);font-size:15px}
footer{max-width:var(--max);padding:24px 28px 42px;margin:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}
@media(max-width:800px){.masthead{position:static;padding:18px 24px;flex-wrap:wrap;gap:12px}.split{gap:26px}.terms{grid-template-columns:repeat(2,1fr)}.stage-layout{grid-template-columns:1fr;gap:26px}.grid-figure{max-width:580px;width:100%;margin:auto}.stage-copy{max-width:600px}.hero{padding-top:46px}section{padding:46px 0}.tree-domain{padding:16px}.tree-level{padding-left:14px}.brand span{display:none}}
@media(max-width:560px){body{font-size:16px}main{padding:0 20px}nav{gap:20px}.split,.comparison{grid-template-columns:1fr;gap:24px}.lede{font-size:20px}.eyebrow{font-size:11px}.terms{gap:18px}.terms code{font-size:11px}.stage-buttons{display:grid;grid-template-columns:1fr 1fr}.stage-buttons button{padding:12px 8px;font-size:12px}.stage-layout{padding-top:0}.svg-label{font-size:21px}.interface-list article{grid-template-columns:24px 1fr;gap:14px}.when{grid-column:2;text-align:left;padding:0}.road li{grid-template-columns:1fr;gap:12px}.road-id{padding:0}th,td{padding:12px 10px 12px 0;font-size:13px}thead th{font-size:10px}.note{padding:18px}footer{display:block;padding:22px 20px}footer span{display:block;margin-top:8px}h2 br{display:none}.field-shapes div{gap:10px}.field-shapes dd{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{font-size:11pt;background:white}.masthead{position:static;padding:0 0 18px}nav,.stage-buttons,.skip{display:none}main{max-width:none;padding:0}section{padding:25px 0}h1{font-size:40pt}h2{font-size:24pt}h3{font-size:15pt}.lede{font-size:15pt}.hero{padding-top:24px}.split,.stage-layout{grid-template-columns:1fr 1fr;gap:20px}figure,.road li,.interface-list article{break-inside:avoid}footer{padding:20px 0}.reading-links a{font-size:10pt}}
