:root{color-scheme:dark;--ink:#08171e;--cyan:#8ae4d2;--orange:#ffb15b;--text:#edf4e9;--muted:#88a4a9}*{box-sizing:border-box}body{margin:0;color:var(--text);background:radial-gradient(ellipse at 50% -30%,#214049,#07131b 73%);font-family:'Bahnschrift','Microsoft JhengHei',sans-serif;min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #77999c45;background:#112a32;padding:9px 13px;transition:background .15s,transform .15s}button:hover{background:#23454b}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:4px}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit}.hidden{display:none!important}.topbar{max-width:1510px;margin:auto;padding:22px 42px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #769f9b20;gap:16px}.wordmark{display:flex;align-items:center;text-decoration:none;gap:13px;font-size:18px;font-weight:bold;letter-spacing:4px}.wordmark small{display:block;font-size:8px;color:var(--muted);letter-spacing:2px;font-weight:normal;margin-top:7px}.logo{width:40px;height:40px;background:var(--cyan);color:var(--ink);display:grid;place-content:center;transform:skew(-9deg);font-size:29px;font-style:italic;position:relative;letter-spacing:-8px;padding-right:8px}.logo span{position:absolute;right:7px;bottom:0;font-size:18px;color:#245951}.top-note{font-size:9px;letter-spacing:2px;color:#91a9ac}.top-note span{margin-left:22px;color:var(--orange)}.top-note i,.live-dot{display:inline-block;width:5px;height:5px;background:var(--cyan);margin-right:8px;box-shadow:0 0 10px #8ae4d270}.top-actions{display:flex;gap:8px}.top-actions button{font-size:10px;letter-spacing:1px;background:transparent}main{max-width:1510px;margin:auto;padding:20px 42px}.section-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;color:#9db4b7;margin-bottom:12px}.section-label>span:first-child{color:var(--cyan)}.game-shell{position:relative;width:100%;aspect-ratio:16/9;background:#153c43;border:1px solid #69948c80;box-shadow:0 25px 80px #0007;overflow:hidden}canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #02141b35;background:repeating-linear-gradient(0deg,#00000005 0,#00000005 1px,transparent 1px,transparent 4px)}.screen-corner{position:absolute;pointer-events:none;width:18px;height:18px;border-color:var(--cyan)}.tl{left:0;top:0;border-top:2px solid;border-left:2px solid;color:var(--cyan)}.br{bottom:0;right:0;border-bottom:2px solid;border-right:2px solid;color:var(--cyan)}.hud{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;padding:25px 28px 40px;pointer-events:none;background:linear-gradient(#061820c9,transparent);gap:15px}.hud-left{width:190px}.callsign{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:1px}.callsign>b{font:italic 27px Georgia;color:var(--cyan);border-right:1px solid #779c9260;padding-right:9px}.callsign small{display:block;font-size:9px;color:#bdcac2;margin-top:4px}.health-track{height:6px;background:#143239;margin-top:8px;border:1px solid #92d2bd50}.health-track div{height:100%;background:var(--cyan);transition:width .15s}.subhud{display:flex;justify-content:space-between;font-size:8px;color:#9fbbb8;margin-top:7px}.hud-center{text-align:center;width:180px;font-size:10px;letter-spacing:3px}.progress-track{height:3px;background:#366060;margin-top:12px}.progress-track div{height:100%;background:#c6d8b9;width:0}.hud-center small{font-size:8px;letter-spacing:1px;color:#b0c6b6;display:block;margin-top:9px}.hud-right{text-align:right;min-width:140px}.hud-right>div{display:flex;justify-content:flex-end;align-items:center;gap:9px;font-size:20px}.currency-icon{font-size:14px;color:var(--orange)}.hud-right button{pointer-events:auto;margin-left:9px;font-size:12px;padding:5px 10px}.hud-right small{display:block;font-size:9px;letter-spacing:1px;color:#cad8bd;margin-top:6px}.boss-hud{position:absolute;bottom:30px;left:30%;width:40%;pointer-events:none;padding:12px 20px;background:#071820b5;backdrop-filter:blur(8px);border:1px solid #c06e4e66}.boss-hud>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:2px}.boss-hud small{font-size:9px;letter-spacing:0;color:#dbb190}.boss-track{height:5px;background:#583331;margin-top:9px}.boss-track>div{height:100%;width:100%;background:#ffad79;transition:width .1s}.toast{position:absolute;top:20%;left:50%;transform:translateX(-50%);padding:10px 18px;background:#09262be8;border-left:3px solid var(--cyan);font-size:11px;letter-spacing:1px;pointer-events:none;opacity:0;transition:opacity .2s;white-space:nowrap}.toast.show{opacity:1}.warning{position:absolute;top:30%;width:100%;text-align:center;color:#ffcb9c;font-size:14px;letter-spacing:5px;text-shadow:0 2px 9px #000;pointer-events:none}.overlay{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,#051923f5 0%,#061d25dc 30%,#08232b73 57%,#05212a05 80%);padding:5%;overflow-y:auto}.panel{width:100%}.eyebrow{color:var(--cyan);font-size:9px;letter-spacing:4px;display:flex;align-items:center;gap:12px;margin-bottom:22px}.eyebrow:before{content:'';width:22px;height:1px;background:var(--cyan)}h1{font-family:'Bahnschrift','Microsoft JhengHei',sans-serif;font-size:clamp(36px,5.6vw,82px);letter-spacing:5px;line-height:1.08;margin:0;font-weight:900;font-style:italic;text-shadow:3px 4px #05202b}h1 span{display:block;color:var(--orange)}.title-en{font-size:12px;letter-spacing:9px;color:#d5e7df;margin:15px 0 22px}.intro-desc{font-size:12px;color:#a9c4c4;line-height:1.9;letter-spacing:2px;max-width:420px}.primary{background:var(--orange);border:1px solid #ffd393;color:#10262e;font-size:13px;letter-spacing:3px;font-weight:bold;min-width:205px;padding:15px 22px;box-shadow:5px 5px 0 #04172060}.primary:hover{background:#ffd08b}.primary span{float:right;margin-left:25px}.button-row{display:flex;gap:12px;align-items:center;margin-top:24px;flex-wrap:wrap}.secondary{font-size:11px;background:#143840a8;padding:14px 18px}.intro-badges{display:flex;gap:25px;margin-top:28px}.intro-badges div{border-top:1px solid #819a9060;padding-top:10px;color:#a4bdbc;font-size:8px;letter-spacing:1px}.intro-badges b{font:21px Georgia;color:#ecdbb3;margin-right:5px}.intro-stamp{position:absolute;right:5%;bottom:10%;border-left:2px solid #b7ded270;padding-left:13px;text-align:left;color:#d6efe0;font-size:10px;letter-spacing:3px}.intro-stamp small{display:block;font-size:8px;color:#99c9b9;margin-top:8px}.campaign{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #668b893a;border-top:0}.route{padding:19px 15px;display:flex;align-items:center;gap:12px;opacity:.48;border-right:1px solid #668b892b;background:#0c2029}.route:last-child{border-right:0}.route>span{font:italic 23px Georgia;color:#9bb2aa}.route>div{font-size:11px;letter-spacing:1px}.route small{display:block;font-size:6px;letter-spacing:1px;color:#8dabae;margin-top:6px}.route b{margin-left:auto;color:#819c98;font-size:12px;font-weight:normal}.route.active{opacity:1;background:#17363d;border-top:2px solid var(--cyan);padding-top:17px}.route.active>span,.route.active b{color:var(--cyan)}.route.complete{opacity:.8}.route.complete b{color:var(--orange)}footer{display:flex;justify-content:space-between;align-items:center;gap:15px;color:#819fa6;font-size:9px;padding-top:17px}footer p{margin:0;letter-spacing:1px}.footer-extra{color:#527780;margin-left:12px}footer>div{line-height:2.5;font-size:8px}kbd{font:8px 'Bahnschrift',sans-serif;border:1px solid #52777e55;color:#b1c4bb;padding:3px 5px;margin-left:9px;margin-right:3px}.overlay.menu{background:#061923ed;backdrop-filter:blur(9px);padding:4% 5%}.menu h2{font-size:30px;margin:0 0 9px;letter-spacing:4px;font-weight:normal}.menu .eyebrow{margin-bottom:12px}.menu .summary{color:#aec5c3;font-size:11px;line-height:1.9;margin-bottom:15px}.menu .summary strong{color:var(--orange);margin:0 8px}.shop-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:16px 0}.upgrade{padding:15px 12px;background:#15383e;border:1px solid #658f8760;min-width:0}.upgrade .up-icon{font-size:24px;color:var(--cyan);height:31px}.upgrade h3{font-size:12px;margin:12px 0 6px}.upgrade p{font-size:9px;line-height:1.8;color:#a4bdbc;margin:0;min-height:34px}.upgrade .level{display:flex;gap:4px;margin:13px 0}.upgrade .level i{height:3px;flex:1;background:#355453}.upgrade .level i.on{background:var(--cyan)}.upgrade button{font-size:10px;width:100%;padding:9px 3px;color:var(--orange);border-color:#b0915f55}.loadout{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0}.loadout span{font-size:9px;border:1px solid #62878550;padding:6px 10px;color:#a9c3bd}.loadout span.selected{color:var(--orange);border-color:#ba925c}.save-note{font-size:9px;color:#87a5a8;margin-top:15px}.controls-grid{display:grid;grid-template-columns:1fr 1fr;max-width:650px;gap:13px;font-size:12px;color:#bdd3cd;margin:25px 0}.controls-grid kbd{display:inline-block;min-width:72px;text-align:center;font-size:10px}.result-stats{display:flex;gap:35px;margin:25px 0}.result-stats b{font-size:27px;color:var(--orange);display:block;margin-bottom:5px}.result-stats small{font-size:9px;color:#abc0ba;letter-spacing:1px}.touch-controls{display:none;position:absolute;bottom:17px;left:15px;right:15px;justify-content:space-between;pointer-events:none}.touch-controls button{pointer-events:auto;touch-action:none;border-radius:50%;width:42px;height:42px;font-size:11px;background:#13353ea8;margin:2px;border-color:#b2d9c678}.touch-fire{background:#bf833cc9!important}.touch-jump{background:#528f8cc9!important}@media(pointer:coarse){.touch-controls{display:flex}.boss-hud{bottom:72px}.hud{padding:15px}.overlay{z-index:2}}@media(max-width:1100px){.top-note{display:none}.topbar{padding:18px 24px}main{padding:18px 24px}.route{gap:7px;padding:15px 10px}.route.active{padding-top:13px}.route small{font-size:5px;letter-spacing:0}.footer-extra{display:none}.intro-badges{margin-top:18px}.title-en{margin:10px 0 16px}.intro-desc{font-size:11px}.eyebrow{margin-bottom:15px}.button-row{margin-top:18px}.shop-grid{gap:6px}.upgrade{padding:10px}.upgrade h3{margin:7px 0}.upgrade p{font-size:8px}.upgrade .level{margin:8px 0}.menu h2{font-size:25px}.menu .summary{margin:6px 0}.menu .button-row{margin-top:12px}.menu .save-note{margin-top:8px}}@media(max-width:720px){.topbar{padding:13px 14px}.wordmark{font-size:14px;letter-spacing:2px}.wordmark small{font-size:6px;letter-spacing:1px}.logo{width:31px;height:32px;font-size:23px}.top-actions button{padding:7px;font-size:8px}.top-actions #help{display:none}main{padding:13px 10px}.section-label{font-size:7px;letter-spacing:1px}.game-shell{min-height:300px}.overlay{padding:5%}.eyebrow{font-size:7px;letter-spacing:2px;margin-bottom:12px}h1{font-size:39px}.title-en{font-size:8px;letter-spacing:5px;margin:8px 0 12px}.intro-desc{font-size:9px;max-width:280px}.intro-badges{display:none}.primary{min-width:158px;padding:12px 15px;font-size:11px}.secondary{padding:11px;font-size:9px}.intro-stamp{display:none}.campaign{grid-template-columns:repeat(5,1fr)}.route{padding:10px 4px;justify-content:center;gap:5px}.route.active{padding-top:8px}.route>span{font-size:14px}.route>div{font-size:8px;letter-spacing:0}.route small,.route b{display:none}footer{flex-direction:column;align-items:flex-start;gap:4px;padding-top:12px}footer>div{font-size:7px}kbd{margin-left:4px;font-size:7px}.hud{padding:12px;gap:5px}.hud-left{width:120px}.callsign{font-size:8px;gap:5px}.callsign>b{font-size:20px}.callsign small{font-size:8px}.subhud{font-size:6px}.hud-center{width:90px;font-size:7px;letter-spacing:1px}.hud-center small{font-size:6px}.hud-right{min-width:85px}.hud-right>div{font-size:15px;gap:5px}.hud-right small{font-size:7px}.hud-right button{padding:3px 8px;margin-left:0}.boss-hud{width:60%;left:20%;padding:7px 12px;bottom:65px}.boss-hud>div:first-child{font-size:8px;letter-spacing:0}.boss-hud small{font-size:7px}.warning{font-size:10px;letter-spacing:2px}.toast{font-size:8px;top:28%;padding:8px 10px}.menu{align-items:flex-start}.menu h2{font-size:22px}.shop-grid{grid-template-columns:repeat(2,1fr)}.upgrade:last-child{grid-column:span 2}.upgrade p{min-height:auto}.upgrade .up-icon{display:none}.menu .summary{font-size:10px}.controls-grid{font-size:10px;gap:8px}.controls-grid kbd{min-width:52px;font-size:8px}.touch-controls{left:7px;right:7px;bottom:8px}.touch-controls button{width:34px;height:34px;font-size:9px;margin:0}.result-stats{margin:14px 0;gap:20px}.result-stats b{font-size:20px}}

/* Ten-frontier expansion */
.overlay.menu{align-items:flex-start}.menu .panel{padding-top:8px;padding-bottom:18px}.relic-section{border-top:1px solid #688f8855;padding-top:14px;margin-top:18px}.relic-section h3{font-size:16px;color:#ffd18a;letter-spacing:2px}.relic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.relic-card{border:1px solid #658f8755;background:#14333b;padding:12px}.relic-card.equipped{border-color:#ffd18a;background:#36433b}.relic-card h4{margin:0 0 8px;font-size:12px}.relic-card p{font-size:10px;line-height:1.7;color:#b0c7c0;min-height:35px}.relic-card button{width:100%;font-size:10px;color:#ffd18a}.relic-note{font-size:10px;color:#a8ccc1;line-height:1.8}.campaign{grid-template-columns:repeat(5,1fr)}.route:nth-child(5){border-right:0}.route:nth-child(n+6){border-top:1px solid #668b893a}.route.active:nth-child(n+6){border-top:2px solid var(--cyan)}@media(max-width:720px){.relic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.relic-card p{min-height:0}}

.music-volume-label{display:flex;align-items:center;gap:6px;font-size:10px;color:#a9c5be}.music-volume-label input{width:70px;accent-color:#8ae4d2}.music-title{color:#b4ccba;font-size:9px;letter-spacing:1px}@media(max-width:720px){.topbar{flex-wrap:wrap}.top-actions{margin-left:auto}.music-volume-label input{width:55px}.music-title{font-size:7px}.section-label>span:last-child{display:none}}

@media(pointer:coarse){.touch-controls>div:last-child{max-width:65%;display:flex;flex-wrap:wrap;justify-content:flex-end}.touch-controls button{flex-shrink:0}}

.difficulty-picker{margin:16px 0;max-width:650px}.difficulty-picker h3{font-size:11px;letter-spacing:2px;color:#b9d0c6;margin:0 0 9px}.difficulty-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.difficulty-options button{text-align:left;background:#0d2a33e8;border:1px solid #6f939366;padding:10px 12px}.difficulty-options button.selected{border-color:#ffd18a;background:#3b4235}.difficulty-options strong{display:block;font-size:12px;color:#f0d4a5}.difficulty-options small{display:block;font-size:9px;line-height:1.6;color:#a8c4c0;margin-top:5px}@media(max-width:720px){.difficulty-options button{padding:8px}.difficulty-options small{font-size:8px}.overlay:not(.menu){align-items:flex-start}.overlay:not(.menu) .panel{padding:10px 0}}

/* Fullscreen keeps the controls visible and the game at its native 16:9 ratio. */
#fullscreen{color:var(--orange);border-color:#cda36b70;white-space:nowrap}.top-actions{flex-wrap:wrap;align-items:center}.fullscreen-status{font-size:10px;color:#ffd18a;max-width:220px}.fullscreen-status:empty{display:none}
html.game-fullscreen{background:#030b10;overflow:hidden}html.game-fullscreen body{height:100vh;height:100dvh;min-height:0;overflow:hidden;background:#030b10}
html.game-fullscreen .topbar{height:90px;width:100%;max-width:none;padding:8px 18px;flex-wrap:nowrap}
html.game-fullscreen .top-note{display:none}html.game-fullscreen main{height:calc(100vh - 90px);height:calc(100dvh - 90px);max-width:none;padding:0;display:grid;place-items:center}
html.game-fullscreen .section-label,html.game-fullscreen .campaign,html.game-fullscreen footer{display:none}
html.game-fullscreen .game-shell{width:min(100vw,calc((100vh - 90px)*16/9));width:min(100vw,calc((100dvh - 90px)*16/9));height:auto;min-height:0;aspect-ratio:16/9;box-shadow:none}
@media(max-width:720px){html.game-fullscreen .wordmark{display:none}html.game-fullscreen .top-actions{margin:auto}html.game-fullscreen .topbar{padding:6px 10px}}

/* Expedition art direction: weathered brass, ink and warm mineral light. */
:root{--orange:#d8b77b;--cyan:#acccc0;--muted:#95a9a5}body{background:radial-gradient(ellipse at 70% 0,#283633,#0b151b 60%)}.topbar{border-bottom-color:#ad997c30}.logo{background:#ccb78c}.game-shell{border-color:#b5a98a66;box-shadow:0 20px 70px #0009}.vignette{background:none;box-shadow:inset 0 0 110px #07101955}.overlay{background:linear-gradient(90deg,#08151bf5 0%,#0b1a22d9 32%,#14232944 62%,transparent 83%)}.primary{background:linear-gradient(130deg,#e1c999,#bc9a61);border-color:#ecdbad;box-shadow:0 6px 25px #0005}.eyebrow{color:#d1bd95}.intro-desc{color:#bdc8be;letter-spacing:1px}.title-en{color:#c7c7b5}.route{background:#101f25}.route.active{background:#253832}.hud{background:linear-gradient(#08141cdd,transparent)}.menu h2{color:#e7dac0}.overlay.menu{background:#0b191ef2}.relic-card,.upgrade{background:linear-gradient(135deg,#23373b,#15272f)}.health-track div{background:linear-gradient(90deg,#739c8b,#c5dbc0)}

@media(max-width:720px){.overlay:not(.menu){padding:4%}.overlay:not(.menu) .eyebrow{margin-bottom:7px;font-size:6px}.overlay:not(.menu) h1{font-size:28px}.overlay:not(.menu) .title-en{margin:5px 0;font-size:7px}.overlay:not(.menu) .intro-desc{font-size:8px;line-height:1.6;margin:7px 0;max-width:260px}.overlay:not(.menu) .difficulty-picker{margin:9px 0}.overlay:not(.menu) .difficulty-options small{display:none}.overlay:not(.menu) .difficulty-options button{padding:7px}.overlay:not(.menu) .button-row{margin-top:9px}.overlay:not(.menu) .primary,.overlay:not(.menu) .secondary{padding:9px 12px}.overlay:not(.menu) .difficulty-picker h3{margin-bottom:5px;font-size:9px}}

.biome-brief{padding:14px 18px;border:1px solid #b3a07166;background:#233a38;margin:16px 0}.biome-brief b,.biome-brief span,.biome-brief small{display:block}.biome-brief b{font-size:13px;color:#edd09b}.biome-brief span{font-size:12px;margin:8px 0;color:#d2e2ce}.biome-brief small{font-size:10px;color:#aebfb7;line-height:1.7}.route:nth-child(5n){border-right:0}
/* Large, spaced touch targets for tablet players. */
@media (pointer:coarse) {
  .touch-controls{left:18px;right:18px;bottom:18px;align-items:flex-end;gap:16px;user-select:none;-webkit-user-select:none}
  .touch-controls>div:first-child{display:grid;grid-template-columns:repeat(2,72px);gap:12px;align-items:end}
  .touch-controls button{width:64px;height:64px;min-width:0;margin:0;padding:0;font-size:15px;font-weight:700;border:2px solid #c9dfc496;background:linear-gradient(145deg,#294c53ed,#102d37e8);box-shadow:0 4px 0 #020c13a6,inset 0 2px 0 #ffffff20;text-shadow:0 1px 2px #000;touch-action:none}
  .touch-controls button:active{background:#608b84;transform:translateY(3px);box-shadow:0 1px 0 #020c13a6,inset 0 0 18px #efffdc55;border-color:#fff4ce}
  .touch-controls>div:first-child button{width:72px;height:72px;font-size:26px;grid-row:2}
  .touch-controls>div:first-child button[data-key="w"]{grid-row:1;grid-column:1 / 3;justify-self:center}
  .touch-controls>div:last-child{max-width:none;display:grid;grid-template-columns:repeat(4,64px);grid-template-rows:64px 88px;gap:12px;align-items:end;justify-items:center}
  .touch-controls button[data-key="Shift"]{grid-column:1;grid-row:2}
  .touch-controls .touch-jump{grid-column:2 / 4;grid-row:2;width:88px;height:88px;font-size:23px}
  .touch-controls .touch-fire{grid-column:4;grid-row:2;width:88px;height:88px;font-size:21px;justify-self:end}
  .boss-hud{bottom:198px}
  #pause{min-width:48px;min-height:48px;font-size:20px}
  .top-actions button,.overlay button{min-height:44px}
}
@media (pointer:coarse) and (max-width:720px) {
  .touch-controls{left:8px;right:8px;bottom:12px;gap:8px}
  .touch-controls>div:first-child{grid-template-columns:repeat(2,48px);gap:8px}
  .touch-controls>div:first-child button{width:48px;height:54px;font-size:22px}
  .touch-controls button{width:48px;height:48px;font-size:12px}
  .touch-controls>div:last-child{grid-template-columns:repeat(4,48px);grid-template-rows:48px 60px;gap:6px}
  .touch-controls .touch-jump,.touch-controls .touch-fire{width:60px;height:60px;font-size:17px}
  .boss-hud{bottom:146px}
}

/* Keep touch controls outside the rendered battlefield. */
.game-layout{width:100%;min-width:0}
html.game-fullscreen .game-layout{display:flex;flex-direction:column;align-items:center}
@media(pointer:coarse){
  .game-layout{--deck-height:200px;display:flex;flex-direction:column;align-items:center;background:#09171e;border:1px solid #b5a98a40}
  .game-layout .game-shell{flex:none;box-shadow:none}
  .touch-controls{position:relative;inset:auto;width:100%;height:var(--deck-height);flex:none;padding:16px 24px 20px;align-items:flex-end;background:linear-gradient(180deg,#203337,#0b1c25);border-top:2px solid #bfa77666;pointer-events:auto;touch-action:none}
  .boss-hud{bottom:16px}
  html.game-fullscreen main{display:flex;align-items:center;justify-content:center}
  html.game-fullscreen .game-layout .game-shell{width:min(100%,calc((100dvh - 90px - var(--deck-height) - 4px)*16/9));min-height:0}
  html.game-fullscreen .game-layout{padding-bottom:env(safe-area-inset-bottom);--deck-height:calc(200px + env(safe-area-inset-bottom))}
}
@media(pointer:coarse) and (min-width:721px){
  .game-layout .game-shell{width:min(100%,calc(max(240px,100dvh - 340px)*16/9))}
}
@media(pointer:coarse) and (max-width:720px){
  .game-layout{--deck-height:142px}
  .touch-controls{padding:10px 8px 14px}
  .boss-hud{bottom:10px}
  html.game-fullscreen .game-layout{--deck-height:calc(142px + env(safe-area-inset-bottom))}
}
