.con-stage{gap:calc(var(--u) * 4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:60rem){.con-stage{grid-template-columns:minmax(0,1fr) 20rem}}.con-screen{min-height:calc(var(--u) * 30);justify-content:center;align-items:center;display:flex}.con-screen canvas{image-rendering:pixelated;touch-action:none;max-width:100%;height:auto;display:block}.con-side{gap:calc(var(--u) * 4);min-width:0;display:grid}.con-kv{gap:calc(var(--u) * .5) calc(var(--u) * 3);font-family:var(--font-mono);font-size:var(--text-fine);grid-template-columns:auto 1fr;display:grid}.con-kv span{color:var(--color-glass-muted)}.con-kv b{color:var(--color-glass);text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.con-note{margin:calc(var(--u) * 3) 0 0;font-size:var(--text-micro);color:var(--color-glass-muted);line-height:1.55}.con-note b{color:var(--color-glass);font-weight:500}.workbench.has-transport .con-own-transport{display:none}.con-bar{gap:calc(var(--u) * 2);margin-top:calc(var(--u) * 3);flex-wrap:wrap;display:flex}.gates{margin-top:calc(var(--u) * 2);gap:1px;display:grid}.gate{gap:calc(var(--u) * 1.5);font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-glass-muted);grid-template-columns:auto 1fr auto;align-items:baseline;padding:1px 0;display:grid}.gate b{color:var(--color-glass-muted);font-weight:600}.gate span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gate i{width:calc(var(--u) * 4);text-align:center;border-radius:1px;font-style:normal;font-weight:600}.gate.hi b{color:var(--color-ocean)}.gate.hi i{color:var(--color-panel);background:var(--color-ocean)}.gate.lo i{color:var(--color-panel);background:var(--color-mustard)}.pad{grid-template-columns:repeat(3, calc(var(--u) * 11));gap:calc(var(--u) * 1);margin-top:calc(var(--u) * 2);justify-content:center;display:grid}.pad .u{grid-column:2}.pad .l{grid-area:2/1}.pad .d{grid-area:2/2}.pad .r{grid-area:2/3}.legend{gap:calc(var(--u) * 1);margin-top:calc(var(--u) * 2);display:grid}.legend span{gap:calc(var(--u) * 2);grid-template-columns:auto 1fr;align-items:center;display:grid}.legend i{width:calc(var(--u) * 4);height:calc(var(--u) * 4);image-rendering:pixelated;border:1px solid var(--color-rule-panel)}.con-err{color:var(--color-red);font-family:var(--font-mono);font-size:var(--text-micro);margin:calc(var(--u) * 2) 0 0}.workbench .con-stage{grid-template-columns:minmax(0,1fr) minmax(20rem,26rem);align-items:start}@media (max-width:60rem){.workbench .con-stage{grid-template-columns:minmax(0,1fr)}}
.shell{--shell-face:var(--color-panel);--shell-lit:var(--color-panel-raised);--shell-shade:var(--color-panel-sunk);--shell-edge:var(--color-rule-panel);--shell-a:var(--color-accent);--shell-b:var(--color-ocean);--shell-coin:var(--color-mustard);--shell-led-boot:var(--color-orange);--shell-led-live:var(--color-blue);background:var(--shell-face);width:100%;height:100%;color:var(--color-glass);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;touch-action:none;position:relative;overflow:hidden}.shell-stage{height:calc(100dvh - var(--app-head-h,3.5rem) - var(--strip-h,4rem));min-height:20rem}html.has-fullscreen .shell-stage{height:calc(100dvh - var(--strip-h,4rem))}.console-full{background:var(--color-panel);inset:0 0 var(--strip-h,4rem) 0;min-height:0;position:fixed;overflow:hidden}.console-full .shell-main{box-sizing:border-box;height:100%;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px)}.console-full .shell-stage{height:100%;min-height:0}.console-full .con-head{height:0;overflow:hidden}html:has(.console-full){overflow:hidden}html:has(.console-full) body{overflow:hidden}.workbench.has-transport .shell-main{padding-bottom:0}.shell-bg{display:block;position:absolute;inset:0}.facet.bezel.lit,.facet.fill.lit{fill:var(--shell-lit)}.facet.bezel.shade,.facet.fill.shade{fill:var(--shell-shade)}.facet.fill{fill-opacity:.85}.mask-edge{fill:var(--shell-shade);stroke:var(--shell-edge);stroke-width:.5px;vector-effect:non-scaling-stroke}.dock{position:absolute}.dock .part{display:block;position:absolute;inset:0;overflow:visible}.dock.ghost .part{opacity:.45}.dock .hit{appearance:none;color:inherit;cursor:pointer;border-radius:var(--radius-hair);touch-action:none;background:0 0;border:0;margin:0;padding:0;position:absolute}.dock .hit:disabled{cursor:not-allowed}.dock .hit{font:600 var(--text-micro) var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-glass);place-items:center;display:grid}.dock .hit .lb{pointer-events:none;text-shadow:0 1px 0 var(--color-panel-sunk)}.dock .hit .lb.key{font-size:var(--text-body);color:var(--color-panel);text-shadow:none}.dock .hit .lb.glyph{font-size:var(--text-body);letter-spacing:0}.dock .hit:disabled .lb{opacity:.75}.dock[data-id=ab] .hit{align-items:center}.dock[data-id=power] .hit[data-act=reset] .lb{color:var(--color-panel)}.dock[data-id=power] .hit[data-act=pace]{justify-content:center}.dock[data-id=power] .hit[data-act=pace] .lb{font-size:var(--text-micro)}.cart-btn .cart-name{height:50%;font:600 var(--text-micro) var(--font-mono);color:var(--color-panel);text-align:center;pointer-events:none;place-items:center;line-height:1.1;display:grid;position:absolute;top:12%;left:8%;right:8%;overflow:hidden}.dock .hit:focus-visible{outline:2px solid var(--color-blue);outline-offset:1px}.part .face{fill:var(--shell-lit);stroke:var(--shell-edge);stroke-width:.5px}.part .plate,.part .chiclet,.part .tray,.part .key{stroke:var(--shell-edge);stroke-width:.5px;vector-effect:non-scaling-stroke}.part .face{vector-effect:non-scaling-stroke}.part .shade,.part .well,.part .tray{fill:var(--shell-shade)}.part .pill{fill:var(--shell-lit);stroke:var(--shell-edge);stroke-width:.5px;vector-effect:non-scaling-stroke}.part .arrow{fill:var(--color-glass-muted)}.part .pivot{fill:var(--shell-shade);stroke:var(--shell-edge);stroke-width:.5px;vector-effect:non-scaling-stroke}.part .key-a{fill:var(--shell-a)}.part .key-b{fill:var(--shell-b)}.part .key+.well{fill-opacity:.35}.part .knob{fill:var(--color-glass-muted);display:none}.shell[data-pace=fast] .part .knob[data-pos=fast],.shell[data-pace=slow] .part .knob[data-pos=slow]{display:block}.part .chiclet{fill:var(--color-glass-muted)}.part .plate{fill:var(--shell-lit)}.part .slot{fill:var(--shell-shade)}.part .coin{fill:var(--shell-coin);opacity:0}.part .chip{fill:var(--shell-lit);stroke:var(--shell-edge);stroke-width:.5px}.part .dot{fill:var(--shell-edge)}.part .dot.on{fill:var(--shell-accent,var(--shell-a))}.part .chev{stroke:var(--color-glass-muted);stroke-width:1px}.part .seg{fill:var(--shell-shade)}.part .seg.on{fill:var(--shell-coin)}.part .legend{fill:var(--color-glass);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.part .key+.well+.legend{fill:var(--color-panel)}.dock[data-id=ab] .legend{fill:var(--color-panel);font-weight:600}.dock[data-id=ab] .part{opacity:.55}.part .led{fill:var(--shell-shade);stroke:var(--shell-edge);stroke-width:.5px}.shell[data-led=boot] .part .led{fill:var(--shell-led-boot);stroke:none}.shell[data-led=live] .part .led{fill:var(--shell-led-live);stroke:none}.shell[data-led=boot] .part .led{animation:shell-blink var(--t-strobe) steps(2) 4}@keyframes shell-blink{to{opacity:.3}}:is(.dock:has(.hit[data-dir=up]:active) .arrow[data-arm=up],.dock:has(.hit[data-dir=down]:active) .arrow[data-arm=down],.dock:has(.hit[data-dir=left]:active) .arrow[data-arm=left],.dock:has(.hit[data-dir=right]:active) .arrow[data-arm=right]){fill:var(--shell-accent,var(--shell-a))}:is(.dock:has(.hit[data-act=select]:active) [data-pill=select] .pill,.dock:has(.hit[data-act=start]:active) [data-pill=start] .pill){fill:var(--shell-shade)}.dock:has(.hit[data-act=reset]:active) .chiclet{fill:var(--color-glass)}.dock:has(.hit[data-act=pace]:active) .knob{fill:var(--color-glass)}.shell[data-drop] .part .coin{opacity:1;animation:shell-drop .3s var(--ease-travel) forwards}@keyframes shell-drop{to{opacity:0;transform:translateY(70%)}}.shell[data-nudge] .part .slot,.shell[data-phase=over] .part .slot{animation:shell-pulse var(--t-glow) ease-in-out infinite}@keyframes shell-pulse{50%{fill:var(--shell-coin)}}.marquee{background:var(--shell-shade);border-radius:var(--radius-hair);white-space:nowrap;font-size:var(--text-fine);color:var(--shell-coin);letter-spacing:var(--tracking-caps);text-transform:uppercase;align-items:center;line-height:1;display:flex;position:absolute;inset:0;overflow:hidden}.marquee span{padding-inline:calc(var(--u) * 2);animation:12s linear infinite shell-marquee}@keyframes shell-marquee{0%{transform:translate(100%)}to{transform:translate(-100%)}}.shell[data-phase=live] .marquee span{animation-play-state:paused;transform:none}.shelf-row{justify-content:center;align-items:flex-end;gap:2%;display:flex;position:absolute;inset:0}.shelf-row.stack{flex-direction:column;justify-content:flex-start;align-items:center;gap:4%}.shelf-rail{background:var(--shell-shade);border-top:1px solid var(--shell-edge);height:12%;position:absolute;bottom:0;left:0;right:0}.shelf-row.stack .shelf-rail{border-top:0;border-left:1px solid var(--shell-edge);width:12%;height:auto;inset:0 0 0 auto}.cart-btn{appearance:none;z-index:1;cursor:pointer;color:inherit;justify-items:center;gap:calc(var(--u) * 1);border-radius:var(--radius-hair);background:0 0;border:0;margin:0;padding:0;display:grid;position:relative;overflow:hidden}.cart-btn .part{width:100%;height:100%;display:block;position:static}.cart-btn:focus-visible{outline:2px solid var(--color-blue);outline-offset:2px}.part .cart-shell{fill:var(--shell-lit);stroke:var(--shell-edge);stroke-width:.5px}.part .cart-label{fill:var(--cart,var(--shell-a))}.part .cart-notch{fill:var(--shell-shade)}.cart-btn.on .part .cart-shell{stroke:var(--color-glass)}.cart-slot{border:1px dashed var(--shell-edge);border-radius:var(--radius-hair);width:100%;height:100%;display:block}.cart-load:hover .cart-slot{border-color:var(--color-glass-muted)}.cart-cap{font-size:var(--text-micro);color:var(--color-glass-muted)}.glass{background:var(--shell-shade);cursor:grab;place-items:center;display:grid;position:absolute;overflow:hidden}.glass:active{cursor:grabbing}.shell:not([data-solved]) .glass{width:100%;min-height:18rem;position:relative}.shell:not([data-solved]) .dock{visibility:hidden}.glass .screen{z-index:1;place-items:center;display:grid;position:relative}.glass canvas{image-rendering:pixelated;max-width:100%;height:auto;display:block}.shell[data-phase=paused] .glass canvas,.shell[data-off] .glass canvas{filter:brightness(.5)}.shell[data-off] .glass canvas{filter:brightness(.15)}.glass[data-cramped] .screen:after{content:"small";text-align:center;font-size:var(--text-micro);color:var(--color-glass-muted);position:absolute;inset:auto 0 0}.hud{z-index:3;text-align:center;pointer-events:none;font-size:var(--text-data);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--shell-coin);text-shadow:0 1px 0 var(--color-panel-sunk), 0 -1px 0 var(--color-panel-sunk), 1px 0 0 var(--color-panel-sunk), -1px 0 0 var(--color-panel-sunk);margin:0;font-weight:600;position:absolute;top:12%;left:10%;right:10%}.hud:empty{display:none}.shell[data-phase=over] .hud{animation:shell-attract var(--t-glow) steps(2) infinite}@keyframes shell-attract{50%{opacity:.25}}.shell:not([data-page=play]) .hud{display:none}.fx{z-index:2;pointer-events:none;display:none;position:absolute;inset:0}.shell[data-page=play] .fx{display:block}.fx-scan{background:repeating-linear-gradient(to bottom, transparent 0 2px, var(--color-panel-sunk) 2px 3px);opacity:0}.shell[data-scan="1"] .fx-scan{opacity:.18}.shell[data-scan="2"] .fx-scan{opacity:.36}.shell[data-scan="3"] .fx-scan{opacity:.55}.fx-crt{opacity:0;background:linear-gradient(to right, var(--color-panel-sunk) 0 2%, transparent 2% 6%, transparent 94% 98%, var(--color-panel-sunk) 98%), linear-gradient(to bottom, var(--color-panel-sunk) 0 2%, transparent 2% 6%, transparent 94% 98%, var(--color-panel-sunk) 98%)}.shell[data-crt] .fx-crt{opacity:.6}.shell[data-tv=PAL] .glass canvas{filter:saturate(.85)contrast(1.05)}.fx-wipe{background:repeating-linear-gradient(to bottom, var(--color-panel-sunk) 0 25%, transparent 25% 50%);opacity:0}.shell[data-wipe] .fx-wipe{opacity:1;animation:.36s steps(4,end) forwards shell-wipe;display:block}@keyframes shell-wipe{to{opacity:0;transform:translateY(-50%)}}.shell[data-wear] .glass:after{content:"";z-index:2;pointer-events:none;background:var(--color-glass-muted);opacity:.35;width:30%;height:2px;position:absolute;top:4%;left:6%}.pages{z-index:4;width:100%;transition:transform var(--t-slide) var(--ease-detent);pointer-events:none;display:flex;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.pages{transition:none}.marquee span{animation:none}}.pane{box-sizing:border-box;height:100%;padding:calc(var(--u) * 4) calc(var(--u) * 6);background:var(--color-panel);pointer-events:auto;flex:0 0 100%;overflow:auto}.pane-play{pointer-events:none;background:0 0}.shell[data-page=play] .pages{pointer-events:none}.pane-title{margin:0 0 calc(var(--u) * 3);font:600 var(--text-fine) var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-glass-muted)}.shelf-grid{gap:calc(var(--u) * 3);grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));display:grid}.shelf-grid .cart-btn{width:100%}.shelf-grid .cart-btn .part{aspect-ratio:48/40;height:auto}.shelf-grid .cart-name{display:none}.shelf-grid .cart-load{display:grid}.shelf-grid .cart-load .cart-slot{min-height:calc(var(--u) * 12)}.toys{gap:calc(var(--u) * 3);font-size:var(--text-fine);display:grid}.toys label{align-items:center;gap:calc(var(--u) * 2);grid-template-columns:7rem 1fr;display:grid}.toys label>span:first-child{color:var(--color-glass-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps);font-size:var(--text-micro)}.toys label small{color:var(--color-glass-muted);font-size:var(--text-micro);grid-column:1/-1;line-height:1.5}.toys label.no{opacity:.7}.toys input[type=range]{width:100%;accent-color:var(--shell-coin)}.toys input[type=checkbox]{accent-color:var(--shell-coin);justify-self:start;width:1rem;height:1rem}.toys .seg{gap:1px;display:inline-flex}.toys .seg button{appearance:none;border:1px solid var(--shell-edge);background:var(--shell-lit);color:var(--color-glass-muted);font:inherit;padding:calc(var(--u) * 1) calc(var(--u) * 3);cursor:pointer;border-radius:var(--radius-hair)}.toys .seg button.on{background:var(--shell-coin);color:var(--color-panel);border-color:var(--shell-coin)}.pane-status .con-kv,.pane-status .con-note{margin-top:calc(var(--u) * 2)}.pane-status .gates,.pane-status .legend{margin-top:calc(var(--u) * 3)}.pane-status .con-note a{color:var(--color-glass);text-underline-offset:.15em;text-decoration:underline}.pane-status h3{margin:calc(var(--u) * 4) 0 0;font:600 var(--text-fine) var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-glass-muted)}.params{z-index:5;right:calc(var(--u) * 2);bottom:calc(var(--u) * 1);color:var(--color-glass-muted);opacity:.6;pointer-events:none;text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:60%;margin:0;font-size:9px;position:absolute;overflow:hidden}
