:root{--font-tactical: "JetBrains Mono", "Share Tech Mono", "Consolas", monospace;--bg-deep: #0b0e14;--bg-panel: rgba(20, 24, 36, .78);--cyan: #06b6d4;--cyan-dim: #0891b2;--danger: #ef4444;--ok: #22c55e;--warn: #f59e0b;--text: #e2e8f0;--muted: #94a3b8}*{box-sizing:border-box}html,body{margin:0;height:100%;background:radial-gradient(ellipse at center,#141824,#0b0e14 70%);color:var(--text);font-family:var(--font-tactical);overflow:hidden}#app{width:100%;height:100%;position:relative}.screen{display:none;width:100%;height:100%;align-items:center;justify-content:center}.screen.active{display:flex}#game-ui.screen.active{align-items:stretch;justify-content:stretch}.menu-panel{text-align:center;padding:2.5rem;background:var(--bg-panel);border:1px solid rgba(6,182,212,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:480px;width:92%}.menu-panel.wide{max-width:720px}.admin-panel{max-width:960px;max-height:92vh;overflow:auto;text-align:left}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}.admin-grid h3{margin:0 0 .6rem;letter-spacing:.08em;color:var(--cyan);font-size:.85rem}.admin-list{max-height:46vh;overflow:auto;margin-top:.6rem}.admin-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;padding:.45rem 0;border-bottom:1px solid rgba(255,255,255,.06)}.admin-row input{flex:1 1 140px;width:auto;margin:0}.admin-who{flex:1 1 140px;display:flex;flex-direction:column;gap:.1rem;font-size:.78rem}.admin-who span,.admin-meta{color:var(--muted);font-size:.72rem}@media(max-width:800px){.admin-grid{grid-template-columns:1fr}}.eyebrow{letter-spacing:.25em;color:var(--cyan);font-size:.75rem;margin:0 0 .5rem}h1{font-size:2.6rem;margin:0 0 .75rem;letter-spacing:.08em}h2{margin-top:0;letter-spacing:.06em}.tagline{color:var(--muted);margin-bottom:1.5rem}.btn-primary,.btn-secondary,.btn-ghost,.btn-popup,.btn-early,.speed-btn,.slot,.ability,.lb-tab{font-family:var(--font-tactical);cursor:pointer;border:1px solid rgba(6,182,212,.45);background:#06b6d41f;color:var(--text);padding:.7rem 1.1rem;margin:.35rem;text-transform:uppercase;letter-spacing:.04em}.btn-primary:hover,.btn-secondary:hover,.speed-btn:hover,.slot:hover:not(:disabled){border-color:var(--cyan);box-shadow:0 0 12px #06b6d459}.btn-primary{background:linear-gradient(180deg,#06b6d459,#06b6d41f);font-weight:700}.btn-secondary{background:transparent}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}#game-container{position:relative;display:flex;flex-direction:column;width:100%;height:100%;margin:auto}#playfield{container-type:size;flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}#board{position:relative;width:min(100cqw,150cqh);aspect-ratio:3 / 2}#bgCanvas,#gameCanvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#bgCanvas{z-index:0}#gameCanvas{z-index:1;touch-action:none}.hud-glass{position:relative;flex:0 0 auto;z-index:5;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;padding:.55rem .75rem;background:#0c10188c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(6,182,212,.2);font-family:var(--font-tactical);font-size:.78rem}#hud-toolbar{justify-content:space-between}.pill{background:#06b6d41f;border:1px solid rgba(6,182,212,.35);border-radius:999px;padding:.35rem .7rem;white-space:nowrap}.pill.profile{margin-left:auto}.tower-slots,.ability-slots,.speed-group{display:flex;gap:.35rem;align-items:center}.slot,.ability{position:relative;min-width:72px;padding:.45rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.65rem}.slot.locked,.slot:disabled{opacity:.45;cursor:not-allowed}.slot.active{box-shadow:0 0 14px #06b6d48c;border-color:var(--cyan)}.slot .hotkey,.ability .hotkey{position:absolute;top:2px;left:4px;font-size:.6rem;color:var(--cyan)}.slot-price.poor{color:var(--danger)}.slot-lock{color:var(--warn);font-size:.58rem}.speed-btn.active{color:#fff;border-color:var(--cyan);box-shadow:0 0 14px #06b6d4a6}.btn-early{background:#22c55e33;border-color:var(--ok);font-weight:700}.btn-early:disabled{opacity:.4;cursor:not-allowed}.cd-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--cyan);transform-origin:left;transform:scaleX(0)}.boss-banner{position:absolute;z-index:8;top:22%;left:50%;transform:translate(-50%);padding:.85rem 1.4rem;background:#ef44448c;border:1px solid #f87171;pointer-events:none;letter-spacing:.08em;font-weight:700;text-align:center;max-width:90%}.hidden,.boss-banner.hidden,.boss-bar.hidden,.tower-popup.hidden,.aim-label.hidden,.modal.hidden,.badge.hidden{display:none!important}.boss-bar{position:absolute;z-index:8;top:48px;left:15%;right:15%;height:10px;background:#111;border:1px solid #444}#boss-bar-fill{height:100%;width:100%;background:linear-gradient(90deg,#ef4444,#f59e0b)}.tower-popup{position:absolute;z-index:9;min-width:160px;padding:.6rem;background:#0c1018eb;border:1px solid var(--cyan-dim);font-family:var(--font-tactical);font-size:.72rem}.btn-popup{display:block;width:100%;margin:.3rem 0}.btn-popup.btn-disabled,.btn-disabled{opacity:.45;pointer-events:none}.btn-popup.sell{border-color:var(--warn)}.aim-label{position:absolute;z-index:8;top:12%;left:50%;transform:translate(-50%);color:var(--cyan);pointer-events:none}.modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#0000008c}.modal-panel{background:#0e121cf2;border:1px solid var(--cyan);padding:1.5rem;max-width:520px;width:92%;font-family:var(--font-tactical)}.modal-panel.wide{max-width:680px}.badge{display:inline-block;margin:.5rem 0;padding:.35rem .7rem;background:#f59e0b40;border:1px solid var(--warn);color:var(--warn);font-weight:700}.end-stats{text-align:left;font-size:.8rem;line-height:1.6;color:var(--muted);margin:1rem 0}.modal-actions{display:flex;flex-wrap:wrap;justify-content:center}.mission-list{display:grid;gap:.6rem;margin-bottom:1rem}.mission-card{text-align:left;padding:.8rem;border:1px solid rgba(6,182,212,.3);background:#06b6d414;cursor:pointer}.mission-card.locked{opacity:.4;cursor:not-allowed}.mission-card .stars{color:var(--warn)}.lb-tabs{display:flex;justify-content:center;margin-bottom:.75rem}.lb-tab.active{box-shadow:0 0 10px #06b6d480}.lb-list{max-height:320px;overflow:auto;text-align:left;font-size:.78rem}.lb-row{display:grid;grid-template-columns:2rem 1fr 4rem 5rem;gap:.5rem;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.06)}input{font-family:var(--font-tactical);width:100%;margin:.35rem 0;padding:.6rem;background:#0b0e14;border:1px solid #334155;color:var(--text)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#0b0e14;border:1px solid var(--cyan-dim);padding:.4rem .55rem;white-space:pre;font-size:.62rem;opacity:0;pointer-events:none;z-index:12}[data-tooltip]:hover:after{opacity:1}button:disabled{opacity:.45;cursor:not-allowed}.volume{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.72rem;margin-top:.4rem}.tutorial{position:absolute;top:12px;left:16px;z-index:6;max-width:320px;padding:.75rem .9rem;background:#080c14e0;border:1px solid var(--cyan-dim);pointer-events:auto}.tutorial p{margin:0 0 .6rem;font-size:.75rem;line-height:1.4}.lb-row.mine{outline:1px solid var(--cyan)}#admin-screen input,#auth-modal input{display:block;width:100%;margin:.35rem 0}
