.lab-hero{padding:clamp(7rem,14vh,10rem) 0 clamp(3rem,6vh,4.5rem);position:relative;overflow:hidden}.lab-hero__inner{z-index:1;max-width:46rem;position:relative}.lab-hero__title{margin:.9rem 0 1.1rem;font-size:clamp(2.6rem,8vw,5.4rem);line-height:.95}.lab-hero__title .accent{color:var(--filament)}.lab-hero__lede{color:var(--muted);max-width:34rem;font-size:clamp(1rem,2vw,1.15rem)}.lab-hero__meta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:.5rem 1.75rem;margin-top:2rem;font-size:.75rem;display:flex}.lab-hero__meta b{color:var(--chalk);font-weight:500}.lab-hero__boot{max-width:30rem;margin-top:2.25rem}.lab-hero__boot-track{background:var(--rail);border-radius:2px;height:3px;overflow:hidden}.lab-hero__boot-fill{background:var(--filament);transform-origin:0;width:100%;height:100%;transition:transform 1.5s var(--ease-in-place);transform:scaleX(0)}.is-booted .lab-hero__boot-fill{transform:scaleX(1)}.lab-hero__boot-line{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);justify-content:space-between;margin-top:.6rem;font-size:.72rem;display:flex}.lab-hero__boot-line b{color:var(--filament);font-weight:500}.rack{gap:clamp(1.25rem,3vw,2rem);padding-bottom:clamp(3rem,8vh,6rem);display:grid}.lab{background:var(--panel);border:1px solid var(--line);border-radius:4px;position:relative;overflow:hidden}.lab:before{content:"";background:var(--filament);opacity:0;transform-origin:top;width:2px;transition:transform .5s var(--ease-out), opacity .5s var(--ease-in-place);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.lab.is-in:before{opacity:.5;transform:scaleY(1)}.lab.is-in:hover:before{opacity:1}.lab__head{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:start;gap:1rem;padding:1.15rem clamp(1rem,3vw,1.6rem);display:grid}.lab__no{font-family:var(--font-mono);color:var(--filament);padding-top:.15rem;font-size:.8rem}.lab__title{font-size:clamp(1.05rem,2.4vw,1.3rem);font-weight:700}.lab__note{color:var(--muted);max-width:44rem;margin-top:.2rem;font-size:.88rem}.lab__tag{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:.28rem .6rem;font-size:.68rem}.lab__stage{background:var(--enclosure);position:relative;overflow:hidden}.lab__foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.9rem clamp(1rem,3vw,1.6rem);display:flex}.lab__ctrl{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--panel-raised);border:1px solid var(--line);cursor:pointer;transition:color .2s var(--ease-in-place), border-color .2s var(--ease-in-place);border-radius:3px;padding:.45rem .8rem;font-size:.75rem}.lab__ctrl:hover{color:var(--chalk);border-color:var(--line-strong)}.lab__ctrl.is-active{color:var(--enclosure);background:var(--filament);border-color:var(--filament)}.lab__field{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.6rem;font-size:.72rem;display:flex}.lab__range{appearance:none;background:var(--rail);cursor:pointer;border-radius:2px;width:clamp(80px,18vw,150px);height:2px}.lab__range::-webkit-slider-thumb{appearance:none;background:var(--filament);border:2px solid var(--enclosure);cursor:pointer;border-radius:50%;width:13px;height:13px}.lab__range::-moz-range-thumb{border:2px solid var(--enclosure);background:var(--filament);cursor:pointer;border-radius:50%;width:13px;height:13px}.lab__read{font-family:var(--font-mono);color:var(--chalk);font-variant-numeric:tabular-nums;font-size:.82rem}.lab__read b{color:var(--filament);font-weight:500}.lab__legend{font-family:var(--font-mono);color:var(--muted);margin-left:auto;font-size:.72rem}.neon{place-items:center;min-height:300px;padding:2rem 1rem;display:grid}.neon__sign{font-family:var(--font-display);font-variation-settings:"wdth" 75;letter-spacing:.04em;color:#fff6e2;text-shadow:0 0 4px #fff6e2, 0 0 12px var(--filament), 0 0 34px #ffb443b3, 0 0 70px #ffb44373;flex-wrap:wrap;justify-content:center;font-size:clamp(2.2rem,9vw,5rem);font-weight:900;line-height:1;display:flex}.neon__l{animation:4.4s step-end infinite neon-hum}.neon__l--bad{animation:2.7s step-end infinite neon-bad}.neon__l--worse{animation:3.9s step-end .6s infinite neon-bad}.neon__space{width:.4em}@keyframes neon-hum{0%,96%{opacity:1}97%{opacity:.82}98%{opacity:1}99%{opacity:.88}}@keyframes neon-bad{0%,62%{opacity:1}63%{opacity:.12}64%{opacity:1}66%{opacity:.1}67%{opacity:.6}68%{opacity:1}86%{opacity:1}87%{opacity:.08}89%{opacity:1}}.neon__sub{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);text-align:center;margin-top:1.2rem;font-size:.75rem}.neon__wash{pointer-events:none;background:radial-gradient(60% 50% at 50% 45%,#ffb44324,#0000 70%);animation:4.4s step-end infinite neon-wash;position:absolute;inset:0}@keyframes neon-wash{0%,96%{opacity:1}97%{opacity:.7}98%{opacity:1}99%{opacity:.8}}.coil{cursor:crosshair;touch-action:pan-y;width:100%;height:380px;display:block}.scope{aspect-ratio:16/7;background:#080b0d;width:100%;height:auto;display:block}.scope__grid{stroke:#e9edf012;stroke-width:.5px;fill:none}.scope__axis{stroke:#e9edf029;stroke-width:.7px;fill:none}.scope__ghost{fill:none;stroke:var(--filament);stroke-width:1.1px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.scope__trace{fill:none;stroke:#fff6e2;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.scope__label{font-family:var(--font-mono);fill:var(--muted);font-size:6px}.drift{width:100%;height:300px;display:block}.drift__warn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--enclosure);background:var(--filament);opacity:0;transition:opacity .3s var(--ease-in-place), transform .3s var(--ease-out);pointer-events:none;border-radius:2px;padding:.3rem .6rem;font-size:.72rem;position:absolute;top:1rem;right:1rem;transform:translateY(-6px)}.drift__warn.is-on{opacity:1;transform:none}.field{width:100%;height:340px;display:block}.field__fallback{text-align:center;color:var(--muted);font-family:var(--font-mono);padding:3rem 1.5rem;font-size:.82rem;display:none}.field__fallback.is-on{display:block}.meter{aspect-ratio:3/2;width:100%;max-width:620px;height:auto;margin:0 auto;padding:1rem 0;display:block}.meter__face{fill:var(--panel-raised);stroke:var(--line)}.meter__arc{fill:none;stroke:#e9edf040;stroke-width:.8px}.meter__mirror{fill:none;stroke:#ffb4432e;stroke-width:3px}.meter__tick{stroke:var(--chalk);stroke-width:1px}.meter__tick--minor{stroke:#e9edf066;stroke-width:.6px}.meter__num{font-family:var(--font-mono);fill:var(--chalk);text-anchor:middle;font-size:6.5px}.meter__unit{font-family:var(--font-mono);fill:var(--filament);text-anchor:middle;letter-spacing:.1em;font-size:7px}.meter__needle{stroke:var(--filament);stroke-width:1.6px;stroke-linecap:round}.meter__weight{fill:var(--filament)}.meter__pivot{fill:var(--rail);stroke:var(--line-strong)}.relays{flex-wrap:wrap;justify-content:center;gap:clamp(.5rem,2vw,1.2rem);padding:2rem clamp(.75rem,3vw,1.5rem) 1rem;display:flex}.relay{background:var(--panel-raised);border:1px solid var(--line);cursor:pointer;width:clamp(62px,13vw,86px);color:inherit;text-align:center;border-radius:3px 3px 2px 2px;padding:.6rem .5rem .5rem;position:relative}.relay:hover{border-color:var(--line-strong)}.relay__svg{width:100%;height:auto;overflow:visible}.relay__coil{fill:none;stroke:var(--rail);stroke-width:3px;stroke-linecap:round}.relay__coil-live{fill:none;stroke:var(--filament);stroke-width:3px;stroke-linecap:round;opacity:0}.relay__arm{fill:var(--muted);transform-origin:6px 10px}.relay__contact{fill:var(--rail)}.relay__contact-live{fill:var(--filament);opacity:0}.relay__name{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);margin-top:.4rem;font-size:.62rem;display:block}.relay__bus{background:var(--rail);height:2px;margin:0 clamp(.75rem,3vw,1.5rem) 1.5rem;position:relative;overflow:hidden}.relay__bus-live{background:var(--filament);transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.circuit{aspect-ratio:16/8;width:100%;height:auto;padding:.5rem 0;display:block}.circuit__wire{fill:none;stroke:var(--rail);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.circuit__wire.is-live{stroke:var(--filament)}.circuit__flow{fill:none;stroke:#fff6e2;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:3 11;opacity:0}.circuit__flow.is-live{opacity:.9}.circuit__sw{cursor:pointer}.circuit__sw-body{fill:var(--panel-raised);stroke:var(--line-strong);stroke-width:1px}.circuit__sw:hover .circuit__sw-body{stroke:var(--filament)}.circuit__blade{stroke:var(--chalk);stroke-width:2.4px;stroke-linecap:round;transition:transform .22s var(--ease-out)}.circuit__label{font-family:var(--font-mono);fill:var(--muted);text-anchor:middle;font-size:7px}.circuit__lamp-glass{fill:var(--panel-raised);stroke:var(--line-strong);stroke-width:1px}.circuit__lamp-fil{fill:none;stroke:var(--filament);stroke-width:1.6px;stroke-linecap:round;opacity:0}.circuit__lamp-halo{fill:var(--filament);opacity:0}.circuit__fault{background:var(--panel-raised);border:1px solid var(--filament);text-align:center;opacity:0;pointer-events:none;transition:opacity .25s var(--ease-in-place), transform .25s var(--ease-out);border-radius:4px;padding:1rem 1.25rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.94)}.circuit__fault.is-on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.circuit__fault-title{font-family:var(--font-display);color:var(--filament);font-size:1.05rem;font-weight:800}.circuit__fault-text{color:var(--muted);max-width:22rem;margin:.35rem 0 .8rem;font-size:.82rem}.meterbox{grid-template-columns:minmax(0,1fr);justify-items:center;gap:1.25rem;padding:1.5rem clamp(1rem,3vw,1.6rem);display:grid}.odo{border:1px solid var(--line-strong);background:#06090b;border-radius:3px;gap:2px;padding:.45rem;display:flex}.odo__digit{background:var(--panel-raised);border-radius:2px;width:clamp(22px,5vw,30px);height:clamp(34px,7.5vw,46px);position:relative;overflow:hidden}.odo__digit--dec{background:#3a2a12}.odo__strip{width:100%;font-family:var(--font-mono);text-align:center;color:var(--chalk);will-change:transform;font-size:clamp(1.1rem,2.6vw,1.5rem);line-height:clamp(34px,7.5vw,46px);position:absolute;top:0;left:0}.odo__digit--dec .odo__strip{color:var(--filament)}.odo__unit{font-family:var(--font-mono);color:var(--muted);align-self:center;margin-left:.5rem;font-size:.8rem}.disc{width:clamp(120px,26vw,165px);height:clamp(120px,26vw,165px);position:relative}.disc__svg{width:100%;height:100%}.disc__plate{fill:url(#disc-metal);stroke:var(--line-strong)}.disc__brush{stroke:#e9edf017;stroke-width:.9px;stroke-linecap:round}.disc__brush--deep{stroke:#e9edf029}.disc__hub{fill:#1e262d;stroke:var(--line-strong)}.disc__index{fill:var(--filament)}.disc__mark{fill:#d8452f}.disc__spin{transform-origin:60px 60px;will-change:transform}.loads{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.cable{cursor:grab;touch-action:pan-y;width:100%;height:320px;display:block}.cable:active{cursor:grabbing}.thermal{touch-action:pan-y;height:340px;position:relative;overflow:hidden}.thermal__layer{position:absolute;inset:0}.thermal__hot{-webkit-mask-image:radial-gradient(circle var(--lens,92px) at var(--lx,50%) var(--ly,50%), #000 0, #000 62%, transparent 100%);-webkit-mask-image:radial-gradient(circle var(--lens,92px) at var(--lx,50%) var(--ly,50%), #000 0, #000 62%, transparent 100%);mask-image:radial-gradient(circle var(--lens,92px) at var(--lx,50%) var(--ly,50%), #000 0, #000 62%, transparent 100%)}.thermal__ring{pointer-events:none;will-change:transform;border:1px solid #ffb4438c;border-radius:50%;width:184px;height:184px;margin:-92px 0 0 -92px;position:absolute;top:0;left:0}.thermal__hud{font-family:var(--font-mono);color:var(--chalk);border:1px solid var(--line);pointer-events:none;background:#06090bbf;border-radius:3px;padding:.5rem .7rem;font-size:.75rem;position:absolute;top:1rem;left:1rem}.thermal__hud b{color:var(--filament);font-weight:500}.thermal__hud.is-hot b{color:#fff6e2}.thermal__scale{pointer-events:none;width:130px;position:absolute;bottom:1rem;right:1rem}.thermal__bar{background:linear-gradient(90deg, #1a2127, #6b4a17, var(--filament), #fff6e2);border-radius:2px;height:7px}.thermal__scale-line{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;margin-top:.25rem;font-size:.62rem;display:flex}.arc{text-align:center;place-items:center;min-height:260px;padding:2rem 1rem;display:grid}.arc__warn{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem;font-size:.72rem}.arc__btn{font-family:var(--font-display);font-variation-settings:"wdth" 100;color:var(--enclosure);background:var(--filament);cursor:pointer;transition:transform .2s var(--ease-out);border:none;border-radius:3px;padding:.9rem 2rem;font-size:clamp(1.1rem,3.4vw,1.5rem);font-weight:800}.arc__btn:hover{transform:translateY(-2px)}.arc__btn:disabled{opacity:.4;cursor:default;transform:none}.arc__state{font-family:var(--font-mono);color:var(--muted);min-height:1.2em;margin-top:1.1rem;font-size:.78rem}.flash{z-index:90;pointer-events:none;opacity:0;position:fixed;inset:0}.flash__white{opacity:0;background:radial-gradient(40% 40% at 50% 45%,#fff,#ffb443 45%,#0000 75%);position:absolute;inset:0}.flash__dark{opacity:0;background:#05070a;position:absolute;inset:0}.shake{animation:arc-shake .5s var(--ease-in-place)}@keyframes arc-shake{0%,to{transform:translate(0,0)}10%{transform:translate(-6px,3px)}22%{transform:translate(5px,-4px)}35%{transform:translate(-4px,-2px)}48%{transform:translate(3px,3px)}62%{transform:translate(-2px,-1px)}78%{transform:translate(1px,1px)}}.volt{text-align:center;padding:clamp(2.5rem,6vw,4rem) clamp(1rem,3vw,2rem)}.volt__line{font-family:var(--font-display);font-variation-settings:"wdth" 108;letter-spacing:-.01em;font-size:clamp(1.5rem,5.2vw,3rem);font-weight:800;line-height:1.1}.volt__c{white-space:pre;will-change:transform, opacity;display:inline-block}.volt__c.is-scr{color:var(--filament);font-family:var(--font-mono)}.dirs{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:clamp(1.25rem,3vw,2rem);display:grid}.dir{border:1px solid var(--line);background:var(--panel);border-radius:4px;flex-direction:column;display:flex;overflow:hidden}.dir:hover{border-color:var(--line-strong)}.dir__viewport{aspect-ratio:1280/800;background:var(--enclosure);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.dir__frame{transform-origin:0 0;pointer-events:none;border:0;width:1280px;height:800px;position:absolute;top:0;left:0}.dir__open{opacity:0;transition:opacity .28s var(--ease-in-place);background:#06090bb8;place-items:center;display:grid;position:absolute;inset:0}.dir__open:hover,.dir__open:focus-visible{opacity:1}.dir__open span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--enclosure);background:var(--filament);border-radius:3px;padding:.6rem 1.1rem;font-size:.78rem}.dir__body{flex-direction:column;flex:1;padding:1.1rem clamp(1rem,3vw,1.4rem) 1.3rem;display:flex}.dir__name{font-size:1.1rem;font-weight:700}.dir__for{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--filament);margin-bottom:.35rem;font-size:.68rem}.dir__text{color:var(--muted);flex:1;margin-top:.4rem;font-size:.88rem}.dir__swatches{gap:5px;margin-top:1rem;display:flex}.dir__sw{border:1px solid #e9edf024;border-radius:3px;width:22px;height:22px}.lab-chapter{align-items:baseline;gap:1rem;padding:clamp(3rem,8vh,5rem) 0 1.5rem;display:flex}.lab-chapter__no{font-family:var(--font-mono);color:var(--filament);font-size:.75rem}.lab-chapter__title{font-size:clamp(1.4rem,3.6vw,2rem)}.lab-chapter__rule{background:var(--line);flex:1;height:1px}.lab-back{text-align:center;padding:clamp(3rem,8vh,5rem) 0 clamp(4rem,10vh,7rem)}@keyframes circuit-march{to{stroke-dashoffset:-14px}}.circuit__flow.is-live{animation:.5s linear infinite circuit-march}.lab:not(.is-onstage) .neon__l,.lab:not(.is-onstage) .neon__wash,.lab:not(.is-onstage) .circuit__flow{animation-play-state:paused}.nav__link.is-current{color:var(--filament)}@media (max-width:640px){.lab__head{grid-template-columns:auto 1fr}.lab__tag{grid-column:2}.coil,.cable{height:280px}.field,.thermal{height:260px}.drift{height:240px}}@media (prefers-reduced-motion:reduce){.neon__l,.neon__l--bad,.neon__l--worse,.neon__wash,.shake{animation:none!important}.lab-hero__boot-fill{transition:none;transform:scaleX(1)}.lab:before{opacity:.5;transition:none;transform:scaleY(1)}}
