*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Arial,sans-serif;background:#080518;color:#edf5ff}button{font:inherit}.space-bg{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;background:radial-gradient(circle at 20% 10%,rgba(91,39,170,.55),transparent 55%),radial-gradient(circle at 85% 80%,rgba(0,131,180,.45),transparent 55%),linear-gradient(160deg,#100820,#070914);color:#eef4ff}.scanline{pointer-events:none;position:absolute;inset:0;z-index:40;opacity:.4;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 3px)}#game{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.screen{display:none;position:absolute;inset:0;z-index:10}.screen.active{display:block}.menu-shell,.shell{margin:auto;height:100%;width:100%;max-width:672px;display:flex;flex-direction:column;gap:12px;overflow:auto;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.menu-shell{text-align:center}.menu-shell header{position:relative;padding-top:4px}.menu-shell h1,.top h2,.gameover h2{font-family:Arial Black,sans-serif;letter-spacing:.04em;margin:0;background:linear-gradient(100deg,#75ecff,#d05bda);-webkit-background-clip:text;color:transparent}.menu-shell h1{font-size:clamp(2rem,8vw,3rem);line-height:1}.menu-shell header p{margin:5px 0;font-weight:900;letter-spacing:.5em;color:#d15dde}.circle-btn{position:absolute;right:0;top:0;width:36px;height:36px;border-radius:50%;padding:0}.neon-btn,.circle-btn{cursor:pointer;border:1px solid rgba(113,234,255,.55);background:linear-gradient(180deg,rgba(97,226,255,.13),transparent);color:#eef4ff;border-radius:7px;padding:12px 18px;font-weight:900;letter-spacing:.06em}.neon-btn.primary{background:linear-gradient(100deg,#75ecff,#d05bda);color:#100820;box-shadow:0 0 24px rgba(117,236,255,.35)}.neon-btn.reward{border-color:#ffd16f;background:linear-gradient(180deg,rgba(255,193,74,.16),transparent)}.neon-btn.danger{border-color:#ff647b;color:#ff7188}.neon-btn:disabled{opacity:.4}.panel{background:rgba(28,19,59,.8);border:1px solid rgba(90,157,210,.45);backdrop-filter:blur(14px);box-shadow:0 18px 50px rgba(0,0,0,.45);border-radius:12px}.currency-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font-weight:900;font-size:12px}.currency-row .panel{padding:9px}.mode-grid,.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode{position:relative;text-align:left;padding:12px 9px;font-size:11px;opacity:.65}.mode.active{opacity:1;background:rgba(90,210,255,.14);box-shadow:0 0 22px rgba(117,236,255,.24)}.mode b{display:block;font-size:12px}.mode small{display:block;color:#a6acc4;margin-top:3px;line-height:1.15}.ship-summary{display:flex;align-items:center;gap:12px;padding:12px;text-align:left}.ship-visual{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;font-size:34px;background:radial-gradient(circle,rgba(255,255,255,.13),transparent 65%);box-shadow:0 0 24px var(--glow)}.ship-info{flex:1}.ship-info h3{margin:0 0 7px;font-size:14px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;font-size:9px}.stat{display:flex;gap:4px;align-items:center}.stat>span{width:26px;color:#969eb9}.stat div{height:6px;flex:1;background:#27203f;border-radius:10px;overflow:hidden}.stat i{display:block;height:100%;background:#7cecff;box-shadow:0 0 8px #7cecff}.play{width:100%;font-size:18px;padding:16px}.controls{margin-top:auto;padding:12px;font-size:10px;color:#9da5bd}.top{display:flex;align-items:center;justify-content:space-between;gap:12px}.top h2{font-size:28px}.top p{margin:2px 0;color:#9fa7bf}.currency-mini{font-weight:900;color:#76e8ff}.cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{padding:14px}.card.active{outline:1px solid #7cecff;box-shadow:0 0 24px rgba(117,236,255,.28)}.card-head{display:flex;gap:10px;align-items:start}.card h3{margin:4px 0}.card p{color:#9ca5bd;font-size:11px;min-height:30px}.card-actions{display:grid;gap:7px;margin-top:10px}.discount{font-size:10px;color:#ffd66f;font-weight:900}.upgrade-list{display:grid;gap:10px}.upgrade{display:flex;align-items:center;gap:10px;padding:14px}.upgrade .grow{flex:1}.upgrade h3{margin:0;font-size:14px}.upgrade p{margin:3px 0;color:#9ca5bd;font-size:11px}.levels{display:flex;gap:3px}.levels i{height:6px;flex:1;border-radius:5px;background:#28213f}.levels i.on{background:linear-gradient(90deg,#74eaff,#d45de0)}.narrow{max-width:650px}.setting{display:flex;justify-content:space-between;align-items:center;padding:14px;margin-bottom:8px}.hud{pointer-events:none;position:absolute;inset:0;z-index:20;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.hud-left{position:absolute;left:12px;top:12px;padding:9px}.hud-left>strong{color:#79eaff;font-size:22px}.bar{display:flex;gap:7px;align-items:center;margin-top:5px}.bar div{}.bar i{display:block;height:8px;width:96px;border-radius:9px;background:#dd536f}.bar:nth-child(3) i{background:#75eaff}.hud-center{position:absolute;top:12px;left:50%;transform:translateX(-50%);text-align:center;font-weight:900;letter-spacing:.15em}.hud-center small{letter-spacing:0}.hud-right{position:absolute;right:12px;top:12px;text-align:right}.hud-right button{pointer-events:auto;padding:7px 11px}.hud-right .panel{font-size:11px;padding:6px;margin-top:5px}.boss{position:absolute;top:80px;left:50%;transform:translateX(-50%);width:min(86%,576px)}.boss>div:first-child{display:flex;justify-content:space-between;font-size:11px;color:#ff7188;font-weight:900}.bossbar{height:10px;background:#140d24;border:1px solid #ff7188;border-radius:10px;overflow:hidden}.bossbar i{display:block;height:100%;background:linear-gradient(90deg,#e94a6f,#d65bdd)}.warning{position:absolute;top:33%;left:50%;transform:translateX(-50%);white-space:nowrap;color:#ff7188;font-weight:900;font-size:18px}.overlay{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:rgba(7,5,20,.84);backdrop-filter:blur(7px);padding:20px}.overlay>div{width:min(440px,100%);display:grid;gap:12px;text-align:center}.gameover>strong{font-size:48px;color:#74eaff}.gameover small{color:#9da5bd}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result-grid span{padding:10px;background:rgba(255,255,255,.05);border-radius:8px}.gold{color:#ffd867}.ad-cover{position:absolute;inset:0;z-index:80;background:#050614;display:grid;place-items:center;font-weight:900}.hidden{display:none!important}#toast{position:absolute;z-index:100;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#1e163d;border:1px solid #7cecff;padding:10px 14px;border-radius:9px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1}
@media(max-width:620px){.cards{grid-template-columns:1fr}.menu-shell{gap:9px}.menu-shell h1{font-size:2rem}.ship-summary{padding:10px}.controls{margin-top:0}.screen{font-size:14px}.neon-btn{min-height:44px}}
@media(orientation:landscape) and (max-height:520px){.menu-shell{max-width:820px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr auto;gap:7px;padding:8px}.menu-shell header{grid-column:1/3}.menu-shell h1{font-size:1.7rem}.menu-shell header p{display:none}.currency-row{grid-column:1/2}.mode-grid{grid-column:1/2}.ship-summary{grid-column:2/3;grid-row:2/4}.play{grid-column:2/3}.two{grid-column:1/2}.reward{grid-column:1/2}.controls{display:none}.cards{grid-template-columns:repeat(2,1fr)}.shell{padding:8px;gap:7px}.card{padding:9px}.card p{display:none}.hud-left>strong{font-size:16px}.boss{top:55px}}

