@font-face{font-family:Alice;src:url(/fonts/alice-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Raleway;src:url(/fonts/raleway-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Raleway;src:url(/fonts/raleway-latin-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Raleway;src:url(/fonts/raleway-latin-600-normal.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Alice Fallback;src:local(Arial);ascent-override:89.04%;descent-override:22.92%;line-gap-override:0%;size-adjust:102.09%}@font-face{font-family:Raleway Fallback;src:local(Arial);ascent-override:89.45%;descent-override:22.27%;line-gap-override:0%;size-adjust:105.09%}:root{--bg:#141618;--bg-2:#1a1d20;--bg-3:#212428;--lcd:#0c0d0e;--ink:#e7e8ea;--ink-2:#b0b5bb;--ink-3:#8b9198;--hair:#e7e8ea1f;--hair-2:#e7e8ea38;--line:#e7e8eadb;--accent:#ff6a2b;--accent-dim:#ff6a2b29;--f-top:#1e2125;--f-left:#191c1f;--f-right:#16181b;--display:Alice, "Alice Fallback", Georgia, "Times New Roman", serif;--sans:Raleway, "Raleway Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;--code:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--ease:cubic-bezier(.2, .75, .25, 1);--t-state:.15s;--t-arrive:.32s;--t-lift:.3s;--t-travel:.62s;--gut:clamp(16px, 4vw, 48px);--max:1360px;--r-out:22px;--r-pad:6px;--r-in:16px;--pin:360px;--stage:clamp(660px, 100dvh, 1000px);--tl:scroll(root);--tl-view:view()}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg);scroll-padding-top:96px;overflow-x:clip}body{background:var(--bg);color:var(--ink);font:400 1.0625rem / 1.65 var(--sans);font-variant-numeric:lining-nums;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}img,svg{max-width:100%;display:block}a{color:inherit}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.012em;text-wrap:balance;margin:0;font-weight:400;line-height:1.04}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible,.is-focus{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}::selection{background:var(--accent);color:var(--bg)}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gut);margin-inline:auto}.lbl,.eyebrow{font:600 .6875rem / 1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;font-variant-numeric:lining-nums tabular-nums;color:var(--ink-3)}.eyebrow{color:var(--accent)}.num,.ctr,.bal-s,.pn,time{font-variant-numeric:lining-nums tabular-nums}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{z-index:40;background:var(--accent);color:var(--bg);font:600 .875rem var(--sans);transition:translate var(--t-state) var(--ease);border-radius:999px;padding:12px 18px;text-decoration:none;position:fixed;top:16px;left:16px;translate:0 calc(-100% - 24px)}.skip:focus{translate:none}.ctr{background:var(--lcd);min-width:46px;height:26px;box-shadow:inset 0 0 0 1px var(--hair), inset 0 1px 0 #0009;color:var(--accent);font:600 .75rem / 1 var(--sans);letter-spacing:.12em;border-radius:6px;place-items:center;padding:0 7px;display:inline-grid}.bal-s{border:1px solid var(--accent);min-width:30px;height:30px;color:var(--accent);font:600 .6875rem / 1 var(--sans);letter-spacing:.04em;border-radius:999px;place-items:center;padding:0 6px;display:inline-grid}.bar{inset:12px var(--gut) auto;z-index:20;max-width:calc(var(--max) - 2 * var(--gut));background:var(--bg);border:1px solid var(--hair);border-radius:999px;align-items:center;gap:20px;height:64px;margin-inline:auto;padding:0 8px 0 14px;display:flex;position:fixed;box-shadow:inset 0 1px #ffffff0d,0 18px 40px -24px #000000b3}@media (min-width:1441px){.bar{left:0;right:0}}.brand{border-radius:999px;align-items:center;min-height:48px;padding:0 6px;text-decoration:none;display:flex}.logo{width:auto;height:42px;transition:transform var(--t-arrive) var(--ease);overflow:visible}.brand:hover .logo{transform:scale(1.1)}.logo .mono{fill:none;stroke:#fff;stroke-width:4.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;animation:1s linear .5s forwards draw,.16s linear .5s forwards appear}.logo .word{fill:var(--ink-2)}.defs{width:0;height:0;position:absolute;overflow:hidden}.m-only,.jump{display:none}#all-articles{scroll-margin-top:96px}@keyframes draw{to{stroke-dashoffset:0}}@keyframes appear{to{opacity:1}}.nav{margin-left:auto}.loc{min-height:48px;color:var(--ink);animation:rise var(--t-arrive) var(--ease) both;border-radius:999px;align-items:center;gap:12px;margin-left:12px;padding:4px 14px 4px 10px;text-decoration:none;display:flex}.loc:not(.on){display:none}.loc:hover{background:#e7e8ea0f}.loc-svg{width:auto;height:34px;color:var(--ink-3);overflow:visible}.loc-svg :is(polygon,path){stroke:currentColor;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linejoin:round;fill:var(--bg)}.loc-svg .ft{fill:var(--f-top)}.loc-svg circle{fill:var(--bg);stroke:var(--ink-3);stroke-width:1px;vector-effect:non-scaling-stroke;transition:fill var(--t-state) var(--ease), stroke var(--t-state) var(--ease), r var(--t-state) var(--ease)}.loc-svg circle.on{fill:var(--accent);stroke:var(--accent);r:38px}.loc-t{font:400 1.0625rem / 1 var(--display);white-space:nowrap;align-items:center;gap:10px;display:flex}.loc-t .bal-s{background:var(--accent);min-width:28px;height:28px;color:var(--bg)}.nav ul{gap:2px;display:flex}.nav a{min-height:44px;font:600 .75rem / 1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);transition:color var(--t-state) var(--ease), background-color var(--t-state) var(--ease);border-radius:999px;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:flex}.nav a:before{content:"";opacity:0;width:6px;height:6px;transition:transform var(--t-state) var(--ease), opacity var(--t-state) var(--ease);background:currentColor;border-radius:50%;transform:scale(.4)}.nav a:hover,.nav a.is-going{color:var(--ink);background:#e7e8ea0f}.nav a:not([aria-current=page]):is(:hover,:focus-visible,.is-going):before{opacity:1;transition:transform .32s cubic-bezier(.34,1.8,.64,1),opacity .12s linear;animation:.7s ease-out 80ms dot-ping;transform:none}@keyframes dot-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 55%, transparent)}to{box-shadow:0 0 0 9px #0000}}.nav a[aria-current=page]{color:var(--ink)}.nav a[aria-current=page]:before{opacity:1;background:var(--accent);transform:none}.nav a.is-focus{color:var(--ink);border-radius:999px}.menu-btn{display:none}.btn{min-height:52px;color:var(--bg);font:600 .8125rem / 1 var(--sans);letter-spacing:.08em;text-transform:uppercase;isolation:isolate;transition:transform var(--t-state) var(--ease);border-radius:999px;align-items:center;gap:14px;padding:6px 6px 6px 24px;text-decoration:none;display:inline-flex;position:relative}.btn:before,.btn:after{content:"";border-radius:inherit;transition:transform var(--t-state) var(--ease);position:absolute;inset:0}.btn:before{z-index:-2;border:1px dashed var(--ink-3);opacity:0;transition:transform var(--t-state) var(--ease), opacity var(--t-state) var(--ease)}.btn:after{z-index:-1;background:var(--ink)}.btn:is(:hover,:focus-visible){transition-duration:var(--t-lift);transform:translateY(-4px)}.btn:is(:hover,:focus-visible):before{opacity:1;transition-duration:var(--t-lift);transform:translateY(4px)}.btn .ic{background:var(--accent);width:40px;height:40px;color:var(--bg);border-radius:50%;place-items:center;display:grid}.btn .ic svg{width:16px;height:16px}.btn .ic path{stroke-dasharray:1}.btn:is(:hover,:focus-visible) .ic path{animation:arrow-draw .42s var(--ease) 60ms backwards}@keyframes arrow-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.btn:active{transition-duration:80ms;transform:translateY(0)scale(.98)}.btn:active:before{transform:none}.link{min-height:44px;font:600 .8125rem / 1.3 var(--sans);letter-spacing:.02em;color:var(--ink-2);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.link span{text-decoration:underline;-webkit-text-decoration-color:var(--hair-2);text-decoration-color:var(--hair-2);text-underline-offset:5px;transition:text-decoration-color var(--t-state) var(--ease), color var(--t-state) var(--ease)}.link:hover span{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.link .arr{color:var(--accent);transition:transform var(--t-state) var(--ease);font-weight:400}.link:hover .arr{transform:translate(3px)}.link:active{transform:translateY(1px)}.hero{height:calc(var(--stage) + var(--pin));position:relative}.stage{height:var(--stage);max-width:var(--max);padding:96px var(--gut) 24px;grid-template:".fig"1fr"copy fig""rail fig"".fig"1fr/minmax(0,5fr) minmax(0,9fr);column-gap:24px;margin-inline:auto;display:grid;position:sticky;top:0}.hero-copy{z-index:2;grid-area:copy;position:relative}.hero h1{letter-spacing:-.02em;max-width:13ch;font-size:min(clamp(2.75rem,1.1rem + 4.4vw,6rem),11.5vh);line-height:.98}.hero h1 em{color:var(--accent);font-style:normal}.hero-sub{max-width:36ch;color:var(--ink-2);margin-top:24px;font-size:1.125rem;line-height:1.6}.hero-sub strong{color:var(--ink);font-weight:600}.hero-copy>*{animation:rise .8s var(--ease) both}.hero-copy>:nth-child(2){animation-delay:80ms}.rail{z-index:2;max-width:440px;animation:rise .8s var(--ease) .16s both;grid-area:rail;margin-top:clamp(28px,5vh,48px);position:relative}.rail-head{border-bottom:1px solid var(--hair-2);justify-content:space-between;align-items:center;padding-bottom:6px;display:flex}.rail-head h2{font:600 .6875rem / 1.2 var(--sans)}.rail-head .link{min-height:44px}.rail li a{border-bottom:1px solid var(--hair);transition:background-color var(--t-state) var(--ease);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 14px;padding:12px 4px;text-decoration:none;display:grid}.rail li a .ctr{grid-row:span 2}.rail .t{font:400 1.125rem / 1.25 var(--display);color:var(--ink)}.rail .d{color:var(--ink-3);font-size:.8125rem}.rail li a:hover{background:#e7e8ea08}.rail li a:hover .t{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px}.rail li a:active{transform:translateY(1px)}.fig{min-height:0;animation:appear .7s var(--ease) both;flex-direction:column;grid-area:fig;justify-content:center;margin:0;padding-right:clamp(0px,3.4vw,52px);display:flex;position:relative}.fig figcaption{color:var(--ink-3);text-align:right;max-width:40ch;font-size:.75rem;line-height:1.4;position:absolute;bottom:0;right:0}.fig figcaption b{color:var(--ink-2);font-weight:600}.cam{transform-origin:54% 66%;animation:linear both cam;animation-timeline:var(--tl);animation-range:0 calc(var(--pin) * .42);position:relative}@keyframes cam{0%{transform:translateY(-13%)scale(1.42)}to{transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.vcr{aspect-ratio:1300/1100;max-height:calc(var(--stage) - 150px);margin-inline:auto;position:relative}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) :is(polygon,path,ellipse,polyline){stroke:currentColor;stroke-width:1.1px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) .ft{fill:var(--f-top)}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) .fl{fill:var(--f-left)}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) .fr{fill:var(--f-right)}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) :is(.ln,polyline){fill:none}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) .dim{stroke-opacity:.45}:is(.vcr,.vm,.pf-in,.miss-svg) .trace{stroke-opacity:.55}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) .via{fill:var(--bg);stroke-opacity:.8}:is(.vcr,.vm,.pf-in,.miss-svg) .slot,:is(.vcr,.vm,.pf-in,.miss-svg,.pic) .win{fill:#0f1112}:is(.vcr,.vm,.pf-in,.miss-svg) .door{fill:#101214}:is(.vcr,.vm,.pf-in,.miss-svg) .disp{fill:#0b0c0d}:is(.vcr,.vm,.pf-in,.miss-svg,.pic) .btn{fill:var(--f-top)}:is(.vcr,.vm,.pf-in,.miss-svg) .glyph{fill:currentColor;stroke:none}:is(.vcr,.vm,.pf-in,.miss-svg) .label{fill:none;stroke-opacity:.6}:is(.vcr,.vm,.pf-in,.miss-svg) text{font-family:var(--sans);font-variant-numeric:lining-nums tabular-nums;font-weight:600}:is(.vcr,.vm,.pf-in,.miss-svg) .fx{fill:currentColor;fill-opacity:.7;letter-spacing:.12em;font-size:6.5px}:is(.vcr,.vm,.pf-in,.miss-svg) .fx-label{text-anchor:middle;font-size:7px}:is(.vcr,.vm,.pf-in,.miss-svg) .clock{fill:var(--accent);letter-spacing:.06em;font-size:13px}:is(.vcr,.vm,.pf-in,.miss-svg) .engr .mono{fill:none;stroke-opacity:.7}:is(.vcr,.vm,.pf-in,.miss-svg) .engr .word{stroke:none;fill:currentColor;fill-opacity:.6}.vcr .clock,.vm .clock{animation:1s step-end 1.2s 6 blink}.ct-fig.in .clock{animation:1s step-end .3s 6 blink}@keyframes blink{50%{opacity:0}}.part{color:var(--line);transition:color var(--t-state) var(--ease), translate var(--t-arrive) var(--ease);animation:explode var(--ease) both;animation-timeline:var(--tl);animation-range:calc(var(--pin) * var(--r0)) calc(var(--pin) * var(--r1));position:absolute;overflow:visible}.p-chassis{--r0:0;--r1:.01}.p-board{--r0:.18;--r1:.42}.p-deck{--r0:.12;--r1:.36}.p-lid{--r0:0;--r1:.22}.p-fascia{--r0:.03;--r1:.26}.p-cassette{--r0:.08;--r1:.32;animation:explode-fade var(--ease) both, undock linear forwards;animation-timeline:var(--tl), var(--tl);animation-range:calc(var(--pin) * var(--r0)) calc(var(--pin) * var(--r1)), calc(var(--pin) + 40px) calc(var(--pin) + 340px)}@keyframes explode{0%{transform:none}to{transform:translate(var(--tx), var(--ty))}}@keyframes explode-fade{0%{opacity:0;transform:none}22%{opacity:1}to{transform:translate(var(--tx), var(--ty));opacity:1}}.ld-cassette{animation:linear both callout,linear forwards fadeout;animation-timeline:var(--tl), var(--tl);animation-range:calc(var(--pin) * var(--c0)) calc(var(--pin) * (var(--c0) + .1)), calc(var(--pin) + 40px) calc(var(--pin) + 240px)}@keyframes fadeout{0%{opacity:1}to{opacity:0}}@keyframes undock{0%{opacity:1;translate:0}to{translate:calc(var(--lx) * 180px) calc(var(--ly) * 180px);opacity:0}}.leaders{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.axis path{fill:none;stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:2 5 12 5;vector-effect:non-scaling-stroke}.ld path{fill:none;stroke:var(--accent);stroke-opacity:.75;stroke-width:1px;vector-effect:non-scaling-stroke}.ld circle{fill:var(--accent);stroke:none}.co,.ld,.tag,.axis{opacity:0;animation:linear both callout;animation-timeline:var(--tl);animation-range:calc(var(--pin) * var(--c0)) calc(var(--pin) * (var(--c0) + .1))}.axis{--c0:.15}:is(.co,.ld,.tag)[class*=lid]{--c0:.22}:is(.co,.ld,.tag)[class*=fascia]{--c0:.26}:is(.co,.ld,.tag)[class*=cassette]{--c0:.3}:is(.co,.ld,.tag)[class*=deck]{--c0:.34}:is(.co,.ld,.tag)[class*=board]{--c0:.38}:is(.co,.ld,.tag)[class*=chassis]{--c0:.42}@keyframes callout{0%{opacity:0;transform:translateY(8px)scale(0)}1%{scale:1}to{opacity:1;transform:scale(1)}}.co{z-index:2;color:var(--ink);outline-offset:4px;border-radius:20px;align-items:center;gap:12px;padding:4px;text-decoration:none;display:flex;position:absolute;translate:-21px -50%}.co-l{text-align:right;flex-direction:row-reverse;translate:calc(21px - 100%) -50%}.co .bal,.ej .bal,.ej-m .bal{border:1px solid var(--accent);background:var(--bg);width:34px;height:34px;color:var(--accent);font:600 .75rem / 1 var(--sans);font-variant-numeric:lining-nums tabular-nums;transition:background-color var(--t-state) var(--ease), color var(--t-state) var(--ease), transform var(--t-state) var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.co .lab,.ej .lab,.ej-m .lab{white-space:nowrap;gap:5px;display:grid}.co .nm,.ej .nm{font:600 .625rem / 1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.co .go,.ej .go,.ej-m .go{font:400 clamp(1.25rem, .9rem + .6vw, 1.625rem) / 1 var(--display);transition:color var(--t-state) var(--ease)}.co .arr{color:var(--accent);font-family:var(--sans);transition:transform var(--t-state) var(--ease);margin-inline:8px 0;font-size:.8em;display:inline-block}.co .cnote,.ej .cnote,.ej-m .cnote{color:var(--ink-3);font-size:.75rem;line-height:1.3}.co:is(:hover,:focus-visible,.is-hover,.is-focus) .bal{background:var(--accent);color:var(--bg)}.co:is(:hover,:focus-visible,.is-hover,.is-focus) .go{color:var(--accent)}.co:is(:hover,:focus-visible,.is-hover) .arr{transform:translate(3px)}.co:active .bal{transform:scale(.94)}:is(.vcr:has(.co-lid:is(:hover,:focus-visible,.is-hover,.is-focus)) .p-lid,.vcr:has(.co-deck:is(:hover,:focus-visible,.is-hover,.is-focus)) .p-deck,.vcr:has(.co-board:is(:hover,:focus-visible,.is-hover,.is-focus)) .p-board,.vcr:has(.co-chassis:is(:hover,:focus-visible,.is-hover,.is-focus)) .p-chassis,.vcr:has(.co-fascia:is(:hover,:focus-visible,.is-hover,.is-focus)) .p-fascia,.vcr:has(.co-cassette:is(:hover,:focus-visible,.is-hover,.is-focus)) .p-cassette,.stage:has(.legend [data-part=lid]:is(:hover,:focus-visible)) .p-lid,.stage:has(.legend [data-part=deck]:is(:hover,:focus-visible)) .p-deck,.stage:has(.legend [data-part=board]:is(:hover,:focus-visible)) .p-board,.stage:has(.legend [data-part=chassis]:is(:hover,:focus-visible)) .p-chassis,.stage:has(.legend [data-part=fascia]:is(:hover,:focus-visible)) .p-fascia,.stage:has(.legend [data-part=cassette]:is(:hover,:focus-visible)) .p-cassette){color:var(--accent);translate:calc(var(--lx) * 14px) calc(var(--ly) * 14px)}.tag{background:var(--accent);width:24px;height:24px;color:var(--bg);font:600 .625rem / 24px var(--sans);text-align:center;font-variant-numeric:lining-nums tabular-nums;pointer-events:none;border-radius:50%;display:none;position:absolute;translate:-50% -50%}html:not(.tape-out) .vcr:focus-within:not(:has(:is(.ej,.tk):focus)) .part{transform:translate(var(--tx), var(--ty));opacity:1;animation:none}html:not(.tape-out) .vcr:focus-within:not(:has(:is(.ej,.tk):focus)) :is(.co,.ld,.axis){opacity:1;animation:none;scale:1}html:not(.tape-out) .vcr:focus-within:not(:has(:is(.ej,.tk):focus)) :is(.ej,.ejl,.tk,.tkl,.tk-grab){display:none}html:not(.tape-out) .cam:focus-within:not(:has(:is(.ej,.tk):focus)){animation:none;transform:none}.ej{z-index:3;transform-origin:21px;color:var(--ink);text-align:left;cursor:pointer;font:inherit;animation:linear both ejout;animation-timeline:var(--tl);background:0 0;border:0;border-radius:24px;align-items:center;gap:12px;padding:4px 10px 4px 4px;animation-range:0 40px;display:flex;position:absolute;translate:-21px -50%;scale:.72}.ejl{animation:linear both ejout;animation-timeline:var(--tl);animation-range:0 40px}.ejl path{fill:none;stroke:var(--accent);stroke-opacity:.75;stroke-width:1px;vector-effect:non-scaling-stroke}.ejl circle{fill:var(--accent)}@keyframes ejout{0%{opacity:1;visibility:visible}99%{visibility:visible}to{opacity:0;visibility:hidden}}.ej .bal svg,.ej-m .bal svg{fill:currentColor;width:14px;height:14px}.ej:is(:hover,:focus-visible,.is-hover) .bal,.ej-m:is(:hover,:focus-visible,.is-hover) .bal{background:var(--accent);color:var(--bg)}.ej:is(:hover,:focus-visible,.is-hover) .go,.ej-m:is(:hover,:focus-visible,.is-hover) .go{color:var(--accent)}.ej:active .bal,.ej-m:active .bal{transform:scale(.92)}.is-static :is(.ej,.ejl,.tk,.tkl,.tkt,.tk-grab){display:none}.tk{z-index:3;transform-origin:23px;color:var(--ink);outline-offset:4px;animation:rise var(--t-arrive) var(--ease) .26s both;border-radius:24px;align-items:center;gap:12px;padding:4px 10px 4px 4px;text-decoration:none;display:none;position:absolute;translate:-23px -50%;scale:.72}.tk .ctr{height:34px;transition:background-color var(--t-state) var(--ease), color var(--t-state) var(--ease);flex:none}.tk .nm{font:600 .625rem / 1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.tk .lab{gap:5px;display:grid}.tk .go{font:400 clamp(1.25rem, .9rem + .6vw, 1.625rem) / 1 var(--display);transition:color var(--t-state) var(--ease)}.tk .cnote{max-width:24ch;color:var(--ink-2);font-size:.75rem;line-height:1.3}.tk .arr{color:var(--accent);font-family:var(--sans);transition:transform var(--t-state) var(--ease);margin-left:8px;font-size:.8em;display:inline-block}.tk:is(:hover,:focus-visible,.is-hover) .ctr{background:var(--accent);color:var(--bg)}.tk:is(:hover,:focus-visible,.is-hover) .go{color:var(--accent)}.tk:is(:hover,:focus-visible,.is-hover) .arr{transform:translate(3px)}.tk:active .ctr{transform:scale(.94)}.tkl,.tkt{display:none}.tkl path,.tkt path{fill:none;stroke:var(--accent);stroke-opacity:.75;stroke-width:1px;vector-effect:non-scaling-stroke}.tkt path{stroke-dasharray:2 5 12 5}.tkl circle,.tkt circle{fill:var(--accent)}.tk-grab{z-index:2;cursor:grab;touch-action:none;display:none;position:absolute}.tape-out .tk{display:flex}.tape-out .tkl{animation:appear var(--t-arrive) var(--ease) .26s both;display:inline}.tape-out .tk-grab{display:block}.vcr.in-hand .tk-grab{cursor:grabbing}.vcr.in-hand :is(.tk,.tkl){display:none}.vcr.in-hand .tkt{display:inline}.vcr:is(.in-hand,:has(.tk:is(:hover,:focus-visible,.is-hover)),:has(.tk-grab:hover)) .p-cassette{color:var(--accent)}.mini{display:none}.is-static .hero{height:auto}.is-static .stage{height:var(--stage);position:relative}.is-static :is(.cam,.part,.co,.ld,.tag,.axis){animation:none}.is-static .part{transform:translate(var(--tx), var(--ty));opacity:1}.is-static :is(.co,.ld,.tag,.axis){opacity:1}.is-static .vcr .clock{animation:none}.legend{grid-area:legend;display:none}.pf-in.flight{z-index:15;pointer-events:none;width:auto;position:fixed;inset:0}.flight img.fl-obj{object-fit:contain}.flight .fl-machine{max-height:none;margin:0;position:absolute;top:0;left:0}.fl-machine .part{transform:translate(var(--tx), var(--ty));opacity:1;animation:none}.fl-machine .axis{opacity:1;animation:none}.fl-machine :is(.co,.ld,.tag,.ej,.ejl){display:none}.flight .fl-obj{transform-origin:0 0;color:var(--accent);will-change:transform;position:absolute;top:0;left:0;overflow:visible}.flight .fl-trail{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.flight .fl-trail path{fill:none;stroke:var(--accent);stroke-opacity:.6;stroke-width:1px;stroke-dasharray:2 5 12 5}.flight .fl-trail circle{fill:var(--accent)}.pf-in{width:100%;position:relative}.pf-svg,.pf-lead{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.pf-svg{color:var(--line)}.pf-lead path{fill:none;stroke:var(--accent);stroke-opacity:.7;stroke-width:1px;vector-effect:non-scaling-stroke}.pf-lead circle{fill:var(--accent);stroke:none}.pin{border-radius:999px;place-items:center;min-width:44px;height:44px;text-decoration:none;display:grid;position:absolute;translate:-50% -50%}.pin span{border:1px solid var(--accent);background:var(--bg);min-width:32px;height:32px;color:var(--accent);font:600 .6875rem / 1 var(--sans);letter-spacing:.04em;font-variant-numeric:lining-nums tabular-nums;transition:background-color var(--t-state) var(--ease), color var(--t-state) var(--ease);border-radius:999px;place-items:center;padding:0 6px;display:grid}.pin:hover span,.pin:focus-visible span{background:var(--accent);color:var(--bg)}.pin:active span{transform:scale(.94)}.pf-cap{color:var(--ink-3);align-items:center;gap:12px;margin-top:18px;font-size:.8125rem;line-height:1.4;display:flex}.pf-cap .bal-s{flex:none}.sec{padding-block:clamp(56px,6vw,96px)}.sec+.sec{padding-top:0}.sec-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:32px 64px;margin-bottom:clamp(40px,6vw,80px);display:grid}.sec-head h2{letter-spacing:-.025em;font-size:clamp(2.75rem,1.6rem + 4.4vw,6.5rem);line-height:.95}.sec-head .lede{color:var(--ink-2);max-width:40ch;margin-top:24px;font-size:1.125rem;line-height:1.6}.sec-head .lede+.link{margin-top:10px}.sh-fig{justify-self:end;width:min(100%,340px);margin:0}.sh-board{width:min(100%,460px)}.writing{padding-top:clamp(32px,3vw,48px)}@media (min-width:1000px){.writing{z-index:3;margin-top:calc(-1 * var(--pin) * .3);background:var(--bg);position:relative}.writing:before{content:"";background:linear-gradient(#14161800, var(--bg));pointer-events:none;height:64px;position:absolute;bottom:100%;left:0;right:0}.is-static .writing{margin-top:0}}.writing .sh-fig .pf-in{animation:linear both dock;animation-timeline:var(--tl-view);animation-range:entry 25% cover 45%}@keyframes dock{0%{opacity:0;translate:-12vw -16vh;scale:.9}35%{opacity:0}to{opacity:1;translate:0;scale:1}}.is-static .writing .sh-fig .pf-in{animation:none}@media (max-width:999px){.writing .sh-fig .pf-in{animation-range:entry}}.notes{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;display:grid}.note{border-radius:var(--r-out);padding:var(--r-pad);border:1px solid var(--hair);transition:border-color var(--t-state) var(--ease), transform var(--t-arrive) var(--ease);background:#e7e8ea06;position:relative}.note-lead{flex-direction:column;grid-area:span 2/span 7;display:flex}.note-lead .shot{flex:1;min-height:340px}.note-lead .shot img{object-fit:cover}.note-side{grid-column:span 5}.shot{border-radius:var(--r-in);aspect-ratio:3/2;background:#141618;position:relative;overflow:hidden}.shot:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff0f,inset 0 0 0 1px #e7e8ea1a}.note-side .shot{aspect-ratio:16/7}.shot img{object-fit:contain;width:100%;height:100%;transition:transform .6s var(--ease)}.cov{width:100%;height:100%;color:var(--line)}.cov :is(polygon,path,ellipse,polyline){stroke:currentColor;stroke-width:1.1px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.cov .ft{fill:var(--f-top)}.cov .fl{fill:var(--f-left)}.cov .fr{fill:var(--f-right)}.cov :is(.ln,polyline){fill:none}.cov .dim{stroke-opacity:.45}.cov .win{fill:#0f1112}.cov .via{fill:var(--bg)}.cov .ax{fill:none;stroke:var(--ink-3);stroke-dasharray:2 5 12 5}.cov .acc :is(polygon,path,ellipse,polyline){stroke:var(--accent)}.cov .bal{fill:var(--bg);stroke:var(--ink-3)}.cov .lead{fill:none;stroke:var(--ink-3)}.cov .dot{fill:var(--ink-2);stroke:none}.art-cover .cov .acc{animation:partlift 1.1s var(--ease) .7s both}@keyframes partlift{0%,to{translate:0}38%,52%{translate:0 -12px}}.note-body{gap:12px;padding:20px 18px 18px;display:grid}.note-num{align-items:center;gap:12px;display:flex}.meta{color:var(--ink-3);font-size:.8125rem;line-height:1.5}.note h3{font-size:clamp(1.5rem,1.1rem + 1.2vw,2.25rem);line-height:1.08}.note-lead h3{font-size:clamp(1.9rem,1.2rem + 2.2vw,3.25rem)}.note h3 a{text-decoration:none}.note h3 a:after{content:"";border-radius:var(--r-out);z-index:1;position:absolute;inset:0}.note h3 a:focus-visible{outline:0}.note:has(h3 a:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.note p.desc{color:var(--ink-2);max-width:56ch;font-size:1rem;line-height:1.6}.note:hover,.note.is-hover{border-color:var(--hair-2)}.note:hover img,.note.is-hover img{transform:scale(1.03)}.note:hover .ctr,.note.is-hover .ctr{background:var(--accent);color:var(--bg)}.note:hover h3,.note.is-hover h3{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:6px;text-decoration-thickness:1.5px}.note:active{transform:scale(.995)}.index{border-top:1px solid var(--hair);margin-top:56px}.index li{border-bottom:1px solid var(--hair)}.index a{transition:background-color var(--t-state) var(--ease);grid-template-columns:76px minmax(0,1fr) 120px 130px 64px;align-items:center;gap:24px;padding:20px 4px;text-decoration:none;display:grid}.index a:hover{background:#e7e8ea08}.index a:hover .ctr{background:var(--accent);color:var(--bg)}.index .t{font:400 1.375rem / 1.25 var(--display);letter-spacing:-.005em}.index a:hover .t{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:5px}.index .c,.index .d,.index .m{color:var(--ink-3);font-size:.8125rem}.index .m{text-align:right}.drawers{background:var(--hair);border:1px solid var(--hair);border-radius:var(--r-out);grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-top:64px;display:grid;overflow:hidden}.drawer{background:var(--bg);transition:background-color var(--t-state) var(--ease);flex-direction:column;scroll-margin-top:110px;display:flex;position:relative}.drawer:hover{background:var(--bg-2)}.drawer img{aspect-ratio:3/2;object-fit:contain;border-bottom:1px solid var(--hair);width:100%;height:auto}.dr-body{flex:1;grid-template-rows:auto auto 1fr auto;gap:10px;padding:18px 20px 20px;display:grid}.dr-body .k{justify-content:space-between;align-items:baseline;display:flex}.dr-body .k b{font:600 .75rem / 1 var(--sans);letter-spacing:.04em;color:var(--ink-2)}.drawer h3{font-size:1.75rem}.drawer h3 a{text-decoration:none}.drawer h3 a:hover{color:var(--accent)}.drawer .ds{color:var(--ink-2);font-size:.9375rem;line-height:1.5}.drawer .start{min-height:calc(2.9em + 13px);color:var(--ink-3);border-top:1px solid var(--hair);padding-top:12px;font-size:.8125rem;line-height:1.45}.drawer .start a{white-space:nowrap;text-overflow:ellipsis;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;display:block;overflow:hidden}.drawer.is-target{background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--accent)}.topics{flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px;display:flex}.topics .lbl{margin-right:8px}.topics a{border:1px solid var(--hair-2);min-height:44px;color:var(--ink-2);transition:border-color var(--t-state) var(--ease), color var(--t-state) var(--ease);border-radius:999px;align-items:center;padding:0 18px;font-size:.875rem;text-decoration:none;display:inline-flex}.topics a:hover{border-color:var(--accent);color:var(--ink)}.tray{background:var(--hair);border:1px solid var(--hair);border-radius:var(--r-out);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.tray li{background:var(--bg);display:flex}.tray a{min-height:300px;transition:background-color var(--t-state) var(--ease);flex:1;grid-template-rows:auto 1fr auto;gap:20px;padding:24px;text-decoration:none;display:grid}.tray a:hover{background:var(--bg-2)}.tray .first{grid-row:span 2}.tray .first a{min-height:620px}.tray .top{color:var(--ink-3);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.pn{border:1px solid var(--accent);height:30px;color:var(--accent);font:600 .6875rem / 1 var(--sans);letter-spacing:.08em;transition:background-color var(--t-state) var(--ease), color var(--t-state) var(--ease);border-radius:999px;place-items:center;padding:0 10px;display:inline-grid}.status{align-items:center;gap:7px;display:inline-flex}.status:before{content:"";background:var(--ink-2);border-radius:50%;width:6px;height:6px}.status.active:before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.tray .pic-box{place-items:center;padding:8px 12%;display:grid}.pic{width:100%;max-height:150px;color:var(--line);transition:transform var(--t-arrive) var(--ease);overflow:visible}.tray .first .pic{max-height:320px}.pic .acc :is(polygon,path,ellipse,polyline){stroke:var(--accent)}.pic .ax{stroke:var(--ink-3);stroke-dasharray:2 5 12 5}.tray h3{font-size:1.875rem}.tray .first h3{font-size:clamp(2.25rem,1.6rem + 2vw,3.5rem)}.tray p{color:var(--ink-2);margin-top:8px;font-size:1rem;line-height:1.5}.tray .stack{color:var(--ink-3);margin-top:14px;font-size:.75rem;line-height:1.5}.tray a:hover .pic{transform:translateY(-6px)}.tray a:hover .pn{background:var(--accent);color:var(--bg)}.tray a:hover h3{color:var(--accent)}.parts .foot-link{justify-content:flex-end;margin-top:28px;display:flex}.person-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:clamp(40px,7vw,120px);display:grid}.person h2{letter-spacing:-.025em;font-size:clamp(2.5rem,1.6rem + 3.6vw,5.5rem);line-height:.98}.story{max-width:58ch;color:var(--ink-2);gap:20px;margin-top:36px;font-size:1.125rem;line-height:1.7;display:grid}.story p:first-child{color:var(--ink);font:400 1.5rem / 1.45 var(--display)}.bom-mini{border-top:1px solid var(--hair-2)}.bom-mini caption{text-align:left;padding-bottom:14px}.bom{border-collapse:collapse;font-variant-numeric:lining-nums tabular-nums;width:100%}.bom th,.bom td{text-align:left;vertical-align:baseline;border-bottom:1px solid var(--hair);padding:16px 12px 16px 0}.bom thead th{padding-top:14px}.bom .i{font:600 .75rem / 1 var(--sans);letter-spacing:.06em;color:var(--accent);width:44px}.bom .p{font:400 1.125rem / 1.3 var(--display)}.bom .p small{font:400 .8125rem / 1.4 var(--sans);color:var(--ink-3);margin-top:4px;display:block}.bom .p a{-webkit-text-decoration-color:var(--hair-2);text-decoration-color:var(--hair-2);text-underline-offset:4px}.bom .p a:hover{color:var(--accent)}.bom .y{color:var(--ink-2);white-space:nowrap;text-align:right;padding-right:0;font-size:.8125rem}.bom .y-l{text-align:left}.bom thead .y{color:var(--ink-3);font-size:.6875rem}.person .link{margin-top:20px}.story a{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px}.story a:hover{color:var(--accent)}.foot{border-top:1px solid var(--hair)}.contact{grid-template-columns:minmax(0,6fr) minmax(0,6fr);grid-template-areas:"l fig""l links";align-items:start;gap:0 64px;padding-block:clamp(64px,7vw,112px) 56px;display:grid}.contact>div:first-child{grid-area:l;align-self:center}.contact>div:last-child{display:contents}.contact .ct-fig{grid-area:fig}.contact .socials{grid-area:links;margin-top:8px}.contact h2{letter-spacing:-.03em;font-size:clamp(3rem,1.6rem + 5vw,7.5rem);line-height:.92}.contact p:not(.eyebrow){color:var(--ink-2);max-width:40ch;margin-top:24px;font-size:1.125rem}.contact .acts{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:32px;display:flex}.ct-fig{max-width:520px;margin:0 0 32px}.socials{border-top:1px solid var(--hair);display:grid}.socials a{border-bottom:1px solid var(--hair);min-height:56px;font:600 .75rem / 1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);transition:color var(--t-state) var(--ease);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.socials a:hover{color:var(--ink)}.socials a .arr{color:var(--accent);transition:transform var(--t-state) var(--ease)}.socials a:hover .arr{transform:translate(3px,-3px)}.titleblock{background:var(--hair);border:1px solid var(--hair);border-radius:16px;grid-template-columns:minmax(max-content,.7fr) minmax(0,2fr) minmax(max-content,1.1fr) minmax(max-content,.8fr) minmax(max-content,1.5fr);gap:1px;margin:0 0 40px;display:grid;overflow:hidden}.titleblock>div{background:var(--bg);align-content:start;gap:10px;min-height:80px;padding:16px 18px 12px;display:grid}.titleblock dd{color:var(--ink);margin:0;font-size:1rem}.titleblock dd a{-webkit-text-decoration-color:var(--hair-2);text-decoration-color:var(--hair-2);text-underline-offset:4px;white-space:nowrap}.titleblock .sheets{flex-wrap:wrap;gap:0 16px;margin-block:-10px;display:flex}.titleblock .sheets a{color:var(--ink-2);align-items:center;min-height:44px;font-size:.875rem;text-decoration:none;display:inline-flex}.titleblock .sheets a:hover,.titleblock .sheets a[aria-current=page]{color:var(--accent)}.page-head{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:32px 64px;padding-top:clamp(128px,13vw,184px);padding-bottom:clamp(48px,6vw,88px);display:grid}.page-head h1{letter-spacing:-.03em;font-size:clamp(3.25rem,1.6rem + 6vw,8.5rem);line-height:.9}.page-head .lede{color:var(--ink-2);max-width:36ch;margin-top:28px;font-size:1.1875rem;line-height:1.6}.page-head .pf-cap{margin-top:28px}.ph-projects{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"fig text""fig key";align-items:end;row-gap:28px}.ph-projects .ph-text{grid-area:text}.ph-projects .ph-fig{grid-area:fig;align-self:center}.board-key{grid-area:key;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--rows,4), auto);border-top:1px solid var(--hair-2);grid-auto-flow:column;align-self:start;column-gap:24px;max-width:520px;display:grid}.board-key a{border-bottom:1px solid var(--hair);min-height:48px;font:400 1.125rem / 1.2 var(--display);color:var(--ink);transition:color var(--t-state) var(--ease);align-items:center;gap:12px;text-decoration:none;display:flex}.board-key .bal-s{transition:background-color var(--t-state) var(--ease), color var(--t-state) var(--ease)}.board-key a:active{transform:translateY(1px)}.ph-fig{margin:0;padding:48px 56px 40px}.catalogue{background:linear-gradient(var(--hair-2), var(--hair-2)) 50% 0 / calc(100% - 2 * var(--gut)) 1px no-repeat;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,4vw,64px);display:grid}.sheet{border-bottom:1px solid var(--hair);grid-column:span 2;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"fig text""fig spec";align-items:center;gap:28px clamp(32px,5vw,88px);padding-block:clamp(48px,6vw,88px);scroll-margin-top:90px;display:grid}.sheet-fig{border-radius:var(--r-out);min-height:320px;padding:var(--r-pad);border:1px solid var(--hair);background:#e7e8ea06;grid-area:fig;place-items:center;display:grid;position:relative}.sheet-fig .core{border-radius:var(--r-in);background:var(--bg-2);place-items:center;width:100%;height:100%;padding:22px 5%;display:grid;box-shadow:inset 0 1px #ffffff0d}.sheet-text{grid-area:text;align-self:end}.sheet.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"text fig""spec fig"}.sheet-fig .pn{z-index:1;background:var(--bg);position:absolute;top:18px;left:18px}.sheet h2{letter-spacing:-.02em;font-size:clamp(2.25rem,1.5rem + 2.6vw,4rem)}.sheet .tagline{font:400 1.375rem / 1.35 var(--display);color:var(--ink);margin-top:14px}.sheet .desc{color:var(--ink-2);max-width:58ch;margin-top:18px;font-size:1.0625rem;line-height:1.7}.sheet .desc code{font:400 .85em var(--code);color:var(--ink);background:var(--bg-3);border-radius:5px;padding:.1em .35em}.sheet .links{flex-wrap:wrap;gap:4px 28px;margin-top:22px;display:flex}.spec{border-top:1px solid var(--hair-2);grid-area:spec;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-self:start;margin:0;display:grid}.spec div{align-content:start;gap:8px;padding:14px 16px 0 0;display:grid}.spec dt{padding-top:3px}.spec dd{color:var(--ink);margin:0;font-size:.875rem;line-height:1.5}.sheet:target .sheet-fig,.sheet.is-target .sheet-fig{border-color:var(--accent)}.about-story{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);padding-bottom:clamp(64px,8vw,120px);display:grid}.about-story .pull{font:400 clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem) / 1.2 var(--display);letter-spacing:-.01em}.about-story .pull em{color:var(--accent);font-style:normal}.about-story .story{margin-top:0}.bom-wrap{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(56px,7vw,96px) clamp(32px,4vw,64px);padding-bottom:clamp(64px,8vw,120px);display:grid}.bom-sec{grid-column:span 2;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:24px 48px;scroll-margin-top:110px;display:grid}.bom-sec.half{grid-area:span 2/span 1;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;row-gap:24px}.bom-sec.half .table{align-self:start}.bom-key{grid-template-columns:auto minmax(0,1fr);align-content:start;align-items:center;gap:4px 16px;display:grid}.bom-key .bal-s{grid-row:span 2;width:44px;height:44px;font-size:.875rem}.bom-sec h2{font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem)}.bom-sec .sub{color:var(--ink-3);font-size:.8125rem}.bom-sec .table{margin:0;overflow-x:auto}.bom-sec .bom{table-layout:fixed;min-width:520px}.bom-sec .bom th,.bom-sec .bom td{padding:18px 16px}.bom-sec thead th:first-child{width:64px}.bom-sec thead th:last-child{width:150px}.bom .note-c{color:var(--ink-2);font-size:1rem;line-height:1.5}.bom-sec.wide{grid-template-columns:minmax(0,1fr);gap:32px}.gantt{--lab:clamp(220px, 24%, 320px);--row:56px}.gantt ol{border-top:1px solid var(--hair-2);display:grid}.gantt li{grid-template-columns:var(--lab) minmax(0, 1fr);min-height:var(--row);border-bottom:1px solid var(--hair);display:grid}.g-lab{color:inherit;grid-template-columns:2.25rem minmax(0,1fr);align-content:center;align-items:baseline;gap:2px 0;padding:8px 16px 8px 0;text-decoration:none;display:grid}.gantt .wh,.work-notes .wh{color:var(--ink-3);grid-column:2;font-size:.8125rem}.gantt .role{font:400 1.0625rem / 1.25 var(--display);transition:color var(--t-state) var(--ease)}a.g-lab:hover .role,a.g-lab:focus-visible .role{color:var(--accent)}:is(.gantt,.work-notes) .i{font:600 .75rem / 1 var(--sans);letter-spacing:.06em;color:var(--accent);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}.gantt .track{background:repeating-linear-gradient(90deg, var(--hair) 0 1px, transparent 1px var(--step));border-right:1px solid var(--hair);align-items:center;display:flex}.gantt li:hover .track{background-color:#e7e8ea06}.gantt .yr{height:14px;margin-left:min(calc(var(--a) * 100%), calc(100% - 10px));width:max(10px, calc((var(--b) - var(--a)) * 100%));border:1px solid var(--line);background:var(--f-top);box-shadow:inset 0 -4px 0 var(--f-right);transform-origin:0;transition:transform .7s var(--ease) calc(.12s + var(--n) * 45ms);border-radius:2px;position:relative}.js .gantt:not(.in) .yr{transform:scaleX(0)}.gantt li:hover .yr{border-color:var(--ink)}.gantt .now .yr{border-color:var(--accent)}.gantt .yr:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:50%;left:-1px;translate:-50% -50%}.gantt .axis-y{height:32px;margin-left:var(--lab);font:600 .6875rem / 1 var(--sans);letter-spacing:.08em;color:var(--ink-3);font-variant-numeric:lining-nums tabular-nums;position:relative}.gantt .axis-y span{top:0;bottom:0;left:calc(var(--p) * 100%);border-left:1px solid var(--hair-2);align-items:center;padding-left:6px;display:flex;position:absolute}.gantt .axis-y span.end{border-left:0;border-right:1px solid var(--hair-2);padding:0 6px 0 0;left:auto;right:0}.work-notes{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--rows,3), auto);grid-auto-flow:column;gap:0 clamp(32px,4vw,64px);margin-top:16px;display:grid}.work-notes li{border-top:1px solid var(--hair);padding-block:24px;scroll-margin-top:110px}.work-notes{--ix:3.5rem}.work-notes .txt{grid-template-columns:var(--ix) minmax(0, 1fr);align-items:baseline;gap:4px 0;display:grid}.work-notes .role{font:400 1.25rem / 1.25 var(--display)}.work-notes .sum{max-width:62ch;padding-left:var(--ix);color:var(--ink-2);margin-top:10px;font-size:.9375rem;line-height:1.6}@media (max-width:999px){.work-notes{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-auto-flow:row}}@media (max-width:759px){.gantt li{grid-template-columns:minmax(0,1fr);padding-bottom:10px}.g-lab{padding-right:0}.gantt .track{height:22px;margin-left:2.25rem}.gantt .axis-y{margin-left:2.25rem}.gantt .axis-y span:is(:nth-child(2n),:nth-last-child(3)):not(.end){color:#0000}.work-notes .sum{padding-left:0}}.bom-sec.is-target .table{border-color:var(--accent)}.materials{background:var(--hair);border:1px solid var(--hair);border-radius:var(--r-out);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.materials div{background:var(--bg);padding:22px}.materials ul{gap:8px;margin-top:16px;display:grid}.materials li{font-size:1.0625rem}.materials li.main{color:var(--accent)}.materials li.main:after{content:" · most used";color:var(--ink-3);font-size:.75rem}.progress{background:var(--accent);transform-origin:0;z-index:30;height:2px;animation:linear both grow;animation-timeline:var(--tl);position:fixed;top:0;left:0;right:0;transform:scaleX(0)}@keyframes grow{to{transform:scaleX(1)}}.art-head{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:32px clamp(40px,5vw,80px);padding-top:clamp(108px,9vw,150px);display:grid}.crumbs ol{color:var(--ink-3);flex-wrap:wrap;font-size:.8125rem;display:flex}.crumbs li+li:before{content:"/";color:var(--hair-2);margin:0 10px}.crumbs li{align-items:center;display:inline-flex}.crumbs a{color:var(--ink-2);align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.crumbs a:hover,.crumbs [aria-current]{color:var(--accent)}.art-head h1{letter-spacing:-.025em;max-width:14ch;margin-top:12px;font-size:clamp(2.75rem,1.4rem + 4vw,5.5rem);line-height:.96}.art-desc{color:var(--ink-2);max-width:46ch;margin-top:24px;font-size:clamp(1.1875rem,1.05rem + .45vw,1.4375rem);line-height:1.55}.art-meta{color:var(--ink-3);flex-wrap:wrap;gap:6px 18px;margin-top:24px;font-size:.875rem;display:flex}.art-meta a{color:var(--ink);-webkit-text-decoration-color:var(--hair-2);text-decoration-color:var(--hair-2);text-underline-offset:4px}.art-aside{padding-top:56px}.art-cover{border-radius:var(--r-out);padding:var(--r-pad);border:1px solid var(--hair);background:#e7e8ea06;margin:0}.art-cover figcaption{color:var(--ink-3);padding:12px 10px 6px;font-size:.75rem;line-height:1.5}.art-cover figcaption b{color:var(--ink-2);font-weight:600}.art-spec{border-block:1px solid var(--hair);flex-wrap:wrap;margin:22px 0 0;display:flex}.art-spec div{gap:6px;padding:12px 32px 12px 0;display:grid}.art-spec dd{color:var(--ink);margin:0;font-size:.9375rem}.art-spec .acc{color:var(--accent);font-weight:600}.art-spec a{color:inherit;-webkit-text-decoration-color:var(--hair-2);text-decoration-color:var(--hair-2);text-underline-offset:4px}.art-grid{grid-template-columns:minmax(0,1fr) minmax(0,43rem) minmax(0,1fr);gap:0 48px;padding-block:clamp(28px,3vw,52px) clamp(48px,6vw,88px);display:grid}.prose{color:#d9dbdd;grid-column:2;font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem);line-height:1.78}.prose>*+*{margin-top:1.15em}.prose .lead{font:400 1.36em / 1.5 var(--display);color:var(--ink)}.prose h2{letter-spacing:-.02em;margin-top:0;margin-bottom:.2em;scroll-margin-top:100px;font-size:clamp(1.9rem,1.5rem + 1.3vw,2.6rem)}.prose h3{margin-top:2.4em;scroll-margin-top:100px;font-size:clamp(1.5rem,1.25rem + .7vw,1.9rem);line-height:1.15;position:relative}.prose h4{font:600 .75rem / 1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:2em}.prose h3+*,.prose h4+*{margin-top:.75em}.prose .step{border:1px solid var(--accent);width:40px;height:40px;color:var(--accent);font:600 .75rem / 1 var(--sans);letter-spacing:.02em;font-variant-numeric:lining-nums tabular-nums;border-radius:50%;place-items:center;display:grid;position:absolute;top:calc(clamp(1.5rem,1.25rem + .7vw,1.9rem)/1.70068 - 20px);right:calc(100% + 22px)}.prose a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1.5px}.prose a:hover{color:var(--accent)}.prose strong{color:var(--ink);font-weight:600}.prose em{font-style:italic}.prose code{font:400 .82em / 1 var(--code);background:var(--bg-3);color:var(--ink);border:1px solid var(--hair);border-radius:6px;padding:.18em .4em}.prose ul{padding-left:1.3em;list-style:none}.prose li{position:relative}.prose li+li{margin-top:.5em}.prose ul>li:before{content:"";background:var(--accent);width:10px;height:1px;position:absolute;top:.85em;left:-1.1em}.code{border:1px solid var(--hair);background:#0f1113;border-radius:16px;margin:2em 0 2em calc(-1*clamp(0px,3vw,40px));overflow:hidden}.code figcaption{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;padding:6px 6px 6px 18px;display:flex}.copy{border:1px solid var(--hair-2);min-height:44px;color:var(--ink-2);font:600 .6875rem / 1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color var(--t-state) var(--ease), color var(--t-state) var(--ease);background:0 0;border-radius:999px;padding:0 14px}.copy:hover{border-color:var(--accent);color:var(--ink)}.copy:active{transform:scale(.97)}.code pre{font:400 .875rem / 1.7 var(--code);color:#cfd3d8;tab-size:4;margin:0;padding:20px 22px 22px;overflow-x:auto}.code pre:focus-visible{outline-offset:-3px}.code code{font:inherit;background:0 0;border:0;padding:0}.tk-k{color:var(--accent)}.tk-t{color:#eef0f2;font-weight:600}.tk-s{color:#9fb7c9}.tk-n{color:#f0b48c}.tk-c{color:#7d838b}.tk-f{color:#e7e8ea}.table{border:1px solid var(--hair);border-radius:16px;margin-block:2em;overflow-x:auto}.table table{border-collapse:collapse;font-variant-numeric:lining-nums tabular-nums;width:100%}.table th,.table td{border-bottom:1px solid var(--hair);text-align:left;padding:14px 20px;font-size:1rem}.table tbody tr:last-child>*{border-bottom:0}.table .num{text-align:right}.table tbody th{font-weight:600}.toc{grid-area:1/3;align-self:start;max-width:270px;margin-top:6px;position:sticky;top:100px}.toc summary{border-bottom:1px solid var(--hair);cursor:default;align-items:center;min-height:32px;padding-bottom:14px;list-style:none;display:flex}.toc summary::-webkit-details-marker{display:none}.toc ol{max-height:calc(100dvh - 180px);margin-top:6px;overflow:auto}.toc a{color:var(--ink-3);transition:color var(--t-state) var(--ease);grid-template-columns:30px 1fr;gap:8px;padding:7px 0 7px 12px;font-size:.875rem;line-height:1.4;text-decoration:none;display:grid}.toc a span{font:600 .6875rem / 1.9 var(--sans);font-variant-numeric:lining-nums tabular-nums;color:var(--ink-3)}.toc a:hover{color:var(--ink)}.toc a{position:relative}.toc a:before{content:"";background:var(--accent);opacity:0;width:2px;transition:opacity var(--t-state) var(--ease), transform var(--t-state) var(--ease);border-radius:2px;position:absolute;top:9px;bottom:9px;left:0;transform:scaleY(.4)}.toc a[aria-current=true]{color:var(--ink)}.toc a[aria-current=true]:before{opacity:1;transform:none}.toc a[aria-current=true] span{color:var(--accent)}.steppill{display:none}.toc-sheet{border:0;border-top:1px solid var(--hair-2);background:var(--bg);width:100%;max-width:none;max-height:min(80dvh,720px);color:var(--ink);border-radius:22px 22px 0 0;margin:auto 0 0;padding:20px 20px 28px}.toc-sheet::backdrop{background:#0a0b0cb3}.toc-sheet[open]{animation:sheetin var(--t-arrive) var(--ease)}@keyframes sheetin{0%{opacity:0;transform:translateY(24px)}}.ts-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ts-close{border:1px solid var(--hair-2);min-height:44px;color:var(--ink);font:600 .75rem / 1 var(--sans);letter-spacing:.12em;text-transform:uppercase;background:0 0;border-radius:999px;padding:0 18px}.toc-sheet a{border-bottom:1px solid var(--hair);min-height:44px;color:var(--ink-2);grid-template-columns:34px 1fr;align-items:center;gap:8px;padding:6px 0 6px 12px;font-size:.9375rem;text-decoration:none;display:grid}.toc-sheet a span{font:600 .6875rem / 1 var(--sans);color:var(--accent);font-variant-numeric:lining-nums tabular-nums}.toc-sheet a[aria-current=true]{color:var(--ink);box-shadow:inset 2px 0 0 var(--accent);background:linear-gradient(90deg, var(--accent-dim), transparent 60%)}.art-foot{padding-bottom:clamp(64px,8vw,120px)}.author{grid-template-columns:minmax(0,1fr) minmax(0,43rem) minmax(0,1fr);gap:0 48px;display:grid}.author .in{border-top:1px solid var(--hair-2);grid-column:2;gap:16px;padding-top:32px;display:grid}.author p{color:var(--ink-2);font-size:1.0625rem;line-height:1.65}.author p strong{color:var(--ink);font-weight:600}.author .links{flex-wrap:wrap;gap:4px 28px;display:flex}.next{margin-top:clamp(64px,8vw,112px)}.next h2{margin-bottom:24px;font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem)}.next .index{margin-top:0}.missing{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:32px 64px;padding-top:clamp(120px,12vw,160px);display:grid}.missing h1{letter-spacing:-.03em;max-width:12ch;margin-top:20px;font-size:clamp(3rem,2rem + 4.4vw,6.5rem);line-height:.95}.missing p:not(.eyebrow){color:var(--ink-2);max-width:40ch;margin-top:24px;font-size:1.1875rem}.missing .btn{margin-top:32px}.miss-fig{margin:0}.miss-svg{width:100%;height:auto;color:var(--line)}.miss-svg .ghost{fill:none;stroke:var(--accent);stroke-dasharray:4 5;stroke-width:1.4px}.miss-fig figcaption{color:var(--ink-3);text-align:right;margin-top:12px;font-size:.75rem}.miss-fig figcaption b{color:var(--ink-2)}.miss-more{padding-block:clamp(56px,6vw,96px) clamp(80px,10vw,140px)}.miss-more h2{font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem)}.miss-more .index{margin-top:24px}.js .reveal:not(.in){opacity:0;transform:translateY(18px)}.reveal{transition:opacity .6s var(--ease), transform .6s var(--ease)}.notes>:nth-child(2),.tray>:nth-child(3n+2){transition-delay:60ms}.notes>:nth-child(3),.tray>:nth-child(3n){transition-delay:.12s}@media (max-width:1180px){.art-grid,.author{grid-template-columns:minmax(0,1fr) minmax(0,43rem) minmax(0,1fr);gap:0 24px}.toc{grid-area:1/2;max-width:none;margin:0 0 48px;position:static}.toc details{border:1px solid var(--hair);border-radius:16px;padding:14px 18px}.toc summary{cursor:pointer;border:0;justify-content:space-between;min-height:44px;padding:0}.toc summary:after{content:"+";color:var(--accent);font-size:1rem}.toc details[open] summary:after{content:"–"}.toc ol{max-height:none}.toc a{align-items:center;min-height:44px;padding:4px 0}.toc a[aria-current=true]{box-shadow:inset 2px 0 0 var(--accent)}.toc a:before{display:none}.prose .step{vertical-align:.335em;width:26px;height:26px;margin-right:12px;font-size:.6875rem;display:inline-grid;position:static}.steppill{left:50%;bottom:max(16px, env(safe-area-inset-bottom));z-index:12;border:1px solid var(--hair-2);min-height:48px;color:var(--ink);font:600 .75rem / 1 var(--sans);letter-spacing:.12em;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity var(--t-arrive) var(--ease), transform var(--t-arrive) var(--ease);background:#141618f0;border-radius:999px;align-items:center;gap:10px;padding:0 8px 0 18px;display:inline-flex;position:fixed;transform:translateY(12px);box-shadow:0 18px 40px -16px #000c}.steppill .ctr{white-space:nowrap;min-width:58px;padding-inline:9px}.pill-on .steppill{opacity:1;pointer-events:auto;transform:none}html.on-article{scroll-padding-bottom:calc(48px + max(16px, env(safe-area-inset-bottom)) + 16px)}.index a{grid-template-columns:64px minmax(0,1fr) 110px 64px}.index .d{display:none}.drawers{grid-template-columns:repeat(3,minmax(0,1fr))}.materials{grid-template-columns:repeat(2,minmax(0,1fr))}.titleblock{grid-template-columns:1fr 1fr}.art-head{grid-template-columns:minmax(0,1fr) 300px}}@media (max-width:999px){:root{--pin:360px}.hero{height:auto}.stage,.is-static .stage{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"copy""rail""fig""legend";gap:0;height:auto;padding-top:104px;position:relative}.hero h1{max-width:none;font-size:clamp(2.75rem,1.6rem + 5vw,4.5rem)}.hero-sub{max-width:44ch;margin-top:18px;font-size:1.0625rem}.fig{margin:28px calc(-1 * var(--gut)) 0;padding:0 var(--gut);overflow:hidden}.cam{transform-origin:50% 64%}.vcr{max-height:none}.fig figcaption{text-align:left;padding:4px var(--gut) 0;max-width:none;position:static}.co,.ld{display:none}.tag{display:block}.legend{margin-top:24px;display:block}.legend ol{background:var(--hair);border:1px solid var(--hair);border-radius:var(--r-out);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.legend li{background:var(--bg);display:flex}.legend a{flex:1;grid-template-columns:30px 1fr;align-items:center;gap:2px 10px;min-height:64px;padding:12px;text-decoration:none;display:grid}.legend .bal-s{background:var(--accent);color:var(--bg);grid-row:span 2}.legend .nm{font:600 .6875rem / 1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.legend .go{font:400 1.125rem / 1.1 var(--display)}.legend a:active{background:var(--bg-2)}.rail{max-width:none;margin-top:28px}.ej,.ejl{display:none}.mini{align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.vm{width:156px;height:auto;color:var(--line);flex:none;overflow:visible}.vm .m-cassette{opacity:0}.ej-m{min-height:48px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:10px;margin-bottom:4px;padding:4px 14px 4px 4px;display:flex}.ej-m .go{font-size:1.25rem}.mini-ctl{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.tk-m{min-height:48px;color:var(--ink);animation:rise var(--t-arrive) var(--ease) .26s both;border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:4px 10px 4px 0;text-decoration:none;display:none}.tape-out .tk-m{display:grid}.tk-m .ctr{height:34px}.tk-m .lab{gap:4px;display:grid}.tk-m .go{font:400 1.25rem / 1 var(--display)}.tk-m .arr{color:var(--accent);font:400 .8em var(--sans);margin-left:6px}.tk-m .cnote{color:var(--ink-2);font-size:.75rem;line-height:1.3}.tk-m:active .ctr,.tk-m.is-hover .ctr{background:var(--accent);color:var(--bg)}.tape-out .vm{cursor:pointer}}@media (max-width:1099px){.sec-head,.person-grid,.contact,.page-head,.about-story,.bom-sec,.missing{grid-template-columns:1fr}.contact{grid-template-areas:"l""fig""links"}.contact .ct-fig{margin-top:48px}.sh-fig{justify-self:start}.notes{grid-template-columns:1fr}.note-lead,.note-side{grid-area:auto}.note-lead .shot,.note-side .shot{aspect-ratio:16/9;flex:none;min-height:0}.tray{grid-template-columns:repeat(2,minmax(0,1fr))}.tray .first{grid-area:auto/span 2}.tray .first a{min-height:0}.tray .first .pic{max-height:220px}.sheet,.sheet.flip{grid-template-columns:minmax(0,1fr);grid-template-areas:"fig""text""spec"}.ph-projects{grid-template-areas:"text""fig""key"}.sheet-fig .pic{max-height:200px}.ph-fig{max-width:620px;padding:40px 24px 24px}.art-head{grid-template-columns:1fr}.art-aside{max-width:520px;padding-top:0}.art-cover .shot{aspect-ratio:16/10}.bom-wrap{grid-template-columns:1fr}.bom-sec.half,.bom-sec{grid-column:auto}.miss-fig{order:-1;max-width:640px}}@media (max-width:759px){.bar{height:58px;padding:0 6px 0 8px;inset:10px 12px auto}.bar:before{content:"";background:linear-gradient(var(--bg) 62%, #14161800);z-index:-1;pointer-events:none;height:84px;position:fixed;inset:0 0 auto}.logo{height:36px}.nav{display:none}.menu-btn,.menu-close{border:1px solid var(--hair-2);min-width:120px;min-height:46px;color:var(--ink);font:600 .75rem / 1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;margin-left:auto;padding:0 6px 0 18px;display:inline-flex}.bars{background:var(--ink);border-radius:50%;width:34px;height:34px;position:relative}.bars:before,.bars:after{content:"";background:var(--bg);height:1.5px;transition:transform var(--t-arrive) var(--ease);position:absolute;left:10px;right:10px}.bars:before{top:13.5px}.bars:after{top:19px}.bars.x:before{transform:translateY(2.75px)rotate(45deg)}.bars.x:after{transform:translateY(-2.75px)rotate(-45deg)}.legend ol{grid-template-columns:repeat(2,minmax(0,1fr))}.loc{gap:8px;margin-left:2px;padding:4px 8px 4px 6px}.loc-svg{height:28px}.spec{grid-auto-flow:row}.spec div{border-bottom:1px solid var(--hair);grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px 0}.board-key{grid-template-rows:none;grid-template-columns:1fr;grid-auto-flow:row;max-width:none}.sheet-fig{min-height:200px}.tray{grid-template-columns:1fr}.tray .first{grid-column:auto}.tray a{min-height:0}.tray .pic-box{padding:8px 22%}.index a{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px 14px;padding:16px 2px}.index .ctr{grid-row:span 2;margin-top:2px}.index .c,.index .m{display:none}.index .d{grid-column:2;display:block}.index .t{font-size:1.1875rem}.drawers{scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none;background:0 0;border:0;border-radius:0;gap:12px;display:flex;overflow-x:auto}.drawer{scroll-snap-align:start;border:1px solid var(--hair);border-radius:var(--r-out);flex:0 0 80%;overflow:hidden}.materials,.titleblock{grid-template-columns:1fr}.bom .y{white-space:normal}.bom-sec .table{border-radius:0}.bom-sec .bom{min-width:0;display:block}.bom-sec .bom thead{display:none}.bom-sec .bom tbody{display:block}.bom-sec .bom tr{border-bottom:1px solid var(--hair);grid-template-columns:40px minmax(0,1fr);gap:4px 12px;padding:16px 0;display:grid}.bom-sec .bom th,.bom-sec .bom td{text-align:left;border:0;width:auto;padding:0}.bom-sec .bom .i{grid-row:span 3;padding-top:4px}.bom-sec .bom :is(th,td):not(.i){grid-column:2}.code{margin-inline:calc(-1 * var(--gut));border-inline:0;border-radius:0}.code figcaption{padding:6px var(--gut)}.code pre{padding-inline:var(--gut)}.table{margin-inline:calc(-1 * var(--gut));border-inline:0;border-radius:0}.art-grid,.author{grid-template-columns:minmax(0,1fr);gap:0}.prose,.toc,.author .in{grid-column:1}.notes{display:none}.index{margin-top:8px}.art-head{gap:18px;padding-top:92px}.art-head h1{margin-top:4px;font-size:clamp(2.375rem,1.6rem + 4vw,3rem)}.art-desc{margin-top:14px;font-size:1.0625rem}.art-meta{margin-top:12px;font-size:.8125rem}.art-spec{color:var(--ink-3);flex-wrap:wrap;align-items:center;margin-top:6px;padding:0;font-size:.8125rem;line-height:1.5;display:flex}.art-spec div{align-items:center;min-height:44px;padding:0;display:inline-flex}.art-spec div+div:before{content:"·";margin:0 10px}.art-spec .spec-code{flex-basis:100%;min-height:0;padding-bottom:4px}.art-spec .spec-code:before{content:none}.art-spec dd a{align-items:center;min-height:44px;display:inline-flex}.art-spec dt{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.art-spec dd{font-size:inherit;color:var(--ink-2);display:inline}.art-spec .acc{color:var(--accent)}.art-cover{padding:4px}.art-cover .shot{aspect-ratio:16/9}.art-cover figcaption{padding:8px 8px 4px}.art-grid{padding-top:22px}.toc{display:none}.on-article.stepped .steppill{opacity:1;pointer-events:auto;transform:none}.art-spec .spec-steps{min-height:44px;color:var(--accent);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-items:center;margin:0 -4px;padding:0 4px;-webkit-text-decoration:underline #ff6a2b80;text-decoration:underline #ff6a2b80;display:inline-flex}.m-hide{display:none}.m-only{display:inline}.ph-blog .ph-fig{width:100%;max-width:260px;margin-inline:auto;padding:8px 0 0}.jump{margin-top:12px;display:inline-flex}.stage,.is-static .stage{padding-top:70px}.btn{justify-content:space-between;width:100%}.ph-fig{padding:32px 12px 12px}}.sheet-menu{background:var(--bg);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--ink);border:0;margin:0;padding:10px 12px 32px}.sheet-menu[open]{grid-template-rows:auto 1fr auto auto;display:grid}.sm-fig{place-self:center;width:min(76%,340px);margin:0}.sm-fig .pf-in{pointer-events:none}.sheet-menu[open] .sm-fig{animation:appear .42s var(--ease) both}.sheet-menu[open] .clock{animation:1s step-end .4s 6 blink}.sheet-menu::backdrop{background:var(--bg)}.sm-top{border:1px solid var(--hair);border-radius:999px;align-items:center;height:58px;padding:0 6px 0 8px;display:flex}.sm-top .logo{margin-left:6px}.sm-top .logo .mono{stroke-dashoffset:0;opacity:1;animation:none}.sheet-menu nav{padding-inline:8px}.sheet-menu ol{border-top:1px solid var(--hair-2)}.sheet-menu li{border-bottom:1px solid var(--hair)}.sheet-menu[open] li{animation:rise .42s var(--ease) both}.sheet-menu li:nth-child(2){animation-delay:50ms}.sheet-menu li:nth-child(3){animation-delay:.1s}.sheet-menu li:nth-child(4){animation-delay:.15s}.sheet-menu li:nth-child(5){animation-delay:.2s}.sheet-menu a{min-height:72px;font:400 2.5rem / 1 var(--display);letter-spacing:-.015em;justify-content:space-between;align-items:center;padding:16px 4px;text-decoration:none;display:flex}.sheet-menu a:after{content:"→";font:400 1.25rem var(--sans);color:var(--accent)}.sheet-menu a[aria-current=page]{color:var(--accent)}.sheet-menu p{color:var(--ink-3);margin-top:24px;padding-inline:8px;font-size:.8125rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.logo .mono{stroke-dashoffset:0;opacity:1;animation:none}.js .reveal:not(.in){opacity:1;transform:none}.hero-copy>*,.rail,.fig{animation:none}.progress{display:none}}.contents,.mini .contents{display:contents}.ej-sen{pointer-events:none;width:1px;height:1px;position:absolute;top:8px;left:0}.hero{isolation:auto}.logo-m{display:none}.logo-m .mono{stroke-dashoffset:0;opacity:1;animation:none}.loc-fig{display:flex}@media (max-width:759px){.bar:has(.loc.on) .logo:not(.logo-m){display:none}.bar:has(.loc.on) .logo-m{width:34px;height:34px;display:block}.bar:has(.loc.on) .brand{padding:0 2px}body:has(.bar .loc.on) .sm-top .logo:not(.logo-m){display:none}body:has(.bar .loc.on) .sm-top .logo-m{width:34px;height:34px;margin-left:2px;display:block}.loc{flex:auto;min-width:0;margin-left:0}.loc-t{min-width:0;font-size:1rem}.loc-n{text-overflow:ellipsis;overflow:hidden}.loc-svg{height:26px}}html:is(.pill-off,.pill-down) .steppill.steppill:not(:focus-visible){opacity:0;pointer-events:none;transform:translateY(12px)}html:not(.js) :is(.copy,.steppill,.spec-steps){display:none}.code .token:is(.comment,.prolog,.doctype,.cdata){color:#7d838b}.code .token:is(.keyword,.important,.atrule,.rule,.selector){color:var(--accent)}.code .token:is(.string,.char,.attr-value,.regex,.url){color:#9fb7c9}.code .token:is(.number,.boolean,.constant,.symbol){color:#f0b48c}.code .token:is(.class-name,.builtin,.tag){color:#eef0f2;font-weight:600}.code .token:is(.function,.variable){color:var(--ink)}.code .token:is(.punctuation,.operator){color:#9aa0a7}.code .token:is(.attr-name,.property,.parameter){color:#cfd3d8}.code .token.deleted{color:#e6a090}.code .token.inserted{color:#a9c7a0}.prose ol{padding-left:1.4em;list-style:decimal}.prose ol li::marker{color:var(--accent);font:600 .85em var(--sans)}.prose figure:not(.code){margin:2.2em 0}.prose img{border-radius:var(--r-in);border:1px solid var(--hair);max-width:100%;height:auto}.prose figure:not(.code) figcaption{color:var(--ink-3);margin-top:12px;font-size:.8125rem;line-height:1.5}.prose blockquote{border-left:2px solid var(--accent);font:400 1.2em / 1.5 var(--display);color:var(--ink);margin:2em 0;padding:4px 0 4px 22px}.prose blockquote p+p{margin-top:.6em}.prose hr,.prose .breakline{background:var(--hair-2);border:0;height:1px;margin:3em 0}.prose .tbl{border:1px solid var(--hair);background:linear-gradient(90deg, var(--bg) 30%, transparent) left / 48px 100%, linear-gradient(270deg, var(--bg) 30%, transparent) right / 48px 100%, linear-gradient(90deg, #0000008c, transparent) left / 18px 100%, linear-gradient(270deg, #0000008c, transparent) right / 18px 100%;background-repeat:no-repeat;background-attachment:local,local,scroll,scroll;background-color:var(--bg);border-radius:16px;margin:2em 0;overflow-x:auto}.prose .tbl:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.prose table{border-collapse:collapse;font-variant-numeric:lining-nums tabular-nums;width:100%}.prose .tbl-hint{display:none}@media (max-width:599px){.prose th,.prose td{min-width:11rem}.prose .tbl-hint+.tbl{margin-top:.6em}.prose .tbl-hint{font:600 .6875rem / 1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);text-align:right;margin:2em 0 0;display:block}.prose .tbl-hint:after{content:" →";color:var(--accent)}}.prose picture{display:block}.prose th,.prose td{border-bottom:1px solid var(--hair);text-align:left;vertical-align:top;padding:12px 18px;font-size:.9375rem}.prose thead th{font:600 .6875rem / 1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.prose tbody tr:last-child>*{border-bottom:0}.prose cite{color:var(--ink-3);font-style:normal}.prose h2+*,.prose h3+*{margin-top:.75em}.prose h2:not(:first-child){margin-top:2.2em}.prose .step{font-variant-numeric:lining-nums tabular-nums}.code pre{outline-offset:-3px}.art-cover .cov{display:block}.page-head .crumbs{margin-bottom:6px}.page-head .crumbs+h1{margin-top:6px}.list-body{padding-bottom:clamp(64px,8vw,120px)}.list-body .drawers{margin-top:0}.list-body>.topics{margin-top:48px}.years{gap:clamp(36px,4vw,56px);margin-top:clamp(48px,6vw,88px);display:grid}.yr-group{grid-template-columns:minmax(0,3fr) minmax(0,9fr);align-items:start;gap:12px 48px;display:grid}.yr-group h2{letter-spacing:-.02em;gap:10px;font-size:clamp(2.25rem,1.6rem + 2vw,3.5rem);line-height:1;display:grid;position:sticky;top:104px}.yr-group .index{margin-top:0}.pager{background:var(--hair);border:1px solid var(--hair);border-radius:var(--r-out);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:clamp(48px,6vw,80px);display:grid;overflow:hidden}.pager>*{background:var(--bg)}.pager a{min-height:96px;transition:background-color var(--t-state) var(--ease);align-content:start;gap:10px;padding:22px 24px 6px;text-decoration:none;display:grid}.pager a:hover{background:var(--bg-2)}.pager a:hover .t{color:var(--accent)}.pager a:active{transform:translateY(1px)}.pager .t{font:400 clamp(1.25rem, 1rem + .6vw, 1.625rem) / 1.2 var(--display);transition:color var(--t-state) var(--ease)}.pager .nx{text-align:right;justify-items:end}.art-foot .pager{max-width:none}.ph-project{grid-template-rows:auto auto;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.ph-project .ph-text{grid-row:1;align-self:center}.ph-sheet-fig{grid-row:1/span 2;grid-template-rows:subgrid;gap:14px;margin:0;display:grid}.ph-project .links{flex-wrap:wrap;gap:4px 28px;margin-top:22px;display:flex}.ph-sheet{grid-area:auto;width:100%;min-height:clamp(400px,36vw,540px);margin:0}.project-body{grid-template-columns:minmax(0,43rem) minmax(0,1fr);align-items:start;gap:clamp(40px,6vw,96px);padding-bottom:clamp(48px,6vw,88px);display:grid}.project-body .prose{grid-column:auto;font-size:clamp(1.125rem,1rem + .45vw,1.375rem);line-height:1.6}.project-spec{border-radius:var(--r-out);padding:var(--r-pad);border:1px solid var(--hair);background:#e7e8ea06}.project-spec .in{border-radius:var(--r-in);background:var(--bg-2);padding:22px 24px 6px;box-shadow:inset 0 1px #ffffff0d}.project-spec h2{color:var(--accent);padding-bottom:6px}.project-spec .spec div:last-child{border-bottom:0}body:has(article.project) .foot{border-top:0}body:has(article.project) .foot .contact{display:none}body:has(article.project) .foot .titleblock{margin-top:56px}.ct-strip{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;padding-bottom:clamp(56px,7vw,104px);display:flex}.ct-strip.sponsor{padding-top:clamp(48px,6vw,88px)}.project .ct-strip{padding-block:clamp(40px,5vw,72px) 0}.ct-strip p{font:400 clamp(1.375rem, 1.1rem + .9vw, 2rem) / 1.25 var(--display);text-wrap:balance;max-width:46ch}.ph-sheet .core{padding:16px 3%}.xpl .xp{animation:xp-apart 1.2s var(--ease) .25s both}@keyframes xp-apart{0%{translate:0 var(--ex)}}.xpl .xax{animation:xp-in .5s var(--ease) .8s both}.xpl .xtag{animation:xp-in var(--t-arrive) var(--ease) calc(1.15s + var(--i) * 70ms) both}@keyframes xp-in{0%{opacity:0}}.xpl .bal{fill:var(--bg-2);stroke:var(--ink-3);transition:fill var(--t-state) var(--ease), stroke var(--t-state) var(--ease)}.xpl .lead{fill:none;stroke:var(--ink-3)}.xpl .dot{fill:var(--ink-2);stroke:none}.xpl .bal-n{fill:var(--ink);stroke:none;font-family:var(--sans);font-variant-numeric:tabular-nums;text-anchor:middle;dominant-baseline:central;transition:fill var(--t-state) var(--ease);font-weight:600}.ph-sheet-fig figcaption{gap:16px;display:grid}.xkey{border-top:1px solid var(--hair);color:var(--ink-2);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px;padding-top:16px;font-size:.875rem;line-height:1.45;display:grid}.xkey li{align-items:baseline;gap:12px;display:flex}.xkey .bal-s{flex:none;translate:0 -1px}:is(.ph-sheet-fig:has(.xkey [data-n="1"]:hover) .xtag[data-n="1"] .bal,.ph-sheet-fig:has(.xkey [data-n="2"]:hover) .xtag[data-n="2"] .bal,.ph-sheet-fig:has(.xkey [data-n="3"]:hover) .xtag[data-n="3"] .bal,.ph-sheet-fig:has(.xkey [data-n="4"]:hover) .xtag[data-n="4"] .bal){fill:var(--accent);stroke:var(--accent)}:is(.ph-sheet-fig:has(.xkey [data-n="1"]:hover) .xtag[data-n="1"] .bal-n,.ph-sheet-fig:has(.xkey [data-n="2"]:hover) .xtag[data-n="2"] .bal-n,.ph-sheet-fig:has(.xkey [data-n="3"]:hover) .xtag[data-n="3"] .bal-n,.ph-sheet-fig:has(.xkey [data-n="4"]:hover) .xtag[data-n="4"] .bal-n){fill:var(--bg)}@media (prefers-reduced-motion:reduce){.xpl :is(.xp,.xax,.xtag){animation:none}}.notes-sub{color:var(--ink-2);margin:-8px 0 24px}.pnotes{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.pnotes .note{grid-column:auto;grid-template-columns:minmax(0,200px) minmax(0,1fr);align-items:start;display:grid}.pnotes .note .shot,.pnotes .note-side .shot{aspect-ratio:3/2;align-self:start}.pnotes .note .shot img{filter:grayscale();transition:filter var(--t-state) var(--ease), transform .6s var(--ease)}.pnotes .note:is(:hover,.is-hover) .shot img{filter:none}.pnotes .note-body{gap:8px;padding:8px 14px 8px 20px}.pnotes .note h3{font-size:clamp(1.25rem,1rem + .6vw,1.5rem);line-height:1.15}.pnotes .note p.desc{font-size:.9375rem;line-height:1.55}.project-notes.one .pnotes{grid-template-columns:minmax(0,43rem)}.project-notes.one .note{grid-template-columns:minmax(0,240px) minmax(0,1fr)}@media (max-width:1180px){.pnotes{grid-template-columns:minmax(0,1fr)}}@media (max-width:759px){.pnotes .note,.project-notes.one .note{grid-template-columns:112px minmax(0,1fr);align-items:start;gap:8px 14px}.pnotes .note-body{display:contents}.pnotes .note .shot{grid-row:span 2}.pnotes .note-num{padding-top:4px}.pnotes .note p.desc{grid-column:1/-1;padding:4px 8px 10px}}.project-body .spec{grid-area:auto;grid-auto-columns:auto;grid-auto-flow:row;max-width:none}.project-body .spec div{border-bottom:1px solid var(--hair);grid-template-columns:96px minmax(0,1fr);gap:12px;padding:14px 0}.project-notes h2{margin-bottom:20px;font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem)}.project-notes{padding-bottom:clamp(32px,4vw,56px)}.project-pager{padding-bottom:0}.sheet h2 a{text-decoration:none}.sheet h2 a:hover{color:var(--accent)}.sheet .desc p+p{margin-top:.8em}.pic{aspect-ratio:3/2;height:auto}.sheet-fig .pic{width:min(100%,520px);max-height:none}.tray .pic,.tray .first .pic{width:100%;max-height:none}.tray .pic-box{padding:4px 6%}.tray .first .pic-box{padding:8px 4%}.sheet-fig .core{padding:18px 6%}.bom .p small.s2{color:var(--ink-2);margin-top:6px;font-size:.875rem;line-height:1.55}.bom-2 thead th:last-child,.bom-sec .bom-2 th:last-child{width:auto}.materials.two{grid-template-columns:repeat(2,minmax(0,1fr))}.materials .lv{color:var(--ink-3);font-size:.8125rem}.materials li.main:after{content:none}.bom-sec{scroll-margin-top:96px}.contact-page .ph-fig{justify-self:end;width:100%;max-width:560px}body:has(.contact-page) .foot{border-top:0}body:has(.contact-page) .foot .contact{display:none}body:has(.contact-page) .foot .titleblock{margin-top:56px}@media (max-width:759px){.contact-page .page-head{row-gap:8px;padding-bottom:20px}.contact-page .page-head .lede,.contact-page .page-head .pf-cap{margin-top:16px}.contact-page .ph-fig{max-width:260px;padding:0}}.contact-body{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:clamp(40px,6vw,96px);display:grid}.contact-side{gap:clamp(48px,5vw,72px);display:grid}.form-sec h2{margin-bottom:24px;font-size:clamp(1.75rem,1.3rem + 1.4vw,2.5rem)}.form-lede{color:var(--ink-2);margin:-12px 0 24px}.form{gap:20px;max-width:560px;display:grid}.field{gap:8px;display:grid}.field label{font:600 .6875rem / 1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.field :is(input,textarea){border:1px solid var(--hair-2);background:var(--bg-2);width:100%;min-height:52px;color:var(--ink);font:400 1rem / 1.5 var(--sans);transition:border-color var(--t-state) var(--ease);border-radius:14px;padding:14px 16px;box-shadow:inset 0 1px #00000059}.field textarea{resize:vertical;min-height:168px}.field :is(input,textarea):hover{border-color:#e7e8ea57}.field :is(input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:#0000}.form .btn{cursor:pointer;border:0;justify-self:start}.form .btn[disabled]{opacity:.7;cursor:progress}.form-note{max-width:52ch;color:var(--ink-3);font-size:.8125rem;line-height:1.5}.form-err{color:var(--accent);font-size:.9375rem}.form-done{font:400 1.375rem / 1.4 var(--display);color:var(--ink)}@media (max-width:1099px){.yr-group{grid-template-columns:1fr}.yr-group h2{grid-auto-flow:column;justify-content:start;align-items:baseline;gap:16px;position:static}.ph-project,.project-body,.contact-body{grid-template-columns:1fr}.contact-page .ph-fig{justify-self:start}.ph-sheet{max-width:620px;min-height:300px}.ph-project{grid-template-rows:none}.ph-project .ph-text,.ph-sheet-fig{grid-row:auto}.ph-sheet-fig{grid-template-rows:none}}@media (max-width:759px){.pager{grid-template-columns:1fr}.pager .nx{text-align:left;justify-items:start}.ph-sheet{min-height:240px}.materials.two{grid-template-columns:1fr}.form .btn{justify-self:stretch}}.m-cover{display:none}@media (max-width:759px){.art-aside{display:none}.prose .m-cover{margin:1.6em 0;display:block}.prose .m-cover img{object-fit:cover;border:0;border-radius:0;height:100%}.prose .m-cover figcaption{margin-top:0}.art-head h1{max-width:none}}.bom-sec .bom-client thead th:last-child{width:170px}.record{gap:24px;display:grid}@media (max-width:759px){.bom-sec .bom-client tr{grid-template-columns:40px minmax(0,1fr)}}.bom thead th.lbl{font-size:.6875rem}.tape-out .vm .m-cassette{touch-action:none;cursor:grab}.ph-sheet .pic{width:min(100%,680px)}.ph-sheet .pic.xpl{aspect-ratio:1;width:100%;max-height:500px}@media (max-width:759px){.ph-sheet .core{padding:8px}.xkey{grid-template-columns:minmax(0,1fr)}}
:is(.ph-projects:has([href=\#p-django-cms]:is(:hover,:focus-visible)) [href=\#p-django-cms]>span,.ph-projects:has([href=\#p-better-helpdesk]:is(:hover,:focus-visible)) [href=\#p-better-helpdesk]>span,.ph-projects:has([href=\#p-fretfall-player]:is(:hover,:focus-visible)) [href=\#p-fretfall-player]>span,.ph-projects:has([href=\#p-kurszettel]:is(:hover,:focus-visible)) [href=\#p-kurszettel]>span,.ph-projects:has([href=\#p-dotfiles]:is(:hover,:focus-visible)) [href=\#p-dotfiles]>span,.ph-projects:has([href=\#p-flowrail]:is(:hover,:focus-visible)) [href=\#p-flowrail]>span,.ph-projects:has([href=\#p-claude-annotate]:is(:hover,:focus-visible)) [href=\#p-claude-annotate]>span,.ph-projects:has([href=\#p-claude-tips]:is(:hover,:focus-visible)) [href=\#p-claude-tips]>span){background:var(--accent);color:var(--bg)}.p-chassis{--tx:0%;--ty:0%;--lx:0;--ly:1;width:48.093%;height:40.318%;top:45.182%;left:30.014%}.p-board{--tx:0%;--ty:-29.319%;--lx:0;--ly:-1;width:37.501%;height:26.045%;top:55.773%;left:38.075%}.p-deck{--tx:0%;--ty:-65.068%;--lx:0;--ly:-1;width:38.167%;height:26.545%;top:52.273%;left:35.943%}.p-cassette{--tx:-173.955%;--ty:-74.713%;--lx:-.961;--ly:-.277;width:19.914%;height:15.818%;top:56.682%;left:41.073%}.p-lid{--tx:13.852%;--ty:-105.263%;--lx:.189;--ly:-.982;width:48.093%;height:38.864%;top:44.818%;left:30.014%}.p-fascia{--tx:-33.191%;--ty:24%;--lx:-.866;--ly:.5;width:30.106%;height:28.409%;top:57.773%;left:29.015%}.co-lid{top:18.182%;left:20%}.tag-lid{top:12.364%;left:59.89%}.co-deck{top:45.909%;left:80%}.tag-deck{top:47.182%;left:61.755%}.co-board{top:58.182%;left:80%}.tag-board{top:65.318%;left:57.425%}.co-chassis{top:74.091%;left:80%}.tag-chassis{top:76.818%;left:69.882%}.co-fascia{top:92.727%;left:60.769%}.tag-fascia{top:89.364%;left:45.9%}.co-cassette{top:34.545%;left:13.077%}.tag-cassette{top:50.955%;left:6.662%}.ej{top:89.091%;left:41.154%}.tk{top:89.091%;left:67.692%}.tk-grab{width:19.914%;height:15.818%;top:50.318%;left:41.073%}.pin-lid-0{top:16.725%;left:2.119%}.pin-lid-1{top:.412%;left:61.585%}.pin-lid-2{top:31.813%;left:88.174%}.pin-lid-3{top:92.494%;left:80.949%}.pin-lid-4{top:64.84%;left:19.642%}.pf-lid{aspect-ratio:625.2/427.5}.pin-board-0{top:-2.928%;left:48.158%}.pin-board-1{top:20.278%;left:69.334%}.pin-board-2{top:88.171%;left:53.78%}.pin-board-3{top:43.582%;left:96.838%}.pin-board-4{top:41.469%;left:18.92%}.pin-board-5{top:61.896%;left:88.856%}.pin-board-6{top:55.051%;left:5.103%}.pin-board-7{top:12.509%;left:15.095%}.pf-board{aspect-ratio:487.5/286.5}.pf-cassette{aspect-ratio:258.9/174}.pf-fascia{aspect-ratio:391.4/312.5}.pf-deck{aspect-ratio:496.2/292}.pf-chassis{aspect-ratio:625.2/443.5}
