:root{--ink:#100f0f;--panel:#f2f0e5;--line:#e6e4d9;--line-background:var(--line);--line-hover:#dad8ce;--line-active:#cecdc3;--faint:#b7b5a9;--body:#100f0f;--paper:#fffcf0;--red:#d14d41;--orange:#da702c;--yellow:#d0a215;--green:#879a39;--cyan:#3aa99f;--blue:#4385be;--purple:#8b7ec8;--magenta:#ce5d97;--syntax-red:#e8705f;--syntax-orange:#ec8b49;--syntax-yellow:#dfb431;--syntax-green:#a0af54;--syntax-cyan:#5abdac;--syntax-blue:#66a0c8;--syntax-purple:#a699d0;--syntax-magenta:#e47da8;--syntax-muted:#9f9d96;--syntax-comment:#6f6e69;--accent:var(--cyan);--selection-background:#100f0f14;--bg:var(--paper);--text:var(--ink);--panel-deep:var(--line);--field:var(--paper);--warn:var(--orange);--danger:var(--red);--ochre:var(--yellow);--sand:var(--syntax-yellow);--terracotta:var(--red);--rust:var(--orange);--teal:var(--cyan);--teal-deep:var(--cyan);--cold-blue:var(--blue);--olive:var(--green);--violet:var(--faint);--sky:var(--paper);--plain:var(--paper);--board-top:var(--line-hover);--board-cliff:var(--red);--slab:var(--faint);--worker:var(--cyan);--cargo:var(--yellow);--held:var(--ink);--blocked:var(--orange);--violation:var(--red);--ring:var(--ink);--tile-a:var(--board-top);--tile-b:var(--line-active);--item:var(--cargo);--space-1:.2rem;--space-2:.5rem;--space-3:1rem;--space-4:2rem;--text-xs:.7rem;--text-sm:.85rem;--text-base:1rem;--text-lg:1.5rem;--text-xl:2rem;--radius:3px;--radius-pill:999px;font-size:18px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-ui,Arial, sans-serif);margin:0;line-height:1.5;overflow:hidden}#app{grid-template-columns:1fr 300px;height:100%;display:grid}#board{background:var(--plain);position:relative;overflow:hidden}.render-host{position:absolute;inset:0}.render-host .render-canvas{width:100%;height:100%;display:block}#board.is-violated .render-host{filter:saturate(.88)}.render-hud{pointer-events:none;font:inherit;color:var(--ink);position:absolute;inset:0}.render-readout{align-items:baseline;gap:var(--space-3);white-space:nowrap;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.render-goal,.render-pile{align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;letter-spacing:.06em;display:flex}.render-goal{transition:transform .1s ease-out}.render-goal.is-flip{transform:scale(1.09)}.render-pile-label{font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--syntax-comment)}.render-count{font-variant-numeric:tabular-nums;line-height:1}.render-goal-label{text-transform:uppercase}.render-pop{color:var(--ink);opacity:0;transition:opacity .18s ease-out,transform .7s cubic-bezier(.2,.7,.3,1);position:absolute;transform:translate(-50%,-50%)}.render-pop.is-live{opacity:1;transform:translate(-50%,-240%)}.render-debug{padding:var(--space-1) var(--space-2);background:#fffcf0d1;position:absolute;bottom:12px;left:12px}.render-fallback{place-items:center;height:100%;display:grid}#editor{border-left:1px solid var(--line);background:var(--panel);padding:var(--space-3);overflow-y:auto}.editor header{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}h1,h2,h3,h4{text-transform:uppercase;margin:0;font-weight:400;line-height:1.2}h1{font-size:var(--text-xl);letter-spacing:.08em}h2{font-size:var(--text-lg);letter-spacing:normal}h3{font-size:var(--text-base);letter-spacing:.2em}h4{font-size:var(--text-sm);letter-spacing:.16em}.t-label{font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--syntax-comment)}.t-quiet{color:var(--syntax-comment)}.t-num{font-variant-numeric:tabular-nums}.kv{white-space:nowrap;display:inline}.kv>*+*{margin-left:.4em}.kv-row{flex-wrap:wrap;align-items:baseline;gap:0 .5em;display:flex}.kv-row>.kv+.kv:before{content:"·";color:var(--syntax-muted);margin-left:0;margin-right:.5em}.hint{margin:var(--space-1) 0;color:var(--syntax-comment)}.row{gap:var(--space-1);margin:var(--space-2) 0;flex-wrap:wrap;display:flex}button{background:var(--panel);color:var(--text);border:1px solid var(--line-active);border-radius:var(--radius);padding:var(--space-1) var(--space-2);font:inherit;cursor:pointer}button:hover{border-color:var(--ink);background:var(--line-hover)}body:not(.play-mode) .ed-shell{--paper:var(--art-paper);--panel:var(--art-paper);--panel-deep:#d8cfb9;--field:#f4eddb;--ink:var(--art-ink);--text:var(--art-ink);--muted:#625b50;--faint:#756b5b;--line:#b7aa90;--line-active:var(--art-ink);--accent:var(--art-teal);--warn:var(--art-rust);font:14px/1.4 var(--font-ui)}body:not(.play-mode) .ed-topbar{border-bottom:1px solid var(--art-ink);padding:10px 14px}body:not(.play-mode) .ed-topbar .ed-logo{font-family:var(--font-display);letter-spacing:.03em;font-size:28px}body:not(.play-mode) .ed-slot{scrollbar-width:thin;scrollbar-color:var(--line) transparent}body:not(.play-mode) .ed-left,body:not(.play-mode) .ed-right{flex-direction:column;display:flex}body:not(.play-mode) .ed-slot>.panel{flex-shrink:0}body:not(.play-mode) .ed-left>[data-panel-id="tool.level-editor:level-editor"]{order:-1}body:not(.play-mode) .ed-right>[data-panel-id="tool.mixer:tool.mixer"]{order:2}body:not(.play-mode) .panel-head{background:var(--panel-deep);border-bottom:1px solid var(--line);padding:9px 12px}body:not(.play-mode) .panel-head>h2{font:600 11px/1.2 var(--font-ui);letter-spacing:.13em}body:not(.play-mode) .panel-body{padding:12px}body:not(.play-mode) .hint{color:var(--muted);font-size:12px;line-height:1.45}body:not(.play-mode) .panel button{letter-spacing:0;min-height:28px}body:not(.play-mode) .inspect-row{border-bottom-style:solid;padding:8px 0}body:not(.play-mode) .inspect-label{min-width:90px;color:var(--muted);font-size:12px}body:not(.play-mode) .inspect-value{font-variant-numeric:tabular-nums}body:not(.play-mode) .inspect-sub{color:var(--art-teal);margin-top:16px}body:not(.play-mode) .led-heading{margin-bottom:12px}body:not(.play-mode) .led-heading h3{font:600 28px/1.05 var(--font-display);text-transform:none;letter-spacing:-.02em;overflow-wrap:anywhere;margin:0}body:not(.play-mode) .led-board-meta{color:var(--muted);font-size:11px}body:not(.play-mode) .led-actions{grid-template-columns:1.35fr 1fr 1fr;gap:6px;margin-bottom:14px;display:grid}body:not(.play-mode) .led-actions button{min-height:36px;padding:4px;font-weight:600}body:not(.play-mode) .led-actions .led-playtest{background:var(--art-ink);color:var(--art-paper);border-color:var(--art-ink)}body:not(.play-mode) .led-playtest:before{content:"▶";margin-right:5px;font-size:10px}body:not(.play-mode) .led-actions .led-share{border-color:var(--art-ink)}body:not(.play-mode) .led-actions button:hover{background:var(--art-ochre);color:var(--art-ink)}body:not(.play-mode) .led-brush{border:1px solid var(--art-ink);background:var(--field);margin-bottom:14px;padding:10px;position:static}body:not(.play-mode) .brush-groups{gap:10px}body:not(.play-mode) .brush-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}body:not(.play-mode) .brush-group{color:var(--muted);letter-spacing:.12em;grid-column:1/-1;margin:0 0 1px;font-size:10px;font-weight:600}body:not(.play-mode) .brush-row:first-child{grid-template-columns:repeat(3,minmax(0,1fr))}body:not(.play-mode) .brush-row:nth-child(n+3){grid-template-columns:repeat(2,minmax(0,1fr))}body:not(.play-mode) .brush-btn{background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;padding:5px 2px;font-size:11px;line-height:1.2;display:flex}body:not(.play-mode) .brush-icon{font:22px/1 var(--font-ui);color:var(--art-teal)}body:not(.play-mode) .brush-btn.armed{background:var(--art-teal);color:var(--field);border-color:var(--art-teal)}body:not(.play-mode) .brush-btn.armed .brush-icon{color:inherit}body:not(.play-mode) .brush-btn:hover:not(:disabled):not(.armed){background:var(--art-ochre);border-color:var(--art-ink)}body:not(.play-mode) .brush-hint{margin:10px 0 0;font-size:11px}body:not(.play-mode) .led-group{margin:0;padding:0 0 5px}body:not(.play-mode) .led-group>summary{text-transform:capitalize;background:0 0;padding:10px 0;font-size:12px;font-weight:600}body:not(.play-mode) .led-group>summary:after{content:"+";color:var(--muted);margin-left:auto}body:not(.play-mode) .led-group[open]>summary:after{content:"−"}body:not(.play-mode) .led-row{gap:6px;margin:7px 0}body:not(.play-mode) .led-tag{min-width:40px;color:var(--muted);font-size:12px}body:not(.play-mode) .led-row input[type=text]{flex:1;width:80px;min-width:60px}body:not(.play-mode) .led-row input[type=number]{flex:1;width:44px;min-width:38px}body:not(.play-mode) .led-workbench input,body:not(.play-mode) .led-workbench select,body:not(.play-mode) .led-workbench textarea{padding:6px;font-size:12px}body:not(.play-mode) .led-workbench input:focus-visible,body:not(.play-mode) .led-workbench select:focus-visible,body:not(.play-mode) .led-workbench textarea:focus-visible{outline:2px solid var(--art-teal);outline-offset:1px}body:not(.play-mode) .led-height,body:not(.play-mode) .led-io{font-family:ui-monospace,monospace}body:not(.play-mode) .led-sub{letter-spacing:.03em;margin-top:14px;font-size:11px}body:not(.play-mode) .led-status{margin-top:12px;font-size:11px}body:not(.play-mode) .lib-row{border-bottom:1px solid var(--line);padding:8px 0}body:not(.play-mode) .lib-stamp{color:var(--muted);font-size:10px}body:not(.play-mode) .led-workbench .chalk-mark{font-size:11px}body:not(.play-mode) .ed-grid.ed-compact.ed-left-open .ed-left,body:not(.play-mode) .ed-grid.ed-compact.ed-right-open .ed-right{display:flex}#app.editor-root{height:100%;display:block}.ed-shell{flex-direction:column;height:100%;display:flex}.ed-topbar{align-items:center;gap:var(--space-2);padding:var(--space-2);border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;order:-1;min-width:0;display:flex}.ed-topbar .ed-logo{white-space:nowrap;color:var(--ink);font-size:var(--text-xl);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;flex:none;margin:0;padding:0;font-weight:400;line-height:1.2}.ed-toolbar{gap:var(--space-1);flex-wrap:nowrap;flex:0 auto;min-width:0;display:flex;overflow-x:auto}.ed-toolbar .command-btn{white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.ed-sound{padding:var(--space-1) var(--space-2);border:1px solid var(--ink);color:var(--ink);font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:#fffcf0d1;flex:none}.ed-sound:hover,.ed-sound:focus-visible{background:var(--paper)}.spacer{flex:1}.ed-grid{--ed-left-w:280px;--ed-right-w:280px;grid-template-columns:var(--ed-left-w) minmax(0, 1fr) var(--ed-right-w);flex:1;grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"left center right""bottom bottom bottom";min-height:0;display:grid;position:relative}.ed-grid.ed-compact{--ed-bottom-h:150px;grid-template:"center center center"minmax(0,1fr)"center center center"0/minmax(0,1fr) 0 0}body:not(.play-mode) .ed-grid.ed-compact .ed-slot{z-index:6;box-shadow:0 0 0 1px var(--line), 0 6px 24px #100f0f2e;display:none;position:absolute}body:not(.play-mode) .ed-grid.ed-compact.ed-left-open .ed-left{width:var(--ed-left-w);border-right:1px solid var(--line);display:block;top:0;bottom:0;left:0}body:not(.play-mode) .ed-grid.ed-compact.ed-right-open .ed-right{width:var(--ed-right-w);border-left:1px solid var(--line);display:block;top:0;bottom:0;right:0}body:not(.play-mode) .ed-grid.ed-compact.ed-bottom-open .ed-bottom{height:var(--ed-bottom-h);flex-direction:row;display:flex;bottom:0;left:0;right:0}.ed-tab{z-index:7;border:1px solid var(--line-active);background:var(--paper);min-width:26px;min-height:26px;color:var(--muted);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:0;line-height:1;display:none;position:absolute}body:not(.play-mode) .ed-grid.ed-compact .ed-tab{display:inline-flex}.ed-tab:hover,.ed-tab:focus-visible{color:var(--ink);border-color:var(--ink)}.ed-tab-left{border-left:none;top:50%;left:0;transform:translateY(-50%)}.ed-tab-right{border-right:none;top:50%;right:0;transform:translateY(-50%)}.ed-tab-bottom{border-bottom:none;bottom:0;left:50%;transform:translate(-50%)}body:not(.play-mode) .ed-grid.ed-compact.ed-left-open .ed-tab-left{left:var(--ed-left-w)}body:not(.play-mode) .ed-grid.ed-compact.ed-right-open .ed-tab-right{right:var(--ed-right-w)}body:not(.play-mode) .ed-grid.ed-compact.ed-bottom-open .ed-tab-bottom{bottom:var(--ed-bottom-h)}.ed-left{grid-area:left}.ed-center{background:var(--panel-deep);grid-area:center;min-width:0;min-height:0;position:relative;overflow:hidden}.ed-right{grid-area:right}.ed-bottom{grid-area:bottom}.ed-slot{background:var(--panel);min-height:0;position:relative;overflow:hidden auto}.ed-left{border-right:1px solid var(--line)}.ed-right{border-left:1px solid var(--line)}.ed-splitter{z-index:8;cursor:ew-resize;touch-action:none;background:0 0;width:7px;position:absolute;top:0;bottom:0}.ed-left>.ed-splitter{right:-4px}.ed-right>.ed-splitter{left:-4px}.ed-splitter:hover,.ed-splitter:focus-visible,body.ed-resizing .ed-splitter{background:color-mix(in srgb, var(--ink) 18%, transparent)}body.ed-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}body.ed-resizing iframe,body.ed-resizing canvas{pointer-events:none}.ed-bottom{border-top:1px solid var(--line);flex-direction:row;gap:0;max-height:170px;display:flex;overflow:hidden}.ed-bottom .panel{border-bottom:none;border-right:1px solid var(--line);flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.ed-bottom .panel:last-child{border-right:none}.ed-bottom .panel-body{scrollbar-width:thin;scrollbar-color:var(--line) transparent;min-height:0;overflow:hidden auto}.ed-bottom .panel-body>:last-child{margin-bottom:0}.ed-bottom .pb-bar,.ed-bottom .pb-instrument{margin-top:var(--space-1);margin-bottom:var(--space-1)}.ed-bottom .pb-bar{gap:var(--space-1)}.ed-bottom .pb-bar button{padding:var(--space-1)}#board.ed-board{position:absolute;inset:0}.ed-overlay{pointer-events:auto;cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.panel{border-bottom:1px solid var(--line)}.panel-head{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--panel-deep);z-index:2;cursor:pointer;list-style:none;display:flex;position:sticky;top:0}.panel-head::-webkit-details-marker{display:none}.panel-head>h2{font-size:var(--text-base)}.panel-collapse{padding:0 var(--space-2);color:var(--faint);margin-left:auto;line-height:1.2}.panel-collapse:after{content:"+"}.panel[open]>.panel-head .panel-collapse:after{content:"–"}.panel-body{padding:var(--space-2)}.panel-error{color:var(--danger)}.hint.warn{color:var(--warn)}.badge{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-pill)}.badge.ok{color:var(--accent);border-color:var(--accent)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.danger{color:var(--danger);border-color:var(--danger)}.field{gap:var(--space-2);margin:var(--space-1) 0;align-items:center;display:flex}input,select,textarea{background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-1);font:inherit;max-width:100%}input[type=number]{width:58px}input[type=range]{padding:0}.playback-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.playback-controls{margin:0}.playback-status{color:var(--accent)}.scrub-row{align-items:center;gap:var(--space-2);margin:var(--space-2) 0;display:flex}.scrubber{accent-color:var(--accent);flex:1}.timeline-canvas{border:1px solid var(--line);border-radius:var(--radius);cursor:ew-resize;width:100%;display:block}.bin-list{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(130px,1fr));display:grid}.bin-slot{align-items:flex-start;gap:var(--space-1);padding:var(--space-2);background:var(--panel-deep);text-align:left;flex-direction:column;display:flex;position:relative}.bin-slot .bin-name{letter-spacing:.04em}.bin-slot.armed{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.bin-slot.exhausted{background:0 0;border-style:dashed}.bin-slot.exhausted:after{content:"";pointer-events:none;background:repeating-linear-gradient(45deg,#0000 0 6px,#100f0f1f 6px 7px);position:absolute;inset:0}.bin-slot.exhausted .bin-chalk{letter-spacing:.1em}.bin-figure{width:100%;height:1.7rem;margin:0 0 var(--space-1);border:1.5px solid var(--ink);background:var(--field);display:block;position:relative}.bin-figure-drawn{background:0 0;border:0;justify-content:center;height:auto;display:flex}.bin-figure-drawn img{width:72px;height:72px;display:block}.bin-slot.exhausted .bin-figure-drawn img{opacity:.45;filter:saturate(0)}.bin-figure-plank{background:var(--ochre,#d1a078);height:.7rem;margin-top:.5rem;margin-bottom:.5rem}.bin-figure-span{background:0 0;border-style:dashed;height:.55rem;margin-top:.7rem}.bin-figure-shed:before{content:"";border:1.5px solid var(--ink);background:var(--panel);border-bottom:none;position:absolute;inset:35% 18% 0}.bin-figure-depot:before{content:"";border:1.5px solid var(--ink);background:var(--panel-deep);position:absolute;inset:22% 12% 0}.bin-figure-depot:after{content:"";background:var(--field);position:absolute;inset:48% 38% 0}.roster-head{margin:0 0 var(--space-2);align-items:center;display:flex}.roster-head.warn{color:var(--warn)}.idle-count{color:var(--warn);font-weight:700}.ok-count{color:var(--accent)}.roster-row{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1)}.roster-row.idle{border-left-color:var(--warn);background:#d0a21514;animation:1.8s ease-in-out infinite idle-pulse}.roster-row{cursor:pointer;transition:background .12s}.roster-row:hover{background:#3aa99f1f}.roster-row.selected{outline:2px solid var(--accent);outline-offset:-1px;background:#3aa99f2e}@keyframes idle-pulse{0%,to{border-left-color:var(--warn)}50%{border-left-color:#d0a21559}}.roster-top{align-items:center;gap:var(--space-2);display:flex}.roster-id{color:var(--accent)}.idle-flag{font-size:var(--text-xs);color:var(--paper);background:var(--warn);padding:0 var(--space-1);border-radius:var(--radius-pill);margin-left:auto;font-weight:700}.inspect-row{align-items:baseline;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px dotted var(--line);display:flex}.inspect-label{min-width:96px}.inspect-value{word-break:break-word;flex:1}.inspect-row.binding{padding-left:var(--space-2);background:#d14d411f}.binding-flag{font-size:var(--text-xs);letter-spacing:.08em;color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-pill);padding:0 var(--space-1)}.inspect-sub{margin:var(--space-2) 0 var(--space-1);font-size:var(--text-sm);text-transform:uppercase}.reject-banner{margin-top:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--danger);border-radius:var(--radius);gap:var(--space-1);flex-direction:column;display:flex}.constraint-card{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1)}.constraint-card.binding{border-left-color:var(--danger);background:#d14d411a}.constraint-top{align-items:center;gap:var(--space-2);display:flex}.constraint-title{flex:1}.why-btn{padding:0 var(--space-1)}.led-group{border:none;border-bottom:1px solid var(--line);margin:0 0 var(--space-2);border-radius:0;padding:0}.led-group>summary{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--panel-deep);cursor:pointer;text-transform:none;letter-spacing:inherit;font-size:var(--text-base);list-style:none;display:flex}.led-group>summary::-webkit-details-marker{display:none}.led-sub{margin:var(--space-2) 0 var(--space-1);text-transform:uppercase}.led-row{align-items:center;gap:var(--space-1);margin:var(--space-1) 0;flex-wrap:wrap;display:flex}.led-tag{min-width:28px}.led-inline{align-items:center;gap:var(--space-1);display:flex}.led-height,.led-io{white-space:pre;width:100%;line-height:1.3}.led-status{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.icon-btn{padding:0 var(--space-1);line-height:1.1}.lint-verdict{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--accent);border-radius:var(--radius);color:var(--accent);margin:var(--space-1) 0;display:flex}.lint-verdict.mismatch{border-color:var(--danger);color:var(--danger)}.lint-verdict-ticks{margin-left:auto}.lint-mismatch-banner{background:var(--danger);color:var(--paper);padding:var(--space-2);border-radius:var(--radius);margin:var(--space-1) 0;font-weight:700}.lint-trace{max-height:160px;overflow:auto}.assign-pick{gap:var(--space-1);margin:var(--space-2) 0;flex-wrap:wrap;display:flex}.assign-worker.idle{border-color:var(--warn);color:var(--warn)}.assign-selected{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);margin:var(--space-1) 0 var(--space-2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);display:flex}.assign-selected.idle{border-left-color:var(--warn);background:#d0a2151a}.assign-selected-id{color:var(--accent)}.assign-selected .icon-btn{margin-left:auto}.assign-job{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1)}.assign-job.previewing{border-color:var(--accent);background:#3aa99f1f}.assign-job.blocked{border-left-color:var(--danger)}.assign-job-top{align-items:center;gap:var(--space-2);display:flex}.assign-kind{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;padding:0 var(--space-1);border-radius:var(--radius-pill);border:1px solid}.assign-kind.kind-operate{color:var(--teal-deep)}.assign-kind.kind-haul{color:var(--blue)}.assign-kind.kind-build{color:var(--rust)}.assign-target{flex:1}.assign-route{color:var(--accent)}.assign-route.bad{color:var(--danger)}.assign-job-where{margin-top:var(--space-1)}.assign-job-actions{gap:var(--space-1);margin-top:var(--space-1);display:flex}.assign-preview,.assign-confirm,.assign-cancel{margin-top:var(--space-1)}.assign-confirm{border-color:var(--accent);color:var(--accent)}.render-error{padding:var(--space-3);color:var(--warn);white-space:pre-wrap;margin:0;position:absolute;inset:16px;overflow:auto}@media (max-height:668px){.ed-shell{position:relative}.ed-topbar{z-index:15;background:var(--panel);position:absolute;top:0;left:0;right:0}}.ed-doors{border:1px solid var(--ink);flex:none;display:flex}.ed-doors .ed-door{padding:var(--space-1) var(--space-2);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:none;border-radius:0}.ed-doors .ed-door+.ed-door{border-left:1px solid var(--ink)}.ed-doors .ed-door:hover{background:var(--paper);color:var(--ink);border-color:#0000}.ed-doors .ed-door.active{background:var(--ink);color:var(--paper)}.ed-level-name{flex:0 auto;min-width:0}.ed-play-controls,.ed-camera{justify-content:flex-end;gap:var(--space-1);flex-wrap:wrap;flex:0 auto;max-width:min(100%,42rem);display:flex}body:not(.play-mode) .ed-topbar .ed-assign-toggle{display:none}.ed-play-controls .ed-assign-toggle.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.ed-play-controls .ed-help{min-width:24px;padding:var(--space-1) var(--space-2);font-weight:600}.ed-play-controls .ed-help:hover,.ed-play-controls .ed-help:focus-visible{color:var(--text);border-color:var(--line-active)}.ed-topbar .ed-doors{height:30px}.ed-topbar .ed-doors .ed-door,.ed-topbar .ed-sound,.ed-topbar .command-btn,.ed-topbar .ed-play-controls button,.ed-topbar .ed-camera button{letter-spacing:.06em;justify-content:center;align-items:center;height:30px;padding-top:0;padding-bottom:0;line-height:1;display:inline-flex}.ed-topbar .ed-doors .ed-door{height:100%;padding-left:var(--space-2);padding-right:var(--space-2)}.ed-topbar .ed-play-controls .ed-help{min-width:30px;padding-left:var(--space-2);padding-right:var(--space-2)}.ed-topbar button:disabled{border-color:var(--line);cursor:default;opacity:.6;background:0 0}body.reference-watch .ed-overlay{pointer-events:none}body.reference-watch .ed-logo{pointer-events:none;opacity:.45}.ed-shell button:focus-visible,.door-levels-sheet:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.ed-overlay:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}body:not(.play-mode) .ed-level-name,body:not(.play-mode) .ed-play-controls,body.play-mode .ed-toolbar,body.play-mode .ed-splitter,.ed-toolbar .command-btn[data-command-title^="level: "],body.play-mode .ed-left,body.play-mode .ed-bottom{display:none}body.play-mode .ed-grid{grid-template:"center right"minmax(0,1fr)/minmax(0,1fr) 0}body.play-mode.drawer-open .ed-grid{grid-template-columns:minmax(0, 1fr) var(--ed-right-w)}body.play-mode .ed-grid .ed-slot{width:auto;height:auto;max-height:none;box-shadow:none;position:static;inset:auto}body.play-mode .ed-right{border-left:1px solid var(--line)}body.play-mode .ed-right .panel{display:none}body.play-mode .ed-right .panel[data-panel-id="tool.parts-bin:parts-bin"],body.play-mode .ed-right .panel[data-panel-id="tool.assign:assign"]{display:block}body.play-mode:not(.drawer-open) .ed-right{display:none}.play-act{margin:0 0 var(--space-3)}.play-act h3{margin:0 0 var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--line)}.play-level-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.play-level-card{align-items:flex-start;gap:var(--space-1);padding:var(--space-2);text-align:left;border:1px solid var(--line);flex-direction:column;display:flex}.play-level-card:hover{background:var(--panel-deep)}.play-level-card-name{color:var(--ink);font-weight:700}.door-win{z-index:11;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.door-win[hidden]{display:none}.door-win-card{pointer-events:auto;width:min(380px,88%);padding:var(--space-4) var(--space-3) var(--space-3);text-align:center;background:var(--paper);border:1px solid var(--ink);color:var(--ink)}.door-win-kicker{font-size:var(--text-sm);letter-spacing:.24em;text-transform:uppercase;color:var(--teal-deep);margin:0}.door-win-name{margin:var(--space-2) 0 var(--space-3);font-size:var(--text-lg);letter-spacing:.06em}.door-win-line{margin:var(--space-2) 0 var(--space-3);color:var(--text)}.door-win-score{margin:0 0 var(--space-1);justify-content:center;align-items:stretch;gap:0;display:flex}.door-win-col{align-items:center;gap:var(--space-1);min-width:7.5rem;padding:0 var(--space-3);flex-direction:column;display:flex}.door-win-col+.door-win-col{border-left:1px solid var(--line)}.door-win-col[hidden]{display:none}.door-win-col-label{font-size:var(--text-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--syntax-comment)}.door-win-num{color:var(--ink);font-size:var(--text-lg);font-variant-numeric:tabular-nums;line-height:1}.door-win-unit{margin:0 0 var(--space-4);letter-spacing:.18em;text-transform:uppercase;color:var(--syntax-comment)}.door-win-actions{align-items:stretch;gap:var(--space-2);flex-direction:column;display:flex}.door-win-next{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:inherit;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.door-win-next[hidden]{display:none}.door-win-next:hover,.door-win-next:focus-visible{background:var(--teal-deep);border-color:var(--teal-deep)}.door-win-more{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.door-win-ghost{padding:var(--space-1) var(--space-2);border:1px solid var(--ink);color:var(--ink);font:inherit;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0}.door-win-ghost[hidden]{display:none}.door-win-ghost:hover,.door-win-ghost:focus-visible{background:var(--panel)}.door-slate{z-index:7;gap:var(--space-1);pointer-events:none;flex-direction:column;max-width:min(42ch,50% - 110px);margin:0;display:flex;position:absolute;top:12px;left:14px}.door-slate>*{margin:0}.door-slate .door-hint{max-width:26ch}.door-slate-act[hidden],.door-hint[hidden]{display:none}@media (max-height:668px){.door-slate{top:72px}}body:not(.play-mode) .door-slate,body.levels-open .door-slate{display:none}.door-howto{z-index:14;padding:var(--space-3);background:#fffcf09e;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.door-howto[hidden]{display:none}.door-howto-sheet{background:var(--paper);border:1px solid var(--ink);width:min(460px,100%);padding:var(--space-3);color:var(--ink)}.door-howto-head{align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--line);display:flex}.door-howto-close{margin-left:auto}.door-howto-list{padding-left:var(--space-3);margin:0}.door-howto-list li{margin:0 0 var(--space-2);line-height:1.5}.door-howto-list li:last-child{margin-bottom:0}.dot-readout{border:1px solid var(--line-active);border-radius:var(--radius);background:var(--panel);align-items:center;gap:4px;padding:4px 5px;display:inline-flex}.dot-glyph{grid-template-columns:repeat(5,2px);grid-auto-rows:2px;gap:1px;display:grid}.dot{background:var(--ink);opacity:.09;border-radius:50%}.dot.on{opacity:1}.door-reference{z-index:9;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);letter-spacing:.06em;color:var(--ink);border:1px solid var(--ink);background:#fffcf0e6;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.door-reference[hidden]{display:none}.door-reference-label{letter-spacing:.16em;text-transform:uppercase}.door-reference-stop{margin-left:var(--space-1);padding:var(--space-1) var(--space-2);letter-spacing:.1em;text-transform:uppercase}body:not(.play-mode) .door-reference{display:none}.door-bricked{z-index:9;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);letter-spacing:.06em;color:var(--ink);border:1px solid var(--ink);border-left:3px solid var(--danger);background:#fffcf0f0;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.door-bricked[hidden]{display:none}.door-bricked-restart{padding:var(--space-1) var(--space-2);letter-spacing:.1em;text-transform:uppercase}body:not(.play-mode) .door-bricked{display:none}.door-camera-hint{z-index:7;padding:var(--space-1) var(--space-2);pointer-events:none;letter-spacing:.04em;background:#fffcf0d1;margin:0;line-height:1.45;position:absolute;bottom:36px;left:12px}.door-camera-hint[hidden],body:not(.play-mode) .door-camera-hint{display:none}@keyframes door-paper-fade{0%{opacity:0}to{opacity:1}}#board.door-paper-fade{animation:.18s ease-out door-paper-fade}@media (prefers-reduced-motion:reduce){#board.door-paper-fade,.door-title{animation:none}}@media (max-height:668px){.door-levels,.door-howto{padding-top:52px}}body.play-mode .ed-shell{position:relative}body.play-mode .ed-topbar{z-index:15;pointer-events:none;background:0 0;border:0;padding:0;display:block;position:absolute;inset:0}body.play-mode.drawer-open .ed-topbar{right:var(--ed-right-w)}body.play-mode .ed-topbar>*{pointer-events:auto;position:absolute}body.play-mode .ed-topbar .spacer,body.play-mode .ed-topbar .ed-level-name,body.play-mode .ed-topbar .ed-toolbar{display:none}body.play-mode .ed-topbar .ed-logo{font-size:var(--text-lg);bottom:14px;left:14px}body.play-mode .ed-topbar .ed-doors{bottom:54px;left:14px}body.play-mode .ed-topbar .ed-play-controls{top:12px;right:14px}.ed-right>.ed-play-controls{z-index:3;max-width:none;padding:var(--space-2);background:var(--panel);border-bottom:1px solid var(--line);justify-content:flex-start;position:sticky;top:0}.ed-right>.ed-play-controls button{letter-spacing:.06em;justify-content:center;align-items:center;height:30px;padding-top:0;padding-bottom:0;line-height:1;display:inline-flex}.ed-right>.ed-play-controls .ed-help{min-width:30px}.ed-right>.ed-play-controls button:disabled{border-color:var(--line);cursor:default;opacity:.6;background:0 0}body.play-mode .ed-topbar .ed-camera{bottom:14px;right:70px}body.play-mode .ed-topbar .ed-sound{height:30px;bottom:14px;right:14px}body.play-mode .door-slate{top:12px}body.play-mode.levels-open .ed-topbar,body.play-mode.howto-open .ed-topbar{display:none}body.play-mode .door-levels,body.play-mode .door-howto{padding-top:var(--space-3)}.render-hud{z-index:5}body.play-mode .render-readout{color:var(--art-ink,#2b2721);background:var(--art-paper,#e4dcc8);border:2px solid var(--art-ink,#2b2721);align-items:stretch;gap:0;top:12px;box-shadow:4px 4px #2b272138}body.play-mode .render-goal{flex-direction:column;align-items:center;gap:0;min-width:128px;padding:7px 16px 5px;display:flex}body.play-mode .render-goal .render-count{font:32px/1.1 var(--font-display,Georgia, serif);font-variant-numeric:tabular-nums}body.play-mode .render-goal-label{color:var(--art-rust,#9e5a3c);letter-spacing:.16em;font-size:11px;font-weight:700}body.play-mode .render-pile{border-left:1px solid var(--art-ink,#2b2721);background:var(--art-ochre,#d9c08c);flex-direction:column-reverse;justify-content:center;align-items:center;gap:0;min-width:66px;padding:5px 10px;font-size:19px;display:flex}body.play-mode .render-pile-label{color:var(--art-ink,#2b2721);font-size:10px;font-weight:700}body.play-mode .ed-grid{--ed-right-w:320px}body.play-mode .ed-right{background:var(--art-paper,#e4dcc8);border-left:2px solid var(--art-ink,#2b2721);scrollbar-width:thin;scrollbar-color:var(--art-sand,#c9a96b) transparent;box-shadow:-5px 0 #2b272117}body.play-mode .ed-right>.ed-play-controls{background:var(--art-ink,#2b2721);border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px;display:grid;position:sticky}body.play-mode .ed-right>.ed-play-controls button{width:100%;min-width:0;height:36px;font:600 12px/1 var(--font-ui);letter-spacing:0;white-space:nowrap;color:var(--art-paper,#e4dcc8);border-color:var(--art-shadow,#6b6474);background:0 0;padding:0 6px}body.play-mode .ed-right>.ed-play-controls button:hover:not(:disabled),body.play-mode .ed-right>.ed-play-controls button:focus-visible,body.play-mode .ed-right>.ed-play-controls .ed-assign-toggle.active{color:var(--art-ink,#2b2721);background:var(--art-ochre,#d9c08c);border-color:var(--art-ochre,#d9c08c)}body.play-mode .ed-right .panel{border-bottom:1px solid var(--art-sand)}body.play-mode .ed-right [hidden]{display:none!important}body.play-mode .ed-right button{font-family:var(--font-ui)}body.play-mode .ed-right button:focus-visible,body.play-mode .ed-topbar button:focus-visible{outline:2px solid var(--art-teal);outline-offset:3px}body.play-mode .ed-right button:active:not(:disabled),body.play-mode .ed-topbar button:active:not(:disabled){box-shadow:none;transform:translateY(1px)}body.play-mode .ed-right .panel-head{color:var(--art-ink,#2b2721);text-transform:none;letter-spacing:0;background:0 0;padding:10px 12px 4px;position:static}body.play-mode .ed-right .panel-head h2{font:600 23px/1.1 var(--font-display);text-transform:none;letter-spacing:0}body.play-mode .ed-right .panel-collapse{color:var(--art-ink,#2b2721)}body.play-mode .ed-right .panel-body{padding:8px 10px 10px}body.play-mode .ed-right .hint{color:var(--art-shadow,#6b6474);font-size:12px;line-height:1.25}body.play-mode .ed-right .panel-body>.hint:first-child{margin:0 0 6px}body.play-mode .ed-right .assign-next-step{color:var(--art-ink,#2b2721);background:0 0;border:0;padding:0 0 7px;font-size:13px;font-weight:500;line-height:1.25}body.play-mode .ed-right .assign-section{color:var(--art-shadow,#6b6474);letter-spacing:.16em;margin:6px 0 4px;font-size:11px;font-weight:600}body.play-mode .ed-right .assign-idle-grid{gap:5px;margin:0 0 5px}body.play-mode .ed-right .assign-worker{border:1px solid var(--art-ink,#2b2721);min-height:34px;color:var(--art-ink,#2b2721);cursor:pointer;background:#f4eddb;align-items:center;gap:7px;padding:3px 9px 3px 5px;font-size:13px;display:inline-flex}.assign-portrait{border:1px solid var(--art-ink,#2b2721);background:var(--art-paper,#e4dcc8);object-fit:cover;object-position:center 23%;border-radius:50%;flex:0 0 32px;width:32px;height:32px;display:block}body.play-mode .ed-right .assign-selected-portrait{flex:0 0 32px}body.play-mode .ed-right .assign-worker.blocked{flex-flow:wrap}body.play-mode .ed-right .assign-worker.blocked .assign-worker-reason{flex-basis:100%}body.play-mode .ed-right .assign-worker:hover,body.play-mode .ed-right .assign-worker:focus-visible,body.play-mode .ed-right .assign-job.valid:hover,body.play-mode .ed-right .assign-job.valid:focus-visible{background:var(--art-ochre,#d9c08c);border-color:var(--art-ink,#2b2721)}body.play-mode .ed-right .assign-worker.blocked{border-left:3px solid var(--art-rust,#9e5a3c);color:var(--art-ink,#2b2721)}body.play-mode .ed-right .assign-worker-reason{font-size:11px}body.play-mode .ed-right .assign-selected{border:1px solid var(--art-ink,#2b2721);background:var(--art-ink);color:var(--art-paper);margin:4px 0;padding:5px}body.play-mode .ed-right .assign-selected .roster-state{color:var(--art-paper);font:500 14px/1.2 var(--font-ui);text-transform:none;letter-spacing:0;background:0 0;border:0}body.play-mode .ed-right .assign-selected .icon-btn{color:var(--art-paper);border-color:var(--art-shadow);background:0 0}body.play-mode .ed-right .assign-selected .icon-btn:hover{background:var(--art-teal)}body.play-mode .ed-right .assign-selected-id{color:var(--art-ink,#2b2721);align-items:center;gap:6px;display:inline-flex}body.play-mode .ed-right .assign-selected .icon-btn{padding:2px 5px}body.play-mode .ed-right .assign-consequence{margin:3px 0 7px;font-size:12px}body.play-mode .ed-right .assign-job{color:var(--art-ink,#2b2721);border:1px solid var(--art-ink,#2b2721);border-left:4px solid var(--art-teal,#4e6c6e);background:#f4eddb;border-radius:0;margin-bottom:5px;padding:6px 8px;font-size:13px;line-height:1.25}body.play-mode .ed-right .assign-job.invalid{border-left-color:var(--art-rust,#9e5a3c);opacity:.7}body.play-mode .ed-right .assign-kind{color:var(--art-teal,#4e6c6e);border:0;padding:0;font-size:11px;font-weight:700}body.play-mode .ed-right .assign-route{color:var(--art-shadow,#6b6474);font-size:11px}body.play-mode .ed-right .assign-job-reason{color:var(--art-rust,#9e5a3c);margin-top:3px}body.play-mode .ed-right .assign-done{margin:4px 0 0}body.play-mode .ed-right .assign-done>summary{padding:3px 5px;font-size:12px}body.play-mode .ed-right .bin-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}body.play-mode .ed-right .bin-slot{min-width:0;color:var(--art-ink,#2b2721);border:1px solid var(--art-ink,#2b2721);cursor:pointer;background:#f4eddb;border-bottom-width:3px;border-radius:1px;gap:2px;padding:5px 7px 7px;font-size:13px;line-height:1.2}body.play-mode .ed-right .bin-slot:hover:not([disabled]),body.play-mode .ed-right .bin-slot:focus-visible,body.play-mode .ed-right .bin-slot.armed{background:var(--art-ochre,#d9c08c);box-shadow:inset 0 0 0 2px var(--art-ink,#2b2721)}body.play-mode .ed-right .bin-slot.exhausted{opacity:.7;cursor:default;background:0 0;border-style:dashed}body.play-mode .ed-right .bin-slot.exhausted:after{background:0 0}body.play-mode .ed-right .bin-figure{margin:0}body.play-mode .ed-right .bin-figure-drawn img{object-fit:contain;width:50px;height:50px}body.play-mode .ed-right .bin-top{align-items:start;gap:2px}body.play-mode .ed-right .bin-name{font-weight:600}body.play-mode .ed-right .bin-count{white-space:nowrap;color:var(--art-rust,#9e5a3c);font-size:11px}body.play-mode .ed-right .bin-facts{font-size:11px;line-height:1.1}body.play-mode .ed-right .bin-chalk{font-size:11px}body.play-mode .ed-right .panel[data-panel-id="tool.parts-bin:parts-bin"] .hint:last-child{margin:6px 0 0}body.play-mode .ed-topbar .ed-play-controls button,body.play-mode .ed-topbar .ed-camera button,body.play-mode .ed-topbar .ed-sound,body.play-mode .ed-topbar .ed-doors .ed-door{border-color:var(--art-ink,#2b2721);color:var(--art-ink,#2b2721);background:var(--art-paper,#e4dcc8);box-shadow:2px 2px 0 var(--art-ink,#2b2721);font-size:13px;font-weight:600}body.play-mode .ed-topbar .ed-play-controls button:hover,body.play-mode .ed-topbar .ed-camera button:hover,body.play-mode .ed-topbar .ed-sound:hover{background:var(--art-ochre,#d9c08c)}body.play-mode .ed-topbar .ed-doors .ed-door.active{color:var(--art-paper,#e4dcc8);background:var(--art-ink,#2b2721)}body.play-mode .ed-topbar .ed-play-controls .ed-assign-toggle.active{background:var(--art-ink,#2b2721);color:var(--art-paper,#e4dcc8)}body.play-mode .ed-play-controls button:before{margin-right:5px;font-size:14px;line-height:1;display:inline-block}body.play-mode .ed-play-controls button:first-child:before{content:"Ⅱ"}body.play-mode .ed-play-controls button:first-child[aria-pressed=false]:before{content:"▶"}body.play-mode .ed-play-controls button:nth-child(2):before{content:"↺"}body.play-mode .ed-play-controls button:nth-child(3):before{content:"↶"}body.play-mode .ed-play-controls .ed-assign-toggle:before{content:"☷"}body.play-mode .door-slate{background:var(--art-paper,#e4dcc8);border-left:3px solid var(--art-ink,#2b2721);max-width:min(32ch,50% - 110px);color:var(--art-ink,#2b2721);padding:9px 13px 11px;box-shadow:3px 3px #2b27212e}body.play-mode .door-slate-act{color:var(--art-rust,#9e5a3c);letter-spacing:.18em;font-size:12px}body.play-mode .door-slate-title{font-family:var(--font-display,Georgia, serif);text-transform:none;letter-spacing:-.02em;font-size:clamp(19px,2vw,29px);line-height:1.05}body.play-mode .door-hint{font-size:13px;line-height:1.3}body.play-mode .door-win{background:#2b272159}body.play-mode .door-win-card{background:var(--art-paper,#e4dcc8);border:2px solid var(--art-ink,#2b2721);width:min(440px,90%);box-shadow:8px 8px 0 var(--art-ink,#2b2721);padding:28px 30px}body.play-mode .door-win-kicker{letter-spacing:.3em;color:var(--art-rust,#9e5a3c);font-size:12px;font-weight:700}body.play-mode .door-win-name{font:34px/1.1 var(--font-display,Georgia, serif);text-transform:none;color:var(--art-ink,#2b2721)}body.play-mode .door-win-score{border-top:1px solid var(--art-ink,#2b2721);border-bottom:1px solid var(--art-ink,#2b2721);margin:18px 0 5px;padding:15px 0}body.play-mode .door-win-num{font:32px/1 var(--font-display,Georgia, serif);color:var(--art-ink,#2b2721)}body.play-mode .door-win-next{background:var(--art-ink,#2b2721);color:var(--art-paper,#e4dcc8);font-weight:700}body.play-mode .door-win-next:after{content:"  →"}body.play-mode .door-win-ghost{border-color:var(--art-ink,#2b2721);background:0 0}body.play-mode .door-win-ghost:hover{background:var(--art-ochre,#d9c08c)}@media (max-height:760px){body.play-mode .ed-right .panel-body{padding-top:5px;padding-bottom:6px}body.play-mode .ed-right .bin-figure-drawn img{width:42px;height:42px}body.play-mode .ed-right .panel-head{padding-top:5px;padding-bottom:5px}}body.play-mode .door-win{pointer-events:none;background:0 0;display:block;inset:auto 0 0}body.play-mode .door-win[hidden],body.play-mode .door-win-card [hidden]{display:none!important}body.play-mode .door-win-card{text-align:left;border:0;border-top:2px solid var(--art-ink,#2b2721);width:100%;min-height:120px;box-shadow:none;font-family:var(--font-ui,sans-serif);grid-template-rows:auto auto auto;grid-template-columns:minmax(190px,1fr) auto minmax(210px,1fr);align-items:center;gap:2px 16px;padding:13px 24px;display:grid}body.play-mode .door-win-kicker{grid-area:1/1;font-size:11px}body.play-mode .door-win-name{grid-area:2/1;margin:0;font-size:26px}body.play-mode .door-win-line{grid-area:3/1;margin:0;font-size:12px;font-style:italic}body.play-mode .door-win-score{border:0;border-left:1px solid var(--art-ink,#2b2721);border-right:1px solid var(--art-ink,#2b2721);grid-area:1/2/4;margin:0;padding:0 12px}body.play-mode .door-win-col{min-width:64px;padding:0 8px}body.play-mode .door-win-num{font-size:24px}body.play-mode .door-win-col-label{font-size:10px}body.play-mode .door-win-unit{display:none}body.play-mode .door-win-actions{flex-direction:row;grid-area:1/3/4;justify-content:flex-end;align-items:center;gap:7px;display:flex}body.play-mode .door-win-next{white-space:nowrap;width:auto}body.play-mode .door-win-more{justify-content:flex-end}body.play-mode .door-win-next,body.play-mode .door-win-ghost{font:600 12px/1.1 var(--font-ui,sans-serif);min-height:35px;padding:8px}body.play-mode .door-win-next:focus-visible,body.play-mode .door-win-ghost:focus-visible{outline:2px solid var(--art-ink,#2b2721);outline-offset:2px}body.play-mode .door-win-next:focus-visible{background:var(--art-ink,#2b2721);border-color:var(--art-ink,#2b2721)}body.play-mode.level-solved .ed-topbar .ed-camera,body.play-mode.level-solved .ed-topbar .ed-sound{display:none}body.play-mode.level-solved .ed-right{display:none!important}@media (max-width:900px){body.play-mode .door-win-card{grid-template-columns:1fr auto;gap:7px}body.play-mode .door-win-actions{grid-area:4/1/auto/3;justify-content:flex-start}body.play-mode .door-win-score{grid-column:2}}body.play-mode .door-howto{background:#2b272159}body.play-mode .door-howto-sheet{background:var(--art-paper,#e4dcc8);width:min(850px,100%);box-shadow:6px 6px 0 var(--art-ink,#2b2721);font-family:var(--font-ui,sans-serif);padding:22px 24px 27px}body.play-mode .door-howto-head h2{font:31px/1.1 var(--font-display,Georgia, serif);text-transform:none}body.play-mode .door-howto-close{font:26px/1 var(--font-ui,sans-serif);cursor:pointer;background:0 0;border:0}body.play-mode .door-help-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;display:grid}body.play-mode .door-help-card{border:1px solid var(--art-ink,#2b2721);background:#f4eddb;padding:12px 11px}body.play-mode .door-help-art{height:92px;color:var(--art-rust,#9e5a3c);place-items:center;display:grid}body.play-mode .door-help-art svg{width:90px;height:90px;display:block}body.play-mode .door-help-card h3{letter-spacing:.06em;margin:7px 0 6px;font-size:15px}body.play-mode .door-help-card p{margin:0;font-size:13px;line-height:1.35}@media (max-width:720px){body.play-mode .door-help-cards{grid-template-columns:repeat(2,minmax(0,1fr))}body.play-mode .door-help-art{height:62px}body.play-mode .door-help-art svg{width:60px;height:60px}}body.play-mode .ed-right,body.play-mode .ed-topbar,body.play-mode .door-slate,body.play-mode .render-readout,body.play-mode .door-win{font-family:var(--font-ui,sans-serif)}body.play-mode .door-slate{width:255px;max-width:min(255px,100% - 30px);box-shadow:none;border-left-width:2px;gap:2px;padding:7px 10px}body.play-mode .door-slate-heading{justify-content:space-between;align-items:center;display:flex}body.play-mode .door-slate-toggle,body.play-mode .door-hint-button{pointer-events:auto;color:var(--art-rust,#9e5a3c);font:600 12px/1.3 var(--font-ui,sans-serif);cursor:pointer;background:0 0;border:0;padding:0 4px}body.play-mode .door-hint-button{align-self:flex-start;padding-left:0;text-decoration:underline}body.play-mode .door-hint-detail{font-size:12px;font-style:italic;line-height:1.3}body.play-mode .door-slate.is-collapsed>:not(.door-slate-heading){display:none}body.play-mode .door-slate-title{letter-spacing:0;font-size:20px}body.play-mode .door-hint{max-width:28ch;font-size:12px;line-height:1.3}.door-paused{display:none}body.play-mode .door-paused{z-index:10;border-left:2px solid var(--art-ink);background:var(--art-paper);color:var(--art-ink);font:600 22px/1.1 var(--font-display);align-items:center;gap:18px;padding:9px 12px;display:flex;position:absolute;bottom:18px;left:18px}body.play-mode .door-paused[hidden],body.play-mode.pause-open .door-paused,body.play-mode.levels-open .door-paused,body.play-mode.howto-open .door-paused{display:none}body.play-mode .door-paused button{border:1px solid var(--art-ink);background:var(--art-ink);color:var(--art-paper);font:600 12px/1.2 var(--font-ui);cursor:pointer;padding:5px 9px}body.play-mode .door-paused button:hover,body.play-mode .door-paused button:focus-visible{background:var(--art-teal)}body.play-mode .render-readout{box-shadow:none;background:0 0;border:0;align-items:baseline;gap:12px;top:10px;left:auto;right:14px;transform:none}body.play-mode .render-goal{flex-direction:row;align-items:baseline;gap:8px;min-width:0;padding:0}body.play-mode .render-goal .render-count{font-size:46px;line-height:1}body.play-mode .render-goal-label{letter-spacing:.04em;color:var(--art-ink,#2b2721);font-size:17px}body.play-mode .render-pile{border:0;border-left:1px solid var(--art-ink,#2b2721);background:0 0;align-self:center;min-width:0;padding:0 0 0 10px;font-size:17px}body.play-mode.campaign-level .ed-topbar .ed-logo,body.play-mode.campaign-level .ed-topbar .ed-doors{display:none}body.play-mode .ed-camera button[hidden]{display:none!important}body.play-mode .ed-topbar .ed-sound{text-indent:-9999px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b2721' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9v6h4l5 4V5L7 9H3Z'/%3E%3Cpath d='M16 9a5 5 0 0 1 0 6M19 6a9 9 0 0 1 0 12'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:21px 21px;width:32px;overflow:hidden}body.play-mode .ed-topbar .ed-sound[aria-pressed=false]:after{content:"";background:var(--art-rust,#9e5a3c);width:22px;height:1.5px;position:absolute;top:15px;left:4px;transform:rotate(-40deg)}@media (min-width:980px) and (min-height:640px){body.play-mode.drawer-open .ed-grid{display:block}body.play-mode.drawer-open .ed-topbar{right:0}body.play-mode.drawer-open .ed-center{position:absolute;inset:0}body.play-mode .ed-grid .ed-right{z-index:12;border:2px solid var(--art-ink,#2b2721);inset:94px 0 auto auto;overflow-y:auto;box-shadow:-4px 4px #2b27212e;width:320px!important;height:auto!important;max-height:calc(100% - 180px)!important;position:absolute!important}body.play-mode .ed-right>.ed-play-controls{position:static}body.play-mode .ed-right .panel:last-child{border-bottom:0}body.play-mode.drawer-open .ed-right>.ed-play-controls{grid-template-columns:repeat(3,minmax(0,1fr))}body.play-mode.drawer-open .ed-right>.ed-play-controls button:nth-child(2),body.play-mode.drawer-open .ed-right>.ed-play-controls .ed-assign-toggle,body.play-mode.drawer-open .ed-right>.ed-play-controls .ed-help{display:none}body.play-mode .ed-right .bin-list{grid-template-columns:repeat(2,minmax(0,1fr))}body.play-mode .ed-right .bin-slot{flex-flow:wrap;align-items:center;min-height:64px}body.play-mode .ed-right .bin-figure-drawn{flex:0 0 42px;width:42px}body.play-mode .ed-right .bin-figure-drawn img{width:40px;height:40px}body.play-mode .ed-right .bin-slot[data-type=depot] .bin-figure-drawn img{filter:grayscale()sepia(.3)contrast(.85)}body.play-mode .ed-right .bin-top{flex-direction:column;flex:1}body.play-mode .ed-right .bin-facts{flex-basis:100%}body.play-mode .ed-right .bin-pips{color:var(--art-rust,#9e5a3c);font:600 11px/1.1 var(--font-ui,sans-serif);flex-basis:100%}body.play-mode .ed-right .panel[data-panel-id="tool.parts-bin:parts-bin"] .hint:last-child,body.play-mode .ed-right .panel-collapse{display:none}body.play-mode .ed-right .panel-head{pointer-events:none}body.play-mode .ed-right .assign-idle-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}body.play-mode .ed-right .assign-worker.idle{min-height:78px;font:500 12px/1.1 var(--font-ui,sans-serif);text-align:center;flex-direction:column;justify-content:center;gap:3px;padding:5px 1px}body.play-mode .ed-right .assign-worker.idle .assign-portrait{flex-basis:46px;width:46px;height:46px}body.play-mode .ed-right .assign-worker-name{white-space:nowrap}}.panel-body [hidden]{display:none}.panel[hidden]{display:none!important}.inspect-row:not(.binding) .binding-flag,.constraint-card:not(.binding) .binding-flag{display:none}.assign-reject{align-items:baseline;gap:var(--space-2);padding:var(--space-1) var(--space-2);margin:var(--space-1) 0 var(--space-2);border:1px solid var(--danger);border-radius:var(--radius);background:#d14d4117;border-left-width:3px;display:flex}.assign-reject .rule-chip{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--paper);background:var(--danger);border-radius:var(--radius-pill);padding:0 var(--space-1);flex:none}.assign-section{margin:var(--space-2) 0 var(--space-1);letter-spacing:.06em;text-transform:uppercase}.assign-section.warn{color:var(--warn)}.assign-idle-grid{gap:var(--space-1);margin:var(--space-1) 0 var(--space-2);flex-wrap:wrap;display:flex}.assign-blocked-grid{gap:var(--space-1);margin:var(--space-1) 0 var(--space-2);flex-direction:column;display:flex}.assign-worker.blocked{align-items:flex-start;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid var(--danger);border-left:3px solid var(--danger);border-radius:var(--radius);background:var(--field);color:var(--danger);text-align:left;flex-direction:column;display:flex}.assign-job{text-align:left;width:100%;padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1);background:var(--panel-deep);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius);color:var(--text);cursor:pointer;display:block}.assign-job.valid{border-left-color:var(--accent)}.assign-job.valid:hover,.assign-job.valid:focus-visible{border-color:var(--accent);background:#3aa99f24}.assign-job.previewing{background:#3aa99f33}.assign-job.invalid{border-left-color:var(--danger);cursor:default}.assign-job.invalid .assign-target,.assign-job.invalid .assign-kind{opacity:.75}.assign-job-reason{margin-top:var(--space-1);color:var(--danger)}.assign-done .done-row{padding:var(--space-1) 0 var(--space-1) var(--space-2)}.assign-consequence{margin:calc(var(--space-1) * -1) 0 var(--space-2);padding-left:var(--space-2)}.assign-job-where{font-variant-numeric:tabular-nums}.roster-row.blocked{border-left-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger);background:#d14d4124}.roster-row.blocked .roster-state{background:var(--danger);color:var(--paper);border-color:var(--danger)}.roster-state{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;padding:0 var(--space-1);border-radius:var(--radius-pill);border:1px solid;flex:none}.roster-state.state-idle{color:var(--warn)}.roster-state.state-walking{color:var(--blue)}.roster-state.state-carrying{color:var(--teal-deep)}.roster-state.state-holding{color:var(--teal-deep);background:#3aa99f29}.roster-state.state-working{color:var(--rust)}.roster-state.state-blocked{color:var(--danger)}.roster-sub{margin-top:var(--space-1)}.roster-sub.loud{color:var(--danger)}.pb-bar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pb-instrument{border:1px solid var(--line);border-radius:var(--radius);background:var(--field);margin:var(--space-2) 0;align-items:stretch;gap:0;display:flex}.pb-readout{min-width:72px;padding:var(--space-1) var(--space-2);border-right:1px solid var(--line);flex-direction:column;justify-content:center;display:flex}.pb-readout:last-child{border-right:none}.pb-label{letter-spacing:.1em;text-transform:uppercase}.pb-value{font-variant-numeric:tabular-nums;color:var(--text);line-height:1.1}.pb-readout.state .pb-value{letter-spacing:.04em}.pb-readout.state.is-playing .pb-value{color:var(--teal-deep)}.pb-scrub{min-width:80px;margin:0 var(--space-2);flex:120px;align-self:center;padding:0}.bin-slot.exhausted .bin-chalk{letter-spacing:.02em;white-space:nowrap;max-width:100%;overflow:hidden}.bin-slot .bin-count{font-variant-numeric:tabular-nums}.bin-slot .bin-top{justify-content:space-between;align-items:baseline;gap:var(--space-2);width:100%;display:flex}.bin-slot.armed .bin-facts,.bin-slot.armed .bin-facts .t-label{color:var(--teal-deep)}.bin-slot[disabled]{cursor:default}.bin-notice{color:var(--danger)}.led-brush{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--panel-deep);z-index:1;position:sticky;top:29px}.brush-groups{gap:var(--space-1);flex-direction:column;display:flex}.brush-row{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.brush-group{letter-spacing:.08em;text-transform:uppercase;margin:0 var(--space-1);min-width:46px}.brush-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius);background:var(--field);color:var(--text);cursor:pointer;font-family:inherit}.brush-btn:hover:not([disabled]),.brush-btn:focus-visible{border-color:var(--accent)}.brush-btn.armed{border-color:var(--teal-deep);color:var(--teal-deep);background:#3aa99f33}.brush-btn[disabled]{cursor:default}.brush-hint{margin:var(--space-1) 0 var(--space-1)}.brush-notice{margin:var(--space-1) 0 var(--space-1);color:var(--warn)}.led-height{letter-spacing:.14em;resize:vertical;min-height:2.7em;font-family:inherit;line-height:1.35}.led-io{resize:vertical;font-family:inherit}.lib-list{gap:var(--space-1);margin:var(--space-1) 0;flex-direction:column;display:flex}.lib-row{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.lib-row.active{padding-left:var(--space-1);background:#3aa99f1a}.lib-name{min-width:0;padding:var(--space-1);border:1px solid var(--line);border-radius:var(--radius);background:var(--field);color:var(--text);flex:100%;font-family:inherit}.lib-name:focus-visible{border-color:var(--accent)}.lib-meta{align-items:center;gap:var(--space-1);flex:100%;display:flex}.lib-stamp{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.lib-btn{padding:var(--space-1);border:1px solid var(--line);border-radius:var(--radius);background:var(--field);color:var(--text);cursor:pointer;font-family:inherit}.lib-btn:hover,.lib-btn:focus-visible{border-color:var(--accent)}.lib-del{color:var(--danger)}.chalk-mark{letter-spacing:.04em;padding-bottom:var(--space-1);border-bottom:1px dashed #0000}.chalk-mark.dirty{color:var(--warn);border-bottom-color:var(--warn)}.lib-file{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:-1000px;left:-1000px}.share-io[readonly]{cursor:text;-webkit-user-select:all;user-select:all}.share-scratch{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:-1000px;left:-1000px}.timeline-wrap{position:relative}.timeline-canvas{image-rendering:auto;touch-action:none}.timeline-note{margin:var(--space-1) 0 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mx{flex-direction:column;gap:10px;min-height:0;display:flex}.mx-status{margin:0}.mx-master{align-items:center;gap:8px;display:flex}.mx-master input[type=range]{flex:1;min-width:0}.mx-master span{font-variant-numeric:tabular-nums;text-align:right;min-width:52px;color:var(--body)}.mx-groups{flex-direction:column;gap:12px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.mx-group h4{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 4px;font-size:.72rem}.mx-row{border-top:1px solid var(--line);grid-template-columns:22px minmax(88px,1fr) minmax(0,1.1fr) 30px;grid-template-areas:"play name file mute""play slider slider rate""meas meas meas meas";align-items:center;gap:2px 6px;padding:4px 0;display:grid}.mx-play{grid-area:play;align-self:start;width:22px;height:22px;padding:0;font-size:.7rem;line-height:1}.mx-name{flex-direction:column;grid-area:name;min-width:0;display:flex}.mx-name .mx-label{color:var(--body);font-size:.78rem}.mx-name .mx-note{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.mx-row[data-muted=true] .mx-label{color:var(--faint);text-decoration:line-through}.mx-file{grid-area:file;min-width:0;max-width:100%;font-size:.7rem}.mx-slider{grid-area:slider;align-items:center;gap:6px;min-width:0;display:flex}.mx-slider input[type=range]{flex:1;min-width:0}.mx-slider .mx-dbval{font-variant-numeric:tabular-nums;color:var(--body);text-align:right;min-width:40px;font-size:.7rem}.mx-mute{grid-area:mute;width:26px;height:22px;padding:0;font-size:.68rem}.mx-mute[aria-pressed=true]{color:var(--red);border-color:var(--red)}.mx-rate{text-align:right;grid-area:rate;width:44px;font-size:.7rem}.mx-meas{color:var(--faint);font-variant-numeric:tabular-nums;grid-area:meas;font-size:.6rem}.mx-bake{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mx-json{resize:vertical;width:100%;min-height:120px;font-family:ui-monospace,monospace;font-size:.62rem}.mx-copied{color:var(--green);font-size:.68rem}:root{--move-ease:cubic-bezier(.2, .7, .2, 1)}html::view-transition{pointer-events:none;background:#e4dcc8}html[data-move]::view-transition-old(root){animation-duration:.18s;animation-timing-function:ease-out}html[data-move]::view-transition-new(root){animation-duration:.18s;animation-timing-function:ease-out}html[data-move=zoom-in]::view-transition-old(root){mix-blend-mode:normal;transform-origin:var(--move-x,50%) var(--move-y,50%)}html[data-move=zoom-in]::view-transition-new(root){mix-blend-mode:normal;transform-origin:var(--move-x,50%) var(--move-y,50%)}html[data-move=zoom-out]::view-transition-old(root){mix-blend-mode:normal;transform-origin:var(--move-x,50%) var(--move-y,50%)}html[data-move=zoom-out]::view-transition-new(root){mix-blend-mode:normal;transform-origin:var(--move-x,50%) var(--move-y,50%)}html[data-move=zoom-in]::view-transition-old(root){animation:move-zoom-past .42s var(--move-ease) both}html[data-move=zoom-in]::view-transition-new(root){animation:move-zoom-grow .52s var(--move-ease) both}html[data-move=zoom-out]::view-transition-old(root){animation:move-zoom-shrink .44s var(--move-ease) both;z-index:1}html[data-move=zoom-out]::view-transition-new(root){animation:move-zoom-settle .52s var(--move-ease) both}html[data-move=next]::view-transition-old(root){mix-blend-mode:normal;animation:move-pan-leave .32s var(--move-ease) both}html[data-move=next]::view-transition-new(root){mix-blend-mode:normal;animation:move-pan-arrive .42s var(--move-ease) 40ms both}html[data-move=descend]::view-transition-old(root){mix-blend-mode:normal;animation:move-tilt-leave .42s var(--move-ease) both}html[data-move=descend]::view-transition-new(root){mix-blend-mode:normal;animation:move-tilt-arrive .52s var(--move-ease) both}@keyframes move-zoom-past{to{opacity:0;transform:scale(2.4)}}@keyframes move-zoom-grow{0%{opacity:0;transform:scale(.3)}55%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes move-zoom-shrink{0%{opacity:1}70%{opacity:0}to{opacity:0;transform:scale(.25)}}@keyframes move-zoom-settle{0%{opacity:0;transform:scale(1.8)}45%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes move-pan-leave{to{opacity:0;transform:translate(-56px)}}@keyframes move-pan-arrive{0%{opacity:0;transform:translate(72px)}}@keyframes move-tilt-leave{to{opacity:0;transform:translateY(-18%)}}@keyframes move-tilt-arrive{0%{opacity:0;transform:translateY(9%)}}@keyframes move-rise{0%{opacity:0;transform:translateY(18px)}}@keyframes move-settle{0%{opacity:0;transform:translateY(6px)}}@keyframes move-pop{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes move-fade{0%{opacity:0}}@keyframes move-stop{0%{opacity:0;transform:scale(.4)}}@keyframes move-ink{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.door-levels.front-opening .front-route{animation:move-ink .76s var(--move-ease) 60ms both}.door-levels.front-opening .front-waypoint-mark{animation:move-stop .22s var(--move-ease) calc(80ms + var(--stop,0) * .62s) backwards}.door-levels.front-opening .front-you-are-here{animation:move-settle .24s ease-out calc(.26s + var(--stop,0) * .62s) backwards}.door-levels.front-opening .front-act{animation:.3s ease-out .2s backwards move-fade}.door-levels.front-opening .front-waypoint-detail,.door-levels.front-opening .front-make{animation:move-settle .26s var(--move-ease) .14s backwards}body.play-mode .door-win:not([hidden]) .door-win-card{animation:move-rise .3s var(--move-ease) both}body.play-mode .door-win:not([hidden]) :is(.door-win-kicker,.door-win-name){animation:.26s ease-out 60ms backwards move-settle}body.play-mode .door-win:not([hidden]) :is(.door-win-line,.door-win-score){animation:.26s ease-out .12s backwards move-settle}body.play-mode .door-win:not([hidden]) .door-win-actions{animation:.26s ease-out .18s backwards move-settle}.door-slate.is-settling :is(.door-slate-act,.door-slate-title){animation:move-settle .28s var(--move-ease) 80ms backwards}.door-slate.is-settling :is(.door-hint,.door-hint-button){animation:move-settle .3s var(--move-ease) .2s backwards}.pause-overlay:not([hidden]),body.play-mode .door-howto:not([hidden]){animation:.14s ease-out move-fade}.pause-overlay:not([hidden]) .pause-sheet,body.play-mode .door-howto:not([hidden]) .door-howto-sheet{animation:move-pop .2s var(--move-ease)}body.play-mode .door-howto:not([hidden]) .door-help-card{animation:.24s ease-out backwards move-settle}body.play-mode .door-howto:not([hidden]) .door-help-card:nth-child(2){animation-delay:40ms}body.play-mode .door-howto:not([hidden]) .door-help-card:nth-child(3){animation-delay:80ms}body.play-mode .door-howto:not([hidden]) .door-help-card:nth-child(4){animation-delay:.12s}body.play-mode .door-paused:not([hidden]){animation:.15s ease-out move-fade}.front-story:not([hidden]) .front-story-copy{animation:none}.front-story:not([hidden]) :is(.front-story-kicker,.front-story-title,.front-story-text,.front-story-counter,.front-primary){animation:move-settle .32s var(--move-ease) backwards}.front-story:not([hidden]) .front-story-title{animation-delay:60ms}.front-story:not([hidden]) :is(.front-story-text,.front-story-counter){animation-delay:.14s}.front-story:not([hidden]) .front-primary{animation-delay:.22s}.front-story:not([hidden]) .front-story-landscape{animation:.42s ease-out backwards move-fade,48s ease-in-out infinite alternate front-plate-drift}:is(.door-win-next,.door-win-ghost,.pause-action,.door-howto-close,.door-hint-button,.door-paused button,.door-bricked-restart,.door-reference-stop,.door-slate-toggle,.front-make-mark){transition:background-color 90ms ease-out,color 90ms ease-out,transform 90ms ease-out,box-shadow 90ms ease-out}:is(.door-win-next,.door-win-ghost,.pause-action,.door-howto-close,.door-hint-button,.door-paused button,.door-bricked-restart,.door-reference-stop,.door-slate-toggle):active:not(:disabled){transform:translateY(1px)}.pause-action:hover:not(.primary){transform:translate(3px)}.pause-action:active:not(.primary){transform:translate(3px)translateY(1px)}.front-make:hover .front-make-mark,.front-make:focus-visible .front-make-mark{background:var(--art-ochre);transform:rotate(90deg)}.front-make:active .front-make-mark{transform:rotate(90deg)scale(.92)}:is(.door-levels-close,.front-make,.door-howto-close,.door-hint-button,.door-paused button,.door-slate-toggle,.door-bricked-restart,.door-reference-stop):focus-visible{outline:2px solid var(--art-rust);outline-offset:2px}@media (prefers-reduced-motion:reduce){html::view-transition-old(*){animation:none!important}html::view-transition-new(*){animation:none!important}.door-levels.front-opening *,.door-win *,.door-slate *,.pause-overlay,.pause-sheet,.door-howto,.door-howto *,.door-paused,.front-story *{animation:none!important}}.pause-overlay{z-index:30;background:#2b2721b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.pause-overlay[hidden]{display:none}.pause-sheet{background:var(--art-paper,#e4dcc8);width:min(480px,100%);max-height:100%;color:var(--art-ink,#2b2721);border:2px solid var(--art-ink,#2b2721);box-shadow:7px 7px 0 var(--art-ink,#2b2721);padding:25px 30px 20px;overflow-y:auto}.pause-kicker{color:var(--art-rust,#9e5a3c);text-transform:uppercase;letter-spacing:.22em;margin:0 0 6px;font-size:12px;font-weight:700}.pause-title{font:34px/1.1 var(--font-display,Georgia, serif);text-transform:none;margin:0 0 20px}.pause-actions{gap:8px;display:grid}.pause-action{text-align:left;width:100%;min-height:42px;font:600 15px/1.2 var(--font-ui,sans-serif);letter-spacing:.03em;color:var(--art-ink,#2b2721);border:1px solid var(--art-ink,#2b2721);cursor:pointer;background:#f4eddb;padding:7px 12px;display:block}.pause-action:hover,.pause-action:focus-visible{background:var(--art-ochre,#d9c08c)}.pause-action.primary{color:var(--art-paper,#e4dcc8);background:var(--art-ink,#2b2721)}.pause-action.primary:hover,.pause-action.primary:focus-visible{background:var(--art-teal,#4e6c6e)}.pause-setting .pause-action[aria-pressed=true]{border-left:4px solid var(--art-teal,#4e6c6e)}.pause-settings{border-top:1px solid var(--art-ink,#2b2721);gap:9px;margin-top:17px;padding-top:14px;display:grid}.pause-setting{grid-template-columns:1fr 1fr;align-items:stretch;gap:8px;display:grid}.pause-setting .pause-action{min-height:38px}.pause-volume-wrap{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;font-size:12px;line-height:1;display:grid}.pause-volume-wrap>span{grid-column:1/-1}.pause-volume{width:100%;accent-color:var(--art-teal,#4e6c6e);margin:0}.pause-volume-value{white-space:nowrap;font-size:12px}.pause-foot{color:var(--art-shadow,#6b6474);margin:17px 0 0;font-size:12px}.pause-overlay :focus-visible{outline:2px solid var(--art-teal,#4e6c6e);outline-offset:2px}body.reduce-motion *,body.reduce-motion :before,body.reduce-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}@media (max-height:600px){.pause-sheet{padding:14px 22px}.pause-title{margin-bottom:9px;font-size:26px}.pause-actions{gap:4px}.pause-action{min-height:34px}.pause-settings{margin-top:8px;padding-top:8px}.pause-foot{margin-top:8px}}.door-title,.door-levels{color:var(--art-ink);position:absolute;inset:0;overflow:hidden}.door-title[hidden],.door-levels[hidden]{display:none}.door-title{z-index:16;--front-horizon:63.9%;background:#e9e0c9;justify-content:flex-start;align-items:flex-start;padding:clamp(44px,8vh,84px) 6vw;display:flex}.front-plate{background:#e5dbc0 url(/assets/title-plate-DOZciAYk.webp) 70% var(--front-horizon) / cover no-repeat;pointer-events:none;animation:.72s cubic-bezier(.2,.75,.15,1) both front-open;position:absolute;inset:0}.front-scene{z-index:1;pointer-events:none;transform-origin:72% 64%;position:absolute;inset:47.7% 14% -13.7% 26%;transform:scale(.56)}.front-scene .render-host{pointer-events:none}.front-scene-pool{opacity:.36;clip-path:polygon(24.2% 36.4%,38.6% 22.8%,96.2% 65.7%,75.8% 79.9%);background:#5c5566;position:absolute;inset:0}.front-scene .render-hud{display:none}.front-title-copy{z-index:2;width:min(900px,70%);box-shadow:none;background:0 0;border:0;padding:0;animation:.26s ease-out .26s both front-arrive;position:relative}.front-eyebrow{color:var(--art-teal);font:500 .75rem var(--font-ui);letter-spacing:.16em;text-transform:uppercase;margin:0}.door-title-name{color:var(--art-ink);font:600 clamp(5rem, 11vw, 10.5rem)/.86 var(--font-display);letter-spacing:.02em;white-space:nowrap;margin:0}.front-title-actions{flex-direction:column;align-items:flex-start;gap:12px;margin-top:26px;display:flex}.front-primary,.front-secondary{border:1px solid var(--art-ink);cursor:pointer;font:500 1rem var(--font-ui);padding:10px 20px;transition:transform .12s ease-out,box-shadow .12s ease-out,background-color .12s ease-out;box-shadow:3px 3px #2b272159}.front-primary{background:var(--art-ink);min-width:138px;color:var(--art-paper)}.front-secondary{background:var(--art-paper);color:var(--art-ink)}.front-primary:hover,.front-primary:focus-visible{background:var(--art-rust)}.front-secondary:hover,.front-secondary:focus-visible{background:var(--art-ochre)}.door-title .front-primary,.door-title .front-secondary{white-space:nowrap;min-width:270px;min-height:52px;box-shadow:none;background:var(--art-paper);color:var(--art-ink);font:600 1.45rem/1 var(--font-display);padding:10px 26px}.door-title .front-primary:hover,.door-title .front-secondary:hover{background:#f2ebd9;box-shadow:3px 3px #2b272159}.door-title .front-primary:active,.door-title .front-secondary:active{box-shadow:0 0 #2b272159}.front-title-sound{z-index:3;border:0;border-bottom:1px solid var(--art-ink);color:var(--art-ink);font:500 .82rem var(--font-ui);cursor:pointer;background:0 0;padding:3px 0;position:absolute;bottom:25px;left:6vw}.front-title-sound:hover,.front-title-sound:focus-visible{color:var(--art-rust);border-color:var(--art-rust)}.front-primary:hover,.front-secondary:hover{transform:translateY(-2px);box-shadow:4px 5px #2b272159}.front-primary:active,.front-secondary:active{transform:translateY(2px);box-shadow:1px 1px #2b272159}.front-secondary[hidden]{display:none}.front-title-foot{letter-spacing:.1em;margin:35px 0 0;font-size:.8rem}.front-atmosphere,.front-map-air{pointer-events:none;position:absolute;inset:0;overflow:hidden}.front-atmosphere{z-index:1}.front-atmosphere,.front-scene{animation:.4s ease-out .38s both front-settle}.front-map-air{z-index:1}.front-dust{opacity:.53;background:#867967;width:16px;height:1px;animation:21s linear infinite alternate front-wind;position:absolute}.front-dust:after{content:"";background:inherit;width:8px;height:1px;position:absolute;top:2px;left:8px}.front-dust-one{top:71%;left:13%}.front-dust-two{animation-duration:27s;animation-delay:-7s;top:80%;left:59%}.front-dust-three{animation-duration:23s;animation-delay:-13s;top:92%;left:34%}.front-walker{z-index:1;top:calc(var(--front-horizon) - 8px);background:#514b45;width:3px;height:7px;animation:31s linear infinite alternate front-figure-walk;position:absolute;left:57%}.front-walker:before{content:"";background:inherit;border-radius:50%;width:3px;height:3px;position:absolute;top:-3px;left:0}.front-walker:after{content:"";border-left:1px solid #514b45;border-right:1px solid #514b45;width:7px;height:3px;position:absolute;top:7px;left:-2px}.front-walker-two{left:67%;top:calc(var(--front-horizon) - 7px);animation-duration:38s;animation-delay:-17s}.front-walker-shadow{background:var(--art-shadow);opacity:.55;width:34px;height:1px;position:absolute;top:10px;left:4px}.front-walker-two .front-walker-shadow{width:28px}@keyframes front-figure-walk{0%{transform:translate(-38px)}to{transform:translate(58px)}}@keyframes front-wind{0%{transform:translate(-70px)}to{transform:translate(180px)}}@keyframes front-settle{0%{opacity:0}to{opacity:1}}@keyframes front-open{0%{clip-path:inset(var(--front-horizon) 0 calc(100% - var(--front-horizon)) 0)}to{clip-path:inset(0)}}@keyframes front-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.door-levels{z-index:12;background:#e9e0c9;padding:0;display:block}.door-levels.front-opening .door-levels-sheet{animation:.19s ease-out both front-arrive}.door-levels-sheet{width:100%;height:100%;max-height:none;box-shadow:none;background:0 0;border:0;flex-direction:column;padding:22px clamp(24px,4vw,60px) 16px;display:flex;overflow:hidden}.door-levels-head{border:0;flex:none;align-items:center;gap:20px;margin:0;padding:0;display:flex}.door-levels-head h2{font:600 clamp(1.5rem, 2.5vw, 2.2rem)/1.1 var(--font-display);margin:0}.door-levels-sub{color:var(--art-teal);white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;margin:0 0 0 auto;font-size:.8rem}.door-levels-close{border:1px solid var(--art-ink);background:var(--art-paper);cursor:pointer;padding:6px 14px;transition:transform .12s ease-out,box-shadow .12s ease-out,background-color .12s ease-out;box-shadow:2px 2px #2b272159}.door-levels-close:hover{background:var(--art-ochre);transform:translateY(-2px);box-shadow:3px 4px #2b272159}.door-levels-close:active{transform:translateY(1px);box-shadow:1px 1px #2b272159}.door-levels-body{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex;overflow:hidden}.front-map{isolation:isolate;background:#e9e0c9 url(/assets/journey-panorama-D_YCHY30.png) 50%/cover no-repeat;border:1px solid #675f54;flex:0 max(390px,33vw - 30px);width:100%;min-height:250px;position:relative;overflow:hidden}.front-act{z-index:2;pointer-events:none;position:absolute;top:15px}.front-act-1 .front-act-number{color:#786239}.front-act-2 .front-act-number{color:var(--art-teal)}.front-act-3 .front-act-number{color:var(--art-rust)}.front-act-caption{white-space:nowrap;background:#f2ead6c9;border:1px solid #f2ead6;align-items:baseline;gap:9px;width:max-content;padding:4px 8px;display:flex}.front-act-caption h3{font:600 clamp(.84rem, 1.1vw, 1.05rem)/1.1 var(--font-display);letter-spacing:.04em;margin:0}.front-act-number{font:500 .67rem var(--font-ui);letter-spacing:.06em}.front-route{z-index:1;pointer-events:none;position:absolute;overflow:visible}.front-route path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.front-route-halo{stroke:#f2ead6;stroke-width:3px;opacity:.65}.front-route-ink{stroke:#493c30;stroke-width:1.3px;stroke-dasharray:2 5;opacity:.7}.front-waypoint{z-index:2;width:38px;height:38px;color:var(--art-ink);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.front-waypoint-mark{border:1px solid var(--art-ink);width:32px;height:32px;font:600 .75rem var(--font-display);background:#e9e0c9;border-radius:50%;place-items:center;display:grid;box-shadow:0 0 0 5px #e9e0c9}.front-waypoint.solved .front-waypoint-mark{background:var(--art-teal);color:var(--art-paper)}.front-waypoint.current .front-waypoint-mark{background:var(--art-rust);width:38px;height:38px;color:var(--art-paper);border-color:var(--art-rust)}.front-waypoint.locked{color:#796c5b;cursor:not-allowed}.front-waypoint.locked .front-waypoint-mark{background:#e9e0c9;border-style:dashed}.front-waypoint.optional .front-waypoint-mark{border-style:dashed}.door-levels .front-waypoint:focus-visible{outline:none}.front-waypoint-mark{transition:transform .12s ease-out,box-shadow .12s ease-out}.front-waypoint:hover .front-waypoint-mark,.front-waypoint:focus-visible .front-waypoint-mark{outline:2px solid var(--art-rust);outline-offset:5px;border-radius:50%;transform:scale(1.1)}.front-waypoint:active .front-waypoint-mark{transform:scale(.9)}.front-you-are-here{color:var(--art-rust);font:.75rem var(--font-hand);white-space:nowrap;background:#e9e0c9;padding:3px 5px;position:absolute;top:43px;left:50%;transform:translate(-50%)}.front-waypoint-detail{border:1px solid #a5977e;border-left:4px solid var(--art-ink);background:var(--art-paper);flex:none;min-height:85px;margin-top:10px;padding:8px 18px;position:relative}.front-waypoint-detail:before{content:"";border-left:1px solid var(--art-ink);position:absolute;inset:7px auto 7px 4px}.front-waypoint-detail h3{font:600 1.25rem var(--font-display);margin:1px 0}.front-waypoint-detail p:last-child{margin:0;font-size:.85rem}.front-make{text-align:left;cursor:pointer;width:100%;color:var(--art-ink);background:0 0;border:0;border-top:1px solid #a5977e;flex:none;align-items:center;gap:13px;padding:8px 0 0;display:flex}.front-make-mark{border:1px dashed var(--art-ink);place-items:center;width:32px;height:32px;font-size:1.4rem;display:grid}.front-make strong,.front-make small{display:block}.front-make small{color:var(--art-teal)}.front-make:hover strong,.front-make:focus-visible strong{text-decoration:underline}.front-story{z-index:17;color:var(--art-ink);align-items:center;padding:clamp(32px,8vw,120px);display:flex;position:absolute;inset:0;overflow:hidden}.front-story[hidden],.front-story-scene[hidden],.front-story-landscape[hidden]{display:none}.front-story-landscape{z-index:1;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;animation:48s ease-in-out infinite alternate front-plate-drift;position:absolute;inset:-14px}.front-story-act-I{background-image:url(/assets/act-1-B1bV-ZJ0.webp)}.front-story-act-II{background-image:url(/assets/act-2-BqWXPncw.webp)}.front-story-act-III{background-image:url(/assets/act-3-D1Tmxhyu.webp)}@keyframes front-plate-drift{0%{transform:translate(-6px,2px)}to{transform:translate(6px,-2px)}}.front-story-scene{z-index:1;pointer-events:none;transform-origin:55% 62%;position:absolute;inset:18% -6% -8% 35%;transform:scale(.86)}.front-story-scene .render-hud{display:none}.front-story-copy{z-index:2;border:1px solid var(--art-ink);background:#ece4d0;width:min(460px,40%);padding:26px 32px 28px;animation:.18s ease-out both front-arrive;position:relative;box-shadow:5px 5px #2b272159}.front-story-title{font:600 clamp(2.5rem, 5vw, 5rem)/1 var(--font-display);letter-spacing:.01em;margin:12px 0 16px}.front-story-text{white-space:pre-line;max-width:42ch;margin:0 0 28px;font-size:1.16rem;line-height:1.38}.front-story-counter{border-top:1px solid var(--art-ink);font:600 1.3rem var(--font-display);text-transform:uppercase;margin:0 0 22px;padding-top:8px}.front-story-counter[hidden]{display:none}@media (prefers-reduced-motion:reduce){.front-plate,.front-title-copy,.front-atmosphere,.front-scene,.door-levels.front-opening .door-levels-sheet,.front-dust,.front-walker,.front-story-copy,.front-story-landscape{animation:none}.front-primary,.front-secondary,.front-waypoint-mark,.door-levels-close{transition:none}}@media (max-width:700px){.front-story{align-items:flex-start;padding:28px 24px}.front-story-copy{width:100%;margin-top:64px}.front-story-landscape{background-position:70%}.front-story-scene{opacity:.7;inset:25% -45% 0 20%}.front-title-copy{width:100%}.door-title-name{font-size:clamp(3rem,11vw,5rem)}.front-scene{inset:44% -8% -8% 36%;transform:scale(.5)}.door-levels-sheet{padding:12px}.door-levels-sub{display:none}.front-act-caption{gap:4px;padding:2px 4px}.front-act-caption h3{font-size:.65rem}.front-act-number{display:none}.front-waypoint-mark{width:24px;height:24px;font-size:.6rem}}@media (max-height:700px){.door-title{padding:20px 6vw}.front-title-copy{padding:0}.front-map{min-height:180px}.front-story-copy{padding:18px 24px 20px}.front-story-text{margin-bottom:14px;font-size:1rem}.door-levels-sheet{padding-top:10px;padding-bottom:8px}.front-act-caption{top:5%}}.front-coach{z-index:22;pointer-events:none;color:var(--art-ink);position:absolute;inset:0}.front-coach[hidden]{display:none}.front-coach-arrow{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.front-coach-arrow path{fill:none;stroke:var(--art-rust);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.front-coach-card{background:var(--art-paper);border:1px solid var(--art-ink);border-left:4px solid var(--art-rust);width:min(280px,100% - 24px);font:500 .92rem/1.3 var(--font-ui);pointer-events:auto;align-items:flex-start;gap:10px;padding:12px 11px 12px 15px;display:flex;position:absolute;box-shadow:4px 4px #2b272129}.front-coach-line{flex:1;margin:0}.front-coach-close{border:1px solid var(--art-ink);width:22px;height:22px;color:var(--art-ink);font:500 1rem/18px var(--font-ui);text-align:center;cursor:pointer;background:0 0;flex:0 0 22px;padding:0}.front-coach-close:hover,.front-coach-close:focus-visible{background:var(--art-ochre)}
