*{box-sizing:border-box}html,body{margin:0;height:100%;background:#020208;color:#fff;font-family:Arial,Helvetica,sans-serif;overflow:hidden}button{font:inherit;color:inherit}.screen{position:absolute;inset:0;margin:auto;aspect-ratio:9/16;max-width:100vw;max-height:100vh;display:none;overflow:hidden;background:#000}.screen.active{display:block}.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}.homeGlow{position:absolute;inset:0;background:radial-gradient(circle at 50% 58%,rgba(168,0,255,.12),transparent 25%);animation:pulse 2.4s ease-in-out infinite;pointer-events:none}@keyframes pulse{50%{opacity:.45;transform:scale(1.03)}}.hot{position:absolute;left:24%;width:52%;height:6.1%;border:0;background:transparent;border-radius:18px;cursor:pointer}.hot:active{background:rgba(187,0,255,.18);box-shadow:0 0 28px #b000ff inset,0 0 24px #b000ff}.playHot{top:51.4%;height:7.2%}.scoreHot{top:60.2%}.upgradeHot{top:66.0%}.howHot{top:72.1%}.achieveHot{top:78.2%}.settingsHot{top:84.4%}
#gameCanvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#hud{position:absolute;top:1%;left:2%;right:2%;height:6.8%;display:grid;grid-template-columns:1.15fr 1fr .88fr .36fr;gap:.8%;pointer-events:none}.hudBox,.hudBtn{background:rgba(3,8,22,.84);border:1px solid #26d6ff;box-shadow:0 0 12px rgba(38,214,255,.45) inset;border-radius:9px;padding:5px 8px;backdrop-filter:blur(5px)}.hudBox small{font-size:10px;letter-spacing:1.5px;color:#8adfff}.hudBox b{display:block;font-size:17px}.bar{height:4px;background:#18243b;margin-top:3px;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#00ff88,#7dff3b)}.hudBtn{pointer-events:auto;font-size:22px;font-weight:bold}.hudBtn:active{transform:scale(.96)}#scoreLine{position:absolute;top:8.65%;left:3%;right:3%;display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:1.1px;pointer-events:none;z-index:6}.miniHud{display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border:1px solid rgba(85,214,255,.7);border-radius:9px;background:linear-gradient(180deg,rgba(5,14,34,.9),rgba(5,6,20,.82));box-shadow:0 0 12px rgba(43,198,255,.22),inset 0 0 10px rgba(80,108,255,.13);text-shadow:0 0 8px #000}.miniHud b{color:#fff;text-shadow:0 0 8px #4fdcff}#startWaveBtn{position:absolute;left:31%;bottom:13%;width:38%;padding:12px 8px;border:1px solid #9d4dff;border-radius:14px;background:linear-gradient(#52138e,#24043d);box-shadow:0 0 18px #7c20d4;font-weight:800;letter-spacing:1px}.hidden{display:none!important}.tray{position:absolute;left:2%;right:2%;bottom:1.3%;height:11%;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;background:rgba(3,4,16,.92);border:1px solid #7027c8;border-radius:12px;padding:5px;box-shadow:0 0 20px rgba(120,40,220,.4)}.towerCard{border:1px solid #2e95d7;background:#07111f;border-radius:8px;padding:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:8px;gap:1px}.towerCard img{width:56%;height:54%;object-fit:contain}.towerCard b{font-size:9px}.towerCard small{color:#66dfff}.towerCard.disabled{opacity:.38}.towerMenu{position:absolute;bottom:13%;left:20%;right:20%;background:rgba(4,7,18,.95);border:1px solid #2ac7ff;border-radius:12px;padding:8px;text-align:center;box-shadow:0 0 20px rgba(42,199,255,.35)}.towerMenu button{margin:4px;padding:8px 10px;border-radius:8px;border:1px solid #28bfe8;background:#0b2138}.ability{position:absolute;right:2%;bottom:13%;width:22%;height:8.5%;border-radius:12px;border:1px solid #2bc8ff;background:rgba(4,14,28,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 15px rgba(20,180,255,.35)}.ability img{height:44%;max-width:70%;object-fit:contain}.ability span{font-size:8px;font-weight:800}.ability small{font-size:7px;color:#78e8ff}#toast{position:absolute;top:16.0%;left:16%;right:16%;padding:8px 10px;text-align:center;font-weight:900;font-size:12px;letter-spacing:.7px;color:#f5efff;background:linear-gradient(180deg,rgba(29,8,56,.92),rgba(7,5,20,.88));border:1px solid #9b4fff;border-radius:10px;box-shadow:0 0 20px rgba(143,54,255,.35),inset 0 0 12px rgba(105,44,255,.2);text-shadow:0 0 8px #6e23d8;pointer-events:none;opacity:0;transition:opacity .18s ease}.modal{position:fixed;inset:0;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center;padding:18px;z-index:30}.panel{width:min(92vw,500px);max-height:88vh;overflow:auto;background:linear-gradient(180deg,#0b1025,#060610);border:1px solid #8a3cff;border-radius:18px;padding:20px;box-shadow:0 0 35px rgba(135,40,255,.45);position:relative}.panel h2{margin:0 0 12px;color:#d6b7ff}.panel h3{margin:14px 0 6px;color:#7de2ff}.panel p,.panel li{font-size:14px;line-height:1.45;color:#dfe6ff}.panel button{border:1px solid #7e39d8;background:#26103f;border-radius:9px;padding:9px 12px}.panel #closeModal{position:absolute;right:10px;top:10px;border:0;background:transparent;font-size:20px}.upgradeRow,.achRow{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #20294b;padding:10px 0}.upgradeRow b,.achRow b{display:block}.perkGrid{display:grid;grid-template-columns:1fr;gap:8px}.perk{padding:14px!important;text-align:left}.perk strong{display:block;color:#85e9ff;font-size:16px}.resultBig{font-size:38px;font-weight:900;text-align:center;color:#c9a2ff}.primary{cursor:pointer}.primary:active,.ability:active,.towerCard:active{transform:scale(.97)}
/* Mobile interaction polish */
*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
button,.hot,.towerCard,.ability,.hudBtn,.panel button{outline:none!important;user-select:none;-webkit-user-select:none;touch-action:manipulation}
button:focus,.hot:focus,.towerCard:focus,.ability:focus{outline:none!important;box-shadow:none}
.hot:active{background:transparent!important;box-shadow:none!important;transform:scale(.985)}
.starBank{margin:2px 0 14px;padding:12px 14px;border:1px solid #8e42ff;border-radius:12px;background:linear-gradient(90deg,rgba(102,29,176,.32),rgba(13,8,32,.85));font-size:16px;letter-spacing:1px;color:#e5d1ff;box-shadow:0 0 18px rgba(150,54,255,.24) inset}
.starBank b{float:right;color:#ffd85b;font-size:20px;text-shadow:0 0 10px rgba(255,208,70,.65)}

.guideBox{position:absolute;top:13.1%;left:17%;right:17%;z-index:8;padding:9px 10px;text-align:center;border:1px solid #45dbff;border-radius:11px;background:linear-gradient(180deg,rgba(4,18,40,.94),rgba(14,5,33,.9));box-shadow:0 0 22px rgba(54,206,255,.25),inset 0 0 14px rgba(113,49,255,.18);pointer-events:none;animation:guidePulse 1.35s ease-in-out infinite}.guideBox small{display:block;font-size:8px;letter-spacing:1.7px;color:#77ddff;margin-bottom:3px}.guideBox b{font-size:11px;letter-spacing:.6px;color:#fff}.guideBox.done{opacity:0;transform:translateY(-5px);transition:.3s}.guideBox.hidden{display:none!important}@keyframes guidePulse{50%{box-shadow:0 0 28px rgba(109,59,255,.48),inset 0 0 16px rgba(68,212,255,.2)}}
#bossWarning{position:absolute;top:20%;left:11%;right:11%;padding:10px;text-align:center;font-weight:900;font-size:13px;letter-spacing:1px;color:#ffd3f0;background:linear-gradient(180deg,rgba(78,5,45,.94),rgba(24,2,25,.92));border:1px solid #ff3c99;border-radius:10px;box-shadow:0 0 24px rgba(255,34,126,.45);opacity:0;pointer-events:none}

/* v4 HUD + modal safety */
@media (max-width:430px){.hudBox,.hudBtn{padding:4px 6px}.hudBox small{font-size:9px;letter-spacing:1.2px}.hudBox b{font-size:16px}#scoreLine{top:8.75%;font-size:9px}.miniHud{padding:4px 8px}.guideBox{top:13.2%}}
.modal.locked #closeModal{display:none!important}.modal.locked .panel{border-color:#b75cff;box-shadow:0 0 42px rgba(155,60,255,.55)}
