/* Chapter palettes flow through every game panel, dialog and control.
   Add a body[data-chapter="N"] palette for each future playable chapter. */
body {
 --chapter-bg:#302b58;
 --chapter-deep:#211e40;
 --chapter-panel:#252348f5;
 --chapter-surface:#42376c;
 --chapter-hover:#584589;
 --chapter-text:#fff5e6;
 --chapter-muted:#d6c9ec;
 --chapter-accent:#ffc857;
 --chapter-accent-shadow:#a77828;
 --chapter-secondary:#c6b3f0;
 --chapter-border:#a99bd666;
 --chapter-overlay:#17142db8;
 --chapter-shadow:#14112655;
 --chapter-board:#eee9f7;
 --chapter-grid:#66578240;
 --chapter-board-border:#9e8cc2;
 --line:var(--chapter-border);
 --muted:var(--chapter-muted);
 --amber:var(--chapter-accent);
 --cream:var(--chapter-accent);
}
body[data-chapter="2"] {
 --chapter-bg:#2e304f;
 --chapter-deep:#20233c;
 --chapter-panel:#292c4bf5;
 --chapter-surface:#414866;
 --chapter-hover:#535d80;
 --chapter-text:#f3f2ff;
 --chapter-muted:#c7cde5;
 --chapter-accent:#a8e6e2;
 --chapter-accent-shadow:#477e87;
 --chapter-secondary:#bbc3ed;
 --chapter-border:#a0add466;
 --chapter-overlay:#161a2eb8;
 --chapter-shadow:#11172655;
 --chapter-board:#e8edf6;
 --chapter-grid:#52678740;
 --chapter-board-border:#91a4c3;
}
body{background:var(--chapter-bg);color:var(--chapter-text)}.topbar{background:linear-gradient(var(--chapter-panel),transparent)}.wordmark{letter-spacing:-1.5px}.chapter-track span{color:var(--chapter-muted);border-color:var(--chapter-border)}.chapter-track .current{color:var(--chapter-accent);border-color:var(--chapter-accent)}.chapter-track .done{color:var(--chapter-deep);background:var(--chapter-accent)}
.primary{background:var(--chapter-accent);color:var(--chapter-deep);border-radius:13px;box-shadow:0 4px 0 var(--chapter-accent-shadow);font-weight:800}.secondary{background:var(--chapter-secondary);color:var(--chapter-deep);border-color:transparent;border-radius:12px;font-weight:800}.text-button{color:var(--chapter-text)}.icon-button{background:var(--chapter-deep);border-color:var(--chapter-border)}.icon-button:hover{background:var(--chapter-hover)}.eyebrow{color:var(--chapter-accent)}.eyebrow>span{color:var(--chapter-muted)}
.home-copy h1{color:var(--chapter-text)}.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,.modal p,.modal .help-note{color:var(--chapter-muted)}
.home-bottom,.intro-card,.arrival-caption,.payoff-card,.complete-card,.restart-text,.mission-hud,.c2-panel{background:var(--chapter-panel);border:1px solid var(--chapter-border);border-radius:23px;box-shadow:0 10px 30px var(--chapter-shadow)}
.home-bottom{background:var(--chapter-panel)}.intro-card>p{color:var(--chapter-text)}.mission-path{border-color:var(--line)}.modal-backdrop{background:var(--chapter-overlay);backdrop-filter:none}.modal{background:var(--chapter-deep);border-color:var(--chapter-border);border-radius:24px;box-shadow:0 20px 60px var(--chapter-shadow)}.mission-menu button{background:var(--chapter-surface);border-color:var(--chapter-border);border-radius:13px}.mission-menu small{color:var(--chapter-muted)}.mission-menu button:hover:not(:disabled){background:var(--chapter-hover)}.mission-menu button:disabled{opacity:.58}.mission-menu b{color:var(--chapter-accent)}.next-chapter{border-color:var(--line)}.mastery,.reward{color:#d6e8b2}.payoff-card .quote{color:var(--chapter-accent)}
.workbench{background:var(--chapter-bg);border-color:var(--chapter-border);border-radius:20px;box-shadow:0 7px 0 var(--chapter-deep),0 14px 30px var(--chapter-shadow)}.bench-header h2{color:var(--chapter-text)}.bench-badge,.bench-note,.safe-note{color:var(--chapter-muted)}.bench-objective{background:var(--chapter-deep);color:var(--chapter-text)}.inventory{background:var(--chapter-surface);border-color:var(--chapter-border);border-radius:10px;color:var(--chapter-text)}.inventory.suggested{background:var(--chapter-hover);border-color:var(--chapter-accent)}.inventory small{color:var(--chapter-muted)}.bench-guidance{background:var(--chapter-deep);border-color:var(--line)}.bench-guidance p{color:var(--chapter-text)}.bench-guidance.success{background:#324d40}.board-caption{color:var(--chapter-muted)}.circuit-board{background-color:var(--chapter-board);background-image:radial-gradient(var(--chapter-grid) 1px,transparent 1px);border-color:var(--chapter-board-border);box-shadow:inset 0 0 25px var(--chapter-shadow)}.component{background:var(--chapter-text);border-color:var(--chapter-board-border);color:var(--chapter-deep)}.terminal:before{background:var(--chapter-deep);border-color:var(--chapter-board-border);box-shadow:none}.terminal span{color:var(--chapter-deep)}.terminal.highlight:before{border-color:#ba651f;box-shadow:0 0 0 4px #ba651f30}.terminal.selected:before{background:#228f98;box-shadow:0 0 0 4px #228f9833}.wire-line{stroke:#ac541b}.wire-line.powered{stroke:#d88a0b;filter:none}.reference-diagram{background:var(--chapter-accent);color:var(--chapter-deep)}.danger{color:#ffa69b}.help-note,.assisted{color:var(--chapter-muted)}
.runner-bottom p,.keyboard-help,.runner-controls button{background:var(--chapter-panel);border-color:var(--chapter-border);color:var(--chapter-text)}.runner-controls button:active{background:var(--chapter-hover)}.c2-panel h1 em{color:var(--chapter-accent)}.c2-panel p,.c2-panel small,.c2-future,.c2-wiring>span,.c2-range-labels{color:var(--chapter-muted)}.c2-project{background:var(--chapter-surface);border-color:var(--chapter-border);color:var(--chapter-accent)}.c2-device-control,.c2-mobile-reading{background:var(--chapter-deep);border-color:var(--line)}.c2-device-control output,.c2-readings strong,.c2-requirement strong{color:var(--chapter-accent)}.c2-readings>div{background:var(--chapter-surface)}.c2-requirement{border-color:var(--chapter-accent)}.c2-parts .chosen{background:var(--chapter-accent);color:var(--chapter-deep);border-color:var(--chapter-accent)}.c2-bench header>small{color:#cae4be}.c2-bench .arrival-note{color:var(--chapter-muted)!important}.c2-key-help,.c2-safe-controls{background:var(--chapter-panel)!important;color:var(--chapter-text);border-color:var(--line)}.c2-stick{background:var(--chapter-panel);border-color:#fff3e980;box-shadow:inset 0 0 0 14px var(--chapter-surface)}.stick-knob{background:var(--chapter-muted);border-color:var(--chapter-text)}.c2-action-cluster .c2-stance-button{background:var(--chapter-panel);color:var(--chapter-text);border-color:var(--chapter-border)}.c2-action-cluster .c2-stance-button[aria-pressed=true]{background:#235751e8;border-color:#8bf1d4;color:#c2ffec}.c2-stop{background:var(--chapter-panel);color:var(--chapter-text)}.sprinting{border-color:var(--chapter-accent);box-shadow:none}#toast{background:var(--chapter-accent);color:var(--chapter-deep);border-radius:12px}.story-controls{color:var(--chapter-muted)}
@media(max-width:700px){.home-copy p{max-width:290px;line-height:1.5}.home-bottom{border-radius:22px 22px 0 0}.intro-card{top:22%;max-height:calc(100dvh - 100px);overflow:auto}.arrival-caption{max-width:calc(100% - 28px)}}

/* Chapter 3: teal courtyards, slate shadows and warm signal lights. */
body[data-chapter="3"]{--chapter-bg:#202f3a;--chapter-shadow:#10272c77;--chapter-board:#eadac1;--chapter-board-border:#b79172;--chapter-grid:#b7917240;--chapter-deep:#142e34;--chapter-panel:#203e45f5;--chapter-surface:#30565d;--chapter-hover:#3c6970;--chapter-text:#fff0dd;--chapter-muted:#c3d7d3;--chapter-accent:#f2ce88;--chapter-accent-shadow:#a9894f;--chapter-secondary:#30565d;--chapter-border:#7ca5a366;--chapter-overlay:#12272dcc}

/* Camp: readable story copy and deliberately grouped navigation. */
body[data-mode=home]{overflow:auto}
body[data-mode=home] #app{height:auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:max(20px,env(safe-area-inset-bottom))}
body[data-mode=home] .home-copy{position:relative;top:auto;left:auto;max-width:none;width:fit-content;margin:24px 5% 36px;padding:22px 26px;background:none;border:0;text-shadow:0 2px 4px var(--chapter-deep),0 3px 14px var(--chapter-deep)}
body[data-mode=home] .home-copy h1{font-size:clamp(40px,5.4vw,78px);margin:14px 0;line-height:1.04}
body[data-mode=home] .home-copy p{color:var(--chapter-text);font-size:17px;line-height:1.5;max-width:none}
body[data-mode=home] .home-bottom{position:relative;left:auto;bottom:auto;width:90%;margin:auto 5% 0;padding:24px;display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:20px 32px;text-align:left;align-items:center;border-radius:23px}
.home-play{min-width:0}
body[data-mode=home] .chapter-label{display:block;margin:0 0 12px;font-size:10px}
body[data-mode=home] .start-caption{margin:12px 0 0;font-size:11px}
body[data-mode=home] .mission-path{grid-column:2;grid-row:1;display:flex;gap:12px;margin:0;padding:0;border:0}
body[data-mode=home] .mission-path button{min-height:48px;padding:12px;gap:10px;font-size:13px;border:1px solid var(--chapter-border);border-radius:12px;background:var(--chapter-surface);align-items:center}
.home-chapters{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:20px;border-top:1px solid var(--chapter-border)}
.home-chapters .secondary{grid-column:auto;margin:0;width:100%;min-height:48px;font-size:13px}
body[data-mode=home] .home-about{grid-column:1/-1;justify-self:center;min-height:36px;margin:-8px 0 -8px;font-size:12px}
@media(max-width:700px){
 body[data-mode=home] .home-copy{margin:16px 5% 28px;padding:18px 20px}
 body[data-mode=home] .home-copy .eyebrow{font-size:9px}
 body[data-mode=home] .home-copy p{font-size:14px}
 body[data-mode=home] .home-bottom{grid-template-columns:1fr;padding:18px;gap:18px}
 body[data-mode=home] .mission-path{grid-column:1;grid-row:auto;gap:8px}
 body[data-mode=home] .mission-path button{flex-direction:column;align-items:flex-start;padding:9px;font-size:11px;gap:6px}
 .home-chapters{grid-template-columns:1fr;gap:10px;padding-top:18px}
 .home-chapters .secondary{font-size:12px}
}
@media(max-height:600px) and (min-width:701px){
 body[data-mode=home] .home-copy{margin-top:12px;margin-bottom:24px;padding:16px 22px}
 body[data-mode=home] .home-copy h1{font-size:44px}
}

/* Chapter 4: slate streets, teal control surfaces and warm signal accents. */
body[data-chapter="4"]{--chapter-bg:#263b43;--chapter-deep:#162b34;--chapter-panel:#29444c;--chapter-surface:#3b5c61;--chapter-hover:#507477;--chapter-text:#f3efdf;--chapter-muted:#c0d1cd;--chapter-accent:#e7c68c;--chapter-accent-shadow:#927848;--chapter-secondary:#b8d2cc;--chapter-border:#9ab5ad66;--chapter-overlay:#10232ee8;--chapter-shadow:#10212c66;--chapter-board:#f5e8d2;--chapter-grid:#80958a40;--chapter-board-border:#a6b3a0;--chapter-output:#3d655f;--chapter-wait:#405664;--cream:var(--chapter-accent)}
