@font-face{font-family:Silkscreen;src:url(fonts/Silkscreen-Regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Silkscreen;src:url(fonts/Silkscreen-Bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(fonts/ibm-plex-mono-latin-400.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{color-scheme:dark;--black:#000;--dust-1:#17130c;--dust-2:#221b10;--ash:#7d7a70;--silver:#a8a49a;--ivory:#f2ead8;--amber:#ffb257;--amber-deep:#f5a63c;--signal:#ffb257;--caret:#ffd9a0;--cyan:#6ee8e0;--rule:#f2ead829;--rule-strong:#f2ead866;--bitmap:"Silkscreen", "Courier New", monospace;--mono:"IBM Plex Mono", "SFMono-Regular", ui-monospace, monospace;color:var(--ivory);background:var(--black);font-family:var(--mono);font-size:16px;line-height:1.7;scrollbar-color:var(--ash) var(--dust-1);caret-color:var(--caret)}*{box-sizing:border-box}body{max-width:80rem;margin:0 auto;padding:0 clamp(1rem,3vw,3rem) 2rem}a{color:var(--cyan);text-decoration-thickness:1px;text-underline-offset:.22em}a:hover{color:var(--ivory);text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--amber);outline-offset:4px}::selection{background:var(--amber);color:var(--black)}[id]{scroll-margin-block-start:1.5rem}.site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;min-height:5.5rem;padding-block:1rem;border-block-end:1px solid var(--rule-strong)}.wordmark{display:inline-flex;align-items:center;gap:.85rem;min-height:44px;color:var(--ivory);text-decoration:none}.wordmark:hover{color:var(--ivory)}.brand-mark{display:block;flex:none;width:128px;height:72px}.brand-name{font-family:var(--bitmap);font-size:1.05rem;line-height:1.5;letter-spacing:.04em}.brand-description{display:block;color:var(--silver);font-family:var(--mono);font-size:.72rem;line-height:1.4;letter-spacing:.12em;text-transform:uppercase}.header-links{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1.25rem;font-size:.8rem}.header-links a{display:inline-flex;align-items:center;min-height:44px}.repository-link{justify-content:center;width:44px}.repository-link:hover{background:var(--dust-2)}.repository-link img{display:block}.docs-search-button{min-height:44px;padding:.5rem .75rem;border:1px solid var(--rule-strong);background:0 0;color:var(--silver);font:inherit;font-size:.85rem;cursor:pointer}.docs-search-button:hover{background:var(--dust-2);color:var(--amber);border-color:var(--amber)}.docs-search-button[hidden]{display:none}.reading-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:start;margin-block:2.5rem 4rem}.sidebar{position:sticky;top:1.25rem;max-height:calc(100dvh - 2.5rem);overflow-y:auto;font-size:.8rem;scrollbar-width:thin;padding-inline-end:.5rem}.nav-title{margin:0 0 .4rem;color:var(--ash);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.menu,.toc{margin:0;padding:0;list-style:none}.global-navigation{margin-block-start:1.5rem}.page-contents+.global-navigation{margin-block-start:1.5rem;padding-block-start:1.25rem;border-block-start:1px solid var(--rule)}.menu a{display:flex;align-items:center;min-height:40px;padding:.35rem .5rem;color:var(--silver);text-decoration:none;line-height:1.4;overflow-wrap:anywhere}.menu a:hover{color:var(--amber)}.menu [aria-current=page]{color:var(--amber);font-weight:600}.menu [aria-current=page]:after{content:"▮";flex:none;margin-inline-start:auto;font-size:.6em}.nav-group>summary{min-height:40px;display:flex;align-items:center;color:var(--ash);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.nav-group>summary:hover{color:var(--ivory)}.nav-group .menu{padding-inline-start:.35rem}.nav-group[open]{margin-block-end:.5rem}.toc a{display:block;padding-block:.3rem;color:var(--silver);text-decoration:none;line-height:1.45;overflow-wrap:anywhere}.toc a:hover{color:var(--amber)}.toc-level-3{padding-inline-start:.75rem;font-size:.95em}.mobile-menu,.mobile-contents{display:none}main{min-width:0}main:focus{outline:none}main:focus-visible{outline:2px solid var(--amber);outline-offset:8px}.page-header{margin-block-end:1.75rem}h1,.prose h2,.prose h3,.prose h4{font-family:var(--bitmap);text-wrap:balance}h1{margin:0;display:flex;align-items:baseline;gap:.35em;font-size:clamp(1.6rem,3.4vw,2.5rem);font-weight:700;line-height:1.35;letter-spacing:.02em;overflow-wrap:anywhere}.caret{display:inline-block;width:.5em;height:.16em;background:var(--amber)}.prose{min-width:0;overflow-wrap:anywhere}.prose>:first-child{margin-block-start:0}.prose p{margin:0 0 1.15rem;color:var(--ivory)}.prose h2{margin:2.75rem 0 .9rem;padding-block-start:1.1rem;border-block-start:1px solid var(--rule);font-size:1.3rem;font-weight:700;line-height:1.4;letter-spacing:.02em}.prose h3{margin:1.9rem 0 .7rem;font-size:1.05rem;font-weight:700;line-height:1.4}.prose h4{margin:1.6rem 0 .6rem;font-size:.95rem;font-weight:400;color:var(--amber)}.prose ul,.prose ol{margin:0 0 1.25rem;padding-inline-start:1.35rem}.prose li{margin-block:.35rem}.prose li::marker{color:var(--amber)}.prose li>ul,.prose li>ol{margin-block-end:.6rem}.prose strong{color:var(--ivory);font-weight:700}.prose hr{margin-block:2rem;border:0;border-block-start:1px solid var(--rule)}code,pre,kbd,samp{font-family:var(--mono)}.prose code{padding:.08em .3em;background:var(--dust-2);color:var(--caret);font-size:.85em}.prose pre{max-width:100%;margin:1.25rem 0;padding:.95rem 1.1rem;overflow-x:auto;border-block:1px solid var(--rule-strong);background:var(--dust-1);color:var(--ivory);font-size:.8rem;line-height:1.65;tab-size:4}.prose pre code{display:block;padding:0;background:0 0;color:inherit;font-size:inherit;overflow-wrap:normal}.prose pre code.pyg-highlight,.prose code.pyg-highlight{background:0 0;padding:0}.pyg-c,.pyg-c1,.pyg-c2,.pyg-ch,.pyg-cm,.pyg-cp,.pyg-cpf,.pyg-cs{color:var(--ash);font-style:normal}.pyg-k,.pyg-kc,.pyg-kd,.pyg-kn,.pyg-kp,.pyg-kr,.pyg-kv,.pyg-o{color:var(--ivory);font-weight:700}.pyg-nf,.pyg-fm,.pyg-m{color:var(--caret)}.pyg-s,.pyg-s1,.pyg-s2,.pyg-sa,.pyg-sb,.pyg-sc,.pyg-sd,.pyg-se,.pyg-sh,.pyg-si,.pyg-sx,.pyg-sr,.pyg-ss,.pyg-su,.pyg-si{color:var(--amber)}.pyg-nt,.pyg-nc,.pyg-no,.pyg-nd,.pyg-ni,.pyg-nn,.pyg-vg,.pyg-vi,.pyg-vc,.pyg-vm,.pyg-nx{color:var(--cyan)}.pyg-nb,.pyg-bp{color:var(--silver)}.pyg-gp,.pyg-go,.pyg-ge,.pyg-gh,.pyg-gu{color:var(--silver)}.pyg-gd{color:#e0485a}.pyg-gi{color:#86e3a5}.pyg-w,.pyg-p{color:var(--ivory)}.pyg-err,.pyg-ne{color:#e0485a}.table-scroll{max-width:100%;margin:1.25rem 0;overflow-x:auto}.prose table{width:100%;margin:0;border-collapse:collapse;font-size:.78rem;line-height:1.6;font-variant-numeric:tabular-nums}.prose th,.prose td{padding:.55rem .8rem;border-block-end:1px solid var(--rule);text-align:start;vertical-align:top;min-width:6rem}.prose th{color:var(--amber);font-weight:700;letter-spacing:.04em;border-block-end:1px solid var(--rule-strong)}.prose tr:last-child td{border-block-end:0}.prose table code{font-size:.95em}.prose blockquote{margin:1.25rem 0;padding-inline-start:1rem;border-inline-start:1px solid var(--rule-strong);color:var(--silver)}.prose blockquote p:last-child{margin-block-end:0}.prose img{max-width:100%;height:auto}.prose details{margin-block:1rem;padding-block:.2rem;border-block:1px solid var(--rule)}.prose details>summary{color:var(--amber);cursor:pointer}.prose details[open]{padding-block-end:.8rem}.prose details>:last-child{margin-block-end:0}.prose li a,.prose td a{color:var(--cyan)}.prose td a:hover,.prose li a:hover{color:var(--ivory)}.bridge-flow-figure{margin:1.5rem 0;text-align:center}.bridge-flow-figure figcaption{margin-block-start:.6rem;color:var(--ash);font-size:.75rem;line-height:1.6;text-align:left}.bridge-flow{display:inline-block;max-width:100%;height:auto}.bridge-flow .flow-line{fill:none;stroke:var(--rule-strong);stroke-width:1.5px}.bridge-flow .flow-arrowhead{fill:var(--rule-strong)}.bridge-flow .flow-node{fill:var(--dust-2);stroke:var(--rule-strong)}.bridge-flow .flow-node-label{fill:var(--ivory);font-family:var(--mono);font-size:14px;paint-order:stroke;stroke:var(--black);stroke-width:4px}.bridge-flow .flow-edge-label-bg{fill:var(--black);stroke:var(--rule);stroke-width:1px}.bridge-flow .flow-label-leader{fill:none;stroke:var(--ash);stroke-width:1px;stroke-dasharray:2 3}.bridge-flow .flow-edge-label{fill:var(--amber);font-family:var(--mono);font-size:12.5px;paint-order:stroke;stroke:var(--black);stroke-width:4px}.flow-fallback{margin:0;padding:.8rem 1rem;border-block:1px solid var(--rule-strong);background:var(--dust-1);color:var(--ivory);font-size:.78rem;line-height:1.7}.docs-search-dialog{width:min(42rem,100% - 2rem);max-width:none;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:clamp(1rem,3vw,1.75rem);overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--rule-strong);background:var(--dust-1);color:var(--ivory);scrollbar-gutter:stable}.docs-search-dialog::backdrop{background:#000000d1}.docs-search-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-block-end:1.25rem}.docs-search-heading h2{min-width:0;margin:0;font-family:var(--bitmap);font-size:1.1rem;letter-spacing:.03em;text-wrap:balance;overflow-wrap:anywhere}.docs-search-heading form{flex:none;margin:0}.docs-search-label{display:block;margin-block-end:.4rem;color:var(--silver);font-size:.8rem}.docs-search-input{display:block;width:100%;min-width:0;min-height:46px;padding:.6rem .7rem;border:1px solid var(--rule-strong);background:var(--black);color:var(--ivory);font:400 1rem/1.5 var(--mono)}.docs-search-help,.docs-search-status{margin:.75rem 0 0;color:var(--ash);font-size:.78rem;line-height:1.5}.docs-search-status{margin-block-start:1.25rem;color:var(--silver);font-variant-numeric:tabular-nums}.docs-search-results{margin:.75rem 0 0;padding:0;list-style:none}.docs-search-results:empty{margin:0}.docs-search-result{display:block;min-height:44px;padding:.9rem .5rem;border-block-start:1px solid var(--rule);text-decoration:none;overflow-wrap:anywhere}.docs-search-result:hover{background:var(--dust-2);text-decoration:none}.docs-search-result:focus-visible{outline-offset:-2px;background:var(--dust-2)}.docs-search-result-title{display:block;color:var(--ivory);font-weight:700}.docs-search-result-page{display:block;margin-block-start:.2rem;color:var(--amber);font-size:.72rem}.docs-search-result-snippet{display:block;margin-block-start:.4rem;color:var(--silver);font-size:.8rem;line-height:1.55}.docs-search-dialog:not([open]){display:none}.home-hero{margin-block-end:2.5rem}.home-kicker-line{display:flex;align-items:baseline;gap:.5rem;color:var(--ivory);font-family:var(--bitmap);font-size:clamp(1.7rem,4.5vw,3.1rem);line-height:1.3;letter-spacing:.01em}.home-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 0}.home-badges a{display:inline-flex;align-items:center;min-height:44px}.home-badges img{display:block;height:20px}.badge-local{display:inline-flex;align-items:center;gap:.45rem;min-height:20px;padding:.25rem .55rem;border:1px solid var(--rule-strong);color:var(--silver);font-size:.72rem;letter-spacing:.06em}.badge-local-dot{width:7px;height:7px;background:var(--amber)}.home-stage{display:grid;gap:2rem;margin-block:0 2.5rem}@media (width>=64rem){.home-hero{max-width:46rem}.home-stage{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}}.lead-line{color:var(--ivory);font-size:1.02rem}.paths{margin:1.5rem 0 0;padding:0;list-style:none}.paths li{margin-block:.55rem}.paths .path-name{color:var(--amber);font-weight:700}.paths .path-desc{color:var(--silver)}.cta-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-block-start:1.4rem}.cta{display:inline-flex;align-items:center;min-height:46px;padding:.6rem 1rem;border:1px solid var(--amber);color:var(--amber);font-weight:700;text-decoration:none}.cta:hover{background:var(--amber);color:var(--black)}.cta--quiet{border-color:var(--rule-strong);color:var(--silver);font-weight:400}.cta--quiet:hover{background:var(--dust-2);color:var(--ivory)}.bridge-explorer{border-block:1px solid var(--rule-strong);background:var(--dust-1)}.bridge-explorer .bridge-tabs{display:flex}.bridge-tab{display:flex;align-items:center;justify-content:center;min-height:50px;flex:1;padding:.5rem .35rem;border:0;border-block-end:2px solid var(--rule-strong);color:var(--silver);font:inherit;font-size:.82rem;cursor:pointer}.bridge-tab:hover{color:var(--ivory);background:var(--dust-2)}.bridge-choice{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.bridge-choice:focus-visible+.bridge-tab{outline:2px solid var(--amber);outline-offset:-4px}.bridge-choice[value=patch]:checked+.bridge-tab{color:var(--amber);border-block-end-color:var(--amber);background:var(--dust-2)}.bridge-choice[value=sequence]:checked+.bridge-tab{color:var(--amber);border-block-end-color:var(--amber);background:var(--dust-2)}.bridge-panel{display:none;padding:clamp(.9rem,2.5vw,1.5rem)}.bridge-choice[value=patch]:checked~.bridge-panel-patch,.bridge-choice[value=sequence]:checked~.bridge-panel-sequence{display:block}.bridge-figure{margin:0}.bridge-figure figcaption{margin-block-start:.9rem;color:var(--ash);font-size:.78rem;line-height:1.6}.site-footer{margin-block-start:3rem;padding-block-start:1.25rem;border-block-start:1px solid var(--rule);color:var(--ash);font-size:.78rem}.site-footer a{color:var(--silver)}@media (width<=59.9375em){.mobile-menu{display:block;margin-block:1rem 0;border-block:1px solid var(--rule)}.mobile-menu>summary{min-height:48px;display:flex;align-items:center;color:var(--amber);font-family:var(--bitmap);font-size:.85rem;cursor:pointer}.mobile-menu .global-navigation{margin:.5rem 0 1rem}.sidebar{display:none}.reading-layout{display:block}}@media (width>=60em){.mobile-menu{display:none}}@media (width<=59.9375em){.mobile-contents{display:block;margin-block:1rem;border-block:1px solid var(--rule)}.mobile-contents>summary{min-height:44px;display:flex;align-items:center;color:var(--amber);font-family:var(--bitmap);font-size:.85rem;cursor:pointer}.mobile-contents[open]{padding-block-end:.6rem}.mobile-contents .toc{padding-block:.5rem}}@media (width>=60em){.mobile-contents{display:none}}@media (prefers-reduced-motion:no-preference){.caret{animation:1.2s steps(2,start) infinite caret-blink}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.badge-local-dot{animation:2.6s ease-in-out infinite badge-local-dot}@keyframes badge-local-dot{0%,to{opacity:1}50%{opacity:.35}}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{.site-header,.sidebar,.mobile-menu,.mobile-contents,.docs-search-dialog,.site-footer{display:none}body{max-width:none}.prose pre{border:1px solid #ccc;background:#fff;color:#111}}