[data-fig]{--glass-on:color-mix(in oklab, var(--accent) 16%, var(--glass));--accent-dim:color-mix(in oklab, var(--accent) 11%, transparent);transition:background .5s}[data-fig].powered{background:radial-gradient(ellipse 50% 45% at 50% 52%, var(--accent-dim), transparent 72%)}[data-fig]>.stage{touch-action:manipulation;outline:none;width:100%;height:100%;display:block}[data-fig]>.stage:focus-visible{outline:1px dashed var(--edge);outline-offset:4px;border-radius:10px}.face{fill:var(--body);stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.face.top{fill:var(--deck)}.face.glass{fill:var(--glass)}.band{stroke:none}.edge{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.detail{fill:none;stroke:var(--detail);stroke-width:1px;vector-effect:non-scaling-stroke}.press{cursor:pointer;transition:transform 60ms ease-out}.press.down{transform:translateY(4px)}.press.down .face{stroke:var(--live)}.stage text{fill:var(--line);font-family:var(--mono);letter-spacing:.08em}.stage .lcd{fill:var(--live)}.stage .lcd.dim{fill:var(--detail)}.deco{pointer-events:none}.part.sel .face,.part.linked .face,.part.hover .face{stroke:var(--live)}.part.sel .face.top{fill:var(--live)}.stage .part.sel text{fill:var(--body)}.part.sel .detail{stroke:var(--body)}.part.dim .face{stroke:var(--detail)}.stage .part.dim text{fill:var(--detail)}.trace{fill:none;stroke:var(--detail);stroke-width:1px;vector-effect:non-scaling-stroke}.flow{fill:none;stroke:var(--live);stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-dasharray:3 9;opacity:0;pointer-events:none;transition:opacity .15s}.flow.on{opacity:1;animation:.9s linear infinite iso-flow}.flow.rev{animation-direction:reverse}@keyframes iso-flow{to{stroke-dashoffset:-12px}}.layer{transition:transform .38s cubic-bezier(.2,.7,.2,1)}.cut .face{fill-opacity:0;stroke:var(--detail)}.stage .cut text{fill:var(--detail)}:is(.hud,#hud){pointer-events:none}:is(.hud,#hud) .leader{fill:none;stroke:var(--live);stroke-width:1px;vector-effect:non-scaling-stroke}:is(.hud,#hud) .dot{fill:var(--live)}.stage :is(.hud,#hud) text{fill:var(--live);paint-order:stroke;stroke:var(--panel);stroke-linejoin:round}@media (prefers-reduced-motion:reduce){.press,.layer{transition:none}.flow.on{stroke-dasharray:none;animation:none}}.stage .glass{fill:var(--glass);transition:fill .3s,stroke .3s}.stage .glass.hot{fill:var(--glass-on);stroke:var(--accent)}.stage .glow-halo{fill:var(--accent);opacity:0;pointer-events:none;transition:opacity .4s}.stage .glow-halo.hot{opacity:.24}.stage .led{fill:var(--detail);transition:fill .2s}.stage .led.hot{fill:var(--accent)}.stage .wire{fill:none;stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}.stage .wire.hot{stroke:var(--accent)}.stage .wire-under{fill:none;stroke:var(--panel);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.stage .pulse{fill:none;stroke:var(--accent-hi);stroke-width:2.2px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:70 1200;stroke-dashoffset:70px;opacity:0;pointer-events:none}.stage .pulse.go{animation:.55s linear iso-pulse}@keyframes iso-pulse{0%{stroke-dashoffset:70px;opacity:1}90%{opacity:1}to{stroke-dashoffset:-1000px;opacity:0}}.stage .press .face{transition:fill .6s ease-out,stroke .6s ease-out}.stage .press.flash .face,.stage .press.latched .face{fill:var(--accent);stroke:var(--accent-hi);transition:none}.stage .press.flash .face.top,.stage .press.latched .face.top{fill:var(--accent-hi)}.stage .press.flash{filter:url(#fx-glow)}.stage .press.latched{filter:url(#fx-soft)}@media (prefers-reduced-motion:reduce){.stage .glass,.stage .glow-halo,.stage .press .face,.stage .wire{transition:none}.stage .pulse.go{animation:none}}:is([data-fig],[data-loop]) svg.iso{--iso-accent:var(--accent);--iso-lit:var(--accent);--iso-glow:color-mix(in oklab, var(--accent) 55%, transparent);--iso-glow-soft:color-mix(in oklab, var(--accent) 22%, transparent)}[data-loop]{--bg:var(--panel);--fg:var(--live)}.iso .glow-halo,.iso .glow-halo [class]{fill:var(--iso-accent);stroke:none}.iso .glow-halo{opacity:.26;filter:url(#fx-bloom);pointer-events:none}
