@font-face{font-family:Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/plex-sans-latin-ext-300.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/plex-sans-latin-300.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-sans-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-sans-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-sans-latin-ext-500.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-sans-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plex-sans-latin-ext-600.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plex-sans-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/plex-sans-latin-ext-700.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/plex-sans-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-mono-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-mono-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-mono-latin-ext-500.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-mono-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plex-mono-latin-ext-600.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/plex-mono-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--paper: #efe8d8;--paper-2: #f8f4e9;--paper-3: #e3d9c4;--ink: #221b12;--ink-2: #3a2f21;--graphite: #5b5040;--stone: #8a7f6b;--rule: #d3c6ac;--rule-ink: #221b12;--acc: #4a3720;--acc-2: #2f2314;--wash: #e7ddc8;--acc-ink: #f5eedd;--txt: var(--ink);--txt-2: var(--graphite);--font-ui: "Plex Sans", "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "Plex Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--t-label: .6875rem;--t-xs: .75rem;--t-sm: .8125rem;--t-base: .9375rem;--t-read: 1.0625rem;--t-h4: 1.25rem;--t-h3: 1.5rem;--t-h2: 2rem;--t-h1: 3rem;--lh-tight: .9;--lh-snug: 1.15;--lh-ui: 1.45;--lh-read: 1.6;--track: -.03em;--track-label: .1em;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--bar: 2px solid var(--ink);--hair: 1px solid var(--rule);--hair-ink: 1px solid var(--ink);--plate: 8px 8px 0 var(--ink);--plate-sm: 4px 4px 0 var(--ink);--chip: 3px 3px 0 var(--acc);--topbar-h: 58px;--read: 66ch;--ease: cubic-bezier(.2, 0, 0, 1);--dur: .16s;--texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .08 0 0 0 0 .07 0 0 0 0 .055 0 0 0 .55 -.18'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23g)' opacity='.22'/%3E%3C/svg%3E")}html[data-theme=dark]{color-scheme:dark;--paper: #14100a;--paper-2: #1b160e;--paper-3: #0e0b07;--ink: #efe6d2;--ink-2: #d5cab2;--graphite: #a2977f;--stone: #6f6653;--rule: #322a1c;--rule-ink: #efe6d2;--acc: #3d2e1b;--acc-2: #55401f;--wash: #1d170e;--acc-ink: #f2e8d4;--plate: 8px 8px 0 var(--ink);--plate-sm: 4px 4px 0 var(--ink)}@media(prefers-reduced-motion:reduce){:root{--dur: 0ms}}*,*:before,*:after{box-sizing:border-box}html{background:var(--paper);color:var(--txt);font-family:var(--font-ui);font-size:var(--t-base);line-height:var(--lh-ui);-webkit-font-smoothing:antialiased;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-h) + var(--sp-4))}body{margin:0;min-width:320px;min-height:100dvh;background:var(--paper) var(--texture);background-blend-mode:multiply}h1,h2,h3,h4,p,figure,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}:focus-visible{outline:2px solid var(--acc);outline-offset:3px}::selection{background:var(--acc);color:var(--acc-ink)}[dir=rtl] body{letter-spacing:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);inset-block-start:var(--sp-3);inset-inline-start:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:var(--track-label);z-index:90}.skip:focus{width:auto;height:auto;clip-path:none}.wrap{width:100%;max-width:1280px;margin-inline:auto;padding-inline:clamp(1rem,4vw,3.5rem)}.wrap-n{max-width:980px}.lbl{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--t-label);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--txt-2)}.lbl:before{content:"";width:7px;height:7px;background:var(--acc)}.disp{font-weight:700;letter-spacing:var(--track);line-height:var(--lh-tight);text-wrap:balance}.lede{font-size:var(--t-read);line-height:var(--lh-read);color:var(--txt);max-width:var(--read);text-wrap:pretty}.mono{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.04em}.dim{color:var(--txt-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:42px;padding-inline:var(--sp-5);border:1.5px solid var(--ink);border-radius:0;font-size:var(--t-sm);font-weight:600;line-height:1;white-space:nowrap;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn-acc{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}.btn-acc:hover{background:var(--acc-2);border-color:var(--acc-2)}.btn-ink{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn-ink:hover{background:var(--ink-2);border-color:var(--ink-2)}.btn-ghost:hover{background:var(--paper-3)}.btn:active{transform:translateY(2px)}.arrow{font-family:var(--font-mono);font-weight:500}.tb{position:sticky;inset-block-start:0;z-index:50;border-bottom:var(--bar);background:var(--paper)}.tb-in{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--sp-6);min-height:var(--topbar-h)}.mark{display:inline-flex;align-items:baseline;gap:var(--sp-2)}.mark-v{display:grid;place-items:center;width:26px;height:26px;background:var(--ink);color:var(--paper);font-weight:700;font-size:var(--t-sm);line-height:1;transform:translateY(1px)}.mark-t{font-weight:700;font-size:var(--t-h4);letter-spacing:-.02em}.mark-c{color:var(--acc)}.tb-nav{display:flex;gap:var(--sp-6)}.tb-a{display:inline-flex;align-items:baseline;gap:var(--sp-2);font-size:var(--t-sm);padding-block:4px;border-bottom:2px solid transparent;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.tb-a:hover,.tb-a[aria-current=true]{border-bottom-color:var(--acc)}.tb-num{font-family:var(--font-mono);font-size:10px;color:var(--stone)}.tb-r{display:flex;align-items:center;gap:var(--sp-3)}.ib{display:grid;place-items:center;width:34px;height:34px;border:1px solid transparent;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.ib:hover{border-color:var(--ink);background:var(--paper-2)}.ib svg{width:17px;height:17px}.ic{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}html[data-theme=light] .ic-sun,html[data-theme=dark] .ic-moon{display:none}.langmenu{position:relative}.langmenu>summary{display:inline-flex;align-items:center;gap:6px;height:34px;padding-inline:var(--sp-2);border:1px solid transparent;font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;cursor:pointer;list-style:none}.langmenu>summary::-webkit-details-marker{display:none}.langmenu>summary:hover{border-color:var(--ink)}.lm-n{display:none}.lm-caret{width:9px;height:6px}.lm-list{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;min-width:180px;padding:var(--sp-1);background:var(--paper-2);border:var(--bar);box-shadow:var(--plate-sm);z-index:60}.langmenu:not([open])>.lm-list{display:none}.lm-list a{display:flex;align-items:baseline;gap:var(--sp-3);padding:7px var(--sp-3);font-size:var(--t-sm)}.lm-list a:hover{background:var(--wash)}.lm-list a.is-current{color:var(--acc);font-weight:600}.lm-list .lm-n{display:inline}.hero{border-bottom:var(--bar)}.hero-in{display:grid;grid-template-columns:7fr 5fr;min-height:clamp(420px,62vh,620px)}.hero-l{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-10) clamp(1rem,4vw,3.5rem) var(--sp-8);background:var(--acc);color:var(--acc-ink)}.hero-l:before{content:"";position:absolute;inset:0;background:var(--texture);opacity:.5;mix-blend-mode:multiply;pointer-events:none}.hero-top{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase}.hero-top b{font-weight:500}.hero-tag{position:relative;margin-block:auto;font-weight:700;font-size:clamp(2.6rem,7vw,5.6rem);line-height:.88;letter-spacing:-.04em}.hero-tag span{display:block}.hero-route{position:relative;height:96px;flex:0 0 auto}.route-line{position:absolute;inset-inline:0;inset-block-end:26px;border-top:1.5px dashed currentColor;opacity:.65}.route-nodes{position:absolute;inset-inline:0;inset-block-end:26px;display:flex;justify-content:space-between;align-items:center;transform:translateY(50%)}.route-sq{width:10px;height:10px;background:currentColor}.route-rd{width:12px;height:12px;border-radius:50%;background:currentColor}.route-mark{position:absolute;inset-inline-start:50%;inset-block-end:26px;transform:translate(-50%,50%);display:grid;place-items:center;width:56px;height:56px;background:var(--acc-ink);color:var(--acc);font-weight:700;font-size:27px;line-height:1;letter-spacing:-.05em;box-shadow:0 0 0 9px var(--acc);z-index:2}.route-lbls{position:absolute;inset-inline:0;inset-block-end:0;display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;opacity:.8}.route-lbls span:nth-child(2){opacity:.75}.hero-foot{position:relative;display:flex;justify-content:space-between;gap:var(--sp-4);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;opacity:.9}.hero-r{display:flex;flex-direction:column;justify-content:center;gap:var(--sp-6);padding:var(--sp-10) clamp(1rem,3vw,2.5rem);background:var(--paper-2);border-inline-start:var(--bar)}.hero-name{font-weight:700;font-size:clamp(1.5rem,2.2vw,1.9rem);letter-spacing:-.02em;line-height:1.1}.hero-lede{font-size:var(--t-base);line-height:var(--lh-read);color:var(--txt)}.hero-lede b{font-weight:600}.hero-cta{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.ledger{display:grid;grid-template-columns:repeat(2,1fr);border-top:var(--hair-ink)}.ledger-c{padding:var(--sp-3) var(--sp-3) var(--sp-3) 0;border-bottom:var(--hair)}.ledger-c:nth-child(2n){padding-inline-start:var(--sp-4);border-inline-start:var(--hair)}.ledger-n{font-weight:700;font-size:var(--t-h3);letter-spacing:-.03em;line-height:1}.ledger-l{margin-block-start:2px;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-2)}.sect{padding-block:clamp(2.5rem,6vw,4.5rem);border-bottom:var(--hair-ink)}.sect:last-of-type{border-bottom:0}.sect-h{display:grid;grid-template-columns:72px 1fr;gap:var(--sp-6);align-items:start;padding-block-start:var(--sp-3);border-top:var(--bar);margin-block-end:var(--sp-6)}.sect-n{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--t-label);font-weight:500;letter-spacing:.06em;box-shadow:4px 4px 0 var(--acc)}.sect-t{font-weight:700;font-size:clamp(1.9rem,4.2vw,3rem);letter-spacing:-.035em;line-height:.95;grid-column:2}.sect-x{grid-column:2;margin-block-start:var(--sp-3);max-width:56ch;color:var(--txt-2);line-height:var(--lh-read)}.idx{border-top:var(--hair-ink)}.idx-head,.idx-row{display:grid;grid-template-columns:46px minmax(180px,1.5fr) minmax(140px,1fr) minmax(120px,.9fr) 96px 106px;gap:var(--sp-4);align-items:center}.idx-head{padding-block:var(--sp-2);border-bottom:var(--hair);font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--stone)}.idx-row{position:relative;padding-block:var(--sp-4);border-bottom:var(--hair);transition:background-color var(--dur) var(--ease),padding-inline var(--dur) var(--ease)}.idx-row:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:0;background:var(--acc);transition:width var(--dur) var(--ease)}.idx-row:hover{background:var(--wash);padding-inline:var(--sp-3)}.idx-row:hover:before{width:3px}.idx-row:focus-visible{outline-offset:-2px}.idx-n{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--stone);letter-spacing:.04em}.idx-t{display:flex;flex-direction:column;gap:1px;font-weight:600;font-size:var(--t-read);letter-spacing:-.015em;line-height:1.2}.idx-t i{font-style:normal;font-weight:400;font-size:var(--t-sm);color:var(--txt-2);letter-spacing:0}.idx-c,.idx-s,.idx-y{font-size:var(--t-sm);color:var(--txt-2)}.idx-s{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.02em}.idx-y{font-family:var(--font-mono);font-size:var(--t-xs);white-space:nowrap}.st{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.st i{width:7px;height:7px;display:block}.st-live i{background:var(--ink);border-radius:50%;box-shadow:0 0 0 3px var(--rule)}.st-dev i{background:var(--acc)}.st-internal i{background:transparent;border:1.5px solid var(--stone)}.peek{position:fixed;inset-block-start:0;inset-inline-start:0;width:320px;z-index:40;pointer-events:none;opacity:0;transform:translateZ(0) scale(.97);transition:opacity .14s var(--ease),transform .18s var(--ease);border:var(--hair-ink);background:var(--paper-2);box-shadow:var(--plate);padding:6px}.peek.on{opacity:1;transform:translateZ(0) scale(1)}.peek img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top center}.peek b{display:block;margin-block-start:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--txt-2)}.areas{display:grid;grid-template-columns:repeat(2,1fr);border-top:var(--hair-ink)}.area{padding:var(--sp-6) var(--sp-6) var(--sp-6) 0;border-bottom:var(--hair)}.area:nth-child(2n){padding-inline-start:var(--sp-6);padding-inline-end:0;border-inline-start:var(--hair)}.area:nth-last-child(-n+2){border-bottom:0}.area-n{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);color:var(--stone)}.area-t{margin-block:var(--sp-2) var(--sp-3);font-weight:600;font-size:var(--t-h4);letter-spacing:-.02em;line-height:1.15}.area-t .hl{color:var(--acc)}.area-p{font-size:var(--t-sm);line-height:var(--lh-read);color:var(--txt-2)}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-block-start:var(--sp-4)}.chip{padding:3px 7px;border:1px solid var(--rule);background:var(--paper-2);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.03em;color:var(--txt-2)}.chip-b{border-color:var(--ink);color:var(--ink);background:transparent}.figs{display:grid;grid-template-columns:repeat(4,1fr);border-block:var(--hair-ink)}.fig{padding:var(--sp-6) var(--sp-5);border-inline-end:var(--hair)}.fig:last-child{border-inline-end:0}.fig-n{font-weight:700;font-size:clamp(2.6rem,5vw,4rem);letter-spacing:-.05em;line-height:.85;font-variant-numeric:tabular-nums}.fig-l{margin-block-start:var(--sp-3);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-2);max-width:16ch}.method{border-top:var(--hair-ink)}.mrow{display:grid;grid-template-columns:46px minmax(160px,1fr) minmax(0,2fr);gap:var(--sp-6);padding-block:var(--sp-5);border-bottom:var(--hair);align-items:baseline}.mrow-n{font-family:var(--font-mono);font-size:var(--t-label);color:var(--acc);letter-spacing:.04em}.mrow-t{font-weight:600;font-size:var(--t-read);letter-spacing:-.015em}.mrow-p{font-size:var(--t-sm);line-height:var(--lh-read);color:var(--txt-2)}.contact-l{font-weight:700;font-size:clamp(1.8rem,4.6vw,3.4rem);letter-spacing:-.04em;line-height:1;max-width:22ch}.mail{display:inline-block;margin-block-start:var(--sp-6);font-weight:700;font-size:clamp(1.4rem,3.4vw,2.4rem);letter-spacing:-.03em;border-bottom:2px solid var(--ink);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.mail:hover{color:var(--acc);border-bottom-color:var(--acc)}.foot{border-top:var(--bar);background:var(--paper-2)}.foot-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--sp-8);padding-block:var(--sp-8) var(--sp-6)}.foot h3{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--stone);margin-block-end:var(--sp-3)}.foot p,.foot a{font-size:var(--t-sm);color:var(--txt-2)}.foot p{line-height:var(--lh-read);max-width:46ch}.foot-links{display:flex;flex-direction:column;gap:6px}.foot-links a:hover{color:var(--acc)}.foot-langs{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.foot-langs a{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:var(--track-label);text-transform:uppercase;border-bottom:1px solid var(--rule);padding-block-end:1px}.foot-langs a:hover{border-bottom-color:var(--ink)}.foot-langs a.is-current{color:var(--acc);border-bottom-color:var(--acc)}.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-3);padding-block:var(--sp-4);border-top:var(--hair);font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--stone)}.crumb{border-bottom:var(--hair);background:var(--paper-2)}.crumb-in{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:46px;font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--txt-2)}.crumb a:hover,.crumb-n{color:var(--acc)}.phead{padding-block:clamp(2rem,5vw,3.5rem) clamp(1rem,2vw,1.5rem)}.phead-n{display:flex;align-items:center;gap:var(--sp-3);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--txt-2);margin-block-end:var(--sp-4)}.phead-n s{text-decoration:none;color:var(--acc)}.phead-t{font-weight:700;font-size:clamp(2.4rem,7vw,5rem);letter-spacing:-.045em;line-height:.9;text-wrap:balance}.phead-s{margin-block-start:var(--sp-4);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:400;color:var(--txt-2);letter-spacing:-.01em}.phead-p{margin-block-start:var(--sp-5);font-size:var(--t-read);line-height:var(--lh-read);max-width:62ch;text-wrap:pretty}.spec{display:grid;grid-template-columns:repeat(5,1fr);border-block:var(--hair-ink);margin-block:clamp(1.5rem,3vw,2.5rem)}.spec-c{padding:var(--sp-4) var(--sp-4) var(--sp-4) 0;border-inline-end:var(--hair)}.spec-c:last-child{border-inline-end:0;padding-inline-end:0}.spec-c+.spec-c{padding-inline-start:var(--sp-4)}.spec-k{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--stone)}.spec-v{margin-block-start:6px;font-size:var(--t-sm);font-weight:500;line-height:1.35}.spec-v a{border-bottom:1px solid var(--acc);color:var(--acc)}.spec-v a:hover{background:var(--wash)}.plate{border:var(--hair-ink);background:var(--paper-2);padding:clamp(6px,.8vw,10px);box-shadow:var(--plate);margin-block-end:var(--sp-8)}.plate img{width:100%;height:auto}.plate-cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-2);margin-block-start:var(--sp-3);font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--txt-2)}.plate-cap b{color:var(--acc);font-weight:500}.pstep{padding-block:clamp(1.8rem,4vw,3rem);border-top:var(--hair-ink)}.pstep-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-block-end:var(--sp-5)}.pstep-t{font-weight:700;font-size:clamp(1.3rem,2.4vw,1.8rem);letter-spacing:-.03em}.pstep-k{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--stone)}.numlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-8);border-top:var(--hair)}.numlist li{display:grid;grid-template-columns:34px 1fr;gap:var(--sp-3);padding-block:var(--sp-3);border-bottom:var(--hair);font-size:var(--t-sm);line-height:var(--lh-read)}.numlist li:before{content:counter(nl,decimal-leading-zero);counter-increment:nl;font-family:var(--font-mono);font-size:10px;color:var(--acc);letter-spacing:.04em;padding-block-start:2px}.numlist{counter-reset:nl}.layers{display:grid;gap:var(--sp-5)}.layer{border:var(--hair-ink);background:var(--paper-2)}.layer-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:var(--hair);background:var(--paper-3)}.layer-t{font-weight:600;font-size:var(--t-read);letter-spacing:-.015em}.layer .chips{margin:0}.layer-b{padding:var(--sp-4) var(--sp-5) var(--sp-5)}.layer-b ul{display:grid;gap:var(--sp-2)}.layer-b li{position:relative;padding-inline-start:var(--sp-5);font-size:var(--t-sm);line-height:var(--lh-read);color:var(--txt)}.layer-b li:before{content:"";position:absolute;inset-inline-start:0;inset-block-start:.62em;width:8px;height:1px;background:var(--acc)}.tech{border-top:var(--hair-ink)}.tech-r{display:grid;grid-template-columns:190px 1fr 44px;gap:var(--sp-5);align-items:start;padding-block:var(--sp-4);border-bottom:var(--hair)}.tech-k{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--txt-2);padding-block-start:3px}.tech-v{display:flex;flex-wrap:wrap;gap:6px}.tech-v .chip{font-size:var(--t-xs);padding:4px 9px}.tech-n{font-family:var(--font-mono);font-size:10px;color:var(--stone);text-align:end;padding-block-start:4px}.pager{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);padding-block:clamp(1.5rem,3vw,2.5rem);border-top:var(--hair-ink)}.pager-a{display:flex;flex-direction:column;gap:6px;padding:var(--sp-5);border:var(--hair-ink);background:var(--paper-2);transition:background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.pager-a:hover{background:var(--wash);box-shadow:var(--plate-sm);transform:translate(-2px,-2px)}.pager-a.next{text-align:end;align-items:flex-end}.pager-k{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--txt-2)}.pager-t{font-weight:600;font-size:var(--t-h4);letter-spacing:-.02em}.allgrid{display:grid;grid-template-columns:repeat(4,1fr);border-top:var(--hair-ink)}.all-a{display:flex;flex-direction:column;gap:2px;padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:var(--hair);border-inline-end:var(--hair);transition:background-color var(--dur) var(--ease)}.all-a:nth-child(4n){border-inline-end:0}.all-a:hover{background:var(--wash)}.all-a[aria-current=true]{background:var(--ink);color:var(--paper)}.all-a[aria-current=true] .all-n{color:var(--acc)}.all-n{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--stone)}.all-t{font-weight:500;font-size:var(--t-sm);letter-spacing:-.01em}.top{position:fixed;inset-block-end:var(--sp-6);inset-inline-end:var(--sp-6);width:42px;height:42px;display:grid;place-items:center;background:var(--ink);color:var(--paper);border:var(--bar);font-family:var(--font-mono);font-size:var(--t-sm);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);z-index:45}.top.on{opacity:1;pointer-events:auto}.rv{opacity:0;transform:translateY(10px)}.rv.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}@media(max-width:1080px){.idx-head,.idx-row{grid-template-columns:42px minmax(0,1.6fr) minmax(0,1fr) 92px}.idx-c,.idx-s{display:none}.allgrid{grid-template-columns:repeat(3,1fr)}.all-a:nth-child(4n){border-inline-end:var(--hair)}.all-a:nth-child(3n){border-inline-end:0}}@media(max-width:900px){.hero-in{grid-template-columns:1fr}.hero-l{padding-block:var(--sp-6) var(--sp-5);min-height:0}.hero-tag{font-size:clamp(2.2rem,10vw,3.6rem);margin-block:var(--sp-6)}.hero-route{height:64px}.hero-foot{display:none}.hero-r{border-inline-start:0;border-top:var(--bar);padding-block:var(--sp-8)}.tb-nav{display:none}.tb-in{grid-template-columns:auto 1fr auto}.figs{grid-template-columns:repeat(2,1fr)}.fig:nth-child(2){border-inline-end:0}.fig:nth-child(n+3){border-top:var(--hair)}.mrow{grid-template-columns:34px 1fr}.mrow-p{grid-column:2;margin-block-start:var(--sp-2)}.spec{grid-template-columns:repeat(2,1fr)}.spec-c:nth-child(2n){border-inline-end:0}.spec-c:nth-child(n+3){border-top:var(--hair)}.numlist{grid-template-columns:1fr}.tech-r{grid-template-columns:1fr;gap:var(--sp-2)}.tech-n{display:none}.pager{grid-template-columns:1fr}.foot-in{grid-template-columns:1fr;gap:var(--sp-6)}.allgrid{grid-template-columns:repeat(2,1fr)}.all-a:nth-child(3n){border-inline-end:var(--hair)}.all-a:nth-child(2n){border-inline-end:0}.peek{display:none}}@media(max-width:620px){:root{--t-read: 1rem}.areas{grid-template-columns:1fr}.area,.area:nth-child(2n){padding-inline:0;border-inline-start:0;border-bottom:var(--hair)}.area:last-child{border-bottom:0}.sect-h{grid-template-columns:1fr;gap:var(--sp-2)}.sect-t,.sect-x,.sect-n{grid-column:1}.idx-head{display:none}.idx-row{grid-template-columns:34px 1fr auto;gap:var(--sp-2) var(--sp-3);padding-block:var(--sp-3)}.idx-t{font-size:var(--t-base)}.idx-y{text-align:end}.idx-row .st{grid-column:3;justify-self:end}.footer-langs{gap:var(--sp-2)}}@media print{:root{--paper: #fff;--paper-2: #fff;--paper-3: #fff;--ink: #000;--txt: #000;--txt-2: #333}html,body{background:#fff}.tb,.top,.pager,.peek,.crumb,.foot-langs,.hero-l{-webkit-print-color-adjust:exact}.tb,.top,.peek,.skip,.hero-cta{display:none!important}.hero-in{grid-template-columns:1fr}.hero-l{color:#fff}.plate{box-shadow:none}.sect,.pstep{break-inside:avoid}a[href^=http]:after{content:" (" attr(href) ")";font-size:9pt;color:#555}}.plate-type{padding:0}.pt-in{display:flex;flex-direction:column;gap:var(--sp-3);aspect-ratio:16 / 5;padding:clamp(1.2rem,3vw,2.6rem);background:var(--paper-3) var(--texture);background-blend-mode:multiply}.pt-k{color:var(--acc);letter-spacing:var(--track-label);text-transform:uppercase}.pt-t{margin-block-start:auto;font-weight:700;font-size:clamp(2rem,5.5vw,4.2rem);letter-spacing:-.045em;line-height:.92}.pt-s{font-size:var(--t-read);color:var(--txt-2)}.pt-n{color:var(--stone);letter-spacing:var(--track-label);text-transform:uppercase}html[data-palette=sepia]{--paper: #efe8d8;--paper-2: #f8f4e9;--paper-3: #e3d9c4;--ink: #221b12;--ink-2: #3a2f21;--graphite: #5b5040;--stone: #8a7f6b;--rule: #d3c6ac;--rule-ink: #221b12;--acc: #4a3720;--acc-2: #2f2314;--wash: #e7ddc8;--acc-ink: #f5eedd}html[data-palette=sepia][data-theme=dark]{--paper: #14100a;--paper-2: #1b160e;--paper-3: #0e0b07;--ink: #efe6d2;--ink-2: #d5cab2;--graphite: #a2977f;--stone: #6f6653;--rule: #322a1c;--rule-ink: #efe6d2;--acc: #3d2e1b;--acc-2: #55401f;--wash: #1d170e;--acc-ink: #f2e8d4}html[data-palette=mono]{--paper: #f2f2ef;--paper-2: #f8f8f6;--paper-3: #e6e6e2;--ink: #111111;--ink-2: #2a2a2a;--graphite: #57575a;--stone: #8a8a8c;--rule: #cfcfca;--rule-ink: #111111;--acc: #1c1c1c;--acc-2: #000000;--wash: #e8e8e4;--acc-ink: #f7f7f5}html[data-palette=mono][data-theme=dark]{--paper: #101010;--paper-2: #171717;--paper-3: #0a0a0a;--ink: #f0f0ee;--ink-2: #d6d6d3;--graphite: #a0a0a0;--stone: #6c6c6c;--rule: #2a2a2a;--rule-ink: #f0f0ee;--acc: #2e2e2e;--acc-2: #454545;--wash: #191919;--acc-ink: #f2f2f0}html[data-palette=navy]{--paper: #eef0ea;--paper-2: #f7f8f5;--paper-3: #e0e3db;--ink: #101418;--ink-2: #23303a;--graphite: #4e5a63;--stone: #7d8890;--rule: #c8cec4;--rule-ink: #101418;--acc: #1b3a6b;--acc-2: #132b51;--wash: #dfe6f0;--acc-ink: #f2f5f8}html[data-palette=navy][data-theme=dark]{--paper: #0c1014;--paper-2: #121a20;--paper-3: #070a0d;--ink: #e9eef2;--ink-2: #c9d3da;--graphite: #8fa0ac;--stone: #5f7078;--rule: #22303a;--rule-ink: #e9eef2;--acc: #1e4680;--acc-2: #2a5a9e;--wash: #101c28;--acc-ink: #eef3f8}html[data-palette=olive]{--paper: #eeece0;--paper-2: #f6f5ec;--paper-3: #dfddcd;--ink: #1e2016;--ink-2: #333627;--graphite: #575c47;--stone: #868a76;--rule: #cccdb8;--rule-ink: #1e2016;--acc: #3c4a2a;--acc-2: #2b351d;--wash: #e4e6d6;--acc-ink: #f1f2e7}html[data-palette=olive][data-theme=dark]{--paper: #0f110b;--paper-2: #151810;--paper-3: #090a07;--ink: #ece9da;--ink-2: #cdcab8;--graphite: #9aa08c;--stone: #6b7061;--rule: #262a20;--rule-ink: #ece9da;--acc: #43552f;--acc-2: #566b3d;--wash: #151a10;--acc-ink: #eff1e6}html[data-palette=plum]{--paper: #f0e9e4;--paper-2: #f9f4f1;--paper-3: #e5d9d4;--ink: #221a1c;--ink-2: #3a2b30;--graphite: #5e4a51;--stone: #8a747b;--rule: #d2c3c4;--rule-ink: #221a1c;--acc: #4a2036;--acc-2: #341725;--wash: #ecdde3;--acc-ink: #f6eef0}html[data-palette=plum][data-theme=dark]{--paper: #120c0e;--paper-2: #1a1114;--paper-3: #0a0708;--ink: #f0e6e6;--ink-2: #d6c6c9;--graphite: #a59095;--stone: #746065;--rule: #2d2226;--rule-ink: #f0e6e6;--acc: #55283f;--acc-2: #6f3552;--wash: #1b1216;--acc-ink: #f4e9ec}html[data-palette=petrol]{--paper: #eaece8;--paper-2: #f4f6f2;--paper-3: #dde1dc;--ink: #12171a;--ink-2: #263035;--graphite: #4b5b5e;--stone: #7d8b8d;--rule: #c4cdcb;--rule-ink: #12171a;--acc: #14454f;--acc-2: #0d333a;--wash: #dbe6e5;--acc-ink: #eef3f2}html[data-palette=petrol][data-theme=dark]{--paper: #0a0e10;--paper-2: #101619;--paper-3: #060809;--ink: #e7edec;--ink-2: #c6d2d1;--graphite: #8ba0a0;--stone: #5e7071;--rule: #1c2a2c;--rule-ink: #e7edec;--acc: #1a5560;--acc-2: #256d7b;--wash: #0e1a1c;--acc-ink: #eaf1f1}.palmenu{position:relative}.palmenu>summary{display:inline-flex;align-items:center;gap:6px;height:34px;padding-inline:8px;border:1px solid transparent;cursor:pointer;list-style:none}.palmenu>summary::-webkit-details-marker{display:none}.palmenu>summary:hover{border-color:var(--ink)}.pal-sw{display:inline-flex;gap:2px}.pal-sw i{width:7px;height:15px;display:block;border:1px solid var(--ink)}.pal-list{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;min-width:232px;padding:var(--sp-1);background:var(--paper-2);border:var(--bar);box-shadow:var(--plate-sm);z-index:60}.palmenu:not([open])>.pal-list{display:none}.pal-a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;padding:7px 10px;text-align:start;font-size:var(--t-sm)}.pal-a:hover,.pal-a.is-current{background:var(--wash)}.pal-n{font-weight:500}.pal-h{font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;color:var(--stone)}.pal-dice{width:23px;font-size:12px;color:var(--stone)}
