@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&display=swap";.world-zone{background:var(--sky);color:var(--ink);align-items:center;gap:var(--gap-2);padding:var(--gap-3);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.arena-fit{flex:auto;justify-content:center;align-items:stretch;width:100%;min-width:0;min-height:0;display:flex}.world-hud{align-items:center;gap:var(--gap-2);flex-wrap:wrap;flex-shrink:0;justify-content:flex-start;align-self:stretch;display:flex}.world-tools{align-items:center;gap:var(--gap-2);flex-wrap:wrap;margin-left:auto;display:flex}.audio-toggles{align-items:center;gap:var(--gap-2);display:flex}.score-meter{background:var(--ink);color:var(--sun);box-shadow:var(--lip);font-family:var(--mono);font-variant-numeric:tabular-nums;border-radius:var(--r-chip);border:none;flex-shrink:0;align-items:baseline;gap:12px;padding:8px 18px;font-size:20px;font-weight:700;display:flex}.score-meter .label{color:var(--panel);letter-spacing:.12em;font-size:12px}.coins-meter{background:var(--sun);color:var(--ink)}.coins-meter .label{color:var(--ink)}.charge-meter{background:var(--mint,#2fd39b);color:var(--ink)}.charge-meter .label{color:var(--ink)}.armor-meter{background:var(--coral,#ff5d8f);color:#fff}.armor-meter .label{color:#ffffffd9}.world-topline{align-self:stretch;align-items:center;gap:var(--gap-2);display:flex}.world-callout{min-height:var(--hit);font-family:var(--display);letter-spacing:.04em;flex:1;align-items:center;font-size:22px;font-weight:800;display:flex}.world-callout .chip{border:3px solid var(--ink);background:var(--panel);border-radius:10px;padding:6px 14px;box-shadow:6px 6px #1b2a4a40}.world-callout .chip.clunk{background:var(--coral);color:var(--panel)}.world-callout .chip.honk{background:var(--sun)}.world-callout .chip.open{background:var(--mint)}.world-callout .chip.goal{background:var(--sun)}.audio-btn{min-height:var(--hit);border-radius:var(--r-chip);background:var(--panel);color:var(--ink);font-family:var(--mono);letter-spacing:.08em;box-shadow:var(--lip);transition:transform var(--t-snap) var(--ease-out), box-shadow var(--t-snap) var(--ease-out), opacity var(--t-snap) var(--ease-out);border:none;align-items:center;gap:7px;padding:6px 13px;font-size:12px;font-weight:700;display:inline-flex}.audio-glyph{width:20px;height:20px;color:var(--aqua);flex:none}.audio-btn:hover,.audio-btn:focus-visible{transform:var(--lift);box-shadow:var(--lip-deep);outline:none}.audio-btn.is-off{box-shadow:var(--lip-flat);opacity:.62;background:#ffffff80}.audio-btn.is-off .audio-glyph{color:var(--ink-3,#8ba0c8)}.audio-btn:active{transform:var(--press);box-shadow:var(--lip-flat)}.hq-chips .audio-btn,.menu-topbar .audio-btn{background:var(--wb-panel,#172038);color:var(--on-ink,#dbe6f8);box-shadow:var(--lip)}.hq-chips .audio-btn.is-off,.menu-topbar .audio-btn.is-off{background:#ffffff0f}.song-btn .audio-label{letter-spacing:.1em}.cockpit-toggle{background:var(--sun)}.arena-host{line-height:0}.step-meter{background:var(--panel);color:var(--ink);font-size:14px}.playback-bar{align-items:center;gap:var(--gap-2);flex-shrink:0;align-self:stretch;width:100%;max-width:640px;margin:0 auto;display:flex}.playback-bar .world-button{white-space:nowrap;min-width:88px}.playback-bar.is-idle,.step-meter.is-idle{opacity:.35;pointer-events:none}.playback-scrubber{height:var(--hit);cursor:pointer;touch-action:none;appearance:none;background:0 0;flex:1;min-width:0;margin:0}.playback-scrubber::-webkit-slider-runnable-track{background:var(--ink);border:none;border-radius:5px;height:10px}.playback-scrubber::-webkit-slider-thumb{-webkit-appearance:none;background:var(--sun);border:3px solid var(--ink);border-radius:50%;width:30px;height:30px;margin-top:-10px;box-shadow:2px 2px #1b2a4a40}.playback-scrubber::-moz-range-track{background:var(--ink);border:none;border-radius:5px;height:10px}.playback-scrubber::-moz-range-thumb{background:var(--sun);border:3px solid var(--ink);border-radius:50%;width:24px;height:24px;box-shadow:2px 2px #1b2a4a40}.boot-screen{background:var(--sky);min-height:100%;color:var(--ink);justify-content:center;align-items:center;gap:var(--gap-2);cursor:pointer;flex-direction:column;display:flex;overflow:hidden}.boot-title{font-family:var(--display);letter-spacing:-.01em;opacity:0;transition:opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-spring);margin:0;font-size:64px;font-weight:900;transform:translateY(10px)scale(.9)}.boot-title.shown{opacity:1;transform:none}.boot-start{min-height:var(--hit);border-radius:var(--r-chip);background:var(--sun);color:#40320c;font-family:var(--mono);letter-spacing:.14em;box-shadow:var(--lip-deep);opacity:0;transition:opacity var(--t-slow) var(--ease-out) 90ms, transform var(--t-snap) var(--ease-out), box-shadow var(--t-snap) var(--ease-out);border:none;padding:16px 52px;font-size:18px;font-weight:800}.boot-start.shown{opacity:1;animation:2.2s ease-in-out infinite boot-breathe}.boot-start:hover{transform:var(--lift)}.boot-start:active{transform:var(--press);box-shadow:var(--lip-flat);animation:none}@keyframes boot-breathe{50%{box-shadow:var(--lip-deep), 0 0 0 10px #ffc5312e}}.boot-skip{min-height:18px;font-family:var(--mono);letter-spacing:.14em;color:var(--ink);opacity:.45;font-size:11px}:root{--ink:#1b2a4a;--sky:#d3efff;--sun:#ffc531;--coral:#ff5d8f;--aqua:#26c2ee;--mint:#2fd39b;--grape:#9b6cff;--panel:#fff;--ink-2:#14203a;--ink-3:#24365c;--ink-line:#3c5282;--on-ink:#dbe6f8;--on-ink-dim:#8ba0c8;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--display:"Avenir Next", "Trebuchet MS", Verdana, sans-serif;--weight-display:800;--gap-1:6px;--gap-2:12px;--gap-3:20px;--gap-4:32px;--hit:44px;--chrome:#0f1626;--chrome-2:#18223a;--chrome-line:#2b3b5e;--on-chrome:#eaf1ff;--on-chrome-dim:#8ea3c8;--r-tile:22px;--r-card:16px;--r-chip:999px;--lip:0 6px 0 #00000059, 0 10px 20px #0000004d;--lip-deep:0 10px 0 #00000061, 0 20px 38px #0000006b;--lip-flat:0 2px 0 #00000059;--lift:translateY(-4px);--press:translateY(3px);--focus-scale:1.06;--ring:0 0 0 4px var(--sun), 0 0 0 9px #ffc53147;--recede:.86;--t-snap:90ms;--t-med:.14s;--t-slow:.18s;--stagger:40ms;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.22, .61, .36, 1);--w1:#2fd39b;--w2:#ffc531;--w3:#26c2ee;--w4:#9b6cff;--w5:#ff5d8f}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--mono);background:var(--ink);color:var(--on-ink);font-size:14px}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}input,select,textarea{touch-action:manipulation}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.mission-screen{grid-template-columns:minmax(380px,5fr) 6fr;height:100%;max-height:100%;display:grid;position:relative;overflow:hidden}.workbench-zone{background:var(--ink);color:var(--on-ink);gap:var(--gap-2);padding:var(--gap-3);padding-right:calc(var(--gap-3) + 44px);font-family:var(--mono);flex-direction:column;min-width:0;min-height:0;display:flex;overflow-y:auto}.wb-docks{display:contents}.wb-dock{gap:var(--gap-2);flex-direction:column;flex-shrink:0;min-height:0;display:flex}.wb-dock .dock-body{gap:var(--gap-2);flex-direction:column;min-height:0;display:flex}.world-pane{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.run-button{z-index:3;background:var(--sun);width:88px;height:88px;color:var(--ink);font-family:var(--mono);letter-spacing:.08em;box-shadow:var(--lip-deep);transition:transform var(--t-snap) var(--ease-out), box-shadow var(--t-snap) var(--ease-out);border:none;border-radius:50%;font-size:18px;font-weight:800;position:absolute;top:50%;left:calc(41.6667% - 44px);transform:translateY(-50%)}.run-button:not(:disabled):hover{transform:translateY(calc(-50% - 4px))}.run-button:not(:disabled):active{box-shadow:var(--lip-flat);transform:translateY(calc(3px - 50%))}.run-button:disabled{background:var(--ink-3);color:var(--on-ink-dim);box-shadow:var(--lip-flat)}.wb-topbar{justify-content:space-between;align-items:center;gap:var(--gap-2);display:flex}.wb-mission-code{color:var(--on-ink-dim);letter-spacing:.12em;font-size:12px}.wb-mission-title{margin:0;font-size:18px;font-weight:700}.wb-label{color:var(--on-ink-dim);letter-spacing:.14em;margin-bottom:var(--gap-1);font-size:11px}.wb-button{min-height:var(--hit);min-width:var(--hit);background:var(--ink-3);color:var(--on-ink);border:2px solid var(--ink-line);font-family:var(--mono);letter-spacing:.08em;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600}.wb-button:not(:disabled):hover{border-color:var(--sun)}.wb-button:disabled{color:var(--on-ink-dim)}.briefing{border:2px solid var(--ink-line);padding:var(--gap-2);border-radius:8px}.briefing p{font-family:var(--display);margin:0;font-size:15px;line-height:1.5}.briefing .wb-par{margin-top:var(--gap-1);color:var(--on-ink-dim);letter-spacing:.1em;font-size:12px}.editor-host .cm-editor{min-height:200px}.editor-loading{background:var(--ink-2);border:2px solid var(--ink-line);border-radius:8px;min-height:204px}.syntax-line{min-height:24px;color:var(--sun);font-size:13px}.syntax-line.ok{color:var(--on-ink-dim)}.deck{gap:var(--gap-3);flex-wrap:wrap;display:flex}.deck-group-label{color:var(--on-ink-dim);letter-spacing:.14em;margin-bottom:var(--gap-1);font-size:11px}.deck-cards{gap:var(--gap-1);flex-wrap:wrap;display:flex}.deck-card{min-height:var(--hit);min-width:var(--hit);background:var(--ink-3);color:var(--on-ink);border:2px solid var(--ink-line);font-family:var(--mono);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;transition:padding .2s,font-size .2s}.deck-card:not(:disabled):hover{border-color:var(--sun)}.deck-card:not(:disabled):active{background:var(--ink-2)}.deck-card.chip{min-width:0;min-height:28px;color:var(--on-ink-dim);padding:4px 8px;font-size:11px;position:relative}.deck-card.chip:after{content:"";position:absolute;inset:-8px}.log-panel{flex-direction:column;display:flex}.log-empty{font-family:var(--display);color:var(--on-ink-dim);border:2px solid var(--ink-line);border-radius:8px;margin:0;padding:8px 12px;font-size:13px}.log-rows{border:2px solid var(--ink-line);border-radius:8px;flex-direction:column;gap:2px;max-height:220px;margin:0;padding:4px;list-style:none;display:flex;overflow-y:auto}.log-row{gap:var(--gap-2);width:100%;min-height:var(--hit);text-align:left;color:var(--on-ink);font-family:var(--mono);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:4px 8px;font-size:12.5px;display:flex}.log-row:hover{background:var(--ink-3)}.log-row .log-step{color:var(--on-ink-dim);letter-spacing:.06em;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:58px;font-size:11px}.log-row.clunk .log-text{color:var(--coral)}.log-row.happy .log-text{color:var(--mint)}.log-row.goal .log-text{color:var(--sun);font-weight:700}.log-row.current{background:var(--ink-3);outline:2px solid var(--aqua);outline-offset:-2px}.hints{gap:var(--gap-1);flex-direction:column;display:flex}.hint-row{gap:var(--gap-2);border:2px solid var(--ink-line);border-radius:8px;align-items:baseline;padding:8px 12px;display:flex}.hint-row .rung{color:var(--aqua);letter-spacing:.1em;white-space:nowrap;font-size:11px}.hint-row p{font-family:var(--display);margin:0;font-size:14px;line-height:1.45}.verdict{left:var(--gap-3);right:var(--gap-3);bottom:calc(var(--gap-3) + var(--hit) + var(--gap-2));z-index:6;align-items:center;gap:var(--gap-3);padding:10px var(--gap-3);background:color-mix(in srgb, var(--wb-panel,#172038) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid var(--wb-rule,#2b3a5c);border-radius:var(--r-tile);box-shadow:var(--lip-deep);color:#e8eefc;animation:verdict-rise var(--t-slow) var(--ease-spring) both;display:flex;position:absolute}@keyframes verdict-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.verdict.cleared{box-shadow:var(--lip-deep), 0 0 0 1px #2fd39b59 inset;border-color:#2fd39b}.verdict.notyet{border-color:#ff8fae}.verdict-tag{font-family:var(--display);font-weight:var(--weight-display);letter-spacing:.02em;text-transform:uppercase;flex:none;font-size:17px}.verdict.cleared .verdict-tag{color:#6ff0c2}.verdict.notyet .verdict-tag{color:#ffa9c1}.verdict-body{min-width:0;font-family:var(--mono);color:#b9c6e2;flex:auto;font-size:13px}.verdict-stars{align-items:center;gap:var(--gap-3);flex:auto;min-width:0;display:flex;overflow:hidden}.verdict-star{align-items:center;gap:6px;min-width:0;display:inline-flex}.verdict-star .vs-glyph{color:#3d4a68;font-size:19px;line-height:1}.verdict-star.earned .vs-glyph{color:#ffc531;animation:star-pop var(--t-slow) var(--ease-spring) both}.verdict-star:nth-child(2).earned .vs-glyph{animation-delay:.12s}.verdict-star:nth-child(3).earned .vs-glyph{animation-delay:.24s}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-30deg)}to{opacity:1;transform:none}}.verdict-star .vs-label{font-family:var(--mono);color:#93a3c4;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.verdict-star.earned .vs-label{color:#d7e2f6}.verdict-again{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#101828;cursor:pointer;transition:transform var(--t-fast) var(--ease-spring);background:#ffc531;border:2px solid #101828;border-radius:999px;flex:none;padding:7px 16px;font-size:12px;font-weight:700}.verdict-again:hover{transform:translateY(-1px)scale(1.03)}.verdict-again:active{transform:translateY(1px)scale(.98)}@media (width<=860px){.verdict{gap:var(--gap-2);flex-wrap:wrap}.verdict-star .vs-label{display:none}}@media (prefers-reduced-motion:reduce){.verdict,.verdict-star.earned .vs-glyph{animation:none}}.cam-toggle{background:#1018280f;border:2px solid #10182824;border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.cam-toggle-tag{font-family:var(--mono);letter-spacing:.12em;color:#7d8aa6;padding:0 6px 0 8px;font-size:10px;font-weight:700}.cam-opt{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#5f6d88;cursor:pointer;transition:background var(--t-fast) ease, color var(--t-fast) ease;background:0 0;border:0;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:700}.cam-opt:hover{color:#26344f}.cam-opt.on{color:#fff;background:#1b2a4a}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti .chip{top:-8%;left:calc(6% + var(--i) * 6.6%);opacity:0;width:12px;height:16px;animation:confetti-fall 1.5s var(--ease-out) both;animation-delay:calc(var(--i) * 55ms);border-radius:3px;position:absolute}.confetti .chip-0{background:var(--sun)}.confetti .chip-1{background:var(--coral)}.confetti .chip-2{background:var(--mint)}.confetti .chip-3{background:var(--aqua)}.confetti .chip-4{background:var(--grape)}@keyframes confetti-fall{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:1}to{opacity:0;transform:translateY(105vh)rotate(540deg)}}.results .star-row{gap:var(--gap-2);align-items:baseline;display:flex}.results .star{color:#b9c6d8;font-size:22px}.results .star.earned{color:var(--sun)}.results .star-text{font-family:var(--display);font-size:14px}.results .bonus-quote{color:var(--ink);opacity:.75}.results-actions{gap:var(--gap-2);display:flex}.world-button{min-height:var(--hit);border-radius:var(--r-chip);background:var(--panel);color:var(--ink);font-family:var(--mono);letter-spacing:.08em;box-shadow:var(--lip);transition:transform var(--t-snap) var(--ease-out), box-shadow var(--t-snap) var(--ease-out);border:none;padding:8px 18px;font-size:13px;font-weight:700}.world-button:not(:disabled):hover,.world-button:not(:disabled):focus-visible{transform:var(--lift);box-shadow:var(--lip-deep);outline:none}.world-button:not(:disabled):active{transform:var(--press);box-shadow:var(--lip-flat)}.hint-actions{gap:var(--gap-2);flex-wrap:wrap;display:flex}.mission-screen.cockpit{background:var(--sky);--wb-w:clamp(400px, 41.6667%, 660px);grid-template-columns:1fr}.cockpit .workbench-zone{width:var(--wb-w);z-index:7;transition:transform .18s var(--ease-out);will-change:transform;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:14px 0 44px #0a101e6b}.mission-screen.cockpit[data-drawer] .workbench-zone{transform:none}.cockpit .workbench-zone{padding-right:var(--gap-3)}.wb-handle{display:none}.cockpit .wb-handle{transition:left .18s var(--ease-out);border-radius:0 var(--r-chip) var(--r-chip) 0;background:var(--ink);width:46px;min-height:132px;color:var(--sun);font-family:var(--mono);letter-spacing:.16em;cursor:pointer;z-index:8;border:none;justify-content:center;align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:6px 6px #0a101e38}.mission-screen.cockpit[data-drawer] .wb-handle{left:var(--wb-w)}.cockpit .wb-handle:hover,.cockpit .wb-handle:focus-visible{color:#fff;outline:none}.wb-handle-label{writing-mode:vertical-rl;text-orientation:mixed}.cockpit .wb-handle .chevron{transform:rotate(0)}.cockpit .wb-handle[aria-expanded=true] .chevron{transform:rotate(180deg)}.glyph{flex-shrink:0;width:12px;height:12px}.cockpit-toggle .glyph{vertical-align:-2px;width:14px;height:14px;margin-right:6px}.chevron{transition:transform var(--t-med) var(--ease-out);transform:rotate(-90deg)}.chevron.down{transform:none}.cockpit .world-zone{gap:0;padding:0}.cockpit .world-hud{top:var(--gap-3);left:var(--gap-3);right:var(--gap-3);z-index:5;pointer-events:none;position:absolute}.cockpit .world-hud>*{pointer-events:auto}.cockpit .arena-fit{width:auto;transition:left .18s var(--ease-out);padding:0;position:absolute;inset:0}.mission-screen.cockpit[data-drawer] .arena-fit{left:var(--wb-w)}.cockpit .arena-host{width:100%;max-width:100%;height:100%;max-height:100%}.cockpit .world-topline{z-index:5;pointer-events:none;justify-content:center;position:absolute;top:80px;left:0;right:0}.cockpit .world-callout{flex:none}.cockpit .playback-bar{bottom:var(--gap-3);left:var(--gap-3);z-index:5;max-width:640px;padding:var(--gap-1) var(--gap-2);-webkit-backdrop-filter:blur(14px);border-radius:var(--r-chip);box-shadow:var(--lip);transition:left .18s var(--ease-out);background:#0c1220b3;margin:0 auto;position:absolute;right:140px}.mission-screen.cockpit[data-drawer] .playback-bar{left:calc(var(--wb-w) + var(--gap-3))}.cockpit .run-button{left:auto;right:var(--gap-3);bottom:var(--gap-3);z-index:6;width:104px;height:104px;font-size:20px;top:auto;transform:none}.cockpit .run-button:not(:disabled):hover{transform:var(--lift)}.cockpit .run-button:not(:disabled):active{transform:var(--press)}.menu-screen{background:var(--chrome);height:100%;color:var(--on-chrome);padding:var(--gap-4);gap:var(--gap-3);font-family:var(--mono);flex-direction:column;display:flex;position:relative;overflow:hidden}.menu-stage{--tile-step:calc(208px + var(--gap-3));flex-direction:column;align-items:center;max-width:100%;min-height:0;margin:auto;display:flex}.menu-topbar{align-items:center;gap:var(--gap-3);top:var(--gap-4);left:var(--gap-4);right:var(--gap-4);z-index:3;flex-shrink:0;display:flex;position:absolute}.menu-topbar h1{font-family:var(--display);font-weight:var(--weight-display);letter-spacing:.02em;margin:0;font-size:34px}.menu-topbar .lede{font-family:var(--display);color:var(--on-chrome-dim);margin:2px 0 0;font-size:15px}.tile-shelf{gap:var(--gap-3);scrollbar-width:none;flex-shrink:0;align-items:stretch;max-width:100%;margin:0;padding:22px 8px 8px;list-style:none;display:flex;overflow:auto hidden}.tile-shelf::-webkit-scrollbar{display:none}.tile-slot{animation:tile-in var(--t-slow) var(--ease-spring) both;animation-delay:calc(var(--i,0) * var(--stagger));flex-shrink:0;display:flex;position:relative}@keyframes tile-in{0%{opacity:0;transform:translateY(18px)scale(.94)}to{opacity:1;transform:none}}.world-tile,.door-tile{width:208px;min-height:250px;padding:var(--gap-2) var(--gap-2) var(--gap-3);align-items:center;gap:var(--gap-1);border-radius:var(--r-tile);background:var(--chrome-2);color:var(--on-chrome);font-family:var(--mono);text-align:center;box-shadow:var(--lip);opacity:var(--recede);transition:transform var(--t-med) var(--ease-spring), box-shadow var(--t-med) var(--ease-out), opacity var(--t-med) var(--ease-out);border:none;flex-direction:column;display:flex;position:relative}.world-tile[data-focused],.door-tile[data-focused]{opacity:1;transform:scale(var(--focus-scale)) var(--lift);box-shadow:var(--lip-deep), var(--ring);z-index:2;outline:none}.world-tile:active,.door-tile:active{transform:scale(1.01) var(--press);box-shadow:var(--lip-flat), var(--ring)}.tile-face{border-radius:var(--r-card);color:#10203a;background-image:linear-gradient(160deg,#ffffff6b,#fff0 58%);background-color:var(--tile-accent,var(--chrome-line));justify-content:center;align-items:center;width:100%;height:132px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 -6px #00000029}.world-tile.w1 .tile-face{--tile-accent:var(--w1)}.world-tile.w2 .tile-face{--tile-accent:var(--w2)}.world-tile.w3 .tile-face{--tile-accent:var(--w3)}.world-tile.w4 .tile-face{--tile-accent:var(--w4)}.world-tile.w5 .tile-face{--tile-accent:var(--w5)}.door-campaign .tile-face{--tile-accent:var(--sun)}.door-maker .tile-face{--tile-accent:var(--aqua)}.door-garage .tile-face,.door-play .tile-face{--tile-accent:#4a5b7d}.door-yard .tile-face{--tile-accent:var(--mint)}.tile-number{font-family:var(--display);color:#12213c;opacity:.9;font-size:78px;font-weight:900;line-height:1}.door-glyph{color:#12213c;opacity:.85;width:68px;height:68px}.tile-name{font-family:var(--display);font-weight:var(--weight-display);letter-spacing:.04em;margin-top:var(--gap-1);font-size:17px}.tile-sub,.tile-why{font-family:var(--display);color:var(--on-chrome-dim);padding:0 4px;font-size:12.5px;line-height:1.4}.tile-why{color:var(--sun)}.tile-stars{color:var(--sun);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:12px;font-weight:700;display:flex}.star-glyph{width:15px;height:15px;color:var(--sun)}.star-glyph:not(.filled){color:var(--on-chrome-dim)}.tile-stamp{background:var(--mint);color:#0b3a2b;letter-spacing:.16em;width:116px;padding:4px 0;font-size:11px;font-weight:800;position:absolute;top:12px;right:-30px;transform:rotate(34deg);box-shadow:0 2px #0000002e}.tile-soon{border-radius:var(--r-chip);background:var(--sun);color:#40320c;letter-spacing:.16em;padding:4px 12px;font-size:11px;font-weight:800;position:absolute;bottom:10px}.world-tile.locked .tile-face,.door-tile.soon .tile-face{filter:saturate(.18)brightness(.72)}.tile-lock{color:#ffffffeb;filter:drop-shadow(0 2px 3px #0006);width:46px;height:46px;position:absolute}.draft-chip{border-radius:var(--r-chip);color:var(--aqua);letter-spacing:.16em;background:#0a1222b3;padding:2px 8px;font-size:9.5px;font-weight:700;position:absolute;top:10px;left:10px}.tile-glow{pointer-events:none;background:radial-gradient(#ffc53180,#0000 70%);border-radius:50%;height:22px;position:absolute;inset:auto 6% -14px}.mission-tray{padding:26px var(--gap-3) var(--gap-2);background:var(--chrome-2);border-radius:var(--r-tile);box-shadow:var(--lip);border-top:5px solid var(--tray-accent,var(--sun));animation:tray-in var(--t-slow) var(--ease-spring) both;align-self:stretch;margin-top:14px;position:relative}.mission-tray.w1{--tray-accent:var(--w1)}.mission-tray.w2{--tray-accent:var(--w2)}.mission-tray.w3{--tray-accent:var(--w3)}.mission-tray.w4{--tray-accent:var(--w4)}.mission-tray.w5{--tray-accent:var(--w5)}.tray-stem{top:-13px;left:calc(var(--open-i,0) * var(--tile-step) + var(--tile-step) / 2 - var(--gap-3) / 2 + 8px);border-left:13px solid #0000;border-right:13px solid #0000;border-bottom:13px solid var(--tray-accent,var(--sun));width:0;height:0;transition:left var(--t-med) var(--ease-out);position:absolute;transform:translate(-50%)}@keyframes tray-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:none}}.mission-dots{gap:var(--gap-3);justify-content:center;padding-top:58px;display:flex}.dot-slot{width:76px;animation:tile-in var(--t-med) var(--ease-spring) both;animation-delay:calc(var(--i,0) * 30ms);flex-direction:column;align-items:center;gap:5px;display:flex;position:relative}.map-bot{pointer-events:none;line-height:0;position:absolute;bottom:calc(100% - 8px);left:50%;transform:translate(-50%)}.map-dot{width:calc(var(--hit) + 16px);height:calc(var(--hit) + 16px);background:var(--chrome-2);color:var(--on-chrome);font-family:var(--display);box-shadow:var(--lip);opacity:var(--recede);transition:transform var(--t-med) var(--ease-spring), box-shadow var(--t-med) var(--ease-out), opacity var(--t-med) var(--ease-out);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:flex;position:relative}.map-dot[data-focused]{opacity:1;transform:scale(var(--focus-scale)) var(--lift);box-shadow:var(--lip-deep), var(--ring);z-index:2;outline:none}.map-dot:active{transform:var(--press);box-shadow:var(--lip-flat), var(--ring)}.map-dot.done{background:var(--mint);color:#0b3a2b;opacity:1}.map-dot.current{background:var(--sun);color:#40320c;opacity:1;animation:1.6s ease-in-out infinite dot-pulse}@keyframes dot-pulse{50%{box-shadow:var(--lip), 0 0 0 8px #ffc53138}}.map-dot.builder{background:linear-gradient(165deg, #ffd76a, var(--sun));color:#3d2f08;opacity:1;overflow:hidden}.dot-glyph{width:26px;height:26px;margin-bottom:6px}.build-ribbon{color:var(--sun);font-family:var(--mono);letter-spacing:.14em;background:#1b2a4adb;padding:2px 0 3px;font-size:8.5px;font-weight:700;position:absolute;bottom:0;left:0;right:0}.dot-under{letter-spacing:.08em;text-align:center;justify-content:center;align-items:center;gap:1px;min-height:16px;font-size:10px;display:flex}.dot-stars{gap:1px;display:flex}.dot-stars .star-glyph{width:13px;height:13px}.dot-next{color:var(--sun);letter-spacing:.14em;font-weight:700}.dot-build{color:var(--sun);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700;line-height:1.2}.dot-glow{pointer-events:none;background:radial-gradient(#ffc53173,#0000 70%);border-radius:50%;width:54px;height:12px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.hq-screen .tile-shelf{margin:auto}.hq-chips{gap:var(--gap-1);margin-left:auto;display:flex}.hq-chip{border-radius:var(--r-chip);background:var(--chrome-2);letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--on-chrome-dim);box-shadow:var(--lip-flat);padding:8px 16px;font-size:12px}.hq-chip.stars{color:var(--sun)}.hq-mascot{text-align:center;pointer-events:none;position:absolute;bottom:18px;right:34px}.hq-botname{letter-spacing:.14em;color:var(--on-chrome-dim);text-transform:uppercase;font-size:12px}.bot-maker .maker-body{gap:var(--gap-4);align-items:flex-start;width:100%;max-width:900px;min-height:0;margin:auto;display:flex;overflow-y:auto}.maker-controls{gap:var(--gap-3);flex-direction:column;flex:1;display:flex}.maker-preview{background:var(--chrome-2);border-radius:var(--r-tile);box-shadow:var(--lip);padding:var(--gap-3);text-align:center}.maker-name{min-height:var(--hit);background:var(--ink-2);width:100%;max-width:300px;color:var(--on-ink);border:2px solid var(--chrome-line);border-radius:var(--r-chip);font-family:var(--mono);padding:8px 16px;font-size:16px;font-weight:600}.maker-name:focus{border-color:var(--sun);outline:none}.swatch-row{gap:var(--gap-2);flex-wrap:wrap;display:flex}.topper-picker{margin-top:var(--gap-3)}.topper-row{gap:var(--gap-1);flex-wrap:wrap;display:flex}.topper-chip{min-height:var(--hit);border:2px solid var(--wb-rule,#2b3a5c);border-radius:var(--r-chip);background:var(--wb-panel,#172038);color:var(--on-ink,#dbe6f8);font-family:var(--mono);letter-spacing:.06em;cursor:pointer;transition:transform var(--t-snap) var(--ease-out), border-color var(--t-snap) var(--ease-out);padding:6px 14px;font-size:12px;font-weight:700}.topper-chip:hover,.topper-chip:focus-visible{transform:var(--lift);outline:none}.topper-chip.selected{border-color:var(--sun);color:var(--sun)}.swatch{width:var(--hit);height:var(--hit);box-shadow:var(--lip);opacity:var(--recede);transition:transform var(--t-med) var(--ease-spring), box-shadow var(--t-med) var(--ease-out), opacity var(--t-med) var(--ease-out);border:none;border-radius:14px}.swatch[data-focused]{opacity:1;transform:scale(var(--focus-scale)) var(--lift);box-shadow:var(--lip-deep), var(--ring);outline:none}.swatch:active{transform:var(--press);box-shadow:var(--lip-flat)}.swatch.selected{opacity:1;box-shadow:var(--lip), 0 0 0 3px var(--chrome), 0 0 0 6px var(--panel)}.swatch.selected[data-focused]{box-shadow:var(--lip-deep), var(--ring)}.hex-line{background:var(--chrome-2);border-radius:var(--r-card);align-items:baseline;gap:var(--gap-2);flex-wrap:wrap;padding:12px 16px;display:flex}.hex-lede{font-family:var(--display);color:var(--on-chrome-dim);font-size:13px}.hex-code{font-family:var(--mono);color:var(--sun);font-size:14px;font-weight:700}.color-wheel-panel{background:var(--chrome-2);border-radius:var(--r-card);padding:var(--gap-2);gap:var(--gap-2);flex-direction:column;display:flex}.wheel-row{align-items:center;gap:var(--gap-2);flex-wrap:wrap;display:flex}.wheel-row .wb-label{margin-bottom:0}.wheel-input{width:64px;height:var(--hit);border:2px solid var(--chrome-line);background:var(--ink-2);cursor:pointer;border-radius:12px;padding:2px}.color-name{flex:1;max-width:200px}.box-full{font-family:var(--display);color:var(--on-chrome-dim);margin:var(--gap-1) 0 0;font-size:13px}@media (width<=900px){.mission-screen{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.workbench-zone{padding-right:var(--gap-3);padding-bottom:calc(var(--gap-3) + 48px)}.world-zone{padding-top:calc(var(--gap-3) + 48px)}.run-button{left:auto;right:var(--gap-3);top:50%}.cockpit-toggle{display:none}.maker-body{flex-direction:column-reverse;align-items:center}.maker-controls{width:100%}.menu-screen{padding:var(--gap-3);gap:var(--gap-2);overflow-y:auto}.world-tile,.door-tile{width:168px;min-height:214px}.menu-stage{--tile-step:calc(168px + var(--gap-3))}.tile-face{height:104px}.tile-number{font-size:60px}.mission-tray{align-self:auto;width:100%}.mission-dots{gap:var(--gap-2);flex-wrap:wrap}}.small-screen-note{display:none}@media (width<=699px){.small-screen-note{z-index:999;background:var(--ink);color:var(--on-ink);justify-content:center;align-items:center;gap:var(--gap-2);padding:var(--gap-3);text-align:center;font-family:var(--mono);flex-direction:column;display:flex;position:fixed;inset:0}.small-screen-note h1{letter-spacing:.1em;color:var(--sun);margin:0;font-size:20px}.small-screen-note p{font-family:var(--display);max-width:340px;margin:0;font-size:15px;line-height:1.5}}
