@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #080c18;--bg-secondary: #0d1224;--bg-card: #111827;--bg-card-hover: #1a2340;--border-subtle: rgba(99, 130, 255, .12);--border-active: rgba(99, 200, 255, .4);--text-primary: #e8ecf4;--text-secondary: #8b95b0;--text-muted: #525e78;--accent-blue: #6b8aff;--accent-cyan: #38d9f5;--accent-gold: #fbbf24;--accent-green: #34d399;--accent-red: #f87171;--accent-purple: #a78bfa;--shadow-glow: 0 0 20px rgba(99, 130, 255, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px}body{background:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden;height:100vh;-webkit-font-smoothing:antialiased}.intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:transparent;display:none;cursor:pointer}.intro-overlay.visible{display:block}.intro-tile{will-change:transform,opacity}.password-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,rgba(107,138,255,.08),transparent 70%),var(--bg-primary)}.password-card{display:flex;flex-direction:column;align-items:center;gap:18px;padding:48px 44px 40px;background:linear-gradient(135deg,#111827f2,#0d1224fa);border:1px solid var(--border-subtle);border-radius:20px;box-shadow:0 8px 60px #00000080,var(--shadow-glow);min-width:340px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.password-lock{font-size:3rem;margin-bottom:4px;filter:drop-shadow(0 0 12px rgba(107,138,255,.4))}.password-card h2{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.password-hint{font-size:.85rem;color:var(--text-secondary);margin-top:-8px}.password-input-wrap{width:100%}.password-input-wrap input{width:100%;padding:12px 16px;font-size:1rem;font-family:inherit;background:#ffffff0a;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);outline:none;transition:border-color .2s,box-shadow .2s}.password-input-wrap input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #6b8aff26}.password-btn{width:100%;padding:12px;font-size:.95rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--accent-blue),#5570e6);border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform .15s,box-shadow .2s}.password-btn:hover{transform:translateY(-1px);box-shadow:0 4px 20px #6b8aff59}.password-btn:active{transform:translateY(0)}.password-error{font-size:.82rem;color:var(--accent-red);min-height:1.2em}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.password-input-wrap input.shake{animation:shake .4s ease;border-color:var(--accent-red)}#app{display:flex;flex-direction:column;height:100vh}header{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:linear-gradient(180deg,#0d1224fa,#0d1224eb);border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10}header h1{font-size:1.15rem;font-weight:800;background:linear-gradient(135deg,var(--accent-blue),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1.5px;text-transform:uppercase}.stats{display:flex;gap:6px}.stat{font-size:.82rem;font-weight:500;background:var(--bg-card);padding:5px 12px;border-radius:20px;border:1px solid var(--border-subtle);color:var(--text-secondary)}.stat strong{color:var(--accent-gold);font-weight:700}.difficulty-label{font-weight:700;letter-spacing:.5px;color:var(--text-primary)!important}.music-controls{display:flex;align-items:center;gap:6px}.music-btn{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:50%;width:28px;height:28px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.music-btn:hover{background:var(--accent-blue);color:#fff}.music-track-name{font-size:.75rem;color:var(--text-secondary);min-width:100px;text-align:center;white-space:nowrap}.music-volume-slider{width:60px;accent-color:var(--accent-blue);cursor:pointer}.music-volume-label{font-size:.72rem;color:var(--text-secondary);min-width:28px}.game-area{display:flex;flex:1;overflow:hidden}.sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden}.sidebar-content{flex:1;padding:14px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(99,130,255,.2) transparent}.sidebar-content::-webkit-scrollbar{width:4px}.sidebar-content::-webkit-scrollbar-thumb{background:#6382ff33;border-radius:4px}.sidebar h2{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;padding-bottom:6px;border-bottom:1px solid var(--border-subtle)}.tower-btn{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:.82rem;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;width:100%}.tower-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(99,130,255,.05),transparent);opacity:0;transition:opacity .2s}.tower-btn:hover{background:var(--bg-card-hover);border-color:#6382ff40;transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.tower-btn:hover:before{opacity:1}.tower-btn.active{border-color:var(--accent-green);background:#34d39914;box-shadow:0 0 16px #34d39926,inset 0 0 20px #34d3990d}.tower-btn.too-expensive{opacity:.4;filter:grayscale(.3)}.tower-icon{font-size:1.3rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.tower-name{flex:1;font-weight:600;font-size:.82rem}.tower-cost{color:var(--accent-gold);font-size:.78rem;font-weight:600}.tower-key{color:var(--text-muted);font-size:.7rem;font-weight:500;background:#ffffff0d;padding:1px 5px;border-radius:3px}.tower-instances{font-size:.68rem;font-weight:600;color:#a3e635;background:#a3e6351a;padding:1px 5px;border-radius:3px;border:1px solid rgba(163,230,53,.25)}.tower-instances.instances-full{color:#f87171;background:#f871711a;border-color:#f871714d}#tower-info{position:absolute;z-index:50;width:228px;background:#0a0f1ef5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(99,130,255,.18);border-radius:var(--radius-md);padding:12px;pointer-events:none;opacity:0;transform:translate(-6px);transition:opacity .18s ease,transform .18s ease;box-shadow:0 8px 28px #0000008c,0 0 0 1px #6382ff0f}#tower-info.visible{pointer-events:auto;opacity:1;transform:translate(0)}.tower-detail h3{font-size:.9rem;font-weight:700;margin-bottom:8px}.tower-detail p{font-size:.78rem;margin-bottom:4px;color:var(--text-secondary)}.tower-detail strong{color:var(--accent-gold)}.max-level{color:var(--accent-green);font-style:italic;margin-top:8px;font-size:.78rem}.action-btn{display:block;width:100%;margin-top:8px;padding:8px 10px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.78rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);letter-spacing:.3px}.action-btn.upgrade{background:linear-gradient(135deg,#1a5c2a,#236b35);color:var(--text-primary);box-shadow:0 2px 8px #22c55e26}.action-btn.upgrade:hover:not(:disabled){background:linear-gradient(135deg,#22803a,#2d9344);box-shadow:0 4px 16px #22c55e40;transform:translateY(-1px)}.action-btn.upgrade:disabled{background:#ffffff0d;color:var(--text-muted);cursor:not-allowed;box-shadow:none}.action-btn.sell{background:linear-gradient(135deg,#5c1a1a,#6b2323);color:var(--text-primary);box-shadow:0 2px 8px #f871711a}.action-btn.sell:hover{background:linear-gradient(135deg,#802222,#932d2d);box-shadow:0 4px 16px #f8717133;transform:translateY(-1px)}.start-btn{padding:12px;background:linear-gradient(135deg,#1e3a8a,#2563eb);color:var(--text-primary);border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-md);cursor:pointer;font-size:.85rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);margin-top:auto;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 16px #2563eb33}.start-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 6px 24px #2563eb59;transform:translateY(-1px)}.start-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.auto-wave-btn{padding:7px 10px;background:#fbbf240f;border:1px solid rgba(251,191,36,.2);border-radius:var(--radius-sm);color:#fbbf24;cursor:pointer;font-size:.78rem;font-weight:600;transition:all .2s;text-align:center}.auto-wave-btn:hover{background:#fbbf241f;border-color:#fbbf2459}.auto-wave-btn.active{background:#fbbf242e;border-color:#fbbf2499;color:#fde68a;box-shadow:0 0 10px #fbbf2433}.speed-controls{display:flex;gap:4px}.speed-btn{flex:1;padding:7px 4px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:.72rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.speed-btn:hover{background:var(--bg-card-hover);border-color:#6382ff40}.speed-btn.active{border-color:var(--accent-gold);background:#fbbf2414;color:var(--accent-gold);box-shadow:0 0 12px #fbbf241f}.quit-btn{padding:8px;background:#f871710f;border:1px solid rgba(248,113,113,.15);border-radius:var(--radius-sm);color:var(--accent-red);cursor:pointer;font-size:.8rem;font-weight:600;transition:all .2s}.quit-btn:hover{background:#f871711f;border-color:#f871714d}.restart-btn{padding:8px;background:#60a5fa0f;border:1px solid rgba(96,165,250,.15);border-radius:var(--radius-sm);color:#60a5fa;cursor:pointer;font-size:.8rem;font-weight:600;transition:all .2s}.restart-btn:hover{background:#60a5fa1f;border-color:#60a5fa4d}.volume-control{display:flex;flex-direction:column;gap:5px}.volume-control label{font-size:.78rem;color:var(--text-muted);font-weight:500}#volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:#6382ff1f;border-radius:4px;outline:none;cursor:pointer}#volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--accent-blue);border-radius:50%;cursor:pointer;box-shadow:0 0 8px #6b8aff66;transition:transform .15s}#volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}#volume-slider::-moz-range-thumb{width:14px;height:14px;background:var(--accent-blue);border-radius:50%;border:none;cursor:pointer;box-shadow:0 0 8px #6b8aff66}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:32px 40px;text-align:center;box-shadow:0 24px 64px #00000080,var(--shadow-glow)}.modal.modal--content{height:80%;width:80%;overflow-y:scroll}.modal.modal--content *{text-align:left}.modal hr{margin:32px 0}.modal h2{font-size:1.3rem;font-weight:800;color:var(--accent-red);margin-bottom:8px}.modal p{font-size:.9rem;color:var(--text-secondary);margin-bottom:24px}.modal-actions{display:flex;gap:12px;justify-content:center}.modal-btn{padding:10px 28px;border:1px solid;border-radius:var(--radius-md);cursor:pointer;font-size:.85rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);letter-spacing:.3px}.modal-btn.confirm{background:linear-gradient(135deg,#5c1a1a,#6b2323);border-color:#f8717133;color:var(--text-primary)}.modal-btn.confirm:hover{background:linear-gradient(135deg,#802222,#932d2d);box-shadow:0 4px 16px #f8717133}.modal-btn.cancel{background:linear-gradient(135deg,#1e3a8a,#2563eb);border-color:#3b82f64d;color:var(--text-primary)}.modal-btn.cancel:hover{background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 4px 16px #2563eb40}.modal-doc{text-align:left;width:min(760px,92vw);max-height:82vh;padding:0;display:flex;flex-direction:column;overflow:hidden}.modal-doc-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 16px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.modal-doc-header h2{margin:0;font-size:1.25rem;font-weight:800;color:var(--accent-gold, #f59e0b);letter-spacing:.5px}.modal-doc-close{background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:.9rem;line-height:1;padding:6px 10px;transition:all .2s}.modal-doc-close:hover{background:#f8717126;border-color:#f8717166;color:var(--text-primary)}.modal-doc-content{overflow-y:auto;padding:24px 28px;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.modal-doc-content::-webkit-scrollbar{width:6px}.modal-doc-content::-webkit-scrollbar-track{background:transparent}.modal-doc-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.modal-doc-content h1{font-size:1.4rem;font-weight:800;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding-bottom:8px;margin:0 0 16px}.modal-doc-content h2{font-size:1.1rem;font-weight:700;color:var(--accent-gold, #f59e0b);margin:24px 0 10px}.modal-doc-content h3{font-size:.95rem;font-weight:700;color:var(--text-primary);margin:16px 0 8px}.modal-doc-content p{font-size:.875rem;color:var(--text-secondary);line-height:1.65;margin:0 0 10px}.modal-doc-content ul,.modal-doc-content ol{padding-left:20px;margin:0 0 12px}.modal-doc-content li{font-size:.875rem;color:var(--text-secondary);line-height:1.65;margin-bottom:4px}.modal-doc-content li strong{color:var(--text-primary)}.modal-doc-content code{background:#ffffff14;border:1px solid var(--border-subtle);border-radius:4px;padding:1px 6px;font-size:.82rem;color:#93c5fd}.modal-doc-content pre{background:#00000059;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px;overflow-x:auto;margin:0 0 14px}.modal-doc-content pre code{background:none;border:none;padding:0;font-size:.82rem;color:var(--text-primary)}.modal-doc-content hr{border:none;border-top:1px solid var(--border-subtle);margin:20px 0}.modal-doc-content a{color:#60a5fa;text-decoration:none}.modal-doc-content a:hover{text-decoration:underline}.controls-help-container{border-top:1px solid var(--border-subtle);background:#0d122499;flex-shrink:0}.controls-toggle{width:100%;display:flex;align-items:center;gap:6px;padding:8px 14px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:color .2s,background .2s}.controls-toggle:hover{color:var(--text-secondary);background:#6382ff0d}.controls-toggle-arrow{display:inline-block;font-size:.6rem;transition:transform .25s ease}.controls-toggle.collapsed .controls-toggle-arrow{transform:rotate(180deg)}.controls-help-body{padding:0 14px 10px;overflow:hidden;max-height:120px;transition:max-height .25s ease,padding .25s ease}.controls-help-body.collapsed{max-height:0;padding-top:0;padding-bottom:0}.controls-help-body p{font-size:.72rem;color:var(--text-muted);margin-bottom:3px;line-height:1.4}.controls-help-body p strong{color:var(--text-secondary);font-weight:600}.canvas-wrapper{flex:1;display:flex;align-items:center;justify-content:center;position:relative;background:radial-gradient(ellipse at center,#0e1326,#080c18)}canvas{display:block;cursor:crosshair;border-radius:2px;box-shadow:0 0 40px #00000080,0 0 80px #6382ff08}.canvas-controls{position:absolute;bottom:0;left:0;right:0;z-index:40;background:#0a0f1ef0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(99,130,255,.15);width:640px;margin:0 auto}.canvas-controls-toggle{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 14px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:color .2s,background .2s}.canvas-controls-toggle:hover{color:var(--text-secondary);background:#6382ff0f}.canvas-controls-arrow{display:inline-block;font-size:.58rem;transition:transform .25s ease}.canvas-controls.collapsed .canvas-controls-arrow{transform:rotate(180deg)}.canvas-controls-body{display:flex;flex-direction:column;gap:6px;padding:4px 12px 10px;overflow:hidden;max-height:120px;transition:max-height .3s ease,padding .3s ease}.canvas-controls.collapsed .canvas-controls-body{max-height:0;padding-top:0;padding-bottom:0}.canvas-controls-row{display:flex;gap:8px;align-items:center}.canvas-controls .start-btn{flex:1;margin-top:0;padding:7px 10px;font-size:.78rem}.canvas-controls .auto-wave-btn{flex-shrink:0;white-space:nowrap}.canvas-controls .speed-controls{flex-shrink:0}.canvas-controls .volume-control{flex:1;flex-direction:row;align-items:center;gap:6px}.canvas-controls .volume-control label{white-space:nowrap;font-size:.75rem}.canvas-controls .restart-btn,.canvas-controls .quit-btn{flex-shrink:0;white-space:nowrap}.message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;font-weight:900;text-align:center;pointer-events:none;text-shadow:0 2px 20px rgba(0,0,0,.8);letter-spacing:1px}.message.won{color:var(--accent-green);animation:pulse 1s ease-in-out infinite;text-shadow:0 0 30px rgba(52,211,153,.4)}.message.lost{color:var(--accent-red);animation:pulse 1s ease-in-out infinite;text-shadow:0 0 30px rgba(248,113,113,.4)}.message.build-error{color:var(--accent-gold);font-size:1.1rem;animation:fadeOut 2s ease-in-out forwards}@keyframes fadeOut{0%{opacity:1;transform:translate(-50%,-50%) translateY(0)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) translateY(-10px)}}@keyframes pulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.04)}}.difficulty-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:24px;background:radial-gradient(ellipse at 50% 30%,rgba(99,130,255,.06) 0%,transparent 60%)}.difficulty-screen h1{font-size:2.8rem;font-weight:900;background:linear-gradient(135deg,var(--accent-blue),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:3px;text-transform:uppercase}.difficulty-subtitle{font-size:1rem;color:var(--text-muted);font-weight:500}.difficulty-options{display:flex;gap:20px;margin-top:10px}.difficulty-btn{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 36px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);min-width:190px}.difficulty-btn:hover{background:var(--bg-card-hover);border-color:#6382ff4d;transform:translateY(-6px);box-shadow:0 16px 40px #0006,0 0 30px #6382ff14}.diff-icon{font-size:2.2rem;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.diff-name{font-size:1.2rem;font-weight:800;letter-spacing:.5px}.diff-desc{font-size:.78rem;color:var(--text-muted);text-align:center;line-height:1.4}.faction-label{font-size:.8rem;font-weight:700;color:var(--accent-green);text-align:center;margin-bottom:12px;padding:6px 0 2px;letter-spacing:1px;text-transform:uppercase}.buff-active{color:var(--accent-green)!important;font-weight:700;animation:buffPulse 1.5s ease-in-out infinite}@keyframes buffPulse{0%,to{opacity:1}50%{opacity:.6}}.faction-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:24px;background:radial-gradient(ellipse at 50% 30%,rgba(52,211,153,.05) 0%,transparent 60%)}.faction-screen h1{font-size:2.8rem;font-weight:900;background:linear-gradient(135deg,var(--accent-green),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:3px;text-transform:uppercase}.faction-subtitle{font-size:1rem;color:var(--text-muted);font-weight:500}.faction-options{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;justify-content:center;gap:24px;margin-top:10px}.faction-btn{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 36px;background:var(--bg-card);border:1px solid rgba(52,211,153,.15);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);min-width:240px;max-width:300px}.faction-btn:hover{background:#34d3990d;border-color:#34d3994d;transform:translateY(-6px);box-shadow:0 16px 40px #0006,0 0 30px #34d39914}.faction-icon{font-size:3.2rem;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.faction-icon-img{width:48px;height:48px;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));border-radius:4px}.faction-label .faction-icon-img{width:36px;height:36px;margin-right:4px}.faction-name{font-size:1.3rem;font-weight:800;color:var(--accent-green);letter-spacing:.5px}.faction-desc{font-size:.82rem;color:var(--text-secondary);text-align:center;line-height:1.5}.faction-towers{font-size:.78rem;color:var(--accent-gold);text-align:center;font-weight:600}.start-screen-buttons{position:absolute;bottom:20px;right:20px;display:flex;gap:10px}.start-screen-btn{background-color:#007bff;color:#fff;border:none;border-radius:5px;padding:10px 15px;font-size:14px;cursor:pointer;transition:background-color .3s}.start-screen-btn:hover{background-color:#0056b3}.start-screen-btn:active{background-color:#003f7f}.map-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:24px;background:radial-gradient(ellipse at 50% 30%,rgba(52,211,153,.05) 0%,transparent 60%);position:relative}.map-screen h1{font-size:2.8rem;font-weight:900;background:linear-gradient(135deg,var(--accent-green),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:3px;text-transform:uppercase}.map-subtitle{font-size:1rem;color:var(--text-muted);font-weight:500}.map-back-btn{position:absolute;top:24px;left:24px;background:var(--bg-card);border:1px solid rgba(52,211,153,.2);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.9rem;font-weight:600;padding:8px 16px;cursor:pointer;transition:all .2s ease}.map-back-btn:hover{border-color:#34d39966;color:var(--accent-green)}.map-options{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:32px;margin-top:10px}.map-btn{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 24px;background:var(--bg-card);border:1px solid rgba(52,211,153,.15);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);max-width:360px}.map-btn:hover{background:#34d3990d;border-color:#34d39966;transform:translateY(-6px);box-shadow:0 16px 40px #0006,0 0 30px #34d39914}.map-image-wrapper{width:300px;height:180px;border-radius:var(--radius-md);overflow:hidden;border:1px solid rgba(52,211,153,.2);background:#0000004d}.map-preview-img{width:100%;height:100%;object-fit:contain}.map-name{font-size:1.3rem;font-weight:800;color:var(--accent-green);letter-spacing:.5px}.map-desc{font-size:.85rem;color:var(--text-secondary);text-align:center;line-height:1.6}.map-image-placeholder{display:flex;align-items:center;justify-content:center;background:#34d39908}.map-placeholder-icon{font-size:3rem;opacity:.4}body[data-faction=troll_tribe]{--bg-primary: #08140f;--bg-secondary: #0d1f18;--bg-card: #13261d;--bg-card-hover: #1b3328;--border-subtle: rgba(99, 170, 98, .2);--border-active: rgba(145, 255, 116, .45);--text-primary: #ddf1df;--text-secondary: #a2beaa;--text-muted: #68816e;--accent-blue: #6a2f7a;--accent-cyan: #a36cff;--accent-gold: #9aff66;--accent-green: #7dff5a;--accent-red: #b46ae2;--accent-purple: #9f5bcc;--shadow-glow: 0 0 26px rgba(125, 255, 90, .13);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px}body[data-faction=troll_tribe] .difficulty-screen,body[data-faction=troll_tribe] .faction-screen,body[data-faction=troll_tribe] .canvas-wrapper{background:radial-gradient(circle at 15% 20%,rgba(73,137,85,.2),transparent 38%),radial-gradient(circle at 76% 62%,rgba(132,33,170,.18),transparent 42%),radial-gradient(circle at 35% 75%,rgba(89,191,75,.16),transparent 36%),radial-gradient(circle at 30% 30%,#2f5d3a,#0f2a1c 62%)}body[data-faction=troll_tribe] .tower-btn,body[data-faction=troll_tribe] .difficulty-btn,body[data-faction=troll_tribe] .faction-btn,body[data-faction=troll_tribe] .stat,body[data-faction=troll_tribe] .start-btn,body[data-faction=troll_tribe] .modal,body[data-faction=troll_tribe] .sidebar,body[data-faction=troll_tribe] .canvas-controls,body[data-faction=troll_tribe] .password-card{border-radius:clamp(10px,1.1vw,20px) clamp(14px,1.4vw,24px) clamp(12px,1.2vw,22px) clamp(16px,1.6vw,26px)}body[data-faction=troll_tribe] .tower-btn:hover,body[data-faction=troll_tribe] .difficulty-btn:hover,body[data-faction=troll_tribe] .faction-btn:hover{border-color:#7dff5a73;box-shadow:0 10px 26px #00000073,0 0 0 1px #9f5bcc40}body[data-faction=troll_tribe] .faction-name,body[data-faction=troll_tribe] .faction-label,body[data-faction=troll_tribe] .message.won{color:#93ff5f}body[data-faction=troll_tribe] .message.lost{color:#c887ff}body[data-faction=troll_tribe] .canvas-wrapper{overflow:hidden}body[data-faction=troll_tribe] .canvas-wrapper:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.55;background:radial-gradient(44% 33% at 18% 25%,rgba(125,255,90,.16),transparent 72%),radial-gradient(38% 29% at 68% 66%,rgba(155,83,196,.18),transparent 76%),radial-gradient(28% 21% at 52% 32%,rgba(43,102,58,.24),transparent 80%);filter:blur(10px)}@keyframes troll-canvas-pulse{0%,to{filter:saturate(1) brightness(.98);transform:scale(1)}50%{filter:saturate(1.12) brightness(1.05);transform:scale(1.002)}}@keyframes troll-blob-drift{0%,to{transform:translateZ(0) scale(1)}35%{transform:translate3d(-1.2%,.8%,0) scale(1.04)}70%{transform:translate3d(1.4%,-.6%,0) scale(.98)}}body[data-faction=oceans_wrath]{--bg-primary: #0a1f2e;--bg-secondary: #102a3d;--bg-card: #163a4f;--bg-card-hover: #1b5d7e;--border-subtle: rgba(64, 128, 192, .3);--border-active: rgba(96, 192, 255, .5);--text-primary: #d0f0ff;--text-secondary: #a0c8e0;--text-muted: #7098b0;--accent-blue: #4fa8d8;--accent-cyan: #6fd8ff;--accent-gold: #ffd480;--accent-green: #80ffc8;--accent-red: #ff8080;--accent-purple: #a080ff;--shadow-glow: 0 0 20px rgba(64, 192, 255, .2);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px}body[data-faction=oceans_wrath] .difficulty-screen,body[data-faction=oceans_wrath] .faction-screen,body[data-faction=oceans_wrath] .canvas-wrapper{background:radial-gradient(circle at 20% 30%,rgba(64,128,192,.2),transparent 40%),radial-gradient(circle at 80% 70%,rgba(96,192,255,.15),transparent 50%),radial-gradient(circle at 50% 50%,#102a3d,#0a1f2e 70%)}body[data-faction=oceans_wrath] .tower-btn,body[data-faction=oceans_wrath] .difficulty-btn,body[data-faction=oceans_wrath] .faction-btn,body[data-faction=oceans_wrath] .stat,body[data-faction=oceans_wrath] .start-btn,body[data-faction=oceans_wrath] .modal,body[data-faction=oceans_wrath] .sidebar,body[data-faction=oceans_wrath] .canvas-controls,body[data-faction=oceans_wrath] .password-card{border-radius:50px;border:2px solid rgba(96,192,255,.4)}body[data-faction=oceans_wrath] .tower-btn:hover,body[data-faction=oceans_wrath] .difficulty-btn:hover,body[data-faction=oceans_wrath] .faction-btn:hover{border-color:#60c0ff99;box-shadow:0 8px 20px #00000080,0 0 0 1px #6fd8ff4d}body[data-faction=oceans_wrath] .tower-btn.active{background-color:#166ea8cb}body[data-faction=oceans_wrath] .faction-name,body[data-faction=oceans_wrath] .faction-label,body[data-faction=oceans_wrath] .message.won{color:#6fd8ff}body[data-faction=oceans_wrath] .message.lost{color:#ff8080}body[data-faction=oceans_wrath] .canvas-wrapper{overflow:hidden}body[data-faction=oceans_wrath] .canvas-wrapper:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background:radial-gradient(ellipse at 30% 30%,rgba(64,128,192,.2),transparent 50%),radial-gradient(ellipse at 70% 70%,rgba(96,192,255,.15),transparent 60%);filter:blur(12px)}@keyframes ocean-canvas-flow{0%,to{filter:brightness(.95);transform:translateY(0)}50%{filter:brightness(1.05);transform:translateY(-2%)}}@keyframes ocean-wave-drift{0%,to{transform:translateZ(0) scale(1)}35%{transform:translate3d(-1%,1%,0) scale(1.02)}70%{transform:translate3d(1%,-1%,0) scale(.98)}}body[data-faction=candy_kingdom]{--bg-primary: #fff0f5;--bg-secondary: #ffe4e1;--bg-card: #ffebcd;--bg-card-hover: #ffdab9;--border-subtle: rgba(255, 182, 193, .3);--border-active: rgba(255, 105, 180, .5);--text-primary: #ff69b4;--text-secondary: #ffa07a;--text-muted: #ffc0cb;--accent-blue: #87cefa;--accent-cyan: #e0ffff;--accent-gold: #ffd700;--accent-green: #98fb98;--accent-red: #ff6347;--accent-purple: #dda0dd;--shadow-glow: 0 0 20px rgba(255, 182, 193, .2);--radius-sm: 12px;--radius-md: 20px;--radius-lg: 30px}body[data-faction=candy_kingdom] .difficulty-screen,body[data-faction=candy_kingdom] .faction-screen,body[data-faction=candy_kingdom] .canvas-wrapper{background:radial-gradient(circle at 20% 30%,rgba(255,182,193,.2),transparent 40%),radial-gradient(circle at 80% 70%,rgba(255,105,180,.15),transparent 50%),radial-gradient(circle at 50% 50%,#ffe4e1,#fff0f5 70%)}body[data-faction=candy_kingdom] .tower-btn,body[data-faction=candy_kingdom] .difficulty-btn,body[data-faction=candy_kingdom] .faction-btn,body[data-faction=candy_kingdom] .stat,body[data-faction=candy_kingdom] .start-btn,body[data-faction=candy_kingdom] .modal,body[data-faction=candy_kingdom] .sidebar,body[data-faction=candy_kingdom] .canvas-controls,body[data-faction=candy_kingdom] .password-card{border-radius:24px;border:3px solid rgba(255,105,180,.4);margin:8px auto}body[data-faction=candy_kingdom] .tower-btn:hover,body[data-faction=candy_kingdom] .difficulty-btn:hover,body[data-faction=candy_kingdom] .faction-btn:hover{border-color:#ff69b499;box-shadow:0 8px 20px #00000080,0 0 0 1px #ffb6c14d}body[data-faction=candy_kingdom] .faction-name,body[data-faction=candy_kingdom] .faction-label,body[data-faction=candy_kingdom] .message.won{color:#ff69b4}body[data-faction=candy_kingdom] .message.lost{color:tomato}body[data-faction=candy_kingdom] .canvas-wrapper{overflow:hidden}body[data-faction=candy_kingdom] .canvas-wrapper:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background:radial-gradient(ellipse at 30% 30%,rgba(255,182,193,.2),transparent 50%),radial-gradient(ellipse at 70% 70%,rgba(255,105,180,.15),transparent 60%);filter:blur(10px)}body[data-faction=candy_kingdom] .stat,body[data-faction=candy_kingdom] .stat strong,body[data-faction=candy_kingdom] .wave,body[data-faction=candy_kingdom] .tower-cost,body[data-faction=candy_kingdom] .tower-key,body[data-faction=candy_kingdom] .tower-instances{color:#8b0000;text-shadow:1px 1px 2px rgba(255,255,255,.8)}body[data-faction=candy_kingdom] .music-controls{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:10px}body[data-faction=candy_kingdom] .music-controls .volume-slider{width:150px;height:8px;background:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-glow)}body[data-faction=candy_kingdom] .music-controls .music-button{width:40px;height:40px;background:var(--bg-card);border:2px solid var(--border-active);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}body[data-faction=candy_kingdom] .music-controls .music-button:hover{background:var(--bg-card-hover);box-shadow:0 4px 10px var(--shadow-glow)}body[data-faction=candy_kingdom] .music-controls .music-button svg{width:20px;height:20px;fill:var(--text-primary)}@keyframes candy-canvas-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes candy-sparkle{0%,to{transform:translateZ(0) scale(1)}35%{transform:translate3d(-1%,1%,0) scale(1.05)}70%{transform:translate3d(1%,-1%,0) scale(.95)}}body[data-faction=rock_tribe]{--bg-primary: #1a1a1a;--bg-secondary: #2b2b2b;--bg-card: #3a3a3a;--bg-card-hover: #4a4a4a;--border-subtle: rgba(128, 128, 128, .3);--border-active: rgba(200, 200, 200, .5);--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: #808080;--accent-blue: #5a8cae;--accent-cyan: #7fb8d4;--accent-gold: #d4a45f;--accent-green: #8cbf5a;--accent-red: #bf5a5a;--accent-purple: #8c5abf;--shadow-glow: 0 0 20px rgba(128, 128, 128, .2);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px}body[data-faction=rock_tribe] .difficulty-screen,body[data-faction=rock_tribe] .faction-screen,body[data-faction=rock_tribe] .canvas-wrapper{background:radial-gradient(circle at 20% 20%,rgba(90,90,90,.2),transparent 40%),radial-gradient(circle at 80% 60%,rgba(60,60,60,.15),transparent 50%),radial-gradient(circle at 50% 50%,#2b2b2b,#1a1a1a 70%)}body[data-faction=rock_tribe] .tower-btn,body[data-faction=rock_tribe] .difficulty-btn,body[data-faction=rock_tribe] .faction-btn,body[data-faction=rock_tribe] .stat,body[data-faction=rock_tribe] .start-btn,body[data-faction=rock_tribe] .modal,body[data-faction=rock_tribe] .sidebar,body[data-faction=rock_tribe] .canvas-controls,body[data-faction=rock_tribe] .password-card{border-radius:0;border:2px solid rgba(128,128,128,.4)}body[data-faction=rock_tribe] .tower-btn:hover,body[data-faction=rock_tribe] .difficulty-btn:hover,body[data-faction=rock_tribe] .faction-btn:hover{border-color:#c8c8c899;box-shadow:0 8px 20px #00000080,0 0 0 1px #d4a45f4d}body[data-faction=rock_tribe] .faction-name,body[data-faction=rock_tribe] .faction-label,body[data-faction=rock_tribe] .message.won{color:#d4a45f}body[data-faction=rock_tribe] .message.lost{color:#bf5a5a}body[data-faction=rock_tribe] .canvas-wrapper{overflow:hidden}body[data-faction=rock_tribe] .canvas-wrapper:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background:radial-gradient(ellipse at 30% 30%,rgba(90,90,90,.2),transparent 50%),radial-gradient(ellipse at 70% 70%,rgba(60,60,60,.15),transparent 60%);filter:blur(8px)}@keyframes rock-canvas-pulse{0%,to{filter:brightness(.95);transform:scale(1)}50%{filter:brightness(1.05);transform:scale(1.01)}}body[data-faction=cult_of_the_goat]{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: #0f3460;--bg-card-hover: #53354a;--border-subtle: rgba(255, 255, 255, .2);--border-active: rgba(255, 255, 255, .5);--text-primary: #e94560;--text-secondary: #a29bfe;--text-muted: #6c757d;--accent-blue: #3a86ff;--accent-cyan: #00bcd4;--accent-gold: #ffb400;--accent-purple: #9b5de5;--shadow-glow: 0 0 20px rgba(233, 69, 96, .3);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px}body[data-faction=cult_of_the_goat] .difficulty-screen,body[data-faction=cult_of_the_goat] .faction-screen,body[data-faction=cult_of_the_goat] .canvas-wrapper{background:radial-gradient(circle at 20% 30%,rgba(233,69,96,.2),transparent 40%),radial-gradient(circle at 80% 70%,rgba(155,93,229,.15),transparent 50%),radial-gradient(circle at 50% 50%,#1a1a2e,#16213e 70%)}body[data-faction=cult_of_the_goat] .tower-btn,body[data-faction=cult_of_the_goat] .difficulty-btn,body[data-faction=cult_of_the_goat] .faction-btn,body[data-faction=cult_of_the_goat] .stat,body[data-faction=cult_of_the_goat] .start-btn,body[data-faction=cult_of_the_goat] .modal,body[data-faction=cult_of_the_goat] .sidebar,body[data-faction=cult_of_the_goat] .canvas-controls,body[data-faction=cult_of_the_goat] .password-card{border-radius:15px;border:3px solid rgba(233,69,96,.4)}body[data-faction=cult_of_the_goat] .tower-btn:hover,body[data-faction=cult_of_the_goat] .difficulty-btn:hover,body[data-faction=cult_of_the_goat] .faction-btn:hover{border-color:#e9456099;box-shadow:0 8px 20px #00000080,0 0 0 1px #e945604d}body[data-faction=cult_of_the_goat] .faction-name,body[data-faction=cult_of_the_goat] .faction-label,body[data-faction=cult_of_the_goat] .message.won{color:#e94560}body[data-faction=cult_of_the_goat] .message.lost{color:#ffb400}body[data-faction=cult_of_the_goat] .canvas-wrapper{overflow:hidden}body[data-faction=cult_of_the_goat] .canvas-wrapper:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background:radial-gradient(ellipse at 30% 30%,rgba(233,69,96,.2),transparent 50%),radial-gradient(ellipse at 70% 70%,rgba(155,93,229,.15),transparent 60%);filter:blur(10px)}@keyframes goat-canvas-flicker{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.02);opacity:.9}}@keyframes goat-aura-pulse{0%,to{transform:translateZ(0) scale(1)}35%{transform:translate3d(-1%,1%,0) scale(1.05)}70%{transform:translate3d(1%,-1%,0) scale(.95)}}
