:root{--bg:#102a28;--panel:#173531;--lime:#d6f58a;--muted:#8caaa0;--cream:#f0f1dc;--orange:#ff9573;--border:#c1e0ba20;color-scheme:dark;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 40%,#22433b 0,#102a28 70%);color:var(--cream)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button:hover:not(:disabled){filter:brightness(1.12)}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}.hidden{display:none!important}.app{max-width:1440px;padding:0 45px;margin:auto}.site-header{height:82px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--border)}.wordmark{color:var(--cream);font-size:17px;font-weight:900;letter-spacing:1px;text-decoration:none;white-space:nowrap}.wordmark i{font-style:normal;color:var(--lime)}.logo-cross{font-size:29px;color:var(--lime);vertical-align:middle;margin-right:10px}.header-edition{font-size:8px;letter-spacing:2px;color:var(--muted);margin-left:10px}.header-edition b{margin:0 15px;font-weight:normal}.wallet{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:13px}.wallet b{min-width:25px}.coin-symbol{color:var(--lime);font-size:22px}.trophy-symbol{color:#f7c768;font-size:22px;margin-left:15px}.small-button{width:34px;height:34px;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--lime);font-size:18px}.layout{display:grid;grid-template-columns:minmax(190px,1fr) minmax(330px,470px) minmax(205px,1fr);gap:50px;align-items:center;padding:24px 0}.game{height:min(820px,calc(100dvh - 150px));min-height:570px;position:relative;isolation:isolate;overflow:hidden;border-radius:22px;border:1px solid #92b89855;box-shadow:0 24px 70px #0004;background:#65c9c4;touch-action:none}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.scene-shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(#0d3a324d,transparent 23%,transparent 60%,#0a2b2377)}.eyebrow{font-size:8px;letter-spacing:2px;color:var(--lime);font-weight:700}.briefing{max-width:250px}.briefing h1{font-family:Impact,'Arial Narrow',sans-serif;font-weight:900;font-size:clamp(42px,4.8vw,70px);line-height:.98;letter-spacing:1px;margin:22px 0}.briefing h1 span{color:var(--lime)}.briefing>p{font-size:12px;color:#a6bcb0;line-height:1.8}.briefing-rule{height:1px;background:var(--border);margin:27px 0;width:85%}.how-step{display:flex;gap:15px;margin-bottom:19px}.how-step>b{font-family:monospace;color:#86a68f;font-size:10px;margin-top:3px}.how-step strong{font-size:11px;font-weight:600}.how-step p{font-size:10px;color:var(--muted);line-height:1.7;margin:6px 0 0}.keyboard-help{font-size:7px;letter-spacing:.5px;color:var(--muted);line-height:2.7;margin-top:26px}kbd{font:8px Arial;border:1px solid #b1cfa433;border-radius:3px;padding:3px 4px;margin-right:3px;color:#d0dec7}.keyboard-help span{margin:0 7px}.offline-note{font-size:7px;letter-spacing:1px;margin-top:24px;color:#719388}.offline-note i,.location-label i{display:inline-block;background:var(--lime);width:4px;height:4px;border-radius:50%;margin-right:6px}footer{height:44px;display:flex;justify-content:space-between;align-items:center;font-size:7px;letter-spacing:1.5px;color:#6f9286;border-top:1px solid var(--border)}footer i{color:var(--lime);font-size:17px;font-style:normal;vertical-align:middle;margin-left:10px}
/* Lobby */
.lobby{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:30px 25px 22px;pointer-events:none;background:linear-gradient(#113b3233,transparent 50%,#153a31c9 80%,#14352e)}.lobby>*{pointer-events:auto}.lobby-top{text-align:center}.location-label{font-size:8px;letter-spacing:2px;background:#133d3266;padding:8px 13px;border:1px solid #c5e0ad40;border-radius:20px}.lobby h2{font-family:Impact,'Arial Narrow',sans-serif;font-size:49px;letter-spacing:-.5px;line-height:1;margin:24px 0 8px;text-shadow:0 3px 0 #143b3455}.lobby h2 em{font-style:normal;color:var(--lime);font-size:38px}.lobby-top p{font-size:8px;letter-spacing:2px;color:#f0f8d2}.duel-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;margin:0 0 12px;color:#b5cbb1}.duel-label b{font-weight:400;color:var(--lime)}.primary-button{background:var(--lime);color:#17382c;border:0;border-radius:8px;min-height:54px;width:100%;font-size:13px;font-weight:800;letter-spacing:1px;box-shadow:0 4px 0 #638b3a;display:flex;justify-content:center;align-items:center;gap:25px}.primary-button>span{font-size:22px}.lobby-actions{display:flex;gap:12px;margin-top:18px}.lobby-actions button{background:#ffffff08;border:1px solid #ffffff21;border-radius:6px;flex:1;height:38px;font-size:8px;letter-spacing:1px}.save-note{display:block;font-size:6px;letter-spacing:.7px;text-align:center;margin-top:18px;color:#7eaa91}
/* Match */
.match-hud{position:absolute;top:0;left:0;right:0;padding:20px 17px 0;z-index:3;pointer-events:none}.opponents{display:flex;align-items:center;gap:10px;justify-content:space-between}.fighter{display:flex;align-items:center;gap:8px;flex:1}.opponent{text-align:right}.fighter-info{flex:1}.fighter small{font-size:9px;font-weight:800;white-space:nowrap;display:flex;justify-content:space-between;align-items:center}.fighter small span{font-size:6px;opacity:.7;font-weight:400}.hp-track{height:7px;background:#14392de0;border:1px solid #e1f0d140;border-radius:3px;overflow:hidden;margin:6px 0 3px}.hp-track i{height:100%;width:100%;display:block;background:var(--lime);transition:width .2s}.opponent .hp-track i{background:var(--orange)}.fighter-info>b{font-size:11px;text-shadow:0 1px 3px #0008}.vs{font-size:9px;opacity:.6;font-weight:800}.avatar{width:35px;height:43px;background:#dfb58c;border:2px solid #edf3c8;border-radius:7px 7px 10px 10px;position:relative;text-align:center;padding-top:8px;line-height:10px;color:#2b4038;box-shadow:inset 0 8px #283e34;font-size:25px}.avatar span{display:block;font-size:15px;line-height:10px;color:#a47050}.enemy-avatar{border-color:#ffb89b;background:#cb986f;box-shadow:inset 0 8px #ad5548}.turn-row{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:7px;letter-spacing:1.5px;color:#e0edcf}.turn-row button{pointer-events:auto;background:#15372e7a;border:1px solid #d7ebce40;border-radius:50%;width:26px;height:26px;font-size:10px}.phase-badge{display:flex;align-items:center;gap:10px;background:#16392de8;border:1px solid #d8edc240;border-radius:8px;margin:11px auto 0;padding:10px 12px;max-width:290px;box-shadow:0 4px 14px #0b2b2420}.phase-badge>span{font-size:28px;line-height:25px;color:var(--lime)}.phase-badge>div{flex:1}.phase-badge strong{font-size:12px;letter-spacing:1.5px;display:block;color:var(--lime)}.phase-badge small{display:block;font-size:8px;margin-top:4px;color:#b8cdb1}.phase-badge>b{font-size:20px;font-family:Impact,sans-serif;font-weight:400}.phase-badge.defending{background:#633c30ef}.phase-badge.defending strong,.phase-badge.defending>span{color:#ffc097}.turn-progress{height:2px;width:260px;margin:0 auto;background:#25423480}.turn-progress i{display:block;height:100%;background:var(--lime);width:100%}.round-ammo{display:flex;justify-content:center;gap:7px;margin-top:13px}.round-ammo i{display:block;width:7px;height:22px;border-radius:5px 5px 2px 2px;background:linear-gradient(#f5e9aa 30%,#b49a5d 30%,#ddc589 85%,#ad8e46 85%);box-shadow:0 1px 3px #0005}.round-ammo i.spent{opacity:.2}.scope-overlay{position:absolute;inset:0;pointer-events:none;z-index:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.scope-glass{width:90%;aspect-ratio:1;border-radius:50%;position:relative;flex-shrink:0;border:5px solid #142d27;box-shadow:0 0 0 200vmax #08140feb,inset 0 0 16px #112b2580;outline:1px solid #9bba7550}.scope-line{position:absolute;background:#172a20e6}.scope-line.horizontal{height:1px;width:100%;left:0;top:50%}.scope-line.vertical{width:1px;height:100%;top:0;left:50%}.scope-center{width:4px;height:4px;border-radius:50%;background:#e9fbaa;position:absolute;top:calc(50% - 2px);left:calc(50% - 2px);box-shadow:0 0 3px #d6f58a}.scope-line.horizontal:after{content:'';position:absolute;left:25%;right:25%;top:-3px;height:7px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),#183225 20%);}.scope-distance{position:absolute;left:50%;bottom:12%;margin-left:17px;font:7px/1.7 monospace;letter-spacing:1px;color:#314b36}.crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:27px;font-weight:100;color:#f9ffe0;text-shadow:0 1px 4px #153d29;pointer-events:none}.hitmarker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff5b1;font-size:30px;pointer-events:none;z-index:4}.toast{position:absolute;left:15px;right:15px;top:34%;z-index:5;text-align:center;font-size:17px;font-weight:900;letter-spacing:1px;text-shadow:0 2px 10px #173c21;pointer-events:none;opacity:0;transition:opacity .1s;color:#fff4bc}.toast.visible{opacity:1}.damage-flash{position:absolute;inset:0;pointer-events:none;z-index:5;box-shadow:inset 0 0 85px #ff3e2b;opacity:0}.battle-controls{position:absolute;bottom:22px;left:20px;right:20px;z-index:3;pointer-events:none;text-align:center}.battle-controls button{pointer-events:auto}.control-hint{font-size:7px;letter-spacing:1px;margin-bottom:14px;color:#dbebc6;text-shadow:0 1px 3px #122e25}.attack-buttons{display:flex;align-items:center;justify-content:center;gap:24px}.utility-control{width:62px;height:59px;border:1px solid #d8e9c838;background:#234331c9;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.utility-control>span{font-size:23px;line-height:24px}.utility-control small{font-size:7px;letter-spacing:.5px}.utility-control kbd{font-size:6px;padding:1px 3px}.fire-button{width:79px;height:79px;border-radius:50%;border:5px solid #d4f69b;background:#cde991;color:#24412a;font-size:45px;line-height:1;box-shadow:0 0 0 4px #d7f09633,0 5px 15px #0003}.fire-button:disabled{opacity:.4}.control-caption{display:block;font-size:7px;letter-spacing:1.6px;color:#91b08e;margin-top:14px}.defense-buttons{display:flex;gap:8px;align-items:center}.move-button{width:48px;height:57px;font-size:38px;line-height:20px;background:#244638da;border:1px solid #d4e7ac80;border-radius:9px}.defense-info{flex:1}.defense-info strong{font-size:8px;color:var(--lime);display:block;line-height:1.5}.defense-info small{font-size:6px;letter-spacing:.5px;display:block;margin-top:4px}.crouch-button{width:54px;height:57px;border:1px solid #d4e7ac60;border-radius:9px;background:#244638da;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:2px;margin-left:4px}.crouch-button>span{font-size:22px}.crouch-button small{font-size:6px}.crouch-button.active,.move-button.active{background:#769654}/* Loadout */
.armory-side{max-width:255px;width:100%;justify-self:end}.armory-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.armory-heading h2{font-size:11px;letter-spacing:2px;margin:0}.armory-heading span{font-size:7px;color:var(--muted);border:1px solid var(--border);padding:4px 6px;border-radius:3px}.weapon-card{padding:21px 17px 16px;border:1px solid var(--border);background:linear-gradient(125deg,#2c493e66,#17352d44);border-radius:9px}.weapon-illustration{width:100%;height:80px;margin:0 0 8px;filter:drop-shadow(1px 7px 2px #0003)}.weapon-card small{font-size:6px;letter-spacing:2px;color:var(--lime)}.weapon-card h3{font-family:Impact,sans-serif;font-weight:400;font-size:32px;letter-spacing:1px;margin:6px 0 7px}.weapon-card p{font-size:9px;color:var(--muted);margin:0}.weapon-stats{display:flex;gap:18px;margin-top:19px;border-top:1px solid var(--border);padding-top:13px}.weapon-stats div{font-size:7px;line-height:1.8;color:var(--muted)}.weapon-stats b{display:block;color:#d3e1bb;font-size:12px}.weapon-picker{display:flex;gap:5px;margin:11px 0 22px}.weapon-picker button{flex:1;background:transparent;border:1px solid var(--border);border-radius:4px;font-size:7px;padding:8px 2px;color:var(--muted)}.weapon-picker button.selected{border-color:#c9e98d80;color:var(--lime);background:#bbdc8010}.upgrade{display:flex;gap:9px;align-items:center;padding:15px 0;border-top:1px solid var(--border)}.upgrade>span{font-size:22px;color:#b9ceaa;width:26px}.upgrade>div{flex:1}.upgrade strong{font-size:9px;display:block}.upgrade small{font-size:7px;color:var(--muted);display:block;margin-top:5px}.upgrade button{background:#cdec8015;border:1px solid #c8e58940;border-radius:4px;color:var(--lime);font-size:8px;font-weight:bold;padding:8px 10px;min-width:57px}.section-label{font-size:7px;color:var(--muted);letter-spacing:1px;margin:23px 0 10px}.arena-option{display:flex;align-items:center;gap:10px;background:transparent;border:1px solid var(--border);border-radius:6px;width:100%;padding:10px;margin-bottom:7px;text-align:left}.arena-option.selected{border-color:#d2eb963a;background:#c2de8510}.arena-icon{font-size:20px;width:24px;color:#cde695}.arena-option strong{font-size:8px;display:block}.arena-option small{font-size:6px;display:block;margin-top:4px;color:var(--muted)}.arena-option>b{margin-left:auto;font-size:11px;color:var(--lime)}.agent-switch{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);margin-top:17px;padding-top:13px;font-size:8px;color:var(--muted)}.agent-switch button{background:none;border:0;color:var(--lime);font-size:8px}.armory-footnote{font-size:6px;line-height:1.8;letter-spacing:.5px;color:#779785;margin-top:19px}.shop-message{font-size:9px;min-height:24px;color:var(--lime);line-height:1.5;margin-top:10px}
/* Results and dialogs */
.result{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(#173f3266,transparent 40%,transparent 55%,#14362df0 75%);z-index:6;text-align:center;padding:55px 22px 22px}.result-heading small{font-size:7px;letter-spacing:2px;color:var(--lime)}.result-heading h2{font-family:Impact,sans-serif;font-size:63px;font-weight:400;color:var(--lime);letter-spacing:1px;transform:rotate(-3deg);margin:8px 0 10px;text-shadow:0 5px #244d33,0 8px 15px #14281b33}.result-heading>span{font-size:10px;color:#e1e8d1}.reward-row{display:flex;gap:6px;margin-bottom:23px}.reward-row>div{flex:1;padding:12px 4px;background:#ffffff06;border:1px solid #dfe8c320;border-radius:7px}.reward-icon{color:var(--lime);font-size:24px;display:block;margin-bottom:7px}.reward-icon.gold{color:#f4c86c}.reward-row small{font-size:6px;letter-spacing:1px;color:#b6c8a9;display:block}.reward-row strong{font-size:22px;display:block;margin-top:7px}.text-button{display:block;width:100%;border:0;background:transparent;color:#bed0ad;font-size:8px;letter-spacing:1px;margin-top:15px;padding:6px}.unlock-notice{font-size:9px;color:var(--lime);line-height:1.5;margin:0 0 16px}.modal{position:absolute;inset:0;z-index:10;background:#0c241ee8;display:grid;place-items:center;padding:24px;backdrop-filter:blur(8px);touch-action:pan-y}.modal-card{position:relative;width:100%;max-height:100%;overflow-y:auto;padding:24px 0 6px;scrollbar-width:thin}.modal-card h3{font-family:Impact,sans-serif;font-weight:400;font-size:36px;letter-spacing:1px;line-height:1.1;margin:12px 0 18px}.modal-card>p{font-size:12px;color:#b6c8ac;line-height:1.7;margin-bottom:25px}.close-modal{position:absolute;right:0;top:0;border:1px solid var(--border);border-radius:50%;background:transparent;width:26px;height:26px;font-size:20px}.help-row{display:flex;gap:13px;margin:12px 0 21px}.help-row>b{font-size:27px;color:var(--lime);width:25px;flex-shrink:0}.help-row p{font-size:10px;line-height:1.7;margin:0;color:#afc6aa}.help-row strong{display:block;color:var(--cream);font-size:11px;margin-bottom:5px}.armory-modal{padding-top:35px}.armory-modal .armory-heading{margin-bottom:13px}.armory-modal .weapon-card{padding:12px}.armory-modal .weapon-illustration{height:45px}.armory-modal .section-label{margin-top:12px}.armory-modal .upgrade{padding:10px 0}.armory-modal .weapon-picker{margin-bottom:12px}.armory-modal .armory-footnote{display:none}
@media(min-width:1400px){.layout{gap:75px}.briefing{margin-left:20px}}@media(max-width:1100px){.app{padding:0 25px}.layout{gap:25px;grid-template-columns:minmax(165px,1fr) minmax(320px,430px) minmax(185px,1fr)}.briefing h1{font-size:50px}.header-edition{display:none}}@media(max-width:900px){.layout{grid-template-columns:minmax(320px,470px) 230px;justify-content:center;gap:35px}.briefing{display:none}.game{height:calc(100dvh - 145px)}}@media(max-width:650px){body{background:#112f27}.app{padding:0}.site-header{height:51px;padding:0 15px;gap:12px;border:0}.wordmark{font-size:12px;letter-spacing:.5px}.logo-cross{font-size:23px;margin-right:4px}.wallet{font-size:11px;gap:5px}.wallet b{min-width:17px}.coin-symbol,.trophy-symbol{font-size:18px}.trophy-symbol{margin-left:5px}.small-button{width:28px;height:28px;font-size:16px}.layout{display:block;padding:0}.game{width:100%;height:calc(100dvh - 51px);min-height:480px;border:0;border-radius:0;box-shadow:none}.armory-side,footer{display:none}.lobby{padding:25px 25px max(22px,env(safe-area-inset-bottom))}.match-hud{padding:17px 18px 0}.battle-controls{bottom:max(24px,env(safe-area-inset-bottom))}.result{padding-top:50px}.modal{padding:25px 30px}}@media(max-height:730px) and (min-width:651px){.layout{padding:15px 0}.game{min-height:540px}.briefing h1{font-size:46px}.how-step{margin-bottom:12px}.briefing-rule{margin:17px 0}.keyboard-help{margin-top:12px}.weapon-illustration{height:55px}.section-label{margin-top:15px}.armory-heading{margin-bottom:12px}}@media(max-height:690px){.lobby h2{font-size:41px;margin-top:18px}.lobby-top p{font-size:7px}.match-hud{padding-top:12px}.phase-badge{margin-top:3px;padding:7px 10px}.turn-row{margin-top:3px}.round-ammo{margin-top:9px}.result{padding-top:35px}.reward-row{margin-bottom:15px}.result-heading h2{font-size:52px}.battle-controls{bottom:16px}.control-hint{margin-bottom:10px}.fire-button{width:65px;height:65px}.control-caption{margin-top:9px}.how-step p{font-size:9px}}

/* Touch gestures share the same bounded movement as keyboard controls. */
#fire{touch-action:none;user-select:none;-webkit-user-select:none}.defense-info{min-width:0}.defense-buttons{gap:6px}.crouch-button{width:47px;flex-shrink:0;margin-left:0}.move-button{width:42px;flex-shrink:0}@media(max-width:380px){.defense-info strong{font-size:7px}.defense-info small{font-size:5px}.battle-controls{left:12px;right:12px}}

/* Online lobby shares the game's touch-friendly controls. */
.online-button{display:block;width:100%;padding:12px 14px;margin:8px 0;border:1px solid #b7d3a34d;border-radius:8px;background:#25473c;color:#e8edce;font:700 12px inherit;cursor:pointer;letter-spacing:1px}
.online-button:disabled{opacity:.45;cursor:wait}.online-card{text-align:left;max-height:90%;overflow:auto}.online-card h3{font-size:30px}.online-card label{display:block;font-size:11px;letter-spacing:1px;margin:14px 0 6px}.online-card input{width:100%;min-width:0;box-sizing:border-box;border:1px solid #a4bca166;border-radius:7px;background:#17382f;color:#f5f2da;padding:12px;font:inherit}.online-card .primary-button{margin-top:12px}.join-row{display:flex;gap:8px;align-items:center}.join-row input{flex:1}.join-row button{width:auto}.room-code{font-size:29px;letter-spacing:5px;text-align:center;color:#d6e29c;margin:18px 0}.online-card small{display:block;opacity:.65;font-size:11px;line-height:1.5}#onlineStatus{min-height:40px;font-size:13px;line-height:1.5}#onlineStats{font-size:12px}#onlineCode{text-transform:uppercase}
.connection-status{margin-left:auto;margin-right:10px;color:var(--lime);font-size:9px;letter-spacing:0}.connection-status:empty{display:none}.connection-status.slow{color:#ffbc94}
.fighter,.fighter-info{min-width:0}.fighter small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent .fighter-info small{display:block}
.game{touch-action:auto}.battle-controls,.match-hud,canvas{touch-action:none;user-select:none;-webkit-user-select:none}.modal,.modal-card{touch-action:pan-y;overscroll-behavior:contain}.online-card{max-height:100%;-webkit-overflow-scrolling:touch}
.online-card input{font-size:16px}.online-button{font-size:12px;font-weight:700;font-family:inherit}.close-modal{width:44px;height:44px;z-index:2}.modal-card{padding-top:48px}.online-card{padding-top:48px}#onlineForfeit{font-size:12px;min-height:44px}
@media(max-width:650px),(pointer:coarse){
  body{background:#112f27;overscroll-behavior:none}.app{padding:0}.site-header{height:calc(51px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(15px,env(safe-area-inset-right)) 0 max(15px,env(safe-area-inset-left));gap:12px;border:0}.wordmark{font-size:12px;letter-spacing:.5px}.logo-cross{font-size:23px;margin-right:4px}.wallet{font-size:11px;gap:5px}.wallet b{min-width:17px}.coin-symbol,.trophy-symbol{font-size:18px}.trophy-symbol{margin-left:5px}.small-button{width:32px;height:32px;font-size:16px}.header-edition,.briefing,.armory-side,footer{display:none}.layout{display:block;padding:0}.game{width:100%;height:calc(100dvh - 51px - env(safe-area-inset-top));min-height:0;border:0;border-radius:0;box-shadow:none}.modal{padding:12px max(20px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.modal-card{max-height:100%}.online-card{max-width:440px}.battle-controls{bottom:max(16px,env(safe-area-inset-bottom))}.turn-row button{width:44px;height:44px;font-size:16px}.turn-row{margin-top:0}.lobby{padding-bottom:max(18px,env(safe-area-inset-bottom))}
}
@media(orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .site-header{display:none}.game{height:100dvh}.match-hud{padding:8px max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}.opponents{max-width:360px;margin:auto}.avatar{width:24px;height:30px;font-size:17px;padding-top:5px}.avatar span{font-size:10px}.fighter-info>b{font-size:9px}.hp-track{margin-top:3px}.turn-row{position:absolute;top:8px;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}.turn-row>span:first-child{display:none}.phase-badge{max-width:250px;margin-top:3px;padding:4px 9px}.phase-badge small{display:none}.phase-badge strong{font-size:10px}.phase-badge>span{font-size:18px}.phase-badge>b{font-size:16px}.turn-progress{width:220px}.round-ammo{position:absolute;left:20px;top:64px}.scope-glass{width:auto;height:72%;max-width:75%;aspect-ratio:1}.battle-controls{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom))}.control-hint,.control-caption,.utility-control kbd,.defense-info small{display:none}.attack-buttons{justify-content:flex-end;gap:12px}.utility-control{height:48px;width:52px}.fire-button{width:60px;height:60px}.defense-buttons{max-width:440px;margin:auto}.move-button,.crouch-button{height:48px}.lobby{padding:12px 24px}.lobby h2{font-size:30px;margin:10px 0 0}.lobby h2 em{font-size:24px}.lobby-top p{display:none}.lobby-bottom{width:320px;max-width:100%;margin:auto auto 0}.lobby-bottom .primary-button{min-height:44px}.lobby-actions{margin-top:8px}.save-note{margin-top:8px}.duel-label{margin-bottom:6px}.modal-card{max-width:520px}.online-card h3{font-size:24px;margin:4px 0 8px}
}
@media(orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .site-header{display:flex;position:absolute;top:max(8px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));height:auto;width:auto;padding:0;z-index:12}.site-header>*:not(#sound){display:none}.site-header #sound{width:44px;height:44px;background:#15372e7a}.turn-row{justify-content:flex-start}.turn-row button{position:absolute;left:0;top:0}.connection-status{margin-left:54px;margin-right:0;order:2}
}

/* Keep the playfield clear and avoid iOS hold menus while aiming. */
canvas,.battle-controls button{-webkit-touch-callout:none}
@media(max-width:650px),(pointer:coarse){
 .move-button,.crouch-button{min-width:44px;min-height:48px}
 .phase-badge{padding:5px 10px;margin-top:2px}.phase-badge small{display:none}
 .phase-badge strong{font-size:10px}.phase-badge>span{font-size:20px}
 .toast{top:auto;bottom:145px;font-size:13px}
 .scope-glass{border-width:3px}.control-caption{display:none}
}
@media(orientation:landscape) and (max-height:600px) and (pointer:coarse){.toast{bottom:76px}}
