:root{font-family:Arial,Helvetica,sans-serif;color:#FFF5E6;background:#252348;--amber:#FFC857;--mint:#35D9EF;--line:#b9d3c526;--muted:#D6C9EC;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overscroll-behavior:none}body{background:radial-gradient(ellipse at 50% 32%,#6949BD,#252348 75%);overflow:hidden}body:before{content:none;position:fixed;left:28px;bottom:25px;color:#89a59e4d;font-size:9px;writing-mode:vertical-rl}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.38;cursor:default}button:focus-visible,.component:focus-visible{outline:3px solid #fff0b6;outline-offset:2px}h1,h2,h3,p{margin:0}svg{width:20px;height:20px;flex-shrink:0}#world,#vignette,#app{width:100%;left:0;transform:none}#world,#vignette{position:fixed;top:0;height:100dvh}#world{touch-action:none;box-shadow:0 0 110px #030e1980}#vignette{pointer-events:none;background:linear-gradient(#25234833,transparent 23%)}#app{position:relative;height:100dvh;pointer-events:none}#app>*{pointer-events:auto}.topbar{height:52px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:3;background:linear-gradient(#252348d9,#25234800)}.wordmark{display:flex;align-items:center;gap:4px;font-size:24px;font-weight:800;letter-spacing:-1px}.wordmark svg{color:var(--amber);fill:#FFC85722}.chapter-track{display:flex;gap:6px}.chapter-track span{display:grid;place-items:center;border:1px solid #a5c5b72b;border-radius:50%;height:22px;width:22px;font-size:9px;color:#8faea5}.chapter-track .current{border-color:var(--amber);color:var(--amber)}.chapter-track .done{background:#4b7b68;color:#d6ffe0}.utility{display:flex;gap:6px}.icon-button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #b8d0b42b;border-radius:50%;background:#16344199}.icon-button:hover{background:#476969}.icon-button svg{width:17px;height:17px}.eyebrow{font-size:9px;line-height:1.4;letter-spacing:1.6px;color:var(--amber);font-weight:700}.eyebrow>span{color:#abc2b2}.primary,.secondary{min-height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 15px;font-size:12px;font-weight:700}.primary{background:linear-gradient(#FFD879,#FFC857);color:#252348;box-shadow:0 4px 0 #B57343,0 6px 20px #071f3055}.secondary{border:1px solid #bbd0b74d;background:#6949BD;color:#f6e6c3}.primary:hover:not(:disabled){filter:brightness(1.07)}.primary svg,.secondary svg{width:17px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;font-size:10px;color:#c7d5be;padding:3px 6px}.text-button svg{width:14px;height:14px}.text-button.active{color:var(--amber)}.button-row{display:flex;gap:8px}.home-copy{padding:23px 26px 0;pointer-events:none!important;text-shadow:0 2px 10px #252348}.home-copy h1{font-size:40px;line-height:1.08;letter-spacing:-1.8px;margin:10px 0 12px;color:#fff0ce}.home-copy p{font-size:12px;color:#d3dfd0}.home-bottom{position:absolute;bottom:0;width:100%;padding:36px 25px 20px;background:linear-gradient(transparent,#252348ed 14%,#252348);text-align:center}.chapter-label{font-size:10px;letter-spacing:2px;color:#e4dab8;margin-bottom:12px}.start{width:100%;font-size:17px;min-height:51px;justify-content:space-between;padding-inline:22px}.start-caption{font-size:10px;color:#9eb9ad;margin:15px 0 18px}.mission-path{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:13px}.mission-path button{flex:1;text-align:left;display:flex;gap:7px;font-size:9px;line-height:1.4;padding:3px 0}.mission-path b{color:var(--amber);font-size:12px}.mission-path small{display:block;font-size:6px;color:#a3bcae;letter-spacing:.8px;margin-top:6px}.local-note{font-size:8px;color:#91aa9f;display:block;margin-top:15px}.mission-hud{position:absolute;top:58px;left:15px;right:15px;padding:12px 14px;background:linear-gradient(135deg,#252348ed,#493775e8);border:1px solid #b8d4bc2b;border-radius:13px;box-shadow:0 5px 24px #08243133;pointer-events:none!important}.run-title{display:flex;justify-content:space-between;color:#b0ccbd;font-size:8px;letter-spacing:1px}.mission-hud h2{font-size:18px;margin:6px 0 11px;letter-spacing:-.5px}.destination-progress{height:4px;background:#7d9f9155;border-radius:5px;overflow:hidden}.destination-progress i{display:block;width:0;background:var(--amber);height:100%;box-shadow:0 0 10px #f8c674}.run-stats{display:flex;align-items:center;gap:14px;margin-top:9px;font-size:7px;color:#b1cbbc;letter-spacing:.6px}.run-stats>span:last-child{margin-left:auto}#hearts{color:#FF9585;font-size:15px;letter-spacing:2px}.token-count{color:#35D9EF;font-size:15px}.token-count b{font-weight:500}.runner-bottom{position:absolute;bottom:max(9px,env(safe-area-inset-bottom));width:100%;text-align:center;pointer-events:none!important}.runner-bottom p{font-size:12px;color:#f5e7c6;text-shadow:0 2px 6px #252348;margin-bottom:12px;min-height:15px}.runner-controls{display:flex;justify-content:center;gap:14px;pointer-events:none}.runner-controls button{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:6px;background:#252348ed;border:1px solid #c7d7bc55;border-radius:14px;width:60px;height:45px;font-size:24px;touch-action:none}.runner-controls button:nth-child(2){width:91px;color:var(--amber)}.runner-controls small{font-size:8px;letter-spacing:1px}.runner-controls button:active{background:#739782}.keyboard-help{display:block;font-size:8px;letter-spacing:.2px;color:#bad0bc;margin-top:10px}.intro-card{position:absolute;top:31%;left:25px;right:25px;padding:24px;background:#252348ed;border:1px solid #f0d19755;border-radius:18px}.intro-card>svg{color:var(--amber);margin:20px 0 12px}.intro-card p{font-size:20px;line-height:1.45;margin-bottom:20px}.intro-card .primary{width:100%}body[data-mode=intro] #vignette{animation:blackout .6s forwards}@keyframes blackout{0%{background:#fff3c722}25%{background:#061621e6}50%{background:#06162188}100%{background:#071925b0}}.arrival-caption{position:absolute;bottom:18%;text-align:center;width:100%;padding:24px}.arrival-caption h2{font-size:25px;margin:12px 0}.arrival-caption p{font-size:11px;color:#c1d8c4}.payoff-card,.complete-card,.restart-text{position:absolute;left:20px;right:20px;bottom:25px;padding:25px;background:linear-gradient(#393065f5,#252348fc);border:1px solid #d6ce973b;border-radius:18px;box-shadow:0 12px 35px #0b223655}.payoff-card h2,.complete-card h2,.restart-text h2{font-size:31px;line-height:1.1;letter-spacing:-1px;margin:12px 0 16px}.payoff-card p,.complete-card p,.restart-text p{font-size:12px;line-height:1.6;color:#b9d0be}.payoff-card .quote{color:#f4deb3;font-size:14px;margin-bottom:13px}.payoff-card .primary,.complete-card>.primary{width:100%;margin-top:22px}.reward{display:flex;align-items:center;gap:8px;font-size:10px;color:#a2e7bf;margin-top:16px}.reward svg{width:16px}.restart-text{bottom:15%}.restart-meter{height:4px;background:#536d61;margin-top:22px}.restart-meter i{height:100%;display:block;background:var(--amber)}.mastery{font-size:9px;color:#b8e5bc;line-height:2;margin:17px 0}.next-chapter{border-top:1px solid var(--line);padding-top:16px}.next-chapter small{font-size:8px;letter-spacing:1.5px;color:var(--amber)}.next-chapter h3{font-size:20px;margin:7px 0}.complete-card>.text-button{display:flex;width:100%;margin-top:10px}
/* The wall-mounted device remains visible above an actual repair surface. */
.workbench{position:absolute;top:calc(52px + min(100vw,480px)*.32);bottom:max(8px,env(safe-area-inset-bottom));left:10px;right:10px;display:flex;flex-direction:column;background:linear-gradient(#4B3879fa,#30264ffa);border:2px solid #8d927457;border-radius:14px;box-shadow:0 9px 0 #182a30,0 20px 35px #08172288;overflow:hidden}.bench-header{padding:9px 12px 7px;display:flex;align-items:center;gap:10px;flex-shrink:0}.bench-header .eyebrow{font-size:7px;letter-spacing:1.1px}.bench-header h2{font-size:17px;line-height:1.2;margin-top:4px}.bench-badge{margin-left:auto;font-size:7px;letter-spacing:1px;color:#bbc3a8;display:flex;gap:5px;align-items:center;max-width:90px}.bench-badge svg{width:15px}.bench-objective{display:flex;gap:7px;align-items:center;padding:6px 12px;background:#152f3b70;font-size:9px;color:#c7d7bd;flex-shrink:0}.bench-objective svg{width:13px;height:13px}.bench-layout{display:flex;flex-direction:column;flex:1;min-height:0;padding:9px 10px 0;gap:7px}.parts-tray{display:flex;gap:6px;flex-shrink:0}.parts-tray>.eyebrow,.wire-note,.bench-note{display:none}.inventory{display:flex;align-items:center;gap:5px;flex:1;min-width:0;border:1px solid #9fb6a346;border-radius:7px;background:#584581;padding:5px;font-size:10px;position:relative;min-height:45px;text-align:left}.inventory .part-drawing{width:33px;flex-shrink:0}.inventory svg{width:33px;height:28px}.inventory small{display:block;font-size:7px;color:#bcd0b9;margin-top:4px}.inventory>b{display:none}.inventory.suggested{border-color:var(--amber);background:#785B71}.inventory:disabled{opacity:.42}.board-column{display:flex;flex-direction:column;flex:1;min-height:0}.board-caption{display:flex;justify-content:space-between;gap:6px;font-size:6px;letter-spacing:.5px;color:#bdceac;margin-bottom:6px;flex-shrink:0}.circuit-board{flex:1;min-height:0;position:relative;background-color:#E9E0F5;background-image:radial-gradient(#506a624a 1px,transparent 1px);background-size:14px 14px;border:5px solid #A18CC4;border-radius:7px;box-shadow:inset 0 0 30px #284a3420;touch-action:none;overflow:hidden}.board-watermark{position:absolute;inset:0;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;pointer-events:none;color:#58755a40}.board-watermark span{font-size:7px;letter-spacing:2px}.board-watermark svg{width:28px;height:28px}#wires{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}.wire-line,.wire-shadow{fill:none;stroke-linecap:round;stroke-linejoin:round}.wire-line{stroke:#b7813f;stroke-width:4}.wire-shadow{stroke:#2c554733;stroke-width:8}.wire-line.powered{stroke:#f3a638;filter:drop-shadow(0 0 3px #ffce54)}.wire-hit{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke;cursor:pointer}.component{position:absolute;width:78px;height:65px;transform:translate(-50%,-50%);background:#FFF5E6;border:1px solid #AC95C7;border-radius:9px;box-shadow:0 4px 0 #40544438;z-index:3;cursor:grab;color:#3E3259;touch-action:none;user-select:none;isolation:isolate}.component-art{height:47px;display:flex;align-items:center;justify-content:center}.component-art svg{width:66px;height:43px}.component-name{position:absolute;bottom:6px;left:0;width:100%;text-align:center;font-size:8px;letter-spacing:1px;font-weight:700}.terminal{width:44px;height:44px;position:absolute;top:7px;border-radius:50%;display:grid;place-items:center;z-index:4;padding:0}.terminal:before{content:'';width:15px;height:15px;background:#252348;border:3px solid #AE9AC8;border-radius:50%;box-shadow:0 0 0 1px #526953}.terminal.t0{left:-26px}.terminal.t1{right:-26px}.terminal span{position:absolute;top:36px;font-size:7px;color:#252348;font-weight:bold;white-space:nowrap}.terminal.selected:before{background:#f9d38a;box-shadow:0 0 0 5px #c3964980}.terminal.highlight:before{border-color:#e5a843;box-shadow:0 0 0 4px #c6984940}.component.led.lit{background:#ffe3a0;box-shadow:0 0 32px #ffc763b0}.component.led.lit svg{filter:drop-shadow(0 0 5px #ffc840)}.board-tools{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:34px}.board-tools>span{display:none}.board-tools button{font-size:9px}.bench-guidance{display:flex;gap:9px;align-items:center;flex-shrink:0;padding:8px 12px;border-block:1px solid var(--line);background:#252348e8;min-height:68px}.guidance-icon{color:var(--amber);flex-shrink:0}.guidance-icon svg{width:18px}.bench-guidance .eyebrow{font-size:7px;letter-spacing:.8px}.bench-guidance p{font-size:11px;line-height:1.35;margin-top:3px;color:#d6e2c5}.bench-guidance.success{background:#41654A}.bench-guidance>button{margin-left:auto}.bench-footer{padding:4px 10px 10px;flex-shrink:0;display:flex;flex-direction:column;gap:3px}.help-actions{min-height:25px;display:flex;align-items:center;gap:8px;justify-content:space-between}.help-actions .text-button{min-height:25px}.safe-note{font-size:8px;color:#b3c8b1}.assisted{font-size:6px;color:var(--amber)}.bench-footer .button-row{display:grid;grid-template-columns:1fr 1fr}.bench-footer .primary,.bench-footer .secondary{font-size:11px;min-height:40px;padding:8px;gap:5px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:18px;background:#201B39BB;backdrop-filter:blur(7px)}.modal{position:relative;max-height:90dvh;overflow:auto;width:100%;padding:30px 24px 24px;background:#30264F;border:1px solid #9cb7a353;border-radius:17px;box-shadow:0 20px 60px #00112180;display:flex;flex-direction:column;gap:15px}.modal h2{font-size:27px;line-height:1.12;letter-spacing:-.5px;margin-top:5px}.modal p{font-size:12px;line-height:1.6;color:#cedac2}.modal .eyebrow{font-size:8px;padding-right:20px}.modal-close{position:absolute;top:9px;right:9px;width:30px;height:30px}.modal .help-note{font-size:10px;color:#a6c3ad}.mission-menu{display:flex;flex-direction:column;gap:8px}.mission-menu button{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);padding:14px 10px;border-radius:8px;background:#493B70}.mission-menu b{font-size:18px;color:var(--amber)}.mission-menu span{font-size:11px;flex:1}.mission-menu small{display:block;font-size:7px;color:#b3c6ad;margin-top:6px}.reference-diagram{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;background:#d0d6b8;color:#365143;padding:15px;border-radius:8px;font-size:10px}.danger{color:#f3b89c}#toast{position:fixed;z-index:40;left:50%;bottom:20px;transform:translate(-50%,15px);max-width:min(90vw,420px);width:max-content;background:#ffe0a0;color:#24424a;box-shadow:0 6px 35px #00132577;padding:12px 16px;border-radius:10px;font-size:11px;line-height:1.45;text-align:center;pointer-events:none;opacity:0;transition:.18s}#toast.visible{opacity:1;transform:translate(-50%,0)}body[data-mode=workbench] #toast{bottom:auto;top:58px}body[data-mode=workbench] #vignette,body[data-mode=payoff] #vignette,body[data-mode=complete] #vignette{background:none}
@media(max-width:370px){.topbar{padding:0 10px;gap:8px}.chapter-track{gap:3px}.home-copy h1{font-size:34px}.inventory{gap:3px;font-size:9px}.inventory .part-drawing,.inventory svg{width:25px}.inventory small{font-size:6px}.component{width:62px;height:55px}.component-art{height:39px}.component-art svg{width:54px;height:34px}.component-name{font-size:7px;bottom:5px}.terminal{top:2px}.terminal span{font-size:6px;top:34px}.terminal.t0{left:-24px}.terminal.t1{right:-24px}.bench-guidance p{font-size:10px}.bench-badge{display:none}.board-caption{font-size:5px}}
@media(max-height:700px){.home-copy{padding-top:10px}.home-copy h1{font-size:32px}.home-copy p{font-size:10px}.home-bottom{padding:27px 24px 12px}.home-bottom .chapter-label{display:none}.mission-path{padding-top:8px}.local-note{margin-top:9px}.home-bottom .start-caption{margin:12px 0}.mission-hud{padding:8px 12px}.mission-hud h2{font-size:16px;margin:5px 0 8px}.run-stats{margin-top:6px}.runner-bottom p{margin-bottom:8px;font-size:10px}.keyboard-help{margin-top:6px;font-size:7px}.runner-controls button{height:38px}.workbench{top:calc(46px + min(100vw,480px)*.29)}.bench-header{padding:6px 10px}.bench-header h2{font-size:14px;margin-top:2px}.bench-objective{display:none}.bench-layout{padding-top:6px;gap:5px}.inventory{min-height:37px;padding:3px}.bench-guidance{padding:6px 9px;min-height:57px}.bench-guidance p{font-size:10px}.bench-footer{padding-bottom:7px}.bench-footer .primary,.bench-footer .secondary{min-height:37px}.board-tools{height:30px}.payoff-card,.complete-card,.restart-text{padding:20px;bottom:15px}.complete-card h2{font-size:27px}.complete-card p{font-size:11px}.mastery{margin:12px 0}.next-chapter{padding-top:11px}.complete-card>.primary{margin-top:15px}.payoff-card h2{font-size:27px}.payoff-card p{font-size:11px}.payoff-card .primary{margin-top:17px}}
@media(max-height:520px){body{overflow-y:auto}#app{min-height:520px}#world,#vignette{min-height:520px}.workbench{bottom:8px}.keyboard-help{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}

/* Responsive city: the canvas expands its field of view, never its actors. */
:root{--line:#C9B7E53B;--muted:#D6C9EC}
body[data-mode=action]{touch-action:none;overflow:hidden}
#world{box-shadow:none}
.topbar{padding-top:env(safe-area-inset-top);height:calc(56px + env(safe-area-inset-top));background:linear-gradient(#252348ef,#25234800)}
.icon-button{width:44px;height:44px;background:#252348a8;border-color:#BAA2E966}
.icon-button:hover{background:#6949BD}
.chapter-track .done{background:#B8E65C;color:#252348}
.chapter-track span{color:#D6C9EC}
.home-copy h1{color:#FFF5E6}.home-copy p,.start-caption,.local-note,.mission-path small,.run-title,.run-stats,.keyboard-help,.payoff-card p,.complete-card p,.restart-text p,.text-button,.modal p,.modal .help-note{color:#DED2ED}
.primary{box-shadow:0 4px 0 #B67D36,0 6px 20px #25234844}
.home-bottom{background:linear-gradient(transparent,#252348f5 16%,#252348)}
.runner-bottom p{display:table;margin:0 auto 12px;padding:9px 16px;background:#252348e8;border:1px solid var(--line);border-radius:30px;color:#FFF5E6;text-shadow:none;max-width:95%}
.runner-controls button{height:48px;background:#252348e8}.runner-controls button:active{background:#6949BD}
@media(min-width:760px) and (min-aspect-ratio:6/5){body[data-input=keyboard] .runner-controls{display:none}}
body[data-input=touch] .keyboard-help{display:none}
.keyboard-help{font-size:10px;background:#252348d9;width:max-content;max-width:95%;padding:6px 12px;border-radius:8px;margin:6px auto 0}
.bench-guidance p,.bench-objective,.inventory small,.safe-note,.board-caption{color:#FFF5E6}
.component{color:#3E3259}.wire-line{stroke:#BB7334}.wire-line.powered{stroke:#FFAE22}
.terminal:before{box-shadow:0 0 0 1px #6949BD}.terminal.selected:before{background:#35D9EF;box-shadow:0 0 0 5px #35D9EF55}
.board-tools .text-button,.help-actions .text-button{min-height:44px}.board-tools{height:44px}
.modal{max-width:680px}.modal-close{width:44px;height:44px;top:8px;right:8px}
.workbench{top:clamp(138px,24vh,200px)}
.bench-footer .primary,.bench-footer .secondary{min-height:44px}
.inventory{min-height:44px}
@media(max-width:599px) and (max-height:700px){
 .workbench{top:132px}.bench-header{padding:6px 9px}.bench-header h2{font-size:14px}
 .bench-layout{padding:5px 7px 0;gap:5px}.inventory{min-height:44px}
 .bench-guidance{min-height:56px;padding:5px 9px}.bench-guidance p{font-size:10px}
 .board-tools{height:44px}.bench-footer{padding:2px 8px 6px}.safe-note{font-size:8px}
 .bench-footer .primary,.bench-footer .secondary{min-height:44px}
 .home-copy{padding-top:12px}.home-bottom{padding-bottom:14px}
}
@media(min-width:760px) and (min-aspect-ratio:6/5){
 .topbar{height:76px;padding:12px 32px}.wordmark{font-size:30px}.wordmark svg{width:26px;height:26px}.chapter-track{position:absolute;left:50%;transform:translateX(-50%);gap:12px}.chapter-track span{height:28px;width:28px;font-size:11px}.utility{gap:10px}
 .home-copy{position:absolute;top:14%;left:5%;padding:0;max-width:46%;text-shadow:0 3px 18px #252348}.home-copy h1{font-size:clamp(44px,5.4vw,88px);letter-spacing:-3px;margin-block:18px}.home-copy .eyebrow{font-size:11px}.home-copy p{font-size:17px}
 .home-bottom{left:5%;bottom:5%;width:90%;padding:24px 28px;background:#252348ed;border:1px solid var(--line);border-radius:20px;display:grid;grid-template-columns:minmax(220px,1fr) 2fr;column-gap:40px;text-align:left;align-items:center}
 .chapter-label{display:block!important;grid-column:1;font-size:10px;margin-bottom:12px}.start{grid-column:1;grid-row:2}.start-caption{grid-column:1;font-size:11px;margin:13px 0 0}.mission-path{grid-column:2;grid-row:1/4;margin:0;padding:0;border:0;gap:20px}.mission-path button{font-size:13px;gap:10px;padding:15px 0}.mission-path b{font-size:20px}.mission-path small{font-size:9px}.local-note{grid-column:2;margin:0;font-size:10px}
 .mission-hud{top:88px;left:32px;right:auto;width:310px;padding:17px 20px}.mission-hud h2{font-size:22px;margin:10px 0 14px}.run-title{font-size:10px}.run-stats{position:fixed;top:96px;right:32px;margin:0;padding:14px 20px;background:#252348ed;border:1px solid var(--line);border-radius:12px;gap:22px;font-size:10px}#hearts{font-size:20px}.token-count{font-size:22px}.run-stats>span:last-child{max-width:120px}
 .runner-bottom{bottom:22px}.runner-bottom p{font-size:13px}.keyboard-help{font-size:11px}
 .intro-card{left:7%;right:auto;top:28%;width:480px;padding:32px}.intro-card p{font-size:26px}
 .arrival-caption{bottom:10%}.arrival-caption h2{font-size:38px}
 .payoff-card,.complete-card,.restart-text{left:auto;right:5%;bottom:8%;width:min(43%,560px);padding:32px}.payoff-card h2,.complete-card h2,.restart-text h2{font-size:clamp(30px,3.3vw,48px)}.payoff-card p,.complete-card p,.restart-text p{font-size:14px}.payoff-card .quote{font-size:18px}.mastery{font-size:12px}.next-chapter h3{font-size:26px}
 .modal{padding:40px;display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.modal>.eyebrow,.modal>h2,.modal>p,.modal>.mission-menu,.modal>.reference-diagram{grid-column:1/-1}.modal>h2{font-size:38px}.modal>p{font-size:15px}.modal>.primary:only-of-type{grid-column:1/-1}.modal-close{position:absolute}.modal .mission-menu button{padding:18px}.mission-menu span{font-size:14px}
 .workbench{left:3%;right:3%;top:clamp(168px,26.5vh,290px);bottom:24px;display:grid;grid-template-columns:170px minmax(280px,1fr) 280px;grid-template-rows:auto auto minmax(100px,1fr) auto;gap:0 18px;padding:12px 20px 18px;border-color:#A58AC766}
 .bench-header{grid-column:1/-1;padding:2px 0 10px}.bench-header h2{font-size:23px}.bench-header .eyebrow{font-size:9px}.bench-badge{font-size:9px;max-width:none}.bench-objective{display:flex;grid-column:1/-1;padding:8px 0;margin-bottom:14px;background:none;font-size:12px;border-bottom:1px solid var(--line)}
 .bench-layout{display:contents}.parts-tray{grid-column:1;grid-row:3/5;display:flex;flex-direction:column;gap:10px}.parts-tray>.eyebrow{display:block;font-size:9px}.inventory{flex:0 0 auto;min-height:59px;padding:10px;font-size:13px;gap:10px}.inventory small{font-size:9px}.inventory svg,.inventory .part-drawing{width:38px}.inventory>b{display:block;margin-left:auto}.wire-note{display:block;font-size:12px;color:#FFF5E6;margin:6px 0}.wire-note small{display:block;font-size:10px;line-height:1.5;color:#DED2ED;margin-top:5px}.bench-note{display:block;font-size:10px;color:#DED2ED;line-height:1.6;margin-top:auto}
 .board-column{grid-column:2;grid-row:3/5;min-height:0}.board-caption{font-size:8px;margin-bottom:10px}.board-tools{height:44px;gap:8px}.board-tools button{font-size:11px}.component{width:96px;height:76px}.component-art{height:55px}.component-art svg{width:78px;height:50px}.component-name{font-size:10px}.terminal{top:12px}.terminal span{font-size:9px;top:38px}
 .bench-guidance{grid-column:3;grid-row:3;align-self:stretch;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:12px;min-height:0;gap:10px}.bench-guidance .eyebrow{font-size:10px}.bench-guidance p{font-size:14px;line-height:1.55;margin-top:10px}.guidance-icon svg{width:20px}.bench-footer{grid-column:3;grid-row:4;padding:12px 0 0;gap:8px}.bench-footer .button-row{grid-template-columns:1fr}.bench-footer .primary,.bench-footer .secondary{min-height:46px;font-size:13px}.help-actions{min-height:44px;flex-wrap:wrap}.safe-note{font-size:11px;line-height:1.5}.assisted{font-size:8px}
}
@media(min-width:760px) and (min-aspect-ratio:6/5) and (max-height:740px){
 .workbench{top:168px;bottom:12px;grid-template-columns:145px minmax(260px,1fr) 245px;gap:0 12px;padding:10px 16px}.bench-header h2{font-size:20px}.bench-objective{padding:5px 0;margin-bottom:9px}.inventory{min-height:50px;padding:6px}.bench-note{display:none}.bench-guidance{padding:12px}.bench-guidance p{font-size:12px}.bench-footer{padding-top:5px;gap:3px}.wire-note{font-size:11px}
 .home-bottom{bottom:4%;padding:18px 24px}.home-copy{top:15%}.home-copy h1{font-size:56px}.complete-card,.payoff-card{padding:24px;bottom:5%}.complete-card h2{font-size:36px}
}
@media(min-width:600px) and (max-aspect-ratio:6/5){.workbench{left:8%;right:8%}.home-copy{padding:40px 7%}.home-copy h1{font-size:60px}.home-bottom{padding-inline:7%}.mission-hud{left:5%;right:5%}.component{width:90px;height:70px}.bench-guidance p{font-size:14px}.bench-header h2{font-size:23px}.inventory{min-height:54px;font-size:14px}}
@media(prefers-reduced-motion:reduce){#vignette{animation:none!important}}

@media(max-width:759px){.keyboard-help{display:none}}
/* The street carries the illustration; the runner HUD leaves the horizon clear. */
body[data-mode=action] #vignette{background:linear-gradient(#15263b26,transparent 24%,transparent 80%,#17263b30)}
body[data-mode=action] .mission-hud{background:#17283be8;border:1px solid #ffdcad50;border-radius:12px}
body[data-mode=action] .mission-hud h2{font-size:16px;margin:5px 0 8px}
body[data-mode=action] .run-stats{color:#fff0da}
body[data-mode=action] .token-count{color:#6aeeff}
body[data-mode=action] .destination-progress i{background:linear-gradient(90deg,#27bbc1,#f4d589)}
@media(min-width:760px) and (min-aspect-ratio:6/5){body[data-mode=action] .mission-hud{top:86px;width:240px;padding:12px 16px}body[data-mode=action] .run-stats{top:86px;padding:12px 16px}}
@media(max-width:759px){body[data-mode=action] .mission-hud{top:61px;padding:8px 12px}body[data-mode=action] .mission-hud h2{display:none}body[data-mode=action] .run-stats{margin-top:6px}body[data-mode=action] .runner-bottom{bottom:max(12px,env(safe-area-inset-bottom))}body[data-mode=action] .runner-bottom p{font-size:10px;margin-bottom:8px}}
@media(max-height:520px){body[data-mode=action] #app,body[data-mode=action] #world,body[data-mode=action] #vignette{min-height:0}body[data-mode=action] .runner-bottom p{margin-bottom:4px;padding:4px 12px}body[data-mode=action] .runner-controls button{height:44px}}
/* Chapter two shares the street, components, and palette; its pace is deliberate. */
.chapter-two-entry{margin-top:12px;grid-column:1/-1;width:100%;font-size:12px}
body[data-mode=chapter2]{overflow:hidden}body[data-mode=chapter2] #app{min-height:0}body[data-mode=chapter2] #vignette{background:linear-gradient(#25234855,transparent 35%,#25234833)}
.c2-panel{background:linear-gradient(145deg,#38285bf5,#242341f5);border:1px solid #c8b4e55c;border-radius:18px;box-shadow:0 12px 34px #17182d55;color:#fff5e6}
.c2-panel h1{font-size:clamp(32px,4vw,54px);letter-spacing:-1.5px;line-height:1.04;margin:16px 0}.c2-panel h1 em{font-style:normal;color:#ffc857}.c2-panel h2{font-size:25px;letter-spacing:-.7px;margin:9px 0 12px}.c2-panel p{font-size:13px;line-height:1.55;color:#e4daef}.c2-panel small{font-size:11px;color:#d6c9ec}.c2-panel .eyebrow{font-size:10px}
.c2-map{position:absolute;left:6%;top:100px;bottom:30px;width:min(460px,88%);padding:28px;overflow:auto}.c2-map>.primary{margin:16px 0 0;width:100%}.c2-map .mission-menu{margin-top:20px}.c2-map .mission-menu button{min-height:66px}.c2-map .mission-menu span{font-size:14px}.c2-map .mission-menu small{font-size:9px}.c2-future{font-size:11px;line-height:1.8;color:#b6a9cc;margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.c2-project{padding:14px;margin-top:14px;background:#89d7b314;border:1px solid #a3e0b43c;border-radius:10px;font-size:12px;line-height:1.8;color:#c5f1be}.c2-project p{font-size:11px}
.c2-hud{position:absolute;top:94px;left:28px;width:310px;padding:18px}.c2-hud h2{font-size:22px}.c2-meter{height:5px;background:#8875ab55;border-radius:4px;overflow:hidden}.c2-meter i{display:block;height:100%;width:0;background:#76e8e1}.c2-awareness{display:flex;justify-content:space-between;gap:12px;font-size:10px;margin-top:14px}#c2-awareness{width:100%;height:12px;margin:6px 0}.c2-hud p{font-size:11px;min-height:34px}
.c2-controls{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:min(510px,calc(100% - 24px));padding:13px 16px}body[data-mode=chapter2] input[type=range]{width:100%;height:30px;accent-color:#ffc857;cursor:pointer;margin:4px 0;touch-action:pan-y}.c2-range-labels{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#d2c4e5}.c2-movement{display:flex;gap:8px;justify-content:center;margin-top:10px}.c2-movement button{min-height:48px;flex:1;background:#67508b;border:1px solid #bb9bd7;border-radius:10px;font-size:20px;touch-action:none;user-select:none}.c2-movement small{display:block;font-size:8px;color:inherit}.c2-movement button:active{filter:brightness(1.3)}.c2-key-help{display:block;text-align:center;margin-top:8px;font-size:9px!important}.c2-instruction{font-size:11px!important;text-align:center}
.c2-payoff{position:absolute;right:6%;bottom:7%;width:min(450px,88%);padding:28px;max-height:75dvh;overflow:auto}.c2-payoff p{margin-bottom:16px}.c2-payoff .primary{width:100%;margin-top:18px}
.c2-bench{position:absolute;top:155px;bottom:20px;left:5%;right:5%;padding:22px;overflow:auto}.c2-bench header h2{margin:6px 0}.c2-bench header>small{display:block;margin-top:4px;color:#a6e9d9}.c2-bench-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(260px,.65fr);gap:24px;margin-top:20px}.c2-circuit-column{min-width:0}.c2-bench .circuit-board{height:240px;min-height:240px;flex:none}.c2-bench .board-caption{font-size:9px}.c2-bench .component{width:90px;height:76px}.c2-bench .component-art{height:54px}.c2-bench .component-name{font-size:9px;letter-spacing:0}.c2-bench .terminal{top:9px}#c2-wires{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}#c2-wires g{pointer-events:stroke}.c2-wiring{display:flex;align-items:center;justify-content:space-between;gap:8px}.c2-wiring>span{font-size:9px;color:#dbcfe9}.c2-wiring .text-button{min-height:44px;font-size:10px}.c2-device-control{padding:14px;background:#261f40;border-radius:10px;border:1px solid var(--line)}.c2-device-control label{display:flex;justify-content:space-between;font-size:15px;font-weight:bold}.c2-device-control output{color:#ffcf75}.c2-parts{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.c2-parts button{min-height:44px;font-size:12px;flex:1 0 26%}.c2-parts .chosen{border:2px solid #ffc857;background:#81647d}.c2-device-control>small{font-size:10px;line-height:1.5;display:block}.c2-observations{display:flex;flex-direction:column;gap:13px}.c2-requirement{border-left:3px solid #ffc857;padding:3px 0 3px 12px}.c2-requirement strong{font-size:10px;letter-spacing:1.5px;color:#ffc857}.c2-requirement p{font-size:13px}.c2-readings{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.c2-readings>div{background:#69538566;border-radius:10px;padding:12px 8px}.c2-readings span{display:block;font-size:10px;margin-bottom:8px}.c2-readings strong{font-size:19px;color:#ffcf75}.c2-observations .lamp{height:8px}.lamp i{background:#ffc857}#c2-electrical{font-weight:700;min-height:40px}#c2-learning{color:#b7e7dc;font-size:12px}#c2-test-feedback{color:#ffe0a0;font-size:12px}.c2-bench-buttons{display:flex;gap:8px;margin-top:auto}.c2-bench-buttons button{flex:1;min-height:46px}
@media(max-width:759px){.c2-map{top:70px;bottom:14px;padding:20px}.c2-map h1{font-size:35px}.c2-hud{top:65px;left:12px;right:12px;width:auto;padding:10px 14px}.c2-hud h2{font-size:17px;margin:4px 0 7px}.c2-hud .eyebrow{font-size:8px}.c2-awareness{margin-top:8px}.c2-hud p{font-size:10px;min-height:0}#c2-awareness{margin:3px 0;height:9px}.c2-controls{bottom:max(10px,env(safe-area-inset-bottom));padding:10px 12px}.c2-key-help{display:none}.c2-payoff{right:6%;bottom:24px;padding:22px}.c2-bench{top:125px;bottom:10px;left:10px;right:10px;padding:15px}.c2-bench header h2{font-size:20px}.c2-bench header p{font-size:12px}.c2-bench-grid{display:flex;flex-direction:column;gap:18px;margin-top:15px}.c2-bench .circuit-board{height:210px;min-height:210px}.c2-bench .component{width:70px;height:65px}.c2-bench .component-art{height:46px}.c2-bench .component-name{font-size:8px}.c2-bench .board-caption{font-size:7px}.c2-observations{gap:12px}.c2-bench .terminal{top:3px}.c2-bench .component-art svg{width:60px}.c2-readings strong{font-size:19px}}
@media(max-height:540px) and (min-width:600px){body[data-mode=chapter2] #world{min-height:0}.c2-hud{top:62px;left:12px;width:235px;padding:12px}.c2-controls{left:auto;right:12px;transform:none;width:340px;bottom:10px}.c2-controls .c2-key-help{display:none}.c2-hud h2{font-size:16px}.c2-bench{top:70px;bottom:10px}.c2-bench-grid{grid-template-columns:minmax(270px,1fr) minmax(240px,.8fr);gap:16px}.c2-map{top:65px}.c2-panel h1{font-size:30px}}
.c2-bench{bottom:auto;max-height:calc(100dvh - 175px)}.c2-mobile-reading{display:none}
@media(max-width:759px){.c2-bench{max-height:calc(100dvh - 135px)}.c2-mobile-reading{display:block;font-size:13px;font-weight:700;color:#ffdc91;background:#251e40;padding:12px;margin:5px 0 10px;border-radius:8px}}
@media(max-height:540px) and (min-width:600px){.c2-bench{max-height:calc(100dvh - 80px)}}
.c2-mobile-learning{display:none}.complete-card{max-height:calc(100dvh - 80px);overflow:auto}
@media(max-width:759px){.c2-mobile-learning:not(:empty){display:block;color:#b7e7dc;font-size:11px;margin:0 0 10px}}
/* Grounded movement: directions and posture are separate, readable controls. */
.c2-movement-status{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:8px}.c2-movement-status>span{font-size:10px;letter-spacing:1.3px;font-weight:bold;color:#bce8da}.c2-movement-status small{font-size:9px;color:#c9bddd}
.c2-movement{display:grid;grid-template-columns:1fr 110px;gap:14px;align-items:stretch;margin-top:8px}.c2-navigation{display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:6px}.c2-movement .c2-navigation button{min-height:44px;border-radius:9px;background:#51436c;border-color:#b39ac64d;font-size:21px}.c2-navigation button[data-hold=retreat]{grid-column:1}.c2-navigation button[data-c2=stop]{grid-column:2/4;font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px;background:#302843}.c2-navigation .c2-forward{background:#ffcf69!important;color:#28213f;display:flex;align-items:center;justify-content:center;gap:4px}.c2-forward svg{width:25px;height:32px}.c2-forward small{font-size:8px;max-width:50px;line-height:1.3}
.c2-movement .c2-stance-button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;background:#44305f;border:1px solid #c0a0df;color:#eee1ff;border-radius:13px}.c2-stance-button svg{width:35px;height:35px}.c2-stance-button strong{font-size:12px;letter-spacing:.6px}.c2-stance-button small{font-size:8px}.c2-stance-button[aria-pressed=true]{background:#215854;color:#c5fff0;border:2px solid #7ee7cb;box-shadow:inset 0 0 20px #71e1c411}.c2-navigation button:active{background:#9c7bb3}.c2-movement .c2-navigation button small{color:inherit}
@media(max-width:759px){.c2-movement{grid-template-columns:1fr 88px;gap:9px}.c2-movement-status{margin-top:8px}.c2-movement-status small{font-size:8px}.c2-stance-button strong{font-size:11px}.c2-key-help{display:none}}
@media(max-height:540px) and (min-width:600px){.c2-controls{width:330px}.c2-movement-status{display:none}.c2-movement{grid-template-columns:1fr 80px;gap:8px}.c2-stance-button svg{width:28px;height:28px}}
/* Compact action controls: left thumb moves, right thumb changes stance/light. */
body[data-mode=chapter2][data-chapter-stage=street] .c2-controls{position:absolute;left:0;right:0;bottom:14px;transform:none;width:100%;height:210px;padding:0;background:none;border:0;box-shadow:none;pointer-events:none}
.c2-controls button,.c2-controls input{pointer-events:auto}.c2-stick-cluster{position:absolute;bottom:18px;left:28px;display:flex;align-items:center;flex-direction:column;gap:5px}.c2-stick-cluster>span{font-size:10px;font-weight:bold;color:#d8f2e7;letter-spacing:1px;text-shadow:0 2px 4px #181630}.c2-stick-cluster>small{font-size:9px;color:#eee4ff;text-shadow:0 2px 4px #181630}.c2-stick{position:relative;width:116px;height:116px;border-radius:50%;border:2px solid #eee6ff70;background:radial-gradient(circle,#50406988,#25213dc9);box-shadow:inset 0 0 0 14px #ded0ff09;touch-action:none;user-select:none}.stick-knob{position:absolute;left:35px;top:35px;width:42px;height:42px;border-radius:50%;background:#d5caeaa6;border:2px solid #ffffffb0;box-shadow:0 3px 10px #110d2788;transform:translate(var(--stick-x,0px),var(--stick-y,0px));pointer-events:none}.stick-arrow{position:absolute;pointer-events:none;color:#fff5e6;font-size:20px}.stick-arrow.up{top:3px;left:48px}.stick-arrow.down{bottom:2px;left:48px}.stick-arrow.left{left:6px;top:42px}.stick-arrow.right{right:6px;top:42px}.stick-sprint{position:absolute;top:-19px;left:34px;color:#ffc857;font-size:9px;font-weight:bold;opacity:0}.sprinting{border-color:#ffd57b;box-shadow:0 0 16px #ffc85744}.sprinting .stick-sprint{opacity:1}.c2-stop{min-height:25px;padding:0 12px;background:#211c36a6;border-radius:15px;font-size:9px;color:#ebdfef}
.c2-action-cluster{position:absolute;right:28px;bottom:34px}.c2-action-cluster .c2-stance-button{width:80px;height:80px;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;border:2px solid #ece2fb88;background:#28223cbf;color:#ede3fa;gap:2px;pointer-events:auto}.c2-action-cluster .c2-stance-button svg{width:30px;height:30px}.c2-action-cluster .c2-stance-button strong{font-size:9px}.c2-action-cluster .c2-stance-button small{font-size:8px}.c2-action-cluster .c2-stance-button[aria-pressed=true]{background:#235751ce;border-color:#8bf1d4;color:#c2ffec}
.c2-controls .c2-key-help{position:absolute;bottom:0;left:50%;transform:translateX(-50%);margin:0;max-width:85%;font-size:9px;background:#241e38a8;border-radius:12px;padding:5px 10px}.c2-safe-controls{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);font-size:11px;text-align:center;background:#272039df;border:1px solid #d6b9e644;border-radius:12px;padding:12px;width:250px;line-height:1.5;color:#f0e7ff}
#c2-health{color:#ff9e8c;font-size:16px;letter-spacing:3px;margin:3px 0}.c2-hud{width:285px;padding:14px}.c2-hud h2{font-size:19px}.c2-hud p{font-size:11px;min-height:30px}
@media(max-width:599px){.c2-stick-cluster{left:16px;bottom:10px}.c2-action-cluster{right:20px;bottom:18px}.c2-controls .c2-key-help{display:none}.c2-safe-controls{left:auto;right:12px;bottom:110px;transform:none;width:145px;font-size:10px;padding:10px}.c2-hud{width:auto;left:12px;right:12px;padding:9px 12px}.c2-hud h2{font-size:16px}.c2-hud p{font-size:10px;min-height:0}#c2-health{font-size:13px;margin:0}.c2-stick{width:108px;height:108px}.stick-knob{left:31px;top:31px}.stick-arrow.up,.stick-arrow.down{left:45px}.stick-arrow.left,.stick-arrow.right{top:39px}}
@media(max-height:540px) and (min-width:600px){body[data-mode=chapter2][data-chapter-stage=street] .c2-controls{bottom:8px}.c2-hud{top:58px;width:225px;padding:10px}.c2-hud h2{font-size:14px}.c2-hud p{font-size:9px}.c2-stick-cluster{left:20px;bottom:0}.c2-stick{width:88px;height:88px}.stick-knob{left:24px;top:24px;width:36px;height:36px}.stick-arrow.up,.stick-arrow.down{left:34px}.stick-arrow.left,.stick-arrow.right{top:29px}.c2-action-cluster{bottom:18px;right:18px}.c2-safe-controls{left:auto;right:112px;bottom:32px;transform:none;width:190px}.c2-controls .c2-key-help{display:none}}

/* Shared voice: story, controls and repair status are distinct. */
.story-controls{display:block;padding-top:16px;margin-top:18px;border-top:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--muted)}
.arrival-caption{background:#252348ed;max-width:640px;left:50%;transform:translateX(-50%);border-radius:12px}
.arrival-caption .primary{margin-top:20px}.restart-text .text-button{margin-top:16px}
.arrival-note{border-left:2px solid var(--amber);padding-left:12px;margin:12px 0!important;color:var(--muted)!important}
.board-watermark,.guidance-icon:empty{display:none}.home-bottom>.text-button{justify-self:start}
