:root{color-scheme:dark;--bg:#17241e;--panel:#203129;--line:#3c4c3b;--cream:#f0edda;--muted:#a6b29d;--lime:#dcecac;--teal:#36a496;--sand:#d7c9a6;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#2c3e30 0%,#17241e 72%);color:var(--cream)}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,textarea:focus-visible,canvas:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button:disabled{opacity:.35;cursor:default}.app{height:100vh;height:100dvh;padding:18px 24px;display:grid;grid-template-rows:44px minmax(0,1fr) 22px;gap:12px;max-width:1440px;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 3px}.wordmark{text-decoration:none;color:var(--cream);display:flex;align-items:center;gap:11px;font-size:16px;letter-spacing:2.3px;font-weight:800;line-height:1.1}.wordmark b{color:#b6c795}.wordmark small{display:block;font-size:8px;letter-spacing:2.6px;font-weight:500;color:var(--muted);margin-top:7px}.brand-symbol{font-size:28px;color:var(--lime);line-height:1;width:34px;height:34px;border:1px solid #657855;display:grid;place-items:center;border-radius:50%}.utility{display:flex;align-items:center;gap:9px}.edition{color:#8b9c87;font:9px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.8px;margin-right:14px}.icon-button{color:#d5ddc5;background:#27382b;border:1px solid #4d6047;border-radius:5px;padding:8px 13px;font-size:11px;letter-spacing:.6px;min-height:34px}.icon-button:hover:not(:disabled){background:#3b4e34}.playground{min-height:0;display:flex;align-items:center;justify-content:center}.game-shell{width:min(1120px,calc(100vw - 48px),calc((100dvh - 258px)*1.666667));border:1px solid #54604a;box-shadow:0 22px 70px #0d191688,0 1px 0 #64724f;border-radius:10px;overflow:hidden;background:#203129}.hud{height:62px;padding:10px 24px;display:grid;grid-template-columns:1.2fr 1.1fr 1.6fr 1fr;align-items:center;border-bottom:1px solid #586247;gap:12px}.stat{display:flex;flex-direction:column;gap:4px}.label{font:9px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.5px;color:#9bad92;white-space:nowrap}.stat strong{font:22px ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.05;letter-spacing:1px;color:#f0efd9}.stat.level{display:grid;grid-template-columns:auto 1fr;gap:0 10px}.level .label{grid-row:1}.level strong{grid-row:1 / 3;font-size:29px;color:var(--lime)}.sector{font:8px ui-monospace,monospace;letter-spacing:1.7px;color:#899b82}.remaining{text-align:right}.remaining strong span{font-size:9px;color:#93a78a;letter-spacing:1.5px}#lives{font-size:15px;letter-spacing:3px;color:var(--lime);white-space:nowrap}.stage{position:relative;aspect-ratio:5 / 3;overflow:hidden;background:#dbd1ae}canvas{width:100%;height:100%;display:block;cursor:crosshair;outline:0!important}.arena-tag{position:absolute;left:6%;top:8.9%;pointer-events:none;font:8px ui-monospace,monospace;letter-spacing:2.3px;color:#68705b;opacity:.75}.armory{height:68px;display:grid;grid-template-columns:1.15fr .9fr 1.5fr;align-items:center;gap:20px;padding:10px 24px;border-top:1px solid #556149;background:#203129}.label b{color:#d5e7ba;font-weight:500;letter-spacing:0;margin-left:6px}.slots{display:flex;gap:4px;margin-top:5px}.slot{width:15px;height:10px;border:1px solid #879b68;background:#dcecac;transform:skewX(-13deg);transition:background .08s}.slot.empty{background:#3b4934;border-color:#657450}.recovery{font-size:8px;color:#9bab92;display:block;margin-top:5px;letter-spacing:.3px}.missile-panel{border-left:1px solid #526047;padding-left:20px;display:grid;grid-template-columns:auto 1fr;gap:3px 8px}.missile-panel .label{grid-column:1 / 3}.missile-panel strong{font:18px ui-monospace,monospace;color:#edc08c;line-height:1}.missile-panel small{font-size:9px;color:#a29d7c}.missile-panel .recovery{margin:0;align-self:center;font-size:8px}.hint{text-align:right}.hint strong{display:block;font-size:11px;font-weight:500;letter-spacing:1px;color:#d7e7bc}.hint span{display:block;font-size:8px;color:#a5b398;margin-top:7px}.page-footer{text-align:center;font-size:9px;color:#acb69f;white-space:nowrap;align-self:center;letter-spacing:.25px}kbd{font:9px ui-monospace,monospace;color:#d0dac0;border:1px solid #4d6047;border-radius:3px;padding:1px 4px}i{font-style:normal;color:#71836a;margin:0 8px}.desktop-notice{display:none}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:#14231bd1;backdrop-filter:blur(3px);transition:opacity .15s}.overlay:empty{display:none}.panel{position:relative;width:440px;max-width:100%;max-height:100%;overflow:auto;scrollbar-width:thin;padding:30px 34px;background:linear-gradient(145deg,#263b2d,#1d3026);border:1px solid #61724f;box-shadow:0 12px 45px #07160e88;border-radius:9px}.panel.wide{width:520px}.eyebrow{display:flex;align-items:center;gap:8px;font:10px ui-monospace,monospace;letter-spacing:2px;color:var(--lime)}.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px #dcecac55}.panel h1,.panel h2{font-size:29px;letter-spacing:1px;line-height:1.45;margin:17px 0 13px;font-weight:750}.panel h1 em{font-style:normal;color:var(--lime)}.panel p{font-size:11px;color:#b6c4ad;line-height:1.95;margin:10px 0 18px}.panel .intro{max-width:350px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.action{border:1px solid #dcecac;background:var(--lime);color:#283d2b;border-radius:4px;padding:12px 18px;font-size:12px;font-weight:700;letter-spacing:.6px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:15px;transition:background .1s,transform .1s}.action:hover{background:#eaf7c6;transform:translateY(-1px)}.action.secondary{background:transparent;color:#d7e3c6;border-color:#718663;font-weight:500}.action.secondary:hover{background:#344b33}.action.subtle{background:transparent;border-color:transparent;color:#aaba9b;padding:8px 0;font-size:10px;font-weight:500;min-height:30px}.action.subtle:hover{color:var(--lime);background:transparent}.fine-print{font-size:9px!important;color:#8fa285!important;margin-bottom:0!important}.guide-line{border-top:1px solid #536348;margin-top:22px;padding-top:15px;color:#c1cfb4;font-size:10px;line-height:1.95}.guide-line b{color:#e2eaca;font-weight:500}.mini-legend{display:flex;gap:15px;font-size:9px;color:#a9ba9c;margin:14px 0 0}.swatch{display:inline-block;width:9px;height:9px;margin-right:5px;background:#64716c;vertical-align:-1px;border:1px solid #9daca0}.swatch.brick{background:repeating-linear-gradient(0deg,#bd9163 0 3px,#916d4b 3px 4px);border-color:#d0a878}.large-number{font:46px ui-monospace,monospace;letter-spacing:1px;color:var(--lime);line-height:1.25;margin:8px 0 4px}.result-line{color:#b9c8ad;font-size:11px;line-height:1.8}.bonus-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:9px 0;border-bottom:1px solid #4a5c42;font-size:11px;color:#b5c4a8}.bonus-row strong{font:15px ui-monospace,monospace;color:var(--lime)}.record-list{width:100%;border-collapse:collapse;font-size:11px;margin-top:15px}.record-list th{font:8px ui-monospace,monospace;letter-spacing:1px;color:#a4b69a;text-align:left;padding:5px 4px 9px}.record-list td{padding:8px 4px;border-top:1px solid #4a5c42;color:#bccbad;font:11px ui-monospace,monospace}.record-list td:last-child{text-align:right;color:#e4eccb;font-size:14px}.record-list th:last-child{text-align:right}.record-list .rank{color:#98af85;width:30px}.record-list .latest td{color:var(--lime)}.record-list small{font-size:8px;color:#8c9c81}.empty-record{border-block:1px solid #4a5c42;padding:22px 0!important;text-align:center}.save-error{color:#edc08c!important;font-size:10px!important;line-height:1.8!important}.copy-area{display:block;width:100%;resize:none;background:#16281e;color:#dbe7c6;border:1px solid #6c835c;border-radius:4px;padding:10px;margin-top:14px;font-size:11px;line-height:1.7;min-height:100px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-size:10px;color:#b6c4ab;margin:12px 0 18px}.guide-grid strong{color:#e0e9cb;display:block;font-size:11px;margin-bottom:4px}.guide-grid div{padding:10px 0;border-bottom:1px solid #4a5c42;line-height:1.65}.enemy-guide{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.enemy-card{display:flex;gap:8px;font-size:9px;color:#aebfa1;line-height:1.6;padding:8px;background:#1a2d22;border:1px solid #44583a;border-radius:4px}.enemy-dot{width:15px;height:18px;flex:none;border-radius:3px;margin-top:1px;border:2px solid #b9c7b866}.enemy-card strong{font-size:10px;color:#d8e5c8}.preparation{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#203129e8;border:1px solid #b9c895;padding:17px 34px;border-radius:6px;text-align:center;color:var(--lime);pointer-events:none;box-shadow:0 4px 35px #17241e44}.preparation[hidden]{display:none}.preparation span{font:11px ui-monospace,monospace;letter-spacing:3px;display:block}.preparation b{display:block;font:36px ui-monospace,monospace;margin-top:8px}.preparation small{display:block;font-size:9px;color:#aabd9b;margin-top:7px}.toast{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);padding:8px 14px;background:#1d3026ee;border:1px solid #8a9d73;border-radius:4px;font-size:11px;color:var(--lime);white-space:nowrap;pointer-events:none;max-width:90%;text-align:center}.toast[hidden]{display:none}noscript{position:fixed;inset:40%;background:#263b2d;padding:20px}.panel::-webkit-scrollbar{width:5px}.panel::-webkit-scrollbar-thumb{background:#61724f;border-radius:5px}
/* The same HUD, controls and resource nodes rearrange without duplicate state. */
.icon-button,.action,.action.subtle{min-height:44px;min-width:44px}
.game-shell{width:min(1220px,calc(100vw - 48px),calc((100dvh - 258px)*1.666667 + 100px));display:grid;grid-template-columns:minmax(0,1fr) 100px;grid-template-rows:62px auto 68px}
.battle-layout,.right-rail{display:contents}.hud{grid-column:1/-1;grid-row:1}.stage{grid-column:1;grid-row:2;min-width:0}.battle-controls{grid-column:2;grid-row:2;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:10px;background:#203129;border-left:1px solid #54604a}.battle-controls .icon-button{padding:10px 5px;font-size:10px;white-space:normal}.battle-controls>span{font-size:9px;line-height:1.7;color:var(--muted);text-align:center}.armory{grid-column:1/-1;grid-row:3}.rotate-hint{display:none}
#missile-toggle[aria-pressed="true"]{background:#dcecac;color:#203129;border-color:#eff8cf;box-shadow:0 0 0 2px #dcecac44}#field{touch-action:none;user-select:none;-webkit-user-select:none}.touch-pad{position:absolute;pointer-events:none;width:90px;height:90px;margin:-45px 0 0 -45px;border:1px solid #edfad3aa;border-radius:50%;background:#1c51424d;display:grid;place-items:center}.touch-pad[hidden]{display:none}.touch-pad span{width:32px;height:32px;background:#dbedb59c;border:1px solid #f1f8d2;border-radius:50%}
.swatch.pit{border-radius:50%;background:#172c27;border-color:#aeb795;box-shadow:inset 1px 1px 0 #081c16;border-bottom-width:2px}.mini-legend{flex-wrap:wrap}.share-preview{display:block;width:100%;height:auto;border:1px solid #637452;border-radius:4px;margin-top:14px}.share-actions{gap:7px}.share-actions .action{font-size:10px;padding:8px 11px}.panel a{color:#dcecac}.toast{white-space:normal;width:max-content}
.app{height:var(--viewport-height,100dvh);padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
/* Dialogs belong to the visible viewport, never the scaled battlefield. */
.overlay{position:fixed;z-index:10;inset:auto;top:var(--viewport-top,0px);left:var(--viewport-left,0px);width:var(--viewport-width,100vw);height:var(--viewport-height,100dvh);padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overscroll-behavior:contain}.panel,.panel.wide{width:540px;max-height:100%;padding:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}.panel.wide{width:620px}.panel-heading{padding:24px 28px 0;min-width:0}.panel-heading h1,.panel-heading h2{margin:14px 0 10px}.panel-body{padding:0 28px 20px;overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin}.panel-body:focus-visible{outline:1px solid #8fa276;outline-offset:-3px}.panel-footer{padding:14px 28px 20px;border-top:1px solid #4b6044;background:#20352a;min-width:0}.panel-footer .actions{margin:0;flex-wrap:nowrap}.panel-footer .action{flex:1;padding:11px 12px;gap:8px}.panel-audio{display:flex;gap:8px;margin-top:10px}.panel-audio button{flex:1;font-size:11px}.panel-body .action.subtle{width:100%;text-align:left;justify-content:flex-start}.panel-body .intro{margin-top:0}.guide-grid{margin-top:0}.preparation{max-width:60%}.toast{z-index:2}
@media(max-width:800px){.edition{display:none}.hud{padding-inline:15px;gap:7px}.stat strong{font-size:19px}.label{font-size:8px;letter-spacing:1px}.sector{font-size:7px;letter-spacing:.5px}#lives{font-size:13px;letter-spacing:1px}.armory{padding-inline:15px;gap:12px;grid-template-columns:1.1fr 1fr}.hint{display:none}.missile-panel{padding-left:14px}.arena-tag{font-size:7px;letter-spacing:1px}.wordmark{font-size:12px}.page-footer{font-size:8px}}
@media(max-height:640px) and (orientation:landscape){.app{padding:8px 16px;gap:6px;grid-template-rows:44px minmax(0,1fr)}.page-footer,.wordmark small{display:none}.game-shell{width:min(100%,calc((var(--viewport-height,100dvh) - 206px)*1.666667 + 100px))}.panel,.panel.wide{width:760px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-rows:minmax(0,1fr) auto}.panel-heading{grid-column:1;grid-row:1;padding:22px 24px 10px;overflow:auto}.panel-heading h1,.panel-heading h2{font-size:25px;margin-top:16px}.panel-body{grid-column:2;grid-row:1/3;padding:20px 24px;border-left:1px solid #4b6044}.panel-footer{grid-column:1;grid-row:2;padding:12px 24px 20px}.panel p{font-size:11px}.panel-body .large-number{font-size:38px}.guide-grid{grid-template-columns:1fr}.preparation{padding:8px 18px}.preparation b{font-size:23px;margin-top:3px}.preparation small{display:none}}
/* Mobile landscape spends its height on the full 5:3 battlefield. */
@media(max-width:1100px) and (max-height:640px) and (orientation:landscape){
 :root{--rail:96px;--battle-height:min(calc(var(--viewport-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 8px),calc((var(--viewport-width,100vw) - env(safe-area-inset-left) - env(safe-area-inset-right) - 8px - var(--rail)*2)*.6))}
 .app{height:var(--viewport-height,100dvh);width:var(--viewport-width,100vw);max-width:none;padding:calc(4px + env(safe-area-inset-top)) calc(4px + env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left));display:flex;align-items:center;justify-content:center}.masthead,.page-footer{display:none}.playground{width:100%;height:100%;min-width:0}.game-shell{width:calc(var(--battle-height)*1.666666667 + var(--rail)*2);height:var(--battle-height);max-width:100%;border:0;border-radius:6px;grid-template-columns:var(--rail) minmax(0,1fr) var(--rail);grid-template-rows:minmax(0,1fr);box-shadow:0 8px 35px #0d191655}.hud{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;height:100%;padding:16px 10px;gap:12px;border:0}.stat,.stat.level{display:flex;flex-direction:column;gap:5px}.stat strong,.level strong{font-size:22px;letter-spacing:0}.stat .label{font-size:8px;letter-spacing:.6px;white-space:normal}.sector,.remaining strong span{display:none}.remaining{text-align:left}#lives{font-size:13px;letter-spacing:0;white-space:normal;line-height:1.4}.stage{grid-column:2;grid-row:1;width:100%;height:100%;aspect-ratio:5/3}.right-rail{grid-column:3;grid-row:1;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:8px}.battle-controls{display:contents}.battle-controls #pause{order:0}.battle-controls #missile-toggle{order:2}.battle-controls>span{order:3;font-size:8px;line-height:1.5}.battle-controls .icon-button{width:100%;font-size:10px;line-height:1.5;padding:6px 3px;flex:none}.armory{order:1;display:flex;flex-direction:column;align-items:stretch;gap:12px;height:auto;padding:0;border:0}.slots-panel .label{font-size:7px;letter-spacing:.4px;white-space:normal}.slots-panel .label b{display:block;font-size:14px;margin:5px 0 0}.slots{gap:2px;flex-wrap:wrap;margin-top:6px;max-width:78px}.slot{width:12px;height:7px}.recovery{font-size:8px;line-height:1.5;margin-top:5px;letter-spacing:0}.missile-panel{display:block;padding:0;border:0}.missile-panel .label{font-size:7px;letter-spacing:.1px;white-space:normal}.missile-panel strong{display:block;margin-top:6px;font-size:19px}.missile-panel .recovery,.hint,.rotate-hint,.arena-tag{display:none}.overlay{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
}
@media(max-width:720px) and (max-height:640px) and (orientation:landscape){:root{--rail:80px}.hud{padding:12px 8px;gap:8px}.right-rail{padding:6px;gap:8px}.stat strong,.level strong{font-size:20px}.stat .label{font-size:7px}.slots{gap:2px}.slot{width:11px}.panel-heading{padding:16px 20px 8px}.panel-heading h1,.panel-heading h2{font-size:22px}.panel-body{padding:16px 20px}.panel-footer{padding:10px 20px 16px}.panel-footer .action{font-size:11px;padding:9px 8px}.panel-audio{gap:6px}}
@media(orientation:portrait) and (max-width:800px){body{overflow:auto;min-width:320px}.app{height:auto;min-height:var(--viewport-height,100dvh);padding:calc(4px + env(safe-area-inset-top)) calc(4px + env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left));display:block}.masthead,.page-footer{display:none}.playground{display:block}.game-shell{width:100%;max-width:none;display:flex;flex-direction:column;border:0;border-radius:6px}.hud{height:50px;padding:7px 9px;grid-template-columns:.75fr 1fr 1.2fr .7fr;gap:6px}.stat{gap:3px}.stat.level{display:flex;gap:3px}.stat strong,.level strong{font-size:18px}.label{font-size:7px;letter-spacing:.3px}.sector,.remaining strong span{display:none}#lives{font-size:11px;letter-spacing:0}.stage{width:100%;flex:none}.right-rail{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px}.battle-controls{display:contents}.battle-controls #pause{grid-column:1;grid-row:2}.battle-controls #missile-toggle{grid-column:2;grid-row:2}.battle-controls>span{display:none}.battle-controls .icon-button{font-size:11px}.armory{grid-column:1/-1;grid-row:1;height:58px;padding:3px 5px;grid-template-columns:1.1fr 1fr;gap:10px;border-top:0}.slots{gap:3px}.slot{width:10px;height:8px}.recovery{font-size:8px;letter-spacing:0}.missile-panel{padding-left:12px}.missile-panel .recovery{display:none}.missile-panel strong{font-size:18px}.rotate-hint{display:block;padding:7px 5px 10px;color:#c5d6b2;font-size:10px;text-align:center;line-height:1.7}.hint,.arena-tag{display:none}.panel,.panel.wide{width:480px}.panel-heading{padding:20px 20px 0}.panel-heading h1,.panel-heading h2{font-size:24px}.panel-body{padding:0 20px 16px}.panel-footer{padding:12px 20px 16px}.panel p{font-size:11px}.panel-footer .action{font-size:11px}.guide-grid{grid-template-columns:1fr}.preparation{padding:8px 14px}.preparation b{font-size:24px;margin-top:4px}.preparation small{display:none}.overlay{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.mobile-label{display:none}
@media(max-width:1100px) and (max-height:640px) and (orientation:landscape){.desktop-label{display:none}.mobile-label{display:inline}.stat .label,.slots-panel .label,.missile-panel .label{font-size:10px;letter-spacing:.3px}.recovery{font-size:10px;line-height:1.4}.slots-panel .label b{font-size:14px}.battle-controls>span{font-size:10px;line-height:1.5}.battle-controls .icon-button{font-size:11px}.hud{gap:8px}.stat strong{overflow-wrap:anywhere}.stat #score{font-size:18px}.right-rail{gap:8px}.armory{gap:10px}}
@media(orientation:portrait) and (max-width:800px){.desktop-label{display:none}.mobile-label{display:inline}.label{font-size:9px}.recovery{font-size:9px}.stat .label{font-size:9px}}

/* First introductions remain readable in the compact battlefield, above YOU. */
@media(orientation:landscape) and (max-height:640px),(orientation:portrait) and (max-width:800px){.preparation:not([hidden]){left:50%!important;top:15%!important;display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 10px;padding:5px 10px;max-width:96%}.preparation span{font-size:9px;letter-spacing:1px}.preparation b{font-size:19px;margin:0}.preparation small[data-introduction="true"]{display:block;grid-column:1/-1;font-size:10px;white-space:nowrap;margin:0;color:#e1eabd}}
/* v23: portrait phones show only this gate, before the application starts. */
.orientation-gate{display:none;position:fixed;z-index:50;inset:0;padding:max(28px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:#172d25;color:#dcecac;text-align:center;align-items:center;justify-content:center;outline:0}
.orientation-gate h2{font-size:24px;line-height:1.6}.orientation-gate p{font-size:14px;line-height:1.9;color:#bacbad}.orientation-gate .fine-print{max-width:290px;margin:22px auto!important;font-size:12px!important}.rotate-symbol{display:block;font-size:76px;line-height:1.2}
.phone-portrait body{overflow:hidden}.phone-portrait .app,.phone-portrait #overlay{visibility:hidden;pointer-events:none}.phone-portrait .orientation-gate{display:flex}
.volume-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;margin-top:16px;padding-top:12px;border-top:1px solid #526648;color:#d7e3c6;font-size:12px}.volume-control output{font:14px ui-monospace,monospace;color:#dcecac}.volume-control input{grid-column:1/-1;accent-color:#dcecac;width:100%;min-height:44px;margin:0;cursor:pointer}.panel-body .panel-audio{margin-top:4px}.pause-options,.share-choices{display:flex;gap:8px;flex-wrap:wrap}.pause-options .action{flex:1;padding:10px;font-size:11px}.result-share{width:100%;margin-top:16px}.share-primary{margin-top:14px}.share-primary .action{width:100%}.panel details{margin-top:18px;border:1px solid #61724f;border-radius:5px;padding:0 12px 12px;font-size:12px;color:#b6c4ad}.panel summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;padding-block:12px;line-height:1.6;color:#dcecac}.panel details:not([open]){padding-bottom:0}.share-choices .action{font-size:11px;padding:10px 12px}.panel h2{overflow-wrap:anywhere}.panel-heading{scrollbar-width:thin}
@media(max-height:640px) and (orientation:landscape){.panel-heading h2{font-size:24px;line-height:1.5}.panel-footer .actions{flex-wrap:wrap}.panel-footer .action{flex:1 1 120px}.panel-body .share-preview{margin-top:0}.panel-body .volume-control{margin-top:12px}.panel-audio button{padding:8px}.panel-footer{padding-bottom:12px}}
@media(max-width:720px) and (max-height:640px) and (orientation:landscape){.panel-heading h2{font-size:21px}.panel-footer .action{flex-basis:110px}.panel-body{padding:14px 16px}.panel-heading{padding:16px 16px 8px}.panel-footer{padding:10px 16px 12px}.pause-options{flex-direction:column;gap:6px}.volume-control{margin-top:12px}.panel p{font-size:11px}}
/* v24: fixed circles occupy the existing side rails, outside the field. */
.stick{display:none;touch-action:none;user-select:none;-webkit-user-select:none}
.phone-layout{--rail:96px;--stick-size:80px;--battle-height:min(calc(var(--viewport-height,100dvh) - var(--effective-safe-top,0px) - var(--effective-safe-bottom,0px) - 8px),calc((var(--viewport-width,100vw) - var(--phone-edge,16px)*2 - var(--rail)*2)*.6))}
.phone-layout .app{position:fixed;left:var(--viewport-left,0px);top:var(--viewport-top,0px);margin:0;height:var(--viewport-height,100dvh);width:var(--viewport-width,100vw);max-width:none;padding:calc(4px + var(--effective-safe-top,0px)) var(--phone-edge,16px) calc(4px + var(--effective-safe-bottom,0px)) var(--phone-edge,16px);display:flex;align-items:center;justify-content:center}
.phone-layout .masthead,.phone-layout .page-footer{display:none}.phone-layout .playground{width:100%;height:100%;min-width:0}
.phone-layout .game-shell{position:relative;width:calc(var(--battle-height)*1.666666667 + var(--rail)*2);height:var(--battle-height);max-width:100%;border:0;border-radius:6px;grid-template-columns:var(--rail) minmax(0,1fr) var(--rail);grid-template-rows:minmax(0,1fr)}
.phone-layout .hud{grid-column:1;grid-row:1;height:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:10px 8px calc(var(--stick-size) + 14px);gap:10px;border:0}
.phone-layout .stat,.phone-layout .stat.level{display:flex;flex-direction:column;gap:3px}.phone-layout .stat strong,.phone-layout .level strong{font-size:21px;letter-spacing:0}.phone-layout .stat .label{font-size:10px;letter-spacing:.3px;white-space:normal}.phone-layout #score{font-size:18px}.phone-layout #lives{font-size:13px;letter-spacing:0;white-space:normal;line-height:1.25}.phone-layout .remaining{text-align:left}.phone-layout .sector,.phone-layout .remaining strong span{display:none}
.phone-layout .stage{grid-column:2;grid-row:1;width:100%;height:100%;aspect-ratio:5/3}.phone-layout .right-rail{grid-column:3;grid-row:1;display:flex;flex-direction:column;justify-content:flex-start;padding:6px 8px calc(var(--stick-size) + 14px);gap:6px;min-height:0}
.phone-layout .battle-controls{display:contents}.phone-layout .battle-controls>span,.phone-layout .recovery,.phone-layout .hint,.phone-layout .rotate-hint,.phone-layout .arena-tag{display:none}.phone-layout .battle-controls .icon-button{flex:none;width:100%;padding:5px 2px;font-size:10px;line-height:1.4}.phone-layout #pause{order:0}.phone-layout #missile-toggle{order:2}
.phone-layout .armory{order:1;display:flex;flex-direction:column;align-items:stretch;gap:6px;height:auto;padding:0;border:0}.phone-layout .slots-panel .label,.phone-layout .missile-panel .label{font-size:10px;letter-spacing:0;white-space:normal}.phone-layout .slots-panel .label b{display:block;font-size:14px;margin:2px 0}.phone-layout .slots{gap:2px;flex-wrap:wrap;margin-top:3px;max-width:78px}.phone-layout .slot{width:12px;height:7px}.phone-layout .missile-panel{display:flex;align-items:center;justify-content:space-between;gap:2px;padding:0;border:0}.phone-layout .missile-panel strong{font-size:15px;margin:0;white-space:nowrap}.phone-layout .missile-panel strong>span[aria-hidden]{display:none}.phone-layout .missile-panel small{font-size:8px}.phone-layout .desktop-label{display:none}.phone-layout .mobile-label{display:inline}
.phone-sticks .stick{position:absolute;bottom:6px;width:var(--stick-size);height:var(--stick-size);border:1px solid #8ba97c;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#375947 0%,#243e30 70%);box-shadow:inset 0 0 0 8px #132b2244;z-index:1;color:#dcecac}
.phone-layout .left-stick{left:calc((var(--rail) - var(--stick-size))/2)}.phone-layout .right-stick{right:calc((var(--rail) - var(--stick-size))/2)}.stick-label{position:absolute;top:9px;font:8px ui-monospace,monospace;letter-spacing:.8px;pointer-events:none}.stick-knob{width:30px;height:30px;border-radius:50%;border:1px solid #dcebb5;background:#789a71;pointer-events:none;box-shadow:0 2px 5px #10281b77}.stick.engaged{border-color:#dcecac;background:#325b45}.stick[aria-disabled="true"]{opacity:.4}
@media(max-width:720px){.phone-layout{--rail:80px;--stick-size:68px}.phone-layout .hud{padding-top:8px;gap:8px}.phone-layout .right-rail{padding-inline:6px;gap:5px}.phone-layout .slot{width:10px}.phone-layout .stat strong,.phone-layout .level strong{font-size:20px}.phone-layout .missile-panel .label{font-size:8px}.phone-layout .missile-panel strong{font-size:14px}.phone-layout .stick-label{font-size:7px;top:7px}}

/* v25: both phone controls use one centered visual-viewport layout. */
:root{--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
.phone-layout .overlay{padding:max(8px,var(--effective-safe-top,0px)) var(--phone-edge,16px) max(8px,var(--effective-safe-bottom,0px)) var(--phone-edge,16px)}
.control-choices{border:0;border-top:1px solid #526648;margin:14px 0 0;padding:12px 0 0;min-width:0}.control-choices legend{font-size:12px;color:#d7e3c6;padding:0 8px 0 0}.control-choices [role="group"]{display:flex;gap:6px}.control-choices button{flex:1;min-width:0;min-height:44px;padding:7px 5px;border:1px solid #718663;border-radius:4px;background:transparent;color:#d7e3c6;font-size:11px;line-height:1.5}.control-choices button[aria-pressed="true"]{background:#dcecac;color:#203129;border-color:#eff8cf;box-shadow:inset 0 0 0 1px #eff8cf}.panel .control-choices p{font-size:10px;margin:7px 0 0;line-height:1.7}
/* v29: readable instructions keep navigation outside the scrolling manual. */
.panel.help-panel{width:1000px;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
.help-panel .panel-heading{grid-column:1;grid-row:1;padding:18px 24px 0;overflow:visible}
.help-panel .panel-heading h2{font-size:26px;margin:8px 0}
.help-panel .panel-body{grid-column:1;grid-row:2;padding:0 24px 18px}
.help-panel .panel-footer{grid-column:1;grid-row:3;padding:8px 24px}
.help-panel .panel-footer .action{flex:none;min-width:120px;min-height:44px;font-size:15px}
.help-panel p{font-size:15px;line-height:1.7;color:#c8d2bb;margin:8px 0 14px}
.help-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.help-tabs button{min-height:44px;padding:8px 15px;border:1px solid #718663;background:#1a2d22;color:#dce6ce;border-radius:5px;font-size:15px;line-height:1.6}
.help-tabs button[aria-pressed="true"]{color:#20382b;background:var(--lime);border-color:var(--lime);font-weight:700}
.help-panel .help-tab-note{font-size:15px;color:#aebfa1}
.help-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.help-card{min-width:0;padding:16px;background:#1a2d22;border:1px solid #617456;border-radius:7px}
.help-card h3{font-size:17px;line-height:1.6;margin:12px 0 8px;color:var(--cream)}
.help-card p{margin:0}
.help-diagram{min-height:70px;display:flex;align-items:center;justify-content:center;text-align:center;background:#304835;border-radius:5px;font-size:23px;line-height:1.6;font-weight:700;white-space:normal;overflow-wrap:anywhere;color:#dcedac}
.help-rules{margin-top:16px}
.help-rules details{border-top:1px solid #617456;padding:6px 0}
.help-rules summary{cursor:pointer;min-height:44px;align-content:center;padding:8px 0;font-size:16px;line-height:1.6;font-weight:700}
@media(max-width:1100px) and (max-height:640px) and (orientation:landscape){.help-panel .panel-heading{padding:10px 20px 0}.help-panel .panel-heading h2{font-size:24px;margin:4px 0}.help-panel .panel-body{padding:0 20px 14px}.help-panel .panel-footer{padding:8px 20px}.help-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.help-card:last-child{grid-column:1/-1}.help-card{padding:12px}.help-diagram{min-height:60px}.help-card h3{font-size:16px}}
@media(max-width:570px){.help-cards{grid-template-columns:minmax(0,1fr)}.help-panel .panel-heading,.help-panel .panel-body,.help-panel .panel-footer{padding-left:16px;padding-right:16px}.help-tabs button{flex:1;padding:8px}.help-diagram{font-size:21px}}
.help-tabs{margin-bottom:12px}
@media(max-width:1100px) and (max-height:640px) and (orientation:landscape){.help-panel .panel-heading{padding-top:6px}.help-panel .panel-heading .eyebrow{display:none}.help-panel .panel-heading h2{font-size:22px;line-height:1.4;margin:0 0 4px}.help-panel .panel-footer{padding-top:6px;padding-bottom:6px}.help-tabs{margin-top:0;margin-bottom:8px}.help-card{padding:10px}.help-diagram{min-height:30px;font-size:20px}.help-card h3{margin:4px 0;line-height:1.6}}