.ship-visual{overflow:visible;background:radial-gradient(circle,rgba(255,255,255,.10),rgba(80,40,130,.08) 48%,transparent 72%)!important}
.ship-svg{width:68px;height:68px;display:block;filter:drop-shadow(0 0 8px var(--shipglow)) drop-shadow(0 8px 10px rgba(0,0,0,.6))}
.menu-shell{justify-content:center;min-height:100%;overflow-y:auto}
.menu-shell .controls{margin-top:0}
@media(min-width:621px){.menu-shell{max-width:760px;gap:9px;padding-top:12px;padding-bottom:12px}.ship-summary{min-height:88px}}
@media(max-width:620px){.menu-shell{justify-content:flex-start;gap:7px;padding-top:max(9px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom))}.menu-shell h1{font-size:clamp(1.65rem,8vw,2.1rem)}.menu-shell header p{font-size:10px;letter-spacing:.3em}.currency-row .panel{padding:6px 3px}.mode{padding:8px 6px}.ship-summary{min-height:72px;padding:6px 9px}.ship-visual{width:58px;height:58px}.ship-svg{width:58px;height:58px}.play{padding:11px}.neon-btn{padding:8px 10px}.controls{padding:7px}}
@media(max-height:690px) and (orientation:portrait){.menu-shell{gap:4px}.menu-shell h1{font-size:1.55rem}.menu-shell header p{margin:1px}.currency-row .panel{padding:4px}.mode{padding:6px}.mode small{display:none}.ship-summary{min-height:60px;padding:4px 7px}.ship-visual,.ship-svg{width:48px;height:48px}.play{padding:8px}.neon-btn{min-height:36px;padding:6px 8px}.controls{font-size:9px;padding:5px}}
@media(orientation:landscape) and (max-height:520px){.ship-visual,.ship-svg{width:58px;height:58px}}

