:root{color-scheme:dark;--bg:#090e1c;--panel:#11192a;--mint:#9bf2dd;--text:#f1f4ef;--muted:#8592a6;--line:#243045}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN",system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #ffc589;outline-offset:4px}button{border:0}button:disabled{cursor:default}button:hover{filter:brightness(1.12)}[hidden]{display:none!important}main{max-width:1500px;padding:0 48px;margin:auto}.topbar{height:102px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font-size:17px;font-weight:800;letter-spacing:.04em}.brand-mark{font-size:36px;color:var(--mint);transform:rotate(-25deg)}.brand small{display:block;font-size:8px;letter-spacing:.23em;color:var(--muted);margin-top:5px}.top-actions{display:flex;align-items:center;gap:26px}.local-badge{font-size:11px;color:#a5b0c0}.local-badge i,.play-hint i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);margin-right:8px}.icon-btn{background:#172235;border:1px solid #314157;color:#d7e3e4;border-radius:12px;min-width:46px;height:40px;padding:0 12px;font-size:12px}.game-shell{height:min(680px,calc(100svh - 235px));min-height:460px;position:relative;overflow:hidden;border:1px solid #2a374b;border-radius:24px;background:#101929;isolation:isolate}canvas{width:100%;height:100%;display:block;touch-action:none}.overlay{position:absolute;inset:0;display:flex;align-items:center;padding:52px;z-index:3}#menu{background:linear-gradient(90deg,rgba(12,20,35,.95),rgba(12,20,35,.84) 33%,rgba(12,20,35,0) 66%)}.intro{width:450px;max-width:100%}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:700;margin:0 0 18px;color:var(--muted)}.mint{color:var(--mint)}h1{font-size:clamp(48px,5.2vw,76px);line-height:1.22;letter-spacing:-.07em;margin:25px 0;font-weight:850}h1 span{color:var(--mint)}.lead{font-size:13px;line-height:1.95;color:#a7b6c6;letter-spacing:.04em}.mode-picker{display:flex;gap:10px;margin:26px 0 16px}.mode-picker button{border:1px solid #354357;background:#172235b3;border-radius:12px;color:#bcc6d3;text-align:left;padding:13px 16px;flex:1}.mode-picker button[aria-pressed=true]{border-color:#8fe4d2;background:#203b41;color:var(--mint)}.mode-picker b{display:block;font-size:12px}.mode-picker small{display:block;font-size:10px;margin-top:5px;color:#a6b5bd}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 22px;background:var(--mint);color:#112b2b;border-radius:12px;font-weight:800;font-size:15px}.primary span{font-size:23px;line-height:1}.best{font-size:9px;letter-spacing:.13em;color:var(--muted);display:flex;align-items:center;gap:14px;margin:20px 0 0}.best strong{font-size:15px;color:#f0d3a8;letter-spacing:0}.best span{margin-left:auto;letter-spacing:0}.hero-caption{position:absolute;right:38px;bottom:40px;text-align:right}.tiny-tag{font-size:8px;letter-spacing:.18em;color:#8fa6bb}.hero-caption p{font-size:16px;line-height:1.8;color:#cbd6da;letter-spacing:.15em}.orbit-label{color:var(--mint);font-size:8px;letter-spacing:.2em}.hud{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:23px 28px;background:linear-gradient(#0a1224ed,#0a122400);pointer-events:none}.hud .eyebrow{display:block;font-size:8px;margin-bottom:4px}.hud strong{font-size:29px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.hud strong span{font-size:12px;font-weight:400;color:var(--muted)}.growth{width:240px}.growth>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--mint);margin-bottom:10px}.growth #diameter{color:#9daec2}.track{height:4px;background:#2a394e;border-radius:5px;overflow:hidden}.track i{display:block;height:100%;width:0;background:var(--mint);transition:width .2s}.hud-end{display:flex;align-items:center;gap:18px}.hud-end button{pointer-events:auto}.timer strong{font-size:25px}.timer.urgent strong{color:#ffc18c}.play-hint{position:absolute;bottom:20px;left:26px;right:26px;display:flex;gap:10px;justify-content:space-between;color:#a3bac4;font-size:10px;pointer-events:none}.notice{position:absolute;top:110px;left:50%;transform:translateX(-50%);border:1px solid #90dac866;background:#122f36ed;border-radius:30px;padding:10px 20px;font-size:12px;color:var(--mint);z-index:2;opacity:0;transition:opacity .25s;white-space:nowrap;pointer-events:none}.notice.show{opacity:1}.shade{justify-content:center;background:#070d1ed4;backdrop-filter:blur(10px)}.dialog{text-align:center;max-width:410px;width:100%}.dialog h2{font-size:25px;letter-spacing:-.04em}.dialog p{font-size:13px;line-height:1.8;color:#9eb1c4}.dialog .mint{color:var(--mint)}.dialog .primary{margin-top:28px;justify-content:center}.secondary{background:transparent;color:#a6b7c7;padding:15px;margin-top:8px;font-size:12px}.result-score{font-size:66px;color:var(--mint);font-variant-numeric:tabular-nums}.result-score small{font-size:18px}.instructions{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:28px 10px 24px;border-bottom:1px solid #202a3a}.instructions>div{display:flex;gap:13px;align-items:flex-start}.step{font:11px ui-monospace,monospace;color:var(--mint);border:1px solid #32464e;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;flex-shrink:0;margin-top:2px}.instructions p{margin:0}.instructions b{display:block;font-size:12px;font-weight:600;margin-bottom:7px}.instructions p span{font-size:10px;color:var(--muted)}footer{display:flex;justify-content:space-between;padding:23px 0;color:#6f7f96;font-size:9px;letter-spacing:.04em}.footer-dot{margin:0 10px;color:var(--mint)}
@media(min-width:1600px){.game-shell{height:720px}}
@media(max-width:850px){main{padding:0 22px}.topbar{height:80px}.game-shell{min-height:490px}.overlay{padding:30px}.intro{width:365px}h1{font-size:58px}.hero-caption{display:none}.instructions{gap:14px}.instructions>div{gap:8px}.instructions p span{font-size:9px}.hud{padding:20px}.growth{width:185px}.local-badge{display:none}}
@media(max-width:560px){main{padding:0 12px}.topbar{height:72px}.brand{font-size:14px;gap:8px}.brand-mark{font-size:30px}.brand small{font-size:7px}.game-shell{height:calc(100svh - 160px);min-height:515px;max-height:740px;border-radius:18px}.overlay{padding:26px 24px;align-items:flex-end}#menu{background:linear-gradient(0deg,#0c1423f5 15%,#0c1423bf 68%,#0c142333)}.intro{width:100%}.intro>.eyebrow{font-size:7px;letter-spacing:.17em;margin-bottom:15px}h1{font-size:52px;margin:16px 0}.lead{font-size:11px}.mode-picker{margin-top:20px;gap:7px}.mode-picker button{padding:12px 10px}.mode-picker b{font-size:11px}.mode-picker small{font-size:9px}.primary{padding:16px 18px}.best{font-size:8px;margin-top:16px}.best strong{font-size:13px}.best span{font-size:9px}.instructions{grid-template-columns:1fr;padding:20px 5px;gap:14px}.instructions p span{font-size:10px}.instructions b{font-size:11px;margin-bottom:3px}.step{width:24px;height:24px;font-size:10px}.instructions>div{gap:12px}footer{display:block;line-height:2;padding:16px 2px}footer>span{display:block}.hud{padding:15px;gap:10px;align-items:flex-start}.hud strong{font-size:24px}.growth{position:absolute;top:78px;left:16px;right:16px;width:auto}.hud-end{gap:12px}.timer strong{font-size:23px}.notice{top:117px;font-size:10px;padding:9px 12px}.shade{align-items:center}.dialog h2{font-size:23px}.play-hint{font-size:8px;left:15px;right:15px;bottom:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Campaign chooser remains reachable in short and mobile viewports. */
#menu{overflow:auto}.mode-picker{flex-wrap:wrap}.mode-picker button{flex:1 1 130px}#sector-picker{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;margin:12px 0}#sector-picker[hidden]{display:none}#sector{max-width:100%;padding:8px;background:#162335;color:#fff;border:1px solid #729aa3;border-radius:8px}#sector-progress{font-size:11px;color:#97dbc7}#mission-next[hidden]{display:none}
@media(max-height:800px){#menu{align-items:flex-start}.intro{margin:auto 0}.intro h1{font-size:clamp(36px,7vw,64px);margin:10px 0}.intro .lead{margin:8px 0}.mode-picker{margin-top:12px}}
