@font-face{font-family:Nunito;src:url('/assets/shared/Nunito.woff2')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#111d34;color:#e4f5fc;font-family:Nunito,Arial,sans-serif}button{cursor:default;-webkit-tap-highlight-color:transparent}.game-screen{position:relative;width:100vw;height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 30% 25%,#263c57,transparent 65%),#101b32;--unit:min(7.78vw,112px);--board:calc(5*var(--unit));--panel:380px;--gap:88px}.composition{position:absolute;width:calc(var(--board) + var(--gap) + var(--panel));left:50%;top:calc(50% + 10px);transform:translate(-50%,-50%);display:grid;grid-template-columns:var(--board) var(--panel);gap:var(--gap);align-items:center}.world-floor{position:absolute;left:calc(-4*var(--unit));top:calc(-4*var(--unit));display:grid;grid-template-columns:repeat(18,var(--unit));grid-template-rows:repeat(18,var(--unit));pointer-events:none}.world-cube{position:relative}.world-cube:before{content:"";position:absolute;inset:4px 4px 14px;border-radius:10px;background:linear-gradient(145deg,#2b4264,#1d2c48);border:1px solid #3a5272;box-shadow:inset 0 2px 1px #56739355,inset -2px -2px 1px #101b3455,0 9px 0 #0c172e,0 11px 3px #08102399}.world-cube:nth-child(7n):before{background:linear-gradient(145deg,#35385e,#242747);border-color:#4a4c70}.world-cube:nth-child(11n):before{background:linear-gradient(145deg,#244450,#1c303f);border-color:#395763}.route-zone{position:relative;z-index:2;width:var(--board);height:var(--board)}.walk-grid{display:grid;grid-template-columns:repeat(5,var(--unit));grid-template-rows:repeat(5,var(--unit));position:absolute;inset:0}.walk-cube{position:relative}.walk-cube:before{content:"";position:absolute;inset:4px 4px 14px;border-radius:10px;background:linear-gradient(145deg,#caf9f0,#75c9d2);border:2px solid #e1fff8;box-shadow:inset 0 3px 1px #fff9,inset -2px -4px 1px #3c9bb6,0 9px 0 #24687e,0 11px 4px #071329,0 0 12px #a3fff633}.walk-cube:nth-child(even):before{background:linear-gradient(145deg,#c6eeff,#6bb3d7);border-color:#d8f8ff}.walk-cube.start:before{background:linear-gradient(145deg,#83edff,#30a8d0);border-color:#d5ffff;box-shadow:inset 0 3px 1px #fff9,inset -2px -4px 1px #2a7da8,0 9px 0 #175571,0 0 20px #3ed6f788}.walk-cube.destination:before{background:linear-gradient(145deg,#b2ffd4,#53ccac);border-color:#d7ffdb;box-shadow:inset 0 3px 1px #fff9,inset -2px -4px 1px #2e958d,0 9px 0 #1b6b68,0 0 20px #54ffa677}.walk-cube.obstacle:before{inset:-12px 5px 14px;background:linear-gradient(145deg,#67709d,#394665);border:2px solid #8491b1;box-shadow:inset 0 4px 2px #c0cbe377,inset -3px -7px 3px #263048,0 13px 0 #1c2943,0 18px 8px #071225aa}.walk-cube.obstacle:after{content:"";position:absolute;left:27%;right:27%;top:24%;height:25%;border:2px solid #8393b4;border-radius:5px;box-shadow:inset 0 2px 1px #1e294e;background:#475675}.robot-anchor{position:absolute;left:0;bottom:0;width:var(--unit);height:var(--unit);z-index:4}.robot{position:absolute;width:calc(var(--unit)*1.13);height:auto;left:calc(-0.07*var(--unit));bottom:18px;filter:drop-shadow(2px 6px 3px #0b223d88)}.ship-anchor{position:absolute;right:0;top:0;width:var(--unit);height:var(--unit);z-index:4}.ship{position:absolute;width:calc(var(--unit)*1.48);height:auto;left:calc(-0.22*var(--unit));bottom:15px;filter:drop-shadow(2px 8px 3px #0b223d99)}.control-zone{position:relative;z-index:3;padding:22px;border:2px solid #607493;border-radius:25px;background:linear-gradient(145deg,#253a56,#16263e);box-shadow:inset 0 3px 1px #a0b8d32c,0 11px 0 #0b172c,0 18px 16px #060d2166}.control-zone h2{font-size:15px;line-height:20px;font-weight:900;letter-spacing:1.5px;margin:0 0 10px;color:#d4e9f0}.program{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:9px;border-radius:15px;background:#101c32;box-shadow:inset 0 2px 4px #040c22,0 1px 0 #64758b}.step{height:62px;position:relative;display:grid;place-items:center;border-radius:9px;background:#26374f;border:1px dashed #587087}.step.ready{background:#b1ede0;border:1px solid #d6ffed;box-shadow:none}.step-number{position:absolute;left:6px;top:3px;font-size:12px;line-height:15px;font-weight:900;color:#8ba8b9}.ready .step-number{color:#326966}.step .arrow{width:31px;height:31px;fill:#23545e;filter:none;margin-top:9px}.empty-mark{width:5px;height:5px;background:#5e788c;border-radius:50%;margin-top:8px}.arrow{display:block;fill:#fff7e8;width:48px;height:48px;filter:drop-shadow(0 2px 0 #a45026)}.arrow.right{transform:rotate(90deg)}.arrow.left{transform:rotate(-90deg)}.arrow.down{transform:rotate(180deg)}.command-section{margin-top:25px;padding-top:20px;border-top:1px solid #566880}.command-section h2{color:#ffd8b3;margin-bottom:13px}.commands{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.command{height:70px;border-radius:50%;border:2px solid #ffdf9f;background:linear-gradient(145deg,#ffc26b,#ff973d 50%,#e96f2d);padding:0;display:grid;place-items:center;box-shadow:inset 0 4px 2px #fff0c299,inset -3px -5px 2px #c55a24,0 6px 0 #8c3e23,0 9px 6px #060c2180}.actions{display:flex;gap:16px;height:62px;margin-top:22px}.actions button{padding:0;display:grid;place-items:center;border-radius:17px}.erase{width:68px;background:linear-gradient(145deg,#6d85a4,#425777);border:2px solid #95aac3;box-shadow:inset 0 3px 1px #b7cbe366,0 5px 0 #24354f}.erase svg{width:39px;fill:#d6e8f0}.erase .cross{fill:none;stroke:#425777;stroke-width:3;stroke-linecap:round}.run{flex:1;border:2px solid #d3ffd4;background:linear-gradient(145deg,#8de99d,#39b375);box-shadow:inset 0 4px 1px #e3ffd48c,0 6px 0 #1a6e4a}.run svg{height:47px;fill:#fbffef;filter:drop-shadow(0 2px 0 #24784e)}.corner-button{position:absolute;z-index:20}@media(orientation:portrait){.game-screen{--unit:17.2vw;--board:calc(5*var(--unit));--panel:91vw;--gap:26px}.composition{width:var(--panel);grid-template-columns:1fr;gap:var(--gap);top:calc(50% + 10px)}.world-floor{left:calc((var(--panel) - var(--board))/2 - 4*var(--unit))}.route-zone{justify-self:center}.world-cube:before,.walk-cube:before{border-radius:7px;inset:3px 3px 10px}.world-cube:before{box-shadow:inset 0 2px 1px #56739355,0 6px 0 #0c172e,0 8px 2px #08102399}.walk-cube:before{border-width:1px;box-shadow:inset 0 2px 1px #fff9,inset -1px -3px 1px #3c9bb6,0 6px 0 #24687e,0 8px 3px #071329}.walk-cube.obstacle:before{inset:-7px 3px 10px;border-width:1px;box-shadow:inset 0 3px 2px #c0cbe377,inset -2px -4px 2px #263048,0 8px 0 #1c2943,0 12px 5px #071225aa}.walk-cube.obstacle:after{border-width:1px}.robot{bottom:12px}.ship{bottom:10px}.control-zone{padding:16px;border-radius:22px}.control-zone h2{font-size:13px;line-height:17px;letter-spacing:1px;margin-bottom:8px}.program{gap:6px;padding:7px;border-radius:12px}.step{height:44px;border-radius:7px}.step .arrow{width:26px;height:26px;margin-top:8px}.step-number{font-size:10px;line-height:12px;left:5px;top:2px}.command-section{margin-top:16px;padding-top:14px}.command-section h2{margin-bottom:10px}.commands{gap:16px}.command{height:54px}.command .arrow{width:36px;height:36px}.actions{height:48px;margin-top:16px;gap:16px}.actions button{border-radius:14px}.erase{width:59px}.erase svg{width:32px}.run svg{height:39px}}@media(orientation:portrait) and (max-height:700px){.game-screen{--unit:38px;--panel:88vw;--gap:16px}.composition{top:calc(50% + 30px)}.control-zone{padding:10px}.control-zone h2{font-size:11px;line-height:15px;letter-spacing:.7px;margin-bottom:6px}.program{padding:5px;gap:5px}.step{height:38px}.step .arrow{width:24px;height:24px;margin-top:8px}.command-section{margin-top:12px;padding-top:10px}.command-section h2{margin-bottom:6px}.commands{gap:12px}.command{height:44px}.command .arrow{height:30px;width:30px}.actions{height:44px;margin-top:12px}.erase{width:51px}.run svg{height:35px}.robot{bottom:8px}.ship{bottom:7px}}@media(orientation:landscape) and (max-height:600px){.game-screen{--unit:58px;--panel:300px;--gap:38px}.composition{top:calc(50% + 8px)}.control-zone{padding:15px}.control-zone h2{font-size:12px;line-height:16px;margin-bottom:7px}.program{padding:6px;gap:6px}.step{height:40px}.step .arrow{height:25px;width:25px}.command-section{margin-top:15px;padding-top:12px}.command-section h2{margin-bottom:8px}.commands{gap:12px}.command{height:48px}.command .arrow{height:32px;width:32px}.actions{height:44px;margin-top:15px}.erase{width:54px}.run svg{height:36px}.robot{bottom:12px}.ship{bottom:10px}.world-cube:before,.walk-cube:before{inset:3px 3px 10px;border-radius:7px}.walk-cube.obstacle:before{inset:-7px 3px 10px}}@media(orientation:portrait) and (min-height:701px){.composition{top:calc(50% + 44px)}}@media(orientation:portrait) and (max-height:700px){.control-zone{padding:9px}.step{height:34px}.command-section{margin-top:8px;padding-top:8px}.ship{width:calc(var(--unit)*1.1);left:calc(-.02*var(--unit))}}@media(orientation:portrait) and (max-height:700px){.composition{top:calc(50% + 38px)}}:root{--bg:#112c30;--env1:#295257;--env2:#193b40;--edge:#466b6b;--side:#0b2025;--walk1:#fff3cf;--walk2:#e0c58b;--walkeven1:#ffefd4;--walkeven2:#dec6a1;--walkside:#9c8457;--obstacle1:#687b73;--obstacle2:#3e5553;--panel1:#2c5556;--panel2:#19383d;--program:#102b30;--step:#c3ece1;--ink:#26594f;--command1:#ffc0a1;--command2:#e66b57;--commandside:#8e3e3a;--label:#e3f2e5;--commandlabel:#ffcfb8}html,body,.game-screen{background:var(--bg)}.world-cube:nth-child(n):before{background:linear-gradient(145deg,var(--env1),var(--env2));border-color:var(--edge);box-shadow:inset 0 2px 1px #ffffff19,inset -2px -2px 1px #00000022,0 9px 0 var(--side),0 11px 3px #00000077}.world-cube:nth-child(7n):before{background:linear-gradient(145deg,var(--env2),var(--env1))}.walk-cube:nth-child(n):before{background:linear-gradient(145deg,var(--walk1),var(--walk2));border-color:var(--walk1);box-shadow:inset 0 3px 1px #ffffff99,inset -2px -4px 1px #00000022,0 9px 0 var(--walkside),0 11px 4px #00000077}.walk-cube:nth-child(even):before{background:linear-gradient(145deg,var(--walkeven1),var(--walkeven2))}.walk-cube.obstacle:before{background:linear-gradient(145deg,var(--obstacle1),var(--obstacle2));border-color:var(--edge);box-shadow:inset 0 4px 2px #ffffff44,inset -3px -7px 3px #00000033,0 13px 0 var(--side),0 18px 8px #00000099}.walk-cube.obstacle:after{background:var(--obstacle2);border-color:var(--edge)}.walk-cube.start:before{background:linear-gradient(145deg,#8df5ed,#38b5bd);border-color:#c2fff6}.walk-cube.destination:before{background:linear-gradient(145deg,#d4ffdf,#70cd9f);border-color:#deffe7}.control-zone{background:linear-gradient(145deg,var(--panel1),var(--panel2));border-color:var(--edge);box-shadow:inset 0 3px 1px #ffffff22,0 11px 0 var(--side),0 18px 16px #00000055}.control-zone h2{color:var(--label)}.program{background:var(--program)}.step{background:var(--env1);border-color:var(--edge)}.step.ready{background:var(--step);border-color:var(--step)}.step-number{color:var(--label)}.ready .step-number,.step .arrow{color:var(--ink);fill:var(--ink)}.command-section{border-color:var(--edge)}.command-section h2{color:var(--commandlabel)}.command{background:linear-gradient(145deg,var(--command1),var(--command2));border-color:var(--command1);box-shadow:inset 0 4px 2px #fff0c299,inset -3px -5px 2px #00000022,0 6px 0 var(--commandside),0 9px 6px #00000077}.command .arrow{filter:drop-shadow(0 2px 0 var(--commandside))}.erase{background:linear-gradient(145deg,var(--env1),var(--env2));border-color:var(--edge);box-shadow:inset 0 3px 1px #ffffff33,0 5px 0 var(--side)}.erase .cross{stroke:var(--env2)}@media(orientation:portrait){.world-cube:nth-child(n):before{box-shadow:inset 0 2px 1px #ffffff22,0 6px 0 var(--side),0 8px 2px #00000077}.walk-cube:nth-child(n):before{box-shadow:inset 0 2px 1px #fff9,inset -1px -3px 1px #00000022,0 6px 0 var(--walkside),0 8px 3px #00000077}.walk-cube.obstacle:before{box-shadow:inset 0 3px 2px #ffffff44,inset -2px -4px 2px #00000033,0 8px 0 var(--side),0 12px 5px #00000088}}/* V4: requested palette B, rocks, quieter console and centred headings. */.control-zone{background:linear-gradient(145deg,#224348,#1b373b);border-color:#36575b;box-shadow:inset 0 1px 0 #ffffff0a,0 3px 5px #061b2038}.control-zone h2{text-align:center}.program{box-shadow:inset 0 1px 2px #071c2580,0 1px 0 #49636655}.command-section{border-top-color:#365357}.walk-cube.obstacle:before{inset:4px 4px 14px;border-radius:10px;background:linear-gradient(145deg,var(--walk1),var(--walk2));border:2px solid var(--walk1);box-shadow:inset 0 3px 1px #ffffff99,inset -2px -4px 1px #00000022,0 9px 0 var(--walkside),0 11px 4px #00000077}.walk-cube.obstacle:after{display:none}.rock{position:absolute;left:-12%;top:-4%;width:124%;height:auto;z-index:3;filter:drop-shadow(1px 5px 2px #182c3666);pointer-events:none}.rock-2{transform:rotate(6deg)}.rock-3{transform:rotate(-5deg)}@media(orientation:portrait){.walk-cube.obstacle:before{inset:3px 3px 10px;border-radius:7px;border-width:1px;box-shadow:inset 0 2px 1px #fff9,inset -1px -3px 1px #00000022,0 6px 0 var(--walkside),0 8px 3px #00000077}.rock{filter:drop-shadow(1px 3px 2px #182c3666)}}@media(orientation:landscape) and (max-height:600px){.walk-cube.obstacle:before{inset:3px 3px 10px;border-radius:7px}}#game{--ma-game-style:robot-arrows;isolation:isolate}.corner-button{display:block;cursor:pointer}#game button{touch-action:manipulation;cursor:pointer}#game button:disabled{cursor:default}#game .command:active:not(:disabled),#game .actions button:active:not(:disabled){translate:0 3px}#game .step{padding:0;font-family:inherit;cursor:pointer}#game .step.current{outline:3px solid #ffcd82;outline-offset:2px}#game .step.failed{outline:3px solid #ef988c;outline-offset:2px}#game .robot-anchor{transform:translate(calc(var(--robot-x,0)*var(--unit)),calc(var(--robot-y,0)*var(--unit)));transition:transform 700ms ease-in-out}#game .robot-anchor.no-transition{transition:none}#game .ship.completed{animation:kitchen-completion-glow 850ms ease-in-out both}#game .walk-cube.warn:before{outline:3px solid #ef988c;outline-offset:-3px}#game .erase svg{fill:none;stroke:#e1f6ed;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 0 #0b2429)}#game .run:disabled{opacity:.6}#game .step.ready .empty-mark{display:none}#game.has-brand-finale .route-zone,#game.has-brand-finale .control-zone{visibility:hidden}#game .celebration-screen{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate}#game .celebration-screen[hidden]{display:none}#game .celebration-content{position:relative;min-height:0}#game .mascots{position:relative;z-index:1;min-height:0;pointer-events:none}#game .finish-actions{position:relative;z-index:2;display:flex;flex-direction:column;flex:none}#game .finish-button{position:relative;text-decoration:none}#game .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#game :focus-visible{outline:3px solid #ffd997;outline-offset:3px}@media(prefers-reduced-motion:reduce){#game .robot-anchor{transition-duration:160ms}}/* Requested step trail and boarding sequence, 23 October 2026. */#game .walk-cube.visited:before{background:linear-gradient(145deg,#8df5ed,#38b5bd);border-color:#c2fff6}#game .robot-anchor.boarding{z-index:5}#game .robot-anchor.boarding .robot{transform-origin:55% 42%;animation:robot-enter-ship 700ms ease-in-out both}#game .robot-anchor.boarded .robot{visibility:hidden}@keyframes robot-enter-ship{0%{transform:translate(0,0) scale(1);opacity:1}55%{transform:translate(7%,-22%) scale(.55);opacity:1}100%{transform:translate(10%,-32%) scale(.12);opacity:0}}@media(prefers-reduced-motion:reduce){#game .robot-anchor.boarding .robot{animation-duration:300ms}}/* The shared SPA announcer sits outside #game; keep it accessible and out of the visual layout. */.navigation-status.sr-only{position:fixed;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}/* Mobile browser bars: fit the measured console and route below the unchanged shared corner controls. */@media(orientation:portrait){#game{--unit:var(--mobile-unit,38px);--panel:91vw;--gap:clamp(12px,calc(4dvh - 10px),26px);padding-bottom:max(12px,env(safe-area-inset-bottom))}#game .composition{width:var(--panel);top:var(--mobile-top,110px);transform:translateX(-50%);grid-template-columns:1fr;gap:var(--gap)}#game .control-zone{padding:clamp(9px,calc(2.54dvh - 5.43px),16px)}#game .control-zone h2{font-size:clamp(11px,calc(.7246dvh + 6.884px),13px);line-height:clamp(15px,calc(.7246dvh + 10.884px),17px);margin-bottom:8px}#game .program{padding:clamp(5px,calc(.7246dvh + .884px),7px);gap:clamp(5px,calc(.3623dvh + 2.942px),6px)}#game .step{height:clamp(34px,calc(3.623dvh + 13.42px),44px)}#game .command-section{margin-top:clamp(8px,calc(2.899dvh - 8.464px),16px);padding-top:clamp(8px,calc(2.174dvh - 4.348px),14px)}#game .command-section h2{margin-bottom:clamp(6px,calc(1.449dvh - 2.232px),10px)}#game .commands{gap:16px}#game .command{height:clamp(44px,calc(3.623dvh + 23.42px),54px)}#game .actions{height:clamp(44px,calc(1.449dvh + 35.768px),48px);margin-top:clamp(12px,calc(1.449dvh + 3.768px),16px)}#game .erase{width:59px}#game .ship{width:calc(var(--unit)*1.48);left:calc(-.22*var(--unit));bottom:10px}#game .robot{bottom:12px}}@media(orientation:portrait) and (max-height:540px){#game .control-zone{padding:6px}#game .control-zone h2{font-size:10px;line-height:12px;margin-bottom:5px}#game .program{padding:4px;gap:4px}#game .step{height:26px}#game .step .arrow{height:20px;width:20px;margin-top:6px}#game .command-section{margin-top:6px;padding-top:6px}#game .command-section h2{margin-bottom:6px}#game .commands{gap:12px}#game .command{height:44px}#game .actions{height:44px;margin-top:10px}}
