:root{--bg-dark: #0b0f19;--panel-bg: rgba(15, 23, 42, .85);--text-main: #f8fafc;--text-muted: #94a3b8;--accent: #8b5cf6;--accent-hover: #7c3aed;--danger: #ff4757;--success: #2ed573;--warning: #eccc68}*{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}body{font-family:Segoe UI,sans-serif;background:var(--bg-dark);color:var(--text-main);overflow:hidden}.game-container{display:flex;flex-direction:column;height:100vh;background:radial-gradient(circle at center,#1e1b4b,#0b0f19)}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:#0b0f19e6;border-bottom:1px solid rgba(139,92,246,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;box-shadow:0 4px 20px #8b5cf61a}.brand{font-size:1.2rem;font-weight:700;display:flex;align-items:center;gap:8px;color:#d8b4fe;text-shadow:0 0 10px rgba(216,180,254,.5)}.icon-zap{fill:#d8b4fe}.cloud-badge{font-size:.75rem;display:flex;align-items:center;gap:4px;background:#ffffff1a;padding:4px 8px;border-radius:12px;color:var(--text-muted);font-weight:400;margin-left:12px}.spin{animation:spin 2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stats{display:flex;gap:20px}.stat-item{display:flex;align-items:center;gap:6px;font-weight:600;font-size:1.1rem;background:#0006;padding:6px 12px;border-radius:8px;border:1px solid rgba(139,92,246,.2)}.main-area{flex:1;display:flex;justify-content:center;align-items:center;position:relative}.screen{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--panel-bg);padding:50px 80px;border-radius:24px;border:1px solid rgba(139,92,246,.4);box-shadow:0 0 50px #8b5cf633;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center}.title-glow h1{font-size:4rem;margin-bottom:10px;background:linear-gradient(to right,#d8b4fe,#fcd34d);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 20px rgba(216,180,254,.4))}.subtitle{color:var(--text-muted);margin-bottom:40px;font-size:1.2rem}.start-actions{display:flex;gap:20px}.btn-primary,.btn-secondary{display:flex;align-items:center;gap:8px;border:none;padding:12px 32px;font-size:1.2rem;font-weight:700;border-radius:12px;cursor:pointer;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--accent),#4f46e5);color:#fff;box-shadow:0 4px 15px #8b5cf666}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf699}.btn-primary:disabled{background:#475569;cursor:not-allowed;opacity:.7;box-shadow:none}.btn-secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.btn-secondary:hover{background:#fff3;transform:translateY(-2px)}.bestiary-screen{position:absolute;top:20px;right:20px;bottom:20px;left:20px;border-radius:24px;overflow:hidden;background-color:#1e1b4b;border:2px solid #d8b4fe;box-shadow:0 0 40px #d8b4fe4d;z-index:50}.bestiary-overlay{width:100%;height:100%;background:#0b0f19d9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;flex-direction:column;padding:30px}.b-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(216,180,254,.3);padding-bottom:20px;margin-bottom:20px}.b-header h2{font-size:2rem;background:linear-gradient(to right,#d8b4fe,#fcd34d);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.btn-back{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;transition:color .2s}.btn-back:hover{color:#fff}.b-tabs{display:flex;justify-content:center;gap:20px;margin-bottom:30px}.b-tab{display:flex;align-items:center;gap:8px;background:#0006;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);padding:10px 24px;border-radius:30px;font-size:1.1rem;cursor:pointer;transition:all .2s}.b-tab.active{background:#8b5cf633;border-color:var(--accent);color:#fff;box-shadow:0 0 15px #8b5cf64d}.b-content{flex:1;overflow-y:auto;padding-right:10px}.b-content::-webkit-scrollbar{width:8px}.b-content::-webkit-scrollbar-thumb{background:#8b5cf680;border-radius:4px}.b-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.b-card{background:linear-gradient(145deg,#1e293be6,#0f172ae6);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px;display:flex;gap:16px;transition:transform .2s;position:relative;overflow:hidden}.b-card:hover{transform:translateY(-4px);border-color:#d8b4fe80;box-shadow:0 10px 20px #00000080}.b-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><filter id="noiseFilter"><feTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23noiseFilter)" opacity="0.05"/></svg>');pointer-events:none}.b-card-icon{width:64px;height:64px;border-radius:12px;background:#00000080;display:flex;justify-content:center;align-items:center;font-size:32px;flex-shrink:0;border:2px solid rgba(255,255,255,.1);overflow:hidden}.b-card-icon img{width:120%;height:120%;object-fit:cover}.b-card-icon svg{width:70%;height:70%}.b-card-info{flex:1;display:flex;flex-direction:column;gap:8px;z-index:1}.b-card-info h3{margin:0;font-size:1.2rem;display:flex;align-items:center;justify-content:space-between}.type-tag,.lvl-tag{font-size:.75rem;padding:2px 8px;border-radius:10px;background:#ffffff1a;font-weight:400}.tower-card .lvl-tag{background:rgba(var(--t-color),.2);color:var(--t-color);border:1px solid currentColor}.b-stats{display:flex;gap:12px;font-size:.85rem;color:#cbd5e1}.b-stats span{display:flex;align-items:center;gap:4px}.b-weakness{font-size:.9rem;color:#fca5a5;background:#f871711a;padding:4px 8px;border-radius:6px;display:inline-block}.b-desc{font-size:.85rem;color:var(--text-muted);line-height:1.4;margin-top:auto}.game-layout{display:flex;gap:20px;padding:20px;height:100%;width:100%;max-width:1100px;margin:0 auto;align-items:center}.side-panel{width:260px;background:var(--panel-bg);border-radius:16px;padding:16px;border:1px solid rgba(139,92,246,.3);display:flex;flex-direction:column;gap:12px;height:MAP_HEIGHT;box-shadow:0 10px 30px #00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.empty-panel-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);gap:16px;line-height:1.6}.panel-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:8px;margin-bottom:8px}.panel-header h3{font-size:1rem;color:var(--text-main);margin:0}.btn-close{background:none;border:none;color:var(--text-muted);cursor:pointer;transition:color .2s;display:flex}.btn-close:hover{color:var(--danger)}.tower-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto}.tower-card{display:flex;align-items:center;gap:12px;background:#0006;padding:10px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:all .2s}.tower-card:hover:not(.disabled){background:#ffffff0d;border-color:#fff3}.tower-card.disabled{opacity:.4;cursor:not-allowed;filter:grayscale(1)}.tower-icon{width:44px;height:44px;border-radius:50%;border:2px solid;background:#000;overflow:hidden;flex-shrink:0;display:flex;justify-content:center;align-items:center;font-size:24px}.tower-icon img{width:130%;height:130%;object-fit:cover}.tower-icon svg{width:60%;height:60%}.tower-info{flex:1}.t-name{font-weight:700;font-size:.95rem}.t-cost{display:flex;align-items:center;gap:4px;font-size:.85rem;color:var(--warning);margin-top:4px}.upgrade-panel{display:flex;flex-direction:column;height:100%;gap:12px}.upgrade-info{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px 0}.u-icon{width:72px;height:72px;border-radius:50%;border:3px solid;background:#000;overflow:hidden;display:flex;justify-content:center;align-items:center;font-size:36px;box-shadow:0 0 20px #ffffff1a}.u-icon img{width:130%;height:130%;object-fit:cover}.u-icon svg{width:60%;height:60%}.upgrade-info h4{font-size:1.2rem;display:flex;align-items:center;gap:8px;margin:0}.lvl-badge{background:var(--accent);color:#fff;font-size:.75rem;padding:2px 6px;border-radius:10px}.stats-compare{background:#0000004d;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.stat-row{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-muted)}.stat-row .val{color:#fff;font-weight:700}.stat-row .next-val{color:var(--success)}.action-buttons{margin-top:auto;display:flex;flex-direction:column;gap:10px}.btn-upgrade,.btn-sell{display:flex;justify-content:center;align-items:center;gap:8px;border:none;padding:12px;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s;color:#fff}.btn-upgrade{background:linear-gradient(135deg,#2ed573,#2bad5f);box-shadow:0 4px 15px #2ed5734d}.btn-upgrade:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 6px 20px #2ed57380}.btn-upgrade.disabled{background:#475569;color:#94a3b8;cursor:not-allowed;box-shadow:none}.btn-sell{background:#ff475733;border:1px solid var(--danger);color:var(--danger)}.btn-sell:hover{background:var(--danger);color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #ff475766}.map-area{position:relative;background:#0f172a;border-radius:16px;overflow:hidden;border:2px solid rgba(139,92,246,.3);box-shadow:inset 0 0 50px #000c,0 10px 30px #00000080;background-image:radial-gradient(rgba(139,92,246,.1) 1px,transparent 1px);background-size:30px 30px}.path-svg{position:absolute;top:0;left:0;pointer-events:none;z-index:1}.lasers-svg{position:absolute;top:0;left:0;pointer-events:none;z-index:4}.entity{position:absolute;transform:translate(-50%,-50%);z-index:3;pointer-events:none}.slot{position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:flex;justify-content:center;align-items:center;cursor:pointer;z-index:2;transition:all .2s}.slot.empty{border:2px dashed rgba(139,92,246,.4);background:#0000004d}.slot.empty:hover{border-color:var(--accent);background:#8b5cf633}.slot-placeholder{color:#8b5cf680;font-size:24px;font-weight:700}.slot.selected{box-shadow:0 0 0 4px #fff3,0 0 20px #8b5cf666;z-index:5}.tower-entity{width:100%;height:100%;border-radius:50%;border:2px solid;background:#000;display:flex;justify-content:center;align-items:center;font-size:24px;overflow:hidden}.tower-entity img{width:130%;height:130%;object-fit:cover}.tower-entity svg{width:60%;height:60%}.tower-level{position:absolute;bottom:-6px;right:-6px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;width:20px;height:20px;border-radius:50%;display:flex;justify-content:center;align-items:center;border:2px solid #0f172a;z-index:6}.range-circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px dashed;pointer-events:none;z-index:-1;background:radial-gradient(circle,currentColor 0%,transparent 70%);opacity:.15}.base-entity{position:absolute;transform:translate(-50%,-50%);width:60px;height:60px;z-index:2;display:flex;justify-content:center;align-items:center;background:#00000080;border-radius:12px;border:2px solid var(--accent);box-shadow:0 0 20px #8b5cf666}.base-entity svg{width:70%;height:70%}.base-hp{position:absolute;bottom:-15px;background:var(--danger);color:#fff;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:700;border:2px solid #0f172a}.enemy{width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:left .05s linear,top .05s linear}.zombie-img{width:100%;height:100%;display:flex;justify-content:center;align-items:center;font-size:28px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.zombie-img img{width:120%;height:120%;object-fit:contain}.zombie-img svg{width:80%;height:80%;color:#ff6b6b}.hp-bar-bg{width:30px;height:4px;background:#000c;border-radius:2px;margin-top:-45px;overflow:hidden;border:1px solid rgba(255,255,255,.2)}.hp-bar-fill{height:100%;background:var(--danger);transition:width .1s}.floating-text{position:absolute;color:var(--warning);font-weight:700;font-size:1.2rem;text-shadow:0 2px 4px rgba(0,0,0,.8);pointer-events:none;z-index:10;display:flex;align-items:center;gap:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;justify-content:center;align-items:center}.modal-content{background:var(--panel-bg);padding:30px;border-radius:20px;border:1px solid rgba(139,92,246,.4);text-align:center;max-width:400px;box-shadow:0 25px 50px -12px #00000080}.modal-content h3{font-size:1.4rem;margin-bottom:10px}.modal-content p{color:var(--text-muted);margin-bottom:24px;line-height:1.5}.modal-actions{display:flex;gap:16px;justify-content:center}.btn-cancel{background:#ffffff1a;color:#fff;border:none;padding:10px 24px;border-radius:10px;cursor:pointer;font-weight:700;transition:background .2s}.btn-cancel:hover{background:#fff3}.btn-confirm-sell{background:var(--danger);color:#fff;border:none;padding:10px 24px;border-radius:10px;cursor:pointer;font-weight:700;transition:background .2s;box-shadow:0 4px 15px #ff475766}.btn-confirm-sell:hover{background:#ff6b81;transform:translateY(-2px)}.gameover-screen h2{font-size:2.5rem;color:var(--danger);margin:10px 0;text-shadow:0 0 20px rgba(255,71,87,.5)}.final-stats{background:#0006;border:1px solid rgba(255,255,255,.1);padding:20px;border-radius:12px;margin-bottom:20px;width:100%}.final-stats p{display:flex;justify-content:space-between;font-size:1.2rem;margin:8px 0;color:var(--text-muted)}.final-stats span{color:#fff;font-weight:700}.new-record{color:var(--warning)!important;justify-content:center!important;font-weight:700;margin-top:15px!important;animation:pulse 1.5s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}
