/* Campaign UI: keep the aiming lane and both thumb zones free. */
.game-wordmark{transform:none;width:100%;white-space:normal}
.campaign-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 8px;padding:13px 0;border-block:1px solid #b6dc9c26;font:9px Consolas,monospace;letter-spacing:.6px;color:#ddebcf}
.campaign-route b{display:block;color:#bcec7b;font-size:15px;letter-spacing:1px;margin-bottom:5px}
.campaign-route small{display:block;color:#94aaa7;font:9px system-ui;margin-top:5px;letter-spacing:0}
.beta-note{font:10px/1.5 Consolas,monospace;color:#94aaa7;max-width:510px;margin:10px 0}
.setting select{min-height:44px}.sensitivity-setting input{min-height:44px}
.chapter-badge{display:block;margin-bottom:8px;color:#b9e98f;font:700 9px Consolas,monospace;letter-spacing:1px;text-transform:uppercase}
.objective-panel{border-color:#b5e984}
.boss-panel{position:absolute;top:80px;left:50%;transform:translateX(-50%);width:min(36vw,390px);padding:11px 15px;border:1px solid #eaa47455;border-radius:9px;background:#091419e8;text-align:center}
.boss-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.boss-heading .hud-label{color:#d7a27a;font-size:8px;letter-spacing:1px}
.boss-heading strong{font:700 12px Consolas,monospace;letter-spacing:1px;color:#ffe4cb;text-transform:uppercase}
.boss-track{margin:9px 0 6px;height:5px;background:#c7b09e26;border-radius:2px;overflow:hidden}
.boss-track>div{height:100%;width:100%;background:#e9ab75;transition:width .16s}
.boss-panel p{margin:0;color:#cad6ce;font:10px/1.4 Consolas,monospace;min-height:14px}
.boss-panel.boss-warning{border-color:#ff7555;background:#261813ed}.boss-warning .boss-track>div{background:#ff7659}.boss-warning p{color:#ffbc94}
.puzzle-screen{display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:#030c10ed;backdrop-filter:blur(8px);overflow:auto;overscroll-behavior:contain;z-index:14}
.puzzle-dialog{width:min(580px,100%);padding:30px;border:1px solid #bde88a55;border-top:3px solid #bde88a;background:linear-gradient(145deg,#15262d,#0c171c);border-radius:8px;box-shadow:0 20px 100px #0008;max-height:calc(100dvh - 48px);overflow:auto}
.puzzle-dialog h2{font-size:clamp(25px,4vw,36px);line-height:1.1;letter-spacing:-1px;margin:22px 0 12px;color:#f0f7e9}
#puzzleHint{color:#c1d2d1;font:14px/1.7 system-ui;margin:0 0 18px;white-space:pre-line}
.puzzle-progress{padding:12px 14px;border:1px solid #b3d48b33;background:#0003;color:#c6f09c;font:11px/1.5 Consolas,monospace;min-height:44px;overflow-wrap:anywhere}
.puzzle-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.puzzle-choice{min-height:60px;padding:14px 12px;border:1px solid #bde88a55;border-radius:6px;background:#1a3038;color:#eefadf;font:700 14px/1.4 Consolas,monospace;touch-action:manipulation;overflow-wrap:anywhere}
.puzzle-choice:hover{background:#2d4547;border-color:#d5f9a7}.puzzle-choice:active{background:#bfe995;color:#102019}
.puzzle-help{font:11px/1.5 system-ui;color:#8ea6a7;margin:0 0 15px}
.puzzle-dialog .secondary-button{min-height:48px;margin-top:0;font-size:10px;padding:9px}
.result-dialog #nextChapterBtn{margin-bottom:12px}.result-dialog #restartBtn{min-height:48px}
.touch-mode .chapter-badge{font-size:8px;margin-bottom:5px}
.touch-mode .boss-panel{top:116px;width:min(39vw,340px);padding:8px 10px;left:50%;right:auto}
.touch-mode .boss-heading{display:block}.touch-mode .boss-heading .hud-label{display:none}.touch-mode .boss-heading strong{font-size:10px}.touch-mode .boss-panel p{font-size:9px;line-height:1.35}.touch-mode .boss-track{margin:6px 0}
.touch-mode .ammo-panel{min-width:0;max-width:25vw}.touch-mode .weapon-name{letter-spacing:.5px}
.touch-mode .touch-toolbar [data-action="weapon"]{min-width:72px}
@media(max-width:600px) and (orientation:portrait){
 .campaign-route{gap:7px;font-size:8px}.campaign-route small{font-size:8px}.campaign-route b{font-size:13px}
 .puzzle-dialog{padding:22px 18px}.puzzle-dialog h2{margin-top:16px}.puzzle-dialog .eyebrow{font-size:8px;letter-spacing:1px}.puzzle-choices{gap:9px}.puzzle-choice{min-height:58px;font-size:12px}#puzzleHint{font-size:13px}
 .touch-mode .boss-panel{top:255px;width:72vw;max-width:340px}.touch-mode .objective-panel{top:150px;max-height:100px;overflow:hidden}.touch-mode .objective-panel p{font-size:9px}
 .touch-mode .ammo-panel{max-width:47vw}.touch-mode .weapon-name{font-size:8px}
 .touch-mode .intro-footer{position:relative}
}
@media(max-height:500px) and (orientation:landscape){
 .touch-mode .campaign-route,.touch-mode .beta-note{display:none}
 .touch-mode .sensitivity-setting{grid-column:1;grid-row:4;margin:7px 0}.touch-mode .sensitivity-setting input{min-height:40px}
 .touch-mode .settings-row{grid-column:2;grid-row:1/5;grid-template-columns:1fr 1fr;align-content:start;gap:8px}.touch-mode .setting select{min-height:44px}
 .touch-mode .mobile-instructions{grid-column:1/3;grid-row:5;font-size:10px;line-height:1.45;margin:4px 0}.touch-mode .intro-footer{bottom:8px}
 .touch-mode .objective-panel{width:min(38vw,340px);top:12px}.touch-mode .boss-panel{top:112px;width:min(38vw,340px);max-height:91px}
 .puzzle-screen{padding:12px max(22px,env(safe-area-inset-right)) 12px max(22px,env(safe-area-inset-left))}.puzzle-dialog{padding:17px 24px;max-height:calc(100dvh - 24px);width:min(720px,100%);display:grid;grid-template-columns:1.1fr 1fr;gap:6px 24px;align-items:start}
 .puzzle-dialog>.eyebrow{grid-column:1;font-size:8px}.puzzle-dialog h2{grid-column:1;margin:5px 0;font-size:25px}#puzzleHint{grid-column:1;margin:0;font-size:12px;line-height:1.5}.puzzle-progress{grid-column:1;font-size:10px;padding:9px}.puzzle-choices{grid-column:2;grid-row:1/5;margin:0;gap:8px}.puzzle-choice{min-height:55px;font-size:12px;padding:10px}.puzzle-help{grid-column:1;font-size:9px;margin:0}.puzzle-dialog .secondary-button{grid-column:2;min-height:45px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.boss-track>div{transition:none}}
