@font-face{font-family:'IBM Plex Sans';src:url('../fonts/plex-sans-v3.woff2')format('woff2');font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:'JetBrains Mono';src:url('../fonts/jetbrains-mono-v3.woff2')format('woff2');font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:'Plex Fallback';src:local('Arial'),local('Helvetica Neue'),local('Liberation Sans');size-adjust:101.2%;font-weight:300 700}@font-face{font-family:'Mono Fallback';src:local('Menlo'),local('Consolas'),local('DejaVu Sans Mono');size-adjust:99.7%;font-weight:400 700}:root{--c-1:#FFFFFF;--c-2:#FBFAF8;--c-3:#F8F4EB;--c-4:#F3EEE1;--c-5:#EFE9DB;--c-6:#EDE7DA;--line:#B0A794;--line-s:#8B8170;--line-2:#7A7260;--line-3:#A85A2C;--bw:1px;--bw-2:2px;--ink:#0E1013;--text:#16181D;--body:#33383F;--muted:#4D525A;--dim:#5A6068;--accent:#B23A0B;--accent-2:#C4471A;--accent-wash:rgba(178,58,11,.07);--accent-edge:rgba(178,58,11,.20);--ind:#8A8578;--warn:#9A6300;--ok:#1C6B3F;--mono:'JetBrains Mono','Mono Fallback',ui-monospace,SFMono-Regular,monospace;--sans:'IBM Plex Sans','Plex Fallback',system-ui,-apple-system,sans-serif;--t-1:12px;--t-2:13.5px;--t-3:15px;--t-4:17px;--t-5:20px;--t-d1:clamp(38px,5.4vw,58px);--t-d2:clamp(27px,3.1vw,38px);--t-d4:clamp(30px,3.4vw,42px);--t-d5:clamp(24px,2.4vw,30px);--t-d3:clamp(19px,1.9vw,22px);--lh-1:1.05;--lh-2:1.2;--lh-3:1.45;--lh-4:1.55;--lh-5:1.6;--tr-d1:-.032em;--tr-d2:-.024em;--tr-d3:-.011em;--tr-label:.16em;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--band:clamp(64px,8vw,110px);--r-dot:3px;--r-1:6px;--r-2:10px;--r-3:16px;--e-inset:inset 0 1px 0 rgba(255,255,255,.9);--e-inset-lite:inset 0 1px 0 rgba(255,255,255,.24);--e-1:0 1px 2px rgba(28,24,18,.07);--e-3:var(--e-inset),0 2px 6px -3px rgba(28,24,18,.10),0 40px 72px -34px rgba(28,24,18,.42);--ring-warn:0 0 0 3px rgba(154,99,0,.16);--warn-1:#FBF2DE;--warn-2:#F7EBD4;--warn-ink:#4A3A12;--warn-ink-2:#3A2C08;--shell:1140px;--bleed:1280px;--prose:62ch;--hero-copy:760px;--hdr:60px;--dur-1:130ms;--ease:cubic-bezier(.22,.61,.36,1);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--c-2);color:var(--text);font-family:var(--sans);font-size:var(--t-4);line-height:var(--lh-5);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent)}p{text-wrap:pretty}main{flex:1}.wrap{width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--s5)}a:focus-visible{outline:var(--bw-2) solid var(--ink);outline-offset:3px;border-radius:var(--r-1)}h1{font-size:var(--t-d1);line-height:var(--lh-1);letter-spacing:var(--tr-d1);font-weight:600;margin:0 0 var(--s5);color:var(--ink);text-wrap:balance}h2{font-size:var(--t-d2);line-height:var(--lh-2);letter-spacing:var(--tr-d2);font-weight:600;color:var(--ink);margin:0 0 var(--s5);text-wrap:balance;max-width:20ch}.body{color:var(--body);max-width:var(--prose);margin:0 0 var(--s7)}code{font-family:var(--mono);font-size:.86em;color:var(--ink)}b{color:var(--ink)}.eyebrow,.ver,.raillab,.gates li::before,.gl thead th,.spec thead th,.layers thead th,.layers td:last-child,.phases li::before{font-family:var(--mono);letter-spacing:var(--tr-label);text-transform:uppercase}.eyebrow{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin:0 0 var(--s5);font-size:var(--t-1);font-weight:400;line-height:1.5;color:var(--dim)}.eyebrow b{font-weight:400;color:var(--accent)}header{position:sticky;top:0;z-index:20;background:rgba(251,250,248,.86);backdrop-filter:saturate(150%) blur(14px);border-bottom:var(--bw) solid var(--line-2)}header .wrap{display:flex;align-items:center;gap:var(--s4);min-height:var(--hdr)}.brandmark{display:flex;align-items:center;gap:var(--s3);text-decoration:none;margin-right:var(--s2)}.glyph{width:30px;height:30px;border-radius:var(--r-2);display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:var(--t-5);color:var(--accent);background:linear-gradient(150deg,var(--c-1),var(--c-6));border:var(--bw) solid var(--line-2);box-shadow:var(--e-inset)}.logo{font-family:var(--mono);font-weight:700;font-size:var(--t-5);letter-spacing:-.02em;color:var(--ink);text-decoration:none}.logo span{color:var(--accent)}.ver{display:inline-flex;align-items:baseline;gap:var(--s2);font-size:var(--t-1);color:var(--muted);border:var(--bw) solid var(--line-2);border-radius:var(--r-1);padding:4px var(--s2) 3px;white-space:nowrap;background:var(--c-1)}.ver i{font-style:normal;color:var(--dim)}.hnav{display:flex;align-items:center;gap:var(--s5);margin-left:auto}.hnav a{font-size:var(--t-2);font-weight:500;color:var(--muted);text-decoration:none;white-space:nowrap;padding:calc(var(--s2)+2px) 0;border-bottom:var(--bw-2) solid transparent;transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.hnav a:hover,.hnav a[aria-current]{color:var(--ink);border-bottom-color:var(--accent)}.hact{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--t-2);font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap;padding:9px var(--s4);border:var(--bw) solid var(--line-2);border-radius:var(--r-1);background:var(--c-1);box-shadow:var(--e-1);transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}.hact .sm{display:none}.hact b{font-weight:400;color:var(--accent)}.hact:hover{border-color:var(--line-3);background:var(--c-3)}.more{color:var(--accent);font-family:var(--mono);font-size:var(--t-3);letter-spacing:.02em;text-decoration:none;border-bottom:var(--bw) solid var(--line-2);display:inline-block;line-height:var(--lh-3);padding:3px 0 5px;transition:border-color var(--dur-1) var(--ease)}.more:hover{border-color:var(--accent)}.frame{border:var(--bw) solid var(--line-2);border-left:3px solid var(--warn);border-radius:var(--r-2);background:linear-gradient(180deg,var(--warn-1),var(--warn-2));padding:var(--s5);margin:var(--s7) 0}.frame p{margin:0;font-size:var(--t-3);line-height:var(--lh-4);color:var(--warn-ink)}.frame p+p{margin-top:var(--s3)}.frame b{color:var(--warn-ink-2)}footer{border-top:var(--bw) solid var(--line-2);padding:var(--s7) 0 var(--s6);background:var(--c-2)}.fgrid{display:grid;grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,1fr));gap:var(--s6) clamp(24px,3.2vw,56px);align-items:start}footer .fid p{margin:var(--s4) 0 0;font-size:var(--t-3);line-height:var(--lh-4);color:var(--muted);max-width:36ch}.fid .glyph{width:26px;height:26px;font-size:var(--t-4);border-radius:var(--r-1)}.fcol{display:grid;justify-items:start;align-content:start;gap:var(--s3)}.fcol .raillab{width:100%;padding-bottom:var(--s2);border-bottom:var(--bw) solid var(--line-2)}.fcol a{font-family:var(--mono);font-size:var(--t-2);line-height:var(--lh-3);color:var(--muted);text-decoration:none;border-bottom:var(--bw) solid transparent;transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.fcol a:hover{color:var(--accent);border-bottom-color:var(--line-3)}footer p.fbase{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2) var(--s5);margin:var(--s7) 0 0;padding-top:var(--s4);border-top:var(--bw) solid var(--line-s);font-family:var(--mono);font-size:var(--t-1);letter-spacing:.03em;color:var(--dim)}.fbase a{color:var(--accent)}.raillab{font-size:var(--t-1);color:var(--dim)}.masthead{background:radial-gradient(52% 64% at 6% 0%,rgba(178,58,11,.07),transparent 70%),linear-gradient(180deg,var(--c-4),var(--c-5));border-bottom:var(--bw-2) solid var(--line-2);padding:clamp(44px,6vw,84px) 0 clamp(36px,4.6vw,60px)}.mh{max-width:var(--prose);margin:0 auto}.p-doc h1{max-width:17ch}.standfirst{font-size:var(--t-d3);line-height:var(--lh-3);letter-spacing:var(--tr-d3);color:var(--muted);font-weight:300;margin:0;max-width:56ch}article{max-width:calc(var(--prose) + 2*var(--s5));margin:0 auto;padding:clamp(40px,5vw,72px) var(--s5) var(--band)}.p-doc p{margin:0 0 var(--s4);color:var(--body)}article>:first-child{margin-top:0}.p-doc h2{margin:var(--s8) 0 var(--s4);max-width:24ch}.p-doc h2 .n{display:block;font-family:var(--mono);font-size:var(--t-1);font-weight:400;letter-spacing:var(--tr-label);color:var(--accent);width:fit-content;line-height:1.4;padding-bottom:var(--s1);border-bottom:var(--bw) solid var(--line-2);margin-bottom:var(--s4)}.gates,.phases{list-style:none;margin:var(--s6) 0 var(--s8);padding:0;border-top:var(--bw-2) solid var(--line-2);counter-reset:g}.phases{counter-reset:ph -1}.gates li,.phases li{display:grid;grid-template-columns:4.5ch minmax(0,1fr);column-gap:var(--s5);align-items:start;padding:var(--s6) 0;border-bottom:var(--bw) solid var(--line-s)}.gates li::before{counter-increment:g;content:"0" counter(g);font-size:var(--t-2);color:var(--accent);padding-top:5px}.phases li::before{counter-increment:ph;content:"P" counter(ph);font-size:var(--t-2);color:var(--accent);padding-top:4px}.gates h3,.phases b{margin:0 0 var(--s3);font-size:var(--t-5);line-height:var(--lh-3);letter-spacing:var(--tr-d3);font-weight:600;color:var(--ink);display:block}.gates h3 em{font-style:normal;color:var(--dim);font-weight:400}.gates p,.phases p{margin:0 0 var(--s3)}.gates p:last-child,.phases p:last-child{margin:0}.gates .out{font-size:var(--t-3);color:var(--muted);border-left:var(--bw-2) solid var(--accent);padding-left:var(--s4)}.gl,.layers,.spec{width:100%;border-collapse:collapse;margin:var(--s6) 0 var(--s8);font-size:var(--t-3)}.gl th,.gl td,.layers th,.layers td,.spec th,.spec td{text-align:left;padding:11px var(--s4) 11px 0;border-bottom:var(--bw) solid var(--line-s);vertical-align:top}.gl thead th,.layers thead th,.spec thead th{font-size:var(--t-1);color:var(--dim);font-weight:400;border-bottom:var(--bw-2) solid var(--line-2);padding-top:0}.gl tbody th,.layers tbody td:first-child,.spec tbody th{font-family:var(--mono);font-size:var(--t-2);font-weight:400;letter-spacing:.02em;color:var(--ink);white-space:nowrap;padding-right:var(--s5);padding-top:13px}.gl td:last-child,.spec td:last-child{padding-right:0;color:var(--muted)}.layers td{color:var(--body)}.layers td:last-child{font-size:var(--t-1);letter-spacing:.09em;padding-right:0;padding-top:14px;text-align:right}.have{color:var(--ok)}.part{color:var(--warn)}.gone{color:var(--accent)}blockquote{margin:var(--s7) 0;padding:0 0 0 var(--s5);border-left:var(--bw-2) solid var(--accent)}blockquote p{margin:0;font-size:var(--t-d3);line-height:var(--lh-3);letter-spacing:var(--tr-d3);color:var(--ink)}ul.body{margin:0 0 var(--s5);padding-left:20px;color:var(--body);max-width:none}ul.body li{margin-bottom:var(--s3)}ul.body li b{color:var(--ink);font-weight:600}.src{margin-top:var(--s8);padding-top:var(--s5);border-top:var(--bw-2) solid var(--line-2)}.src p{font-size:var(--t-3);line-height:var(--lh-4);color:var(--dim);margin:0;max-width:56ch}.src code{color:var(--ink)}.next{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s5)}.next a{font-family:var(--mono);font-size:var(--t-2);letter-spacing:.04em;text-decoration:none;color:var(--ink);border:var(--bw) solid var(--line-2);border-radius:var(--r-1);padding:9px 14px;background:var(--c-1);transition:border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.next a:hover{border-color:var(--line-3);color:var(--accent)}.p-dl .standfirst{max-width:60ch}.p-dl h2{font-size:var(--t-d5);letter-spacing:var(--tr-d3);max-width:30ch}.p-dl .status{border:var(--bw) solid var(--line-2);border-left:3px solid var(--warn);border-radius:var(--r-2);background:linear-gradient(180deg,var(--warn-1),var(--warn-2));padding:var(--s5);margin:0 0 var(--s7)}.p-dl .status p{margin:0;font-family:var(--mono);font-size:var(--t-3);line-height:var(--lh-4);color:var(--warn-ink)}.p-dl .status p+p{margin-top:var(--s3)}article>p:first-child{font-size:var(--t-4);line-height:var(--lh-5);color:var(--body)}.p-faq .mh{margin-inline:0;max-width:none;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:var(--s6) clamp(40px,6vw,96px);align-items:end}.p-faq h1{max-width:15ch;margin-bottom:var(--s4)}.p-faq .standfirst{max-width:48ch}.qjump{display:grid;counter-reset:qj;border-top:var(--bw-2) solid var(--line-2);padding-top:var(--s3)}.qjump .raillab{padding-bottom:var(--s4)}.qjump a{display:grid;grid-template-columns:4.4ch minmax(0,1fr);align-items:baseline;gap:var(--s3);padding:11px 0 12px;border-bottom:var(--bw) solid var(--line-s);font-size:var(--t-3);line-height:var(--lh-3);color:var(--text);text-decoration:none;transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.qjump a::before{counter-increment:qj;content:"Q" counter(qj,decimal-leading-zero);font-family:var(--mono);font-size:var(--t-1);letter-spacing:var(--tr-label);color:var(--accent)}.qjump a:hover{color:var(--accent);border-bottom-color:var(--line-3)}.faqwrap{padding-top:clamp(40px,5vw,72px);padding-bottom:var(--band)}.qa{margin:0;border-top:var(--bw-2) solid var(--line-2);counter-reset:q}.qrow{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:0 clamp(32px,5vw,72px);padding:var(--s6) 0;border-bottom:var(--bw) solid var(--line-s);scroll-margin-top:calc(var(--hdr) + var(--bw))}.qa dt{font-size:var(--t-d5);line-height:var(--lh-2);letter-spacing:var(--tr-d3);font-weight:600;color:var(--ink);max-width:19ch}.qa dt::before{counter-increment:q;content:"Q" counter(q,decimal-leading-zero);display:block;width:fit-content;font-family:var(--mono);font-size:var(--t-1);font-weight:400;letter-spacing:var(--tr-label);color:var(--accent);line-height:1.4;padding-bottom:var(--s1);border-bottom:var(--bw) solid var(--line-2);margin-bottom:var(--s4)}.qa dd{margin:0;max-width:60ch;color:var(--body);font-size:var(--t-3);line-height:var(--lh-4)}.qa dd p{margin:0 0 var(--s4)}.qa dd p:last-child{margin:0}.qa .more{font-size:var(--t-2)}.qa .qsrc{margin:var(--s5) 0 0;padding-top:var(--s3);border-top:var(--bw) solid var(--line-s);font-family:var(--mono);font-size:var(--t-1);line-height:var(--lh-3);letter-spacing:.03em;color:var(--dim)}.p-faq .qrow:last-child{border-bottom:0}.p-faq .src{margin-top:0}@media (max-width:960px){.p-faq .mh{display:block}.p-faq h1{max-width:17ch}.p-faq .standfirst{max-width:54ch}.qjump{display:none}.qrow{grid-template-columns:1fr;gap:var(--s4);padding:var(--s5) 0}.qa dt{max-width:30ch}.fgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6) var(--s5)}.fid{grid-column:1/-1}}@media (max-width:900px){.hnav a:not(.keep){display:none}.hnav{gap:var(--s4)}}@media (max-width:700px){h1{letter-spacing:-.021em}h2{letter-spacing:-.018em}}@media (max-width:640px){.gates li,.phases li{grid-template-columns:1fr;row-gap:var(--s2);padding:var(--s5) 0}.gl,.gl tbody,.gl tr,.gl th,.gl td,.layers,.layers tbody,.layers tr,.layers th,.layers td,.spec,.spec tbody,.spec tr,.spec th,.spec td{display:block;width:100%}.gl thead,.layers thead,.spec thead{display:none}.gl tr,.layers tr,.spec tr{padding:var(--s4) 0;border-bottom:var(--bw) solid var(--line-s)}.gl tr:first-child,.layers tr:first-child,.spec tr:first-child{border-top:var(--bw-2) solid var(--line-2)}.gl th,.gl td,.layers th,.layers td,.spec th,.spec td{border:0;padding:0}.gl tbody th,.layers tbody td:first-child,.spec tbody th{white-space:normal;margin-bottom:var(--s1);padding-top:0}.gl td:last-child,.spec td:last-child{margin-top:var(--s1)}.layers td:last-child{margin-top:var(--s2);padding-top:0}}@media (max-width:620px){.ver{display:none}}@media (max-width:560px){.hact .lg{display:none}.hact .sm{display:inline}.hact{padding:9px var(--s3)}.body{margin-bottom:var(--s6)}footer{padding:var(--s6) 0 var(--s5)}footer .fid p{display:none}.fgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s4)}.fid{grid-column:1/-1}footer p.fbase{margin-top:var(--s5);gap:var(--s2)}}@media (max-width:480px){.wrap{padding:0 var(--s4)}article{padding-left:var(--s4);padding-right:var(--s4)}}@media (max-width:430px){header .wrap{gap:var(--s3)}.brandmark{margin-right:0}}@media (max-width:380px){h1{font-size:clamp(31px,9.4vw,36px);letter-spacing:-.026em}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-property:color,background,background-color,border-color,outline-color,filter!important}}