/* visual polish v2 — breathing room without dead space */
.menu-shell{max-width:760px!important;justify-content:center!important;gap:14px!important;padding:max(18px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))!important}
.menu-shell header{margin-bottom:4px}.menu-shell h1{font-size:clamp(2rem,5.5vw,3rem)!important}.currency-row{gap:12px!important}.currency-row .panel{padding:11px!important}
.mode-grid{gap:12px!important}.mode{padding:13px 12px!important;min-height:68px}.ship-summary{min-height:104px!important;padding:14px 16px!important}
.ship-visual{width:82px!important;height:82px!important;flex:0 0 82px!important;border-radius:22px!important;background:radial-gradient(circle at 50% 42%,rgba(112,232,255,.18),rgba(63,31,115,.10) 48%,transparent 74%)!important}
.ship-svg{width:78px!important;height:78px!important;filter:drop-shadow(0 0 10px var(--shipglow)) drop-shadow(0 10px 12px rgba(0,0,0,.62))!important}
.play{padding:15px!important}.two{gap:12px!important}.controls{padding:10px!important}
.cards{gap:14px!important}.card{padding:16px!important}.card .ship-visual{width:88px!important;height:88px!important;flex-basis:88px!important}.card .ship-svg{width:84px!important;height:84px!important}

@media(max-width:620px){
 .menu-shell{justify-content:center!important;gap:9px!important;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom))!important}
 .menu-shell h1{font-size:clamp(1.65rem,8vw,2.15rem)!important}.menu-shell header p{font-size:10px!important;margin:3px 0!important}
 .currency-row{gap:7px!important}.currency-row .panel{padding:7px 3px!important}
 .mode-grid{gap:7px!important}.mode{padding:9px 8px!important;min-height:56px!important}
 .ship-summary{min-height:78px!important;padding:8px 10px!important}
 .ship-visual{width:62px!important;height:62px!important;flex-basis:62px!important}.ship-svg{width:60px!important;height:60px!important}
 .play{padding:11px!important}.two{gap:7px!important}.neon-btn{min-height:42px!important}.controls{padding:7px!important}
 .cards{grid-template-columns:1fr!important}.card{padding:12px!important}.card .ship-visual{width:72px!important;height:72px!important;flex-basis:72px!important}.card .ship-svg{width:68px!important;height:68px!important}
}
@media(max-height:700px) and (orientation:portrait){
 .menu-shell{justify-content:flex-start!important;gap:6px!important}.menu-shell h1{font-size:1.55rem!important}.menu-shell header p{margin:1px!important}
 .currency-row .panel{padding:5px 3px!important}.mode{min-height:46px!important;padding:6px!important}.mode small{display:none!important}
 .ship-summary{min-height:64px!important;padding:5px 8px!important}.ship-visual{width:52px!important;height:52px!important;flex-basis:52px!important}.ship-svg{width:50px!important;height:50px!important}
 .play{padding:9px!important}.neon-btn{min-height:37px!important;padding:6px 8px!important}.controls{font-size:9px!important;padding:5px!important}
}
@media(orientation:landscape) and (max-height:520px){
 .menu-shell{max-width:920px!important;gap:9px!important;padding:8px 14px!important}
 .ship-summary{min-height:72px!important}.ship-visual{width:64px!important;height:64px!important;flex-basis:64px!important}.ship-svg{width:62px!important;height:62px!important}
}

#game.game-canvas-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
#game{opacity:1;visibility:visible;transition:opacity .12s linear}

/* final mobile viewport fill */
@media (max-width: 620px) and (orientation: portrait) {
  .menu-shell{
    min-height:100dvh!important;
    height:100dvh!important;
    max-height:100dvh!important;
    justify-content:space-between!important;
    overflow:hidden!important;
    padding-top:max(8px,env(safe-area-inset-top))!important;
    padding-bottom:max(8px,env(safe-area-inset-bottom))!important;
    gap:5px!important;
  }
  .menu-shell header,
  .currency-row,
  .mode-grid,
  .ship-summary,
  .play,
  .two,
  .reward,
  .controls{
    flex:0 0 auto!important;
  }
  .menu-shell header{margin:0!important}
  .menu-shell h1{font-size:clamp(1.55rem,7.7vw,2rem)!important;line-height:1!important}
  .menu-shell header p{margin:2px 0!important;font-size:9px!important;letter-spacing:.28em!important}
  .currency-row .panel{padding:6px 3px!important}
  .mode{min-height:50px!important;padding:7px!important}
  .ship-summary{min-height:72px!important;padding:6px 8px!important}
  .ship-visual{width:56px!important;height:56px!important;flex-basis:56px!important}
  .ship-svg{width:54px!important;height:54px!important}
  .play{min-height:48px!important;padding:9px!important}
  .two{gap:6px!important}
  .two .neon-btn,.reward{min-height:42px!important;padding:7px!important}
  .controls{min-height:32px!important;padding:5px 8px!important;font-size:9px!important}
}
/* Very tall phones: distribute content across the full game viewport cleanly */
@media (max-width: 620px) and (orientation: portrait) and (min-height: 760px) {
  .menu-shell{justify-content:space-evenly!important}
}
/* Short phones: compact enough to stay fully on-screen */
@media (max-width: 620px) and (orientation: portrait) and (max-height: 759px) {
  .menu-shell{justify-content:flex-start!important;overflow:auto!important}
}