:root{
  --bg:#040a10; --panel:#0b1722ee; --panel2:#102331; --line:#2ed9d0;
  --cyan:#42f2e6; --gold:#ffd36a; --violet:#b35cff; --danger:#ff546f;
  --text:#eefcff; --muted:#85a7b2; --safeBottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#03080d;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;touch-action:none}
button,input,select{font:inherit}
button{cursor:pointer;color:inherit}
#game{position:fixed;inset:0;width:100%;height:100%;display:block;background:#03080d;touch-action:none}
.hidden{display:none!important}

.hudTop{position:fixed;z-index:20;left:0;right:0;top:0;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 6px;display:grid;grid-template-columns:1fr minmax(120px,1.25fr) 1fr;align-items:start;gap:8px;pointer-events:none}
.hudBlock{font-weight:800;text-shadow:0 2px 8px #000;pointer-events:auto}
.hudBlock.right{text-align:right;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 10px;align-items:center}
.waveLine{font-size:18px}.label,.eyebrow{font-size:10px;letter-spacing:.18em;color:#7cecdf}
.subtle{font-size:12px;color:#aac5cc;margin-top:2px}
.bossWrap{align-self:center}.bossName{text-align:center;font-size:11px;letter-spacing:.12em;font-weight:900;margin-bottom:4px}
.bossBar{height:10px;border:1px solid #eaffff;border-radius:999px;overflow:hidden;background:#19232d;box-shadow:0 0 10px #2de6db55}
#bossFill{height:100%;width:100%;background:linear-gradient(90deg,#52f0d9,#ffcc58,#ff536e)}
.iconBtn{min-width:48px;min-height:48px;border-radius:14px;border:1px solid #9cfdf7;background:#0c1b25cc;box-shadow:0 0 12px #3de1d877;font-weight:900}

.bottomDock{position:fixed;z-index:25;left:0;right:0;bottom:0;padding:7px 8px calc(8px + var(--safeBottom));background:linear-gradient(180deg,transparent,#040a10 14%,#071018 100%);pointer-events:none}
.runControls{display:flex;gap:6px;align-items:center;margin-bottom:7px;pointer-events:auto}
.primaryBtn,.smallBtn,.speedBtn,.menuBtn,.dangerBtn{border:1px solid #48efe4;background:linear-gradient(180deg,#17303c,#0a1822);box-shadow:inset 0 0 14px #1baaa233,0 0 10px #2ef1e633;border-radius:13px;font-weight:900}
.primaryBtn{min-height:48px;padding:0 17px;flex:1;background:linear-gradient(180deg,#1d6b69,#0e3338)}
.smallBtn{min-height:48px;padding:0 11px;color:#ffd97a;border-color:#806d33}
.speedGroup{display:flex;gap:4px}.speedBtn{width:46px;min-height:48px;border-color:#4e7180}.speedBtn.active{border-color:#8dfdf5;color:#8dfdf5;background:#0b3032}
.towerBar{pointer-events:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:168px;overflow:auto;overscroll-behavior:contain;padding-bottom:1px}
.towerButton{min-height:66px;border:1px solid #234d58;border-radius:14px;background:linear-gradient(160deg,#102631,#081219);position:relative;padding:7px 5px;text-align:left;color:#e9ffff;overflow:hidden}
.towerButton:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 16% 30%,var(--accent,#4ff) 0 4%,transparent 6% 100%);opacity:.7}
.towerButton.selected{border-color:var(--accent,#4ff);box-shadow:0 0 15px var(--accent,#4ff)}
.towerButton strong,.towerButton span{position:relative;z-index:2;display:block}.towerButton strong{font-size:11px}.towerButton span{font-size:10px;color:#9fb6bf;margin-top:3px}.towerButton b{position:absolute;right:7px;bottom:6px;font-size:12px;color:#ffe294;z-index:2}

.panel{z-index:50;background:linear-gradient(180deg,#0c1d28f5,#071018f8);border:1px solid #49ddd7;box-shadow:0 -20px 60px #0008,0 0 25px #25e1d044}
.bottomPanel{position:fixed;left:8px;right:8px;bottom:calc(8px + var(--safeBottom));max-height:58vh;border-radius:18px;padding:15px 12px 12px;overflow:auto;touch-action:pan-y;overscroll-behavior:contain}
.panelClose{position:absolute;right:9px;top:8px;width:44px;height:44px;border-radius:50%;border:1px solid #547582;background:#0b1720;font-size:25px}
.towerPanelHead{display:flex;justify-content:space-between;align-items:center;padding-right:48px;margin-bottom:10px}.panelTitle{font-size:21px;font-weight:900}.panelSub{font-size:11px;color:#96b5bf;margin-top:2px}.dangerBtn{min-height:44px;padding:0 12px;border-color:#ff5c76;color:#ff8da0}
.upgradeGrid{display:grid;grid-template-columns:1fr;gap:7px}.upgradeCard{min-height:74px;border:1px solid #2e5d68;border-radius:12px;background:linear-gradient(145deg,#102a34,#0a151d);padding:8px 10px;text-align:left;position:relative}
.upgradeCard.maxed{border-color:#7f5ed8;opacity:.75}.upgradeCard.locked{opacity:.42}.upgradeCard strong{display:block;font-size:13px}.upgradeCard em{display:block;font-size:10px;color:#a7bdc6;font-style:normal;margin-top:3px;max-width:75%}.upgradeCard b{position:absolute;right:10px;bottom:10px;color:#ffe38a}.upgradeCard .lvl{position:absolute;right:10px;top:8px;color:#8dfff7;font-size:10px}

.overlay,.menu{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:18px;background:radial-gradient(circle at 50% 35%,#17344a88,#020509ee 70%);touch-action:none}
.menu{background:radial-gradient(circle at 50% 27%,#12394b,#03070c 60%,#020407)}
.menuGlow{position:absolute;width:58vw;max-width:420px;aspect-ratio:1;border-radius:50%;border:2px solid #34ede5;box-shadow:0 0 25px #34ede5,0 0 90px #794de977,inset 0 0 50px #16b8b844;animation:spinGlow 12s linear infinite}
.menuGlow:after{content:"";position:absolute;inset:17%;border:1px dashed #be74ff;border-radius:50%;box-shadow:0 0 24px #b35cffaa}
@keyframes spinGlow{to{transform:rotate(360deg)}}
.menuCard,.modal{position:relative;width:min(92vw,440px);max-height:92vh;overflow:auto;touch-action:pan-y;overscroll-behavior:contain;border-radius:24px;border:1px solid #4a6d79;background:linear-gradient(180deg,#0d1e29ee,#071018f8);padding:22px;box-shadow:0 30px 80px #000b,inset 0 0 35px #2ce7da16}
.menuCard{background:#071018e8;backdrop-filter:blur(9px)}
.menuCard h1{font-size:46px;line-height:.84;margin:10px 0 14px;letter-spacing:-.055em}.menuCard h1 span{color:#72fff5;text-shadow:0 0 20px #2ae7dd88}.menuCard p{font-size:13px;color:#9ab5be;margin-bottom:16px}
.menuBtn{display:block;width:100%;min-height:50px;margin:7px 0;border-color:#385b67;background:#0c1b25e8}.menuBtn.primary{border-color:#48f1e5;background:linear-gradient(180deg,#145759,#0a292f)}.menuBtn.danger{border-color:#75404a;color:#ff9aaa}.menuFoot{text-align:center;font-size:10px;color:#6e8c95;margin-top:12px}
.modal h2{margin:8px 0 18px}.tall{max-height:88vh;padding-top:26px}.overlayClose{z-index:3}
.settingRow,.toggleRow{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;border-bottom:1px solid #1c3944;font-size:13px}.settingRow input[type=range]{width:45%}.settingRow select{background:#0e202b;color:white;border:1px solid #3f6672;border-radius:8px;padding:8px}.toggleRow input{width:24px;height:24px}
.rewardModal{width:min(94vw,560px)}.rewardCards{display:grid;gap:10px}.rewardCard{border:1px solid #63528e;border-radius:16px;padding:15px;background:linear-gradient(145deg,#172535,#130f24);min-height:105px;text-align:left}.rewardCard strong{display:block;color:#c6a8ff;font-size:16px}.rewardCard span{display:block;color:#a8bdc6;font-size:12px;margin-top:7px}
.waveBanner{position:fixed;z-index:35;top:18%;left:50%;transform:translateX(-50%);padding:10px 17px;border-radius:12px;background:#07141ce8;border:1px solid #55eee3;font-size:18px;font-weight:900;letter-spacing:.08em;box-shadow:0 0 30px #3ce9df55;white-space:nowrap}
.toast{position:fixed;z-index:60;left:50%;bottom:calc(196px + var(--safeBottom));transform:translateX(-50%);padding:9px 14px;border-radius:999px;background:#08161eee;border:1px solid #3f6975;color:#d9fbff;font-size:12px;box-shadow:0 8px 25px #0008}
#libraryContent h2{margin:8px 0 4px}.libraryList{display:grid;gap:8px;margin-top:12px}.libraryItem{border:1px solid #2c4d58;border-radius:12px;padding:10px;background:#0b1821}.libraryItem strong{display:block}.libraryItem small{display:block;color:#90a9b1;margin-top:4px;line-height:1.3}

@media (min-width:700px){
  .towerBar{grid-template-columns:repeat(8,1fr);max-height:none}
  .upgradeGrid{grid-template-columns:1fr 1fr}
  .hudTop{padding-left:22px;padding-right:22px}
  .bottomDock{padding-left:18px;padding-right:18px}
}
