:root{font-family:Inter,"Noto Sans JP",system-ui,-apple-system,sans-serif;color:#f2f5fa;background:#070b13;--red:#fa3e44;--cyan:#84e7ef}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0,#1d273a,#070b13 65%)}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}a{color:inherit}.app{width:min(100%,1560px);margin:auto;padding:0 clamp(12px,3vw,44px) 24px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;gap:14px}.home{color:#aab6c9;text-decoration:none;font-size:13px;font-weight:650}.home:hover{color:white}.brand{display:flex;align-items:center;gap:11px;font-size:15px;letter-spacing:.22em;font-weight:900;white-space:nowrap}.brand em{color:#d1a7a9;font-style:normal;font-weight:500}.brand-mark{font-style:italic;border:2px solid #e7edf3;border-radius:4px 14px 4px 12px;padding:3px 8px;font-size:19px;transform:skew(-12deg)}.icon-btn{border:1px solid #536175;background:#111b2c;color:#e8eef7;border-radius:99px;padding:8px 14px;font-size:15px}.icon-btn span{font-size:11px;letter-spacing:.14em}.game-shell{border:1px solid #364252;background:#0b121f;border-radius:18px;overflow:hidden;box-shadow:0 22px 80px #0008,0 0 70px #bd293315}.stage-top{height:44px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;color:#c0cbd9;background:linear-gradient(90deg,#121b2a,#1e1722);font-size:11px;font-weight:750;letter-spacing:.16em}.eyebrow{display:flex;align-items:center;gap:9px}.pulse{width:8px;height:8px;border-radius:50%;background:#fa4448;box-shadow:0 0 12px #ff3a44;animation:blink 1.6s infinite}@keyframes blink{50%{opacity:.35}}.mission-tag{color:#ffb2b6}.viewport{position:relative;aspect-ratio:16/9;background:#09101c;overflow:hidden}.viewport canvas{width:100%;height:100%;display:block;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 130px 40px #060a13aa}.hud{position:absolute;top:18px;left:18px;right:18px;display:flex;gap:10px;pointer-events:none}.hud-cell{min-width:120px;padding:9px 14px 10px;border:1px solid #a9c2d142;border-radius:9px;background:#06101bc5;backdrop-filter:blur(12px);box-shadow:inset 0 1px #e9faff12}.hud-cell small,.result-grid small{display:block;color:#9aaaba;font-size:10px;letter-spacing:.19em;font-weight:750}.hud-cell b{font-size:25px;font-weight:850;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums}.hud-cell i{margin-left:4px;font-size:10px;color:#b6c3d0;font-style:normal;letter-spacing:.02em}.hud-cell.fuel{margin-left:auto;min-width:144px}.fuel-line{height:4px;background:#263648;border-radius:9px;margin:10px 0 5px}.fuel-line span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#f6a455,#ff4151);border-radius:9px;box-shadow:0 0 9px #ff5858}.fuel b{font-size:15px}.phase-text{position:absolute;top:120px;left:50%;transform:translateX(-50%);font-size:clamp(11px,1.3vw,18px);font-weight:850;letter-spacing:.45em;text-shadow:0 0 18px #000;text-align:center;white-space:nowrap;color:#fff9;pointer-events:none}.toast{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%) scale(.8);opacity:0;transition:.25s;pointer-events:none;font-size:clamp(25px,4vw,54px);font-weight:1000;letter-spacing:.05em;text-shadow:0 5px 30px #000,0 0 28px #f24a4a}.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(90deg,#060a13ea 0%,#0a0f18d9 52%,#0b101887);z-index:10;padding:18px;overflow:auto}.overlay[hidden]{display:none}.overlay-card{width:min(100%,530px);padding:clamp(22px,3.5vw,44px);border:1px solid #c8d6df39;background:linear-gradient(135deg,#152132f2,#0b121df2);border-radius:16px;box-shadow:0 24px 90px #0009,0 0 80px #f046291a;backdrop-filter:blur(16px)}.kicker{color:#ff8389;font-size:11px;font-weight:850;letter-spacing:.24em;margin:0 0 15px}.overlay h1{font-size:clamp(30px,4.1vw,57px);line-height:1.14;letter-spacing:.025em;margin:0}.overlay h1 strong{color:#ff626c}.intro{font-size:14px;line-height:1.85;color:#c4ced9;margin:20px 0 22px}.mission-list{display:grid;gap:8px;margin:0 0 20px}.mission-choice{width:100%;display:flex;align-items:center;gap:13px;text-align:left;border:1px solid #4b5b70;background:#101d2d;color:#f3f5f8;border-radius:9px;padding:10px 13px}.mission-choice[aria-pressed=true]{border-color:#ff676d;background:#3b1e2a;box-shadow:inset 3px 0 #ff545e}.mission-choice b{font-size:16px;color:#ff858b;font-variant-numeric:tabular-nums}.mission-choice span{display:flex;flex-direction:column;gap:1px;font-size:13px;font-weight:700}.mission-choice small{color:#9baaba;font-size:11px;font-weight:500}.primary{border:0;background:linear-gradient(120deg,#f23542,#ff775c);color:white;border-radius:9px;padding:15px 20px;font-weight:850;letter-spacing:.1em;box-shadow:0 8px 24px #ee445944;min-width:180px}.primary:hover{filter:brightness(1.14)}.primary span{margin-left:12px}.secondary{border:1px solid #637187;background:#101c2c;color:#eaf0f9;border-radius:9px;padding:15px 20px;font-weight:750}.secondary[hidden]{display:none}.overlay-note{font-size:10px;color:#91a0ae;line-height:1.5;margin:16px 0 0}.result-card h2{font-size:clamp(30px,4vw,56px);margin:0;line-height:1.2}.result-card h2.success{color:#a9f8e8}.result-card h2.fail{color:#ff777d}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.result-grid>div{padding:15px 12px;background:#091523;border:1px solid #53647977;border-radius:8px}.result-grid b{display:block;font-size:20px;margin-top:4px;font-variant-numeric:tabular-nums}.result-actions{display:flex;gap:9px;flex-wrap:wrap}.control-panel{padding:17px 20px 14px;background:#111a28}.controls-copy{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:#b8c5d0}.key{border:1px solid #59687b;border-bottom-width:3px;border-radius:5px;padding:4px 7px;color:#f1f5fb;background:#202c3d;font-size:10px;font-weight:800}.touch-controls{display:flex;justify-content:center;gap:10px;margin-top:15px}.touch-controls button{min-width:94px;min-height:56px;border:1px solid #66798a;border-radius:11px;background:#1b2a3d;color:#f0f6fc;font-size:25px;font-weight:800;touch-action:none;user-select:none}.touch-controls button small{display:block;font-size:9px;letter-spacing:.08em}.touch-controls .boost-btn{background:#852839;border-color:#ff6774;min-width:124px}.touch-controls button:active,.touch-controls button.active{transform:translateY(2px);filter:brightness(1.28)}.footnote{text-align:center;color:#7e8b99;font-size:11px;line-height:1.6;margin-top:15px}.footnote a{color:#b0cad9}@media(max-width:720px){.topbar{height:58px}.home{font-size:10px}.brand{font-size:10px;letter-spacing:.09em}.brand-mark{font-size:12px;padding:2px 5px}.brand em{display:block}.icon-btn{font-size:11px;padding:7px}.stage-top{padding:0 12px;font-size:8px;height:36px}.viewport{aspect-ratio:4/5;max-height:72vh}.hud{top:8px;left:8px;right:8px;gap:4px}.hud-cell{min-width:0;flex:1;padding:6px 7px}.hud-cell small{font-size:7px;letter-spacing:.05em}.hud-cell b{font-size:16px}.hud-cell i{font-size:7px}.hud-cell.fuel{min-width:0;margin-left:0}.fuel-line{margin:5px 0 3px}.phase-text{top:77px;letter-spacing:.17em}.overlay-card{padding:19px}.overlay h1{font-size:30px}.intro{font-size:11px;margin:12px 0}.mission-choice{padding:7px 10px}.mission-choice span{font-size:11px}.mission-choice small{font-size:9px}.control-panel{padding:11px}.controls-copy{display:none}.touch-controls{margin:0;gap:7px}.touch-controls button{min-height:53px;flex:1}.footnote{padding:0 8px}}@media(max-height:730px) and (min-width:721px){.viewport{max-height:calc(100vh - 180px);aspect-ratio:auto}.overlay-card{padding:20px}.overlay h1{font-size:36px}.intro{margin:12px 0}.mission-list{gap:5px;margin-bottom:12px}.mission-choice{padding:6px 10px}}
@media(max-width:720px){.overlay{position:fixed;inset:0;padding:20px 13px;align-items:center}.overlay-card{max-height:calc(100dvh - 40px);overflow:auto}.viewport{max-height:none}}

/* Flight-lab interface: restrained materials and clear driving controls. */
:root{--red:#df484b;--cyan:#b6d7db;color:#f4f3f0;background:#0a0c0e}
body{background:radial-gradient(ellipse at 50% -15%,#252b2e 0,#0d1012 52%,#080a0b 100%)}
.app{max-width:1660px}
.topbar{height:72px}
.home{color:#a6abad;font-weight:600;letter-spacing:.03em}
.brand{font-size:14px;letter-spacing:.19em;font-weight:800}
.brand em{color:#9fa5a7;font-weight:500}
.brand-mark{border:1px solid #a9b0b2;border-radius:2px;padding:3px 9px;font-size:17px}
.icon-btn{border:1px solid #4c5559;background:#171d20;border-radius:4px;box-shadow:inset 0 1px #ffffff12}
.game-shell{border-color:#343b3d;background:#111517;border-radius:8px;box-shadow:0 30px 90px #0009}
.stage-top{height:46px;background:#1a1f21;border-bottom:1px solid #424a4d;color:#bfc6c8}
.pulse{width:6px;height:6px;background:#c34d4a;box-shadow:none;animation:none}
.mission-tag{color:#d9dddd}
.viewport{background:#0c1115}
.vignette{box-shadow:inset 0 0 110px 12px #04060773}
.hud{top:17px;left:17px;right:17px;gap:6px}
.hud-cell{min-width:108px;background:#11191dbd;border:1px solid #c4d1d14a;border-radius:3px;padding:9px 12px;box-shadow:inset 0 1px #ffffff1b}
.hud-cell small,.result-grid small{color:#a6b1b4;font-size:9px;letter-spacing:.15em}
.hud-cell b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:23px;font-weight:700}
.hud-cell i{color:#a5b1b4}
.fuel-line{height:3px;background:#384246;border-radius:0}
.fuel-line span{background:#d75c55;border-radius:0;box-shadow:none}
.phase-text{color:#e3e6e3b8;font-size:clamp(11px,1.2vw,16px);letter-spacing:.25em;text-shadow:0 2px 12px #000}
.overlay{background:linear-gradient(90deg,#080d10f5 0%,#0b1013e6 43%,#0b1012aa 100%);justify-items:start;padding:clamp(22px,5vw,80px)}
.overlay-card{width:min(100%,560px);background:#12191bde;border:1px solid #7a898c77;border-radius:4px;box-shadow:0 28px 75px #0009;backdrop-filter:blur(18px);padding:clamp(25px,3.6vw,47px)}
.kicker{color:#d66b64;font-size:10px;letter-spacing:.24em}
.overlay h1{font-size:clamp(29px,4vw,54px);letter-spacing:-.03em;line-height:1.17;font-weight:750}
.overlay h1 strong{color:#fff;font-weight:750}
.intro{color:#c0c8c8;line-height:1.8;font-size:13px}
.mission-list{gap:5px}
.mission-choice{border-color:#435054;background:#1b2427;border-radius:2px;padding:10px 14px;transition:background .18s,border-color .18s}
.mission-choice:hover{background:#2a3437}
.mission-choice[aria-pressed=true]{border-color:#d66b64;background:#2a2828;box-shadow:inset 3px 0 #d66b64}
.mission-choice b{color:#e0a4a0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}
.mission-choice span{font-size:12px;letter-spacing:.07em}
.mission-choice small{color:#aeb9b9;letter-spacing:0}
.primary{background:#e9ece9;color:#171b1c;border-radius:2px;box-shadow:none;font-size:13px;letter-spacing:.08em;padding:14px 22px;transition:background .18s,transform .18s}
.primary:hover{background:#fff;transform:translateY(-1px);filter:none}
.secondary{border-color:#68777a;background:#1f292c;color:#eff3f0;border-radius:2px;font-size:13px}
.overlay-note{color:#96a1a3}
.result-grid>div{border-radius:2px;background:#1a2427;border-color:#455357}
.control-panel{background:#1b2224;border-top:1px solid #3f484b;padding:15px 20px}
.controls-copy{color:#c4cccd;gap:9px;font-size:11px}
.key{background:#303a3e;border-color:#778487;border-radius:2px;color:#f0f2ef;padding:3px 7px}
.touch-controls button{background:#303b3e;border-color:#6d7c7e;border-radius:3px;min-height:52px;font-size:22px}
.touch-controls button:hover{background:#435054}
.touch-controls .boost-btn{background:#793a38;border-color:#cc7570}
.footnote{color:#909a9b}
.footnote a{color:#c0d1d1}
@media(max-width:720px){.topbar{height:60px}.brand{font-size:10px}.stage-top{height:38px;font-size:8px}.overlay{justify-items:center;padding:12px}.overlay-card{padding:21px;max-height:calc(100dvh - 24px)}.overlay h1{font-size:29px}.intro{font-size:11px;line-height:1.6}.mission-choice{padding:8px 10px}.mission-choice span{font-size:11px}.hud-cell{padding:6px 7px}.hud-cell b{font-size:15px}.touch-controls button{min-height:54px}}

.music-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 22px 20px;background:#12191b;border-top:1px solid #384247}
.music-heading{display:flex;flex-direction:column;gap:3px;min-width:190px}
.music-kicker{color:#d17a72;font-size:9px;font-weight:800;letter-spacing:.17em}
.music-heading strong{font-size:15px;letter-spacing:.035em}
.music-heading small{color:#a6b1b3;font-size:11px;font-variant-numeric:tabular-nums}
.music-actions{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end}
.music-select-label{font-size:10px;font-weight:800;letter-spacing:.16em;color:#9faeb1}
.music-actions select,.music-actions button,.music-actions a{min-height:42px;border:1px solid #647174;border-radius:2px;background:#252e31;color:#f0f3f0;padding:0 13px;font-size:12px;text-decoration:none}
.music-actions select{min-width:220px;max-width:340px;flex:1;cursor:pointer}
.music-actions button{white-space:nowrap;font-weight:700}
.music-actions button:hover,.music-actions a:hover{background:#394548}
.music-actions #musicPlay{background:#e8ecea;color:#151b1d;border-color:#e8ecea;min-width:96px}
.music-actions #musicPlay:hover{background:#fff}
.music-actions a{display:flex;align-items:center;white-space:nowrap;color:#c1d0d0}
.music-panel{flex-wrap:wrap}
.music-actions{flex-wrap:wrap}
.music-actions #musicShuffle[aria-pressed="true"]{border-color:#e87772;background:#593034;color:#fff}
.music-download-note{flex-basis:100%;margin:-6px 0 0;color:#a6b1b3;font-size:11px;line-height:1.5}
@media(max-width:850px){.music-panel{flex-direction:column;align-items:stretch;gap:13px}.music-heading{min-width:0}.music-actions{justify-content:stretch;flex-wrap:wrap}.music-actions select{max-width:none;min-width:170px}.music-select-label{display:none}}
@media(max-width:500px){.music-panel{padding:14px 12px}.music-actions select{flex-basis:100%}.music-actions button{flex:1}.music-actions a{flex:1;justify-content:center}}
.touch-controls .turbo-btn{background:#713b25;border-color:#e89655;color:#fff4dd}
@media(max-width:720px){.touch-controls{gap:5px}.touch-controls button,.touch-controls .boost-btn{min-width:0;flex:1}.touch-controls button small{font-size:8px}}
@media(max-width:720px){.control-panel{position:sticky;bottom:0;z-index:8;padding:8px 10px;background:#111a28f5;backdrop-filter:blur(12px)}.touch-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.touch-controls button,.touch-controls .boost-btn{width:100%;min-width:0;min-height:58px}.touch-controls button small{font-size:9px}}
@media(max-width:720px){.touch-controls{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.game-shell{overflow:visible}.stage-top{border-radius:17px 17px 0 0}.control-panel{padding-bottom:max(8px,env(safe-area-inset-bottom));border-radius:0 0 17px 17px}.hud-cell .speed-direction{display:block;margin-left:0}}
.hud-cell .speed-direction{color:#ff868d;font-size:9px;font-weight:900;letter-spacing:.03em}
.hud-cell .speed-direction[hidden]{display:none}
.finish-btn{display:block;margin:12px auto 0;padding:9px 18px;border:1px solid #86d3d5;border-radius:3px;background:#193238;color:#e8ffff;font-size:12px;font-weight:750}
.finish-btn[hidden]{display:none}
.language-link{margin-left:auto;color:#d7e2e3;text-decoration:none;border:1px solid #637174;border-radius:3px;padding:8px 12px;font-size:11px;font-weight:750;letter-spacing:.07em;white-space:nowrap}
.language-link:hover{background:#2d383b}
@media(max-width:720px){.language-link{font-size:9px;padding:6px}.topbar{gap:6px}}
