:root{--bg-color:#f7f7f8;--paper-pattern:#ebebed;--ink-primary:#121214;--ink-secondary:#5a5a62;--ink-muted:#8e8e98;--border-subtle:#d6d6dd;--card-bg:#fffffff2;--accent-red:#e6194b;--accent-red-hover:#c4103c;--accent-green:#10b981;--font-main:"Space Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", monospace;--shadow-sm:0 2px 6px #0000000d;--shadow-md:0 8px 24px #00000014;--shadow-lg:0 16px 40px #00000024}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}.hidden,.scouting-banner.hidden,.matchmaking-loader.hidden,.inline-spinner.hidden,.battle-hud.hidden,.battle-troop-tray.hidden,#bottom-controls.hidden,#hud.hidden,#zoom-controls.hidden{display:none!important}html,body{background-color:var(--bg-color);width:100%;height:100%;font-family:var(--font-main);color:var(--ink-primary);-webkit-font-smoothing:antialiased;overflow:hidden}#game-container{justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}canvas#game-canvas{cursor:crosshair;width:100%;height:100%;display:block;position:absolute;top:0;left:0}#hud{pointer-events:none;z-index:10;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:14px;left:20px;right:20px}.hud-group{pointer-events:auto;align-items:flex-start;gap:10px;display:flex}.camp-health-box{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1.5px solid var(--ink-primary);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:12px;flex-direction:column;gap:5px;min-width:220px;padding:8px 14px;transition:transform .15s,box-shadow .15s;display:flex}.camp-health-box:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.hud-player-top-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.hud-player-left{align-items:center;gap:6px;display:flex}.hud-commander-name{font-family:var(--font-main);color:var(--ink-primary);letter-spacing:.3px;cursor:pointer;font-size:13px;font-weight:800;transition:color .15s}.hud-commander-name:hover{color:#2563eb}.lvl-tag{background:var(--ink-primary);color:#fff;letter-spacing:.5px;border-radius:4px;padding:1.5px 6px;font-size:9.5px;font-weight:700}.hud-trophy-inline{background:#00000008;border-radius:6px;align-items:center;gap:5px;margin-left:auto;padding:1px 6px;display:flex}.hud-trophy-icon{object-fit:contain;filter:drop-shadow(0 1px 2px #00000026);width:20px;height:20px}.hud-trophy-val{font-family:var(--font-mono);color:var(--ink-primary);font-size:14px;font-weight:700}.health-meter-wrap{flex-direction:column;gap:4px;display:flex}.health-bar-row{align-items:center;gap:8px;display:flex}.health-bar-bg{border:1px solid var(--ink-primary);background:#e2e2e6;border-radius:4px;flex:1;width:120px;height:7px;overflow:hidden}.health-bar-fill{background:var(--ink-primary);width:100%;height:100%;transition:width .2s cubic-bezier(.4,0,.2,1)}.hud-val{font-family:var(--font-mono);color:var(--ink-secondary);white-space:nowrap;font-size:11px;font-weight:700}.center-notch{background:var(--card-bg,#fff);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1.5px solid var(--ink-primary);box-shadow:var(--shadow-sm);z-index:10;pointer-events:auto;-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:14px;padding:8px 18px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.notch-item{align-items:center;gap:6px;display:flex}.notch-icon{object-fit:contain;filter:drop-shadow(0 1px 2px #0000001f);-webkit-user-select:none;user-select:none;flex-shrink:0;width:19px;height:19px;display:inline-block}.notch-label{letter-spacing:.8px;color:var(--ink-secondary);font-size:10px;font-weight:700}.notch-val{font-family:var(--font-mono);color:var(--ink-primary);font-size:13px;font-weight:700}.notch-divider{background:var(--border-subtle,#d6d6dd);width:1px;height:16px}.notch-item.builder-item.busy .notch-val{color:#f59e0b}.notch-item.builder-item.full-busy .notch-val{color:#ef4444}.notch-item.tourists-item .notch-val{color:#0891b2}.notch-item.enemies-item{color:#dc2626;animation:1.6s ease-in-out infinite pulse-enemies}.notch-item.enemies-item .notch-label,.notch-item.enemies-item .notch-val{color:#dc2626;font-weight:800}@keyframes pulse-enemies{0%,to{opacity:1}50%{opacity:.65}}.hud-finance-stack{flex-direction:column;align-items:stretch;gap:4px;display:flex}.hud-finance-card{background:var(--card-bg,#fff);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1.5px solid var(--ink-primary);box-shadow:var(--shadow-sm);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-width:135px;padding:5px 10px;transition:transform .15s,box-shadow .15s;display:flex}.treasury-card{border-color:var(--ink-primary);box-sizing:border-box;min-height:38px}.treasury-val-col{flex-direction:column;gap:2px;display:flex}.treasury-bar-wrap{background:#e2e8f0;border-radius:2px;width:100%;min-width:65px;height:3px;overflow:hidden}.treasury-bar-fill{background:#10b981;height:100%;transition:width .25s,background-color .25s}.treasury-bar-fill.full{background:#ef4444}.treasury-card.treasury-full{animation:1.8s ease-in-out infinite treasuryFullPulse;background:#fef2f2!important;border-color:#ef4444!important}.treasury-card.treasury-full .pill-val{font-weight:800;color:#dc2626!important}@keyframes treasuryFullPulse{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 8px #ef444466}}.hud-finance-main{align-items:center;gap:6px;display:flex}.hud-quick-add-btn{color:#475569;font-family:var(--font-mono);cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;padding:1.5px 6px;font-size:10px;font-weight:700;transition:all .15s}.hud-quick-add-btn:hover{color:var(--ink-primary);background:#e2e8f0}.gold-card{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border-color:#d97706;box-shadow:0 1.5px 4px #d9770626}.gold-card:hover{box-shadow:0 3px 8px #d9770640}.gold-coin-icon{vertical-align:middle;filter:drop-shadow(0 1px 1px #b453094d);width:17px;height:17px;display:inline-block}.gold-coin-val{color:#b45309;text-shadow:0 1px #fffc;font-weight:800}.hud-quick-add-btn.gold-quick-add{color:#92400e;background:#fde68a;border-color:#f59e0b}.hud-quick-add-btn.gold-quick-add:hover{color:#78350f;background:#fcd34d}.reserve-card{cursor:pointer;background:#fdfcff;border-color:#8b5cf6}.reserve-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf633}.reserve-label{letter-spacing:.8px;color:#7c3aed;font-size:9.5px;font-weight:700}.reserve-val{font-family:var(--font-mono);color:#6d28d9;font-size:12px;font-weight:700}.reserve-card.can-collect{animation:2s ease-in-out infinite reservePulse}.settings-btn{background:var(--card-bg,#fff);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1.5px solid var(--ink-primary);cursor:pointer;width:38px;min-width:38px;height:38px;min-height:38px;box-shadow:var(--shadow-sm);color:var(--ink-primary);border-radius:8px;justify-content:center;align-items:center;padding:0;transition:all .2s cubic-bezier(.2,.8,.2,1);display:flex}.settings-btn .settings-icon{stroke:currentColor;width:20px;height:20px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.settings-btn:hover{background:var(--ink-primary);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.settings-btn:hover .settings-icon{transform:rotate(45deg)}.settings-btn:active{transform:translateY(1px);box-shadow:0 1px 3px #0000001a}.hud-top-actions{align-items:center;gap:8px;display:flex}.shop-btn{cursor:pointer;color:#92400e;height:38px;min-height:38px;font-family:var(--font-display,"Space Grotesk", sans-serif);background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1.8px solid #d97706;border-radius:8px;align-items:center;gap:6px;padding:0 12px 0 10px;transition:all .2s cubic-bezier(.2,.8,.2,1);display:flex;box-shadow:0 2px 6px #d9770633}.shop-btn .shop-icon{color:#d97706;filter:drop-shadow(0 1px 1px #b4530940);width:18px;height:18px;transition:transform .25s}.shop-btn-label{letter-spacing:.8px;color:#78350f;font-size:11px;font-weight:800}.shop-btn:hover{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border-color:#b45309;transform:translateY(-1.5px);box-shadow:0 4px 14px #d9770659}.shop-btn:hover .shop-icon{transform:scale(1.15)rotate(-6deg)}.shop-btn:active{transform:translateY(1px);box-shadow:0 1px 3px #d9770633}.modal-card.shop-modal-card{border:2px solid var(--ink-primary);text-align:left;background:#fff;border-radius:18px;flex-direction:column;gap:16px;width:92vw;max-width:840px;max-height:90vh;padding:24px 28px;display:flex;position:relative;overflow:hidden auto;box-shadow:0 20px 48px #12121438,0 0 0 1px #d9770626}.shop-header{border-bottom:1.5px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:0;padding-bottom:12px;display:flex}.shop-title-wrap{flex-direction:column;gap:4px;display:flex}.shop-tag{color:#92400e;letter-spacing:.6px;background:#fef3c7;border:1px solid #fde68a;border-radius:4px;width:fit-content;padding:2px 8px;font-size:10px;font-weight:800}.shop-title{color:var(--ink-primary);letter-spacing:.5px;margin:0;font-size:22px;font-weight:900}.shop-balance-bar{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1.5px solid #fde68a;border-radius:12px;justify-content:space-between;align-items:center;padding:12px 18px;display:flex;box-shadow:0 2px 8px #d9770614}.shop-balance-sub{letter-spacing:.8px;color:#92400e;margin-bottom:2px;font-size:10px;font-weight:800;display:block}.shop-balance-amount{align-items:center;gap:8px;display:flex}.gold-coin-icon-md{filter:drop-shadow(0 1.5px 2px #b4530959);width:22px;height:22px}.shop-gold-num{font-family:var(--font-display,"Space Grotesk", sans-serif);color:#78350f;font-size:22px;font-weight:900}.shop-gold-unit{color:#b45309;font-size:12px;font-weight:700}.shop-perks-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.shop-perk-tag{color:#92400e;background:#fff;border:1px solid #fcd34d;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700;box-shadow:0 1px 3px #0000000a}.shop-packs-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:16px;display:grid}.shop-pack-card{text-align:center;background:#f8fafc;border:1.8px solid #e2e8f0;border-radius:14px;flex-direction:column;align-items:center;padding:26px 14px 18px;transition:all .25s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;box-shadow:0 2px 8px #0000000a}.shop-pack-card:hover{border-color:#cbd5e1;transform:translateY(-4px);box-shadow:0 8px 20px #00000014}.shop-pack-card.featured-pack{background:linear-gradient(#fffdf5 0%,#fffbeb 100%);border:2px solid #f59e0b;transform:scale(1.02);box-shadow:0 4px 18px #f59e0b2e}.shop-pack-card.featured-pack:hover{border-color:#d97706;transform:scale(1.02)translateY(-4px);box-shadow:0 10px 28px #f59e0b47}.pack-ribbon{letter-spacing:.6px;white-space:nowrap;border-radius:20px;padding:3px 12px;font-size:10px;font-weight:900;position:absolute;top:-10px;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #0000001f}.starter-ribbon{color:#fff;background:#3b82f6}.popular-ribbon{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border:1px solid #fef08a;animation:2.5s ease-in-out infinite popularGlow}@keyframes popularGlow{0%,to{box-shadow:0 2px 8px #d9770659}50%{box-shadow:0 4px 14px #f59e0b99}}.vault-ribbon{color:#fff;background:linear-gradient(135deg,#dc2626 0%,#991b1b 100%)}.pack-art-wrap{justify-content:center;align-items:center;width:90px;height:90px;margin:6px auto 12px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:flex}.shop-pack-card:hover .pack-art-wrap{transform:scale(1.08)translateY(-2px)}.pack-svg{filter:drop-shadow(0 4px 6px #0000001a);width:100%;height:100%}.pack-details{flex-direction:column;flex:1;align-items:center;gap:4px;width:100%;margin-bottom:16px;display:flex}.pack-title{color:var(--ink-primary);margin:0;font-size:16px;font-weight:800}.pack-coins-amount{align-items:baseline;gap:4px;margin:4px 0 2px;display:flex}.pack-coins-val{font-family:var(--font-display,"Space Grotesk", sans-serif);color:#b45309;font-size:28px;font-weight:900}.pack-coins-label{color:#92400e;letter-spacing:.5px;font-size:11px;font-weight:800}.pack-bonus-badge{color:#475569;background:#f1f5f9;border-radius:6px;padding:2.5px 8px;font-size:11px;font-weight:800}.highlighted-badge{color:#92400e;background:#fef3c7;border:1px solid #fde68a;font-weight:900}.mega-badge{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;font-weight:900}.shop-buy-btn{color:#fff;width:100%;font-family:var(--font-display,"Space Grotesk", sans-serif);cursor:pointer;letter-spacing:.5px;background:#1e293b;border:none;border-bottom:3px solid #0f172a;border-radius:10px;justify-content:center;align-items:center;padding:10px 14px;font-size:15px;font-weight:900;transition:all .15s;display:flex}.shop-buy-btn:hover{background:#0f172a;transform:translateY(-1.5px);box-shadow:0 4px 12px #0f172a40}.shop-buy-btn:active{border-bottom-width:1px;transform:translateY(2px)}.featured-buy-btn{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border-bottom:3px solid #b45309;box-shadow:0 3px 10px #d977064d}.featured-buy-btn:hover{background:linear-gradient(135deg,#fbbf24 0%,#d97706 100%);box-shadow:0 6px 16px #d9770673}.featured-buy-btn:active{border-bottom-width:1px;transform:translateY(2px)}.shop-feedback-msg{color:#166534;text-align:center;background:#f0fdf4;border:1.5px solid #86efac;border-radius:8px;padding:10px 14px;font-size:12px;font-weight:700;animation:.3s ease-out feedbackFade}@keyframes feedbackFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=680px){.shop-packs-grid{grid-template-columns:1fr}.shop-pack-card.featured-pack{transform:none}.shop-balance-bar{flex-direction:column;align-items:flex-start;gap:8px}}.modal-card.purchase-success-card{text-align:center;background:linear-gradient(#fff 0%,#fffbeb 100%);border:2px solid #fde68a;border-radius:20px;width:90vw;max-width:440px;padding:32px 24px 28px;animation:.35s cubic-bezier(.34,1.56,.64,1) popIn;position:relative;overflow:hidden;box-shadow:0 20px 48px #f59e0b40,0 4px 16px #0000001a}.purchase-success-burst{width:80px;height:80px;margin:0 auto 12px;animation:3s ease-in-out infinite goldFloat}@keyframes goldFloat{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.05)}}.purchase-success-svg{filter:drop-shadow(0 4px 12px #f59e0b73);width:100%;height:100%}.purchase-success-tag{letter-spacing:1px;color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:12px;margin-bottom:8px;padding:4px 12px;font-size:10px;font-weight:900;display:inline-block}.purchase-success-title{font-family:var(--font-display,"Space Grotesk", sans-serif);letter-spacing:.5px;color:#1e293b;margin:0 0 6px;font-size:22px;font-weight:900}.purchase-success-sub{color:#64748b;margin:0 0 20px;font-size:13px}.purchase-pack-detail{background:#fff;border:1.5px solid #fef08a;border-radius:14px;margin-bottom:24px;padding:16px;box-shadow:0 4px 12px #0000000a}.purchase-pack-label{color:#94a3b8;letter-spacing:.8px;margin-bottom:4px;font-size:10px;font-weight:800}.purchase-pack-name{font-family:var(--font-display,"Space Grotesk", sans-serif);color:#0f172a;margin-bottom:10px;font-size:17px;font-weight:800;display:block}.purchase-coins-credited{background:#fef3c7;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;display:flex}.purchase-plus{color:#d97706;font-size:20px;font-weight:900}.purchase-coin-count{font-family:var(--font-mono,"JetBrains Mono", monospace);color:#b45309;font-size:22px;font-weight:900}.purchase-coin-tag{color:#92400e;letter-spacing:.5px;font-size:12px;font-weight:800}.purchase-confirm-btn{color:#fff;width:100%;font-family:var(--font-display,"Space Grotesk", sans-serif);letter-spacing:.5px;cursor:pointer;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border:none;border-bottom:3.5px solid #b45309;border-radius:12px;padding:14px 20px;font-size:15px;font-weight:900;transition:all .15s ease-out;box-shadow:0 6px 18px #d9770659}.purchase-confirm-btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px #d9770673}.purchase-confirm-btn:active{border-bottom-width:1.5px;transform:translateY(1px)}.settings-overlay{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#f7f7f8d6;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px 20px;transition:opacity .25s cubic-bezier(.16,1,.3,1),visibility .25s;display:flex;position:fixed;inset:0;overflow-y:auto}.settings-overlay.hidden{display:none!important}.settings-container{flex-direction:column;gap:16px;width:100%;max-width:480px;animation:.25s cubic-bezier(.16,1,.3,1) settingsFadeIn;display:flex}@keyframes settingsFadeIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.settings-header{border-bottom:1.5px solid #0f172a1f;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.settings-title-group{flex-direction:column;gap:2px;display:flex}.settings-main-title{font-family:var(--font-main,sans-serif);letter-spacing:1.5px;color:var(--ink-primary);margin:0;font-size:20px;font-weight:800}.settings-sub-title{color:var(--ink-secondary);font-size:11.5px;font-weight:500}.settings-close-circle{width:36px;height:36px;color:var(--ink-primary);cursor:pointer;background:#ffffffe6;border:1.5px solid #0f172a26;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;box-shadow:0 1px 3px #0000000d}.settings-close-circle:hover{background:var(--ink-primary);color:#fff;border-color:var(--ink-primary);transform:scale(1.06)}.settings-close-circle:active{transform:scale(.95)}.settings-list{flex-direction:column;gap:10px;display:flex}.settings-row{-webkit-backdrop-filter:blur(8px);background:#ffffffc7;border:1.2px solid #0f172a14;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;transition:all .15s;display:flex;box-shadow:0 1px 3px #00000005}.settings-row:hover{background:#fffffff2;border-color:#0f172a2e;transform:translateY(-1px);box-shadow:0 4px 12px #0000000a}.settings-row.danger-border{background:#fef2f2bf;border-color:#ef444440}.settings-row.danger-border:hover{background:#fef2f2f2;border-color:#ef444473}.settings-label-wrap{flex-direction:column;gap:2px;display:flex}.settings-title{letter-spacing:.4px;color:var(--ink-primary);font-size:12.5px;font-weight:800}.settings-title.danger-text{color:#dc2626}.settings-desc{color:var(--ink-secondary);font-size:11px;font-weight:500}.settings-action-btn{font-family:var(--font-main);letter-spacing:.3px;background:var(--ink-primary);color:#fff;border:1.5px solid var(--ink-primary);cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 14px;font-size:11.5px;font-weight:700;transition:all .15s;box-shadow:0 1px 3px #00000014}.settings-action-btn:hover{background:#2b2b36;transform:translateY(-1px)}.settings-action-btn.secondary{color:var(--ink-primary);background:#fff;border-color:#0f172a2e}.settings-action-btn.secondary:hover{border-color:var(--ink-primary);background:#f1f5f9}.settings-action-btn.danger{background:#ef4444;border-color:#dc2626}.settings-action-btn.danger:hover{background:#dc2626}.settings-reset-btn{padding:7px 16px;font-size:11.5px}.settings-btn-group{align-items:center;gap:6px;display:flex}.settings-footer{justify-content:center;padding-top:6px;display:flex}.settings-done-pill{font-family:var(--font-main,sans-serif);letter-spacing:.8px;color:var(--ink-secondary);cursor:pointer;background:#ffffffd9;border:1.5px solid #0f172a1f;border-radius:999px;padding:8px 22px;font-size:11.5px;font-weight:800;transition:all .2s;box-shadow:0 1px 4px #0000000a}.settings-done-pill:hover{color:var(--ink-primary);border-color:var(--ink-primary);background:#fff;transform:translateY(-1px);box-shadow:0 3px 8px #00000014}.settings-done-pill:active{transform:translateY(0)}@keyframes reservePulse{0%,to{border-color:#8b5cf6}50%{border-color:#ec4899;box-shadow:0 0 10px #ec489966}}.currency-icon{vertical-align:middle;flex-shrink:0;width:20px;height:20px;display:inline-block}.currency-icon.inline{vertical-align:-2px;width:14px;height:14px;margin-bottom:2px;margin-right:3px}.test-wave-group{align-items:center;gap:6px;display:flex}.hud-test-btn{background:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid var(--ink-primary);font-family:var(--font-mono);color:var(--ink-primary);cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap;border-radius:8px;align-items:center;gap:4px;padding:8px 12px;font-size:11px;font-weight:700;transition:all .15s;display:flex}.hud-test-btn:hover{background:var(--ink-primary);color:#fff;box-shadow:var(--shadow-md);transform:translateY(-1px)}.hud-test-btn:active{transform:translateY(1px)}.hud-test-btn.danger{border-color:var(--accent-red);color:var(--accent-red)}.hud-test-btn.danger:hover{background:var(--accent-red);color:#fff}.hud-test-btn.gold-btn{color:#b45309;background:#fef3c7;border-color:#d97706}.hud-test-btn.gold-btn:hover{color:#fff;background:#f59e0b}.hud-btn{background:var(--card-bg);border:1.5px solid var(--ink-primary);width:40px;height:40px;font-family:var(--font-mono);color:var(--ink-primary);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:8px;justify-content:center;align-items:center;font-size:15px;font-weight:700;transition:all .15s;display:flex}.hud-btn:hover{background:var(--ink-primary);color:#fff;transform:translateY(-1px)}.hud-btn:active{transform:translateY(1px)}.placement-hint{background:var(--ink-primary);color:#fff;z-index:25;box-shadow:var(--shadow-md);pointer-events:auto;border-radius:20px;align-items:center;gap:12px;padding:8px 18px;font-size:13px;font-weight:600;display:flex;position:absolute;top:75px;left:50%;transform:translate(-50%)}.placement-hint.hidden{display:none}.cancel-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:12px;padding:3px 8px;font-size:11px;font-weight:700;transition:background .15s}.cancel-btn:hover{background:#ffffff59}#bottom-controls{z-index:15;pointer-events:none;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;bottom:24px;left:24px;right:24px}#bottom-controls .action-btn{pointer-events:auto}.action-btn{font-family:var(--font-main);letter-spacing:.8px;cursor:pointer;border-radius:22px;align-items:center;gap:6px;padding:9px 18px;font-size:12.5px;font-weight:700;transition:all .2s cubic-bezier(.2,.8,.2,1);display:flex;box-shadow:0 4px 14px #0000001f}.action-btn.attack-btn{color:#fff;background:#e74c3c;border:2px solid #c0392b;position:absolute;left:0;box-shadow:0 4px 14px #e74c3c66}.action-btn.attack-btn:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 6px 18px #e74c3c8c}.action-btn.army-btn,.action-btn.build-btn,.action-btn.wave-btn{background:var(--ink-primary);color:#fff;border:2px solid var(--ink-primary);padding:9px 18px}.action-btn.army-btn:hover,.action-btn.build-btn:hover,.action-btn.wave-btn:hover{color:#fff;background:#2a2a34;border-color:#2a2a34;transform:translateY(-2px);box-shadow:0 6px 16px #00000038}.action-btn.build-btn.active{background:#393946;border-color:#fff}.action-btn.wave-btn.active-wave{color:var(--accent-red);border-color:var(--accent-red);pointer-events:none;background:#fff;animation:1.6s ease-in-out infinite pulse-border}@keyframes pulse-border{0%{box-shadow:0 0 #e6194b66}70%{box-shadow:0 0 0 10px #e6194b00}to{box-shadow:0 0 #e6194b00}}.build-drawer{background:var(--card-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:2px solid var(--ink-primary);box-shadow:var(--shadow-lg);z-index:20;pointer-events:auto;border-radius:14px;width:680px;max-width:92vw;padding:14px 18px;transition:opacity .2s,transform .2s;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.build-drawer.hidden{opacity:0;pointer-events:none;transform:translate(-50%,20px)}.drawer-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.drawer-tabs{gap:8px;display:flex}.drawer-tab{font-family:var(--font-main);color:var(--ink-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700;transition:all .15s}.drawer-tab.active,.drawer-tab:hover{background:var(--ink-primary);color:#fff}.drawer-carousel-wrap{align-items:center;gap:8px;width:100%;display:flex;position:relative}.drawer-scroll-btn{border:1.5px solid var(--ink-primary);width:34px;min-width:34px;height:34px;color:var(--ink-primary);font-family:var(--font-main,system-ui);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:17px;font-weight:800;line-height:1;transition:all .15s;display:flex;box-shadow:0 2px 5px #00000014}.drawer-scroll-btn:hover:not(:disabled){background:var(--ink-primary);color:#fff;transform:scale(1.06);box-shadow:0 4px 10px #00000026}.drawer-scroll-btn:active:not(:disabled){transform:scale(.94)}.drawer-scroll-btn:disabled{opacity:.3;cursor:not-allowed;box-shadow:none;border-color:#cbd5e1}.building-cards-row{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;flex:1;gap:10px;min-width:0;padding-bottom:6px;display:flex;overflow-x:auto}.building-cards-row::-webkit-scrollbar{height:4px}.building-cards-row::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.building-card{border:1.5px solid var(--border-subtle);text-align:center;cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;border-radius:8px;flex-direction:column;flex:0 0 115px;align-items:center;gap:4px;padding:10px 8px;transition:all .18s;display:flex}.building-card:active{cursor:grabbing}.building-card:hover:not(.disabled){border-color:var(--ink-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.building-card.disabled{opacity:.45;border-color:var(--border-subtle);cursor:not-allowed!important;transform:none!important}.building-card.no-builder{opacity:.6;position:relative;border-color:#fca5a5!important}.building-card.no-builder:after{content:"🔨 BUSY";color:#fff;letter-spacing:.4px;pointer-events:none;background:#ef4444eb;border-radius:4px;padding:1px 4.5px;font-size:8.5px;font-weight:800;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #0003}.building-card.locked{opacity:.58;background:#f8fafc;position:relative;cursor:not-allowed!important;border-color:#cbd5e1!important;transform:none!important}.building-card.locked:hover{box-shadow:none!important;border-color:#94a3b8!important;transform:none!important}.building-card.locked .bldg-card-preview{filter:grayscale(.85)contrast(.9);opacity:.7}.bldg-card-lock-badge{color:#f8fafc;font-family:var(--font-mono,monospace);letter-spacing:.4px;pointer-events:none;z-index:2;background:#1e293b;border-radius:4px;align-items:center;gap:3px;padding:1.5px 5px;font-size:8px;font-weight:800;display:inline-flex;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #00000040}.bldg-card-lock-badge svg{flex-shrink:0;width:9px;height:9px}.bldg-card-lock-tag{font-family:var(--font-mono,monospace);color:#64748b;background:#e2e8f0;border-radius:3px;align-items:center;gap:2.5px;padding:1px 4px;font-size:9px;font-weight:700;display:inline-flex}.bldg-card-lock-tag svg{flex-shrink:0;width:9px;height:9px}.bldg-card-lock-center{color:#f8fafc;pointer-events:none;z-index:2;background:#0f172ad1;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:transform .15s,background .15s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0006}.building-card.locked:hover .bldg-card-lock-center{color:#fca5a5;background:#0f172af2;border-color:#f8717199;transform:translate(-50%,-50%)scale(1.1)}.bldg-card-count-badge{color:#f1f5f9;font-family:var(--font-mono,monospace);letter-spacing:.3px;pointer-events:none;z-index:2;background:#0f172ab8;border:1px solid #ffffff1f;border-radius:4px;padding:1.5px 5px;font-size:8px;font-weight:800;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #0003}.bldg-card-count-badge.max{color:#fff;background:#e11d48;border-color:#f43f5e}.bldg-card-limit-tag{font-family:var(--font-mono,monospace);color:#e11d48;background:#ffe4e6;border-radius:3px;padding:1px 4px;font-size:8.5px;font-weight:800}.building-card.max-limit{opacity:.75;background:#f8fafc;cursor:not-allowed!important;border-color:#cbd5e1!important}.building-card.max-limit:hover{box-shadow:none!important;transform:none!important}.building-card.max-limit .bldg-card-preview{opacity:.8}.bldg-card-preview{border:1px solid var(--border-subtle);background:#fafafc;border-radius:8px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:3px;transition:border-color .15s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px 3px #0000000a}.building-card:hover:not(.disabled) .bldg-card-preview{border-color:var(--ink-primary)}.bldg-card-canvas{width:54px;height:54px;display:block}.bldg-card-title{color:var(--ink-primary);white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:11px;font-weight:700;overflow:hidden}.bldg-card-meta{color:var(--ink-muted);align-items:center;gap:4px;font-size:10px;display:flex}.bldg-card-tile{font-family:var(--font-mono);background:#ececf0;border-radius:3px;padding:1px 4px;font-weight:600}.bldg-card-cost{font-family:var(--font-mono);color:var(--ink-primary);margin-top:2px;font-size:12px;font-weight:700}.bldg-card-desc{color:var(--ink-secondary);font-size:9.5px;line-height:1.2}.floating-panel{background:var(--card-bg,#fff);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:2px solid var(--ink-primary,#121214);z-index:25;pointer-events:auto;border-radius:16px;width:325px;max-width:calc(100vw - 36px);max-height:calc(100vh - 100px);padding:18px 20px;transition:opacity .22s,transform .22s cubic-bezier(.16,1,.3,1);position:absolute;inset:50% 24px auto auto;overflow:hidden auto;transform:translateY(-50%);box-shadow:0 16px 36px #00000024,0 2px 8px #0000000f}.floating-panel.hidden{opacity:0;pointer-events:none;transform:translateY(-50%)translate(30px)}.floating-panel::-webkit-scrollbar{width:4px}.floating-panel::-webkit-scrollbar-track{background:0 0}.floating-panel::-webkit-scrollbar-thumb{background:var(--border-subtle,#cbd5e1);border-radius:4px}.panel-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;display:flex}.panel-title-group{align-items:center;gap:10px;display:flex}.panel-icon{font-size:22px}.panel-title-group h3{color:var(--ink-primary);font-size:14px;font-weight:800}.badge{font-family:var(--font-mono);background:var(--ink-primary);color:#fff;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.close-card-btn{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px;font-weight:700}.close-card-btn:hover{color:var(--ink-primary)}.panel-desc{color:var(--ink-secondary);margin-bottom:12px;font-size:11.5px;line-height:1.35}.panel-stats-grid{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.floating-panel.military-building-panel{min-width:unset;border:2px solid var(--ink-primary);width:375px;max-width:calc(100vw - 32px);box-shadow:0 16px 36px #00000029, 0 3px 0 var(--ink-primary);border-radius:18px;padding:16px 18px}.bldg-military-section{margin:6px 0 10px}.bldg-training-section{border:1.5px solid var(--ink-primary);box-shadow:0 2px 0 var(--ink-primary);background:#f8fafc;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.bldg-training-header{color:var(--ink-secondary);justify-content:space-between;align-items:center;font-size:11px;font-weight:700;display:flex}.bldg-training-title{color:var(--ink-primary);letter-spacing:.4px;align-items:center;gap:5px;font-weight:800;display:flex}.bldg-cap-mini{font-family:var(--font-mono);color:#2d3748;background:#edf2f7;border:1px solid #cbd5e1;border-radius:4px;padding:2px 6px;font-size:10.5px;font-weight:700}.bldg-cap-bar-wrap{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:3px;width:100%;height:6px;margin-top:-2px;margin-bottom:2px;overflow:hidden}.bldg-cap-bar-fill{background:#10b981;border-radius:3px;height:100%;transition:width .25s}.bldg-cap-header{font-family:var(--font-mono,monospace);color:#fff;background:var(--ink-primary);border:1px solid var(--ink-primary);letter-spacing:.4px;vertical-align:middle;border-radius:6px;margin-left:6px;padding:2px 7px;font-size:10px;font-weight:800;display:inline-block}.bldg-cap-header.hidden{display:none!important}.panel-stats-grid{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:6px;margin-bottom:12px;padding:8px 12px;display:flex}.panel-stats-grid:empty{margin:0;display:none}.bldg-troop-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:4px 0 8px;display:grid}.bldg-troop-card{border:1.5px solid var(--ink-primary);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;box-shadow:0 2px 0 var(--ink-primary);box-sizing:border-box;background:#fff;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:center;gap:4px;min-height:128px;padding:6px 6px 8px;transition:transform .14s,box-shadow .14s,border-color .14s;display:flex;position:relative}.bldg-troop-card:hover:not(.disabled){box-shadow:0 4px 0 var(--ink-primary), 0 8px 16px #00000014;transform:translateY(-2px)}.bldg-troop-card:active:not(.disabled){box-shadow:0 1px 0 var(--ink-primary);transform:translateY(1px)}.bldg-troop-card.disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2);border-color:#94a3b8;box-shadow:0 1.5px #94a3b8}.bldg-troop-card.bldg-recruit-locked{opacity:.65;filter:grayscale(.35);cursor:not-allowed!important}.bldg-card-locked-badge{color:#fff;letter-spacing:.4px;z-index:5;background:linear-gradient(135deg,#ef4444 0%,#b91c1c 100%);border:1px solid #fff6;border-radius:5px;padding:2px 6px;font-size:8.5px;font-weight:900;position:absolute;top:5px;right:5px;box-shadow:0 1px 3px #00000040}.bldg-unit-stage{box-sizing:border-box;background:radial-gradient(circle at 50% 65%,#f1f5f9 0%,#e2e8f0 75%,#cbd5e1 100%);border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:100%;height:60px;margin-top:10px;display:flex;position:relative;overflow:hidden}.bldg-unit-stage canvas,.bldg-troop-card canvas,.bldg-troop-card .troop-preview-canvas,.bldg-troop-card .tank-preview-canvas,.bldg-troop-card .air-preview-canvas,.bldg-troop-card .research-preview-canvas{object-fit:contain;background:0 0;border:none;display:block;width:100%!important;height:100%!important}.bldg-unit-info{flex-direction:column;align-items:center;gap:1px;width:100%;display:flex}.bldg-troop-card .bldg-troop-name{font-family:var(--font-main);color:var(--ink-primary);text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;padding:0 2px;font-size:11px;font-weight:800;line-height:1.2;overflow:hidden}.bldg-troop-submeta{font-family:var(--font-mono,monospace);color:#64748b;font-size:9px;font-weight:700;line-height:1}.bldg-research-corner-badge{font-family:var(--font-mono,monospace);background:var(--ink-primary);color:#fff;pointer-events:none;z-index:2;letter-spacing:.3px;border-radius:4px;padding:2px 5px;font-size:9px;font-weight:800;line-height:1;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #00000026}.bldg-card-trained-badge{font-family:var(--font-mono,monospace);color:#fff;pointer-events:none;z-index:2;letter-spacing:.3px;background:#2563eb;border-radius:4px;padding:2px 5px;font-size:9px;font-weight:800;line-height:1;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #2563eb40}.bldg-card-space-badge{font-family:var(--font-mono,monospace);color:#475569;pointer-events:none;z-index:2;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;padding:2px 4px;font-size:8.5px;font-weight:700;line-height:1;position:absolute;top:4px;left:4px}.bldg-research-time-pill{font-family:var(--font-mono,monospace);color:#475569;pointer-events:none;z-index:2;background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;padding:2px 5px;font-size:8.5px;font-weight:700;line-height:1;position:absolute;top:4px;left:4px}.bldg-research-time-pill.maxed-pill{color:#059669;background:#f0fdf4;border-color:#86efac;font-weight:800}.bldg-research-time-pill.locked-pill{color:#dc2626;background:#fef2f2;border-color:#fca5a5;font-weight:800}.bldg-recruit-action-pill{background:var(--ink-primary);color:#fff;width:100%;font-family:var(--font-main);letter-spacing:.3px;border-radius:6px;justify-content:center;align-items:center;gap:3px;margin-top:2px;padding:4px;font-size:10px;font-weight:800;transition:background .12s;display:flex}.bldg-recruit-action-pill .currency-icon.inline{width:11px;height:11px;margin:0}.bldg-recruit-action-pill.disabled{color:#94a3b8;cursor:not-allowed;background:#e2e8f0}.bldg-troop-card.bldg-research-card{cursor:default;gap:3px;min-height:130px;padding:6px 6px 7px;position:relative}.bldg-troop-card.bldg-research-card:hover{box-shadow:0 2px 0 var(--ink-primary);transform:none}.bldg-troop-card.maxed{background:#f0fdf4;border-color:#10b981;box-shadow:0 2px #10b981}.bldg-troop-card.bldg-research-card.maxed .bldg-research-corner-badge{color:#fff;background:#059669}.bldg-research-upgrade-btn{background:var(--ink-primary);color:#fff;border:1.5px solid var(--ink-primary);width:100%;font-family:var(--font-main);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;gap:4px;margin-top:2px;padding:5px 4px;font-size:10px;font-weight:800;line-height:1.2;transition:all .14s;display:inline-flex;box-shadow:0 2px #0006}.bldg-research-upgrade-btn:hover:not(:disabled){background:#2b2b36;border-color:#2b2b36;transform:translateY(-1px);box-shadow:0 3px #00000080}.bldg-research-upgrade-btn:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px #0006}.bldg-research-upgrade-btn:disabled{color:#94a3b8;cursor:not-allowed;box-shadow:none;background:#e2e8f0;border-color:#cbd5e1;transform:none}.bldg-research-upgrade-btn.maxed{color:#fff;cursor:default;background:#10b981;border-color:#059669;padding:5px 4px;font-weight:800;box-shadow:0 2px #059669}.bldg-research-upgrade-btn.busy{color:#94a3b8;box-shadow:none;cursor:not-allowed;background:#f1f5f9;border:1px dashed #cbd5e1}.bldg-research-upgrade-btn.locked{color:#64748b;box-shadow:none;cursor:not-allowed;background:#f8fafc;border:1.5px solid #cbd5e1;font-size:8.5px;font-weight:800}.bldg-troop-card.bldg-research-card.locked{opacity:.65;filter:grayscale(.7);background:#f8fafc;border-color:#cbd5e1}.bldg-research-upgrade-btn svg{vertical-align:middle;width:11px;height:11px;display:inline-block}.bldg-troop-card.bldg-research-card.researching{background:#f0f9ff;border-color:#0284c7;animation:2.4s ease-in-out infinite researchGlowPulse;box-shadow:0 2px #0284c7,0 0 14px #0ea5e940}@keyframes researchGlowPulse{0%,to{border-color:#0284c7;box-shadow:0 2px #0284c7,0 0 8px #0ea5e933}50%{border-color:#38bdf8;box-shadow:0 2px #38bdf8,0 0 16px #0ea5e966}}.bldg-research-corner-badge.active{color:#fff;background:#0284c7;padding:2px 4px;font-size:8.5px}.bldg-research-timer-row{justify-content:center;align-items:center;width:100%;display:flex}.bldg-research-countdown-text{font-family:var(--font-mono,monospace);color:#0284c7;text-align:center;font-size:10px;font-weight:800;line-height:1.1}.bldg-research-prog-bar{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:999px;width:100%;height:5px;margin:1px 0 2px;overflow:hidden}.bldg-research-prog-fill{background:linear-gradient(90deg,#0284c7 0%,#38bdf8 100%);border-radius:999px;height:100%;transition:width .25s linear}.bldg-research-speedup-btn{color:#fff;width:100%;font-family:var(--font-main);cursor:pointer;-webkit-user-select:none;user-select:none;background:#10b981;border:1.5px solid #059669;border-radius:6px;justify-content:center;align-items:center;gap:3px;margin-top:1px;padding:5px 3px;font-size:10px;font-weight:800;line-height:1.2;transition:all .14s;display:inline-flex;box-shadow:0 2px #059669}.bldg-research-speedup-btn:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:0 3px #047857}.bldg-research-speedup-btn:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px #047857}.bldg-research-speedup-btn:disabled{color:#94a3b8;cursor:not-allowed;box-shadow:none;background:#e2e8f0;border-color:#cbd5e1;transform:none}.bldg-troop-card:last-child:nth-child(odd){grid-column:span 2;width:100%;max-width:155px;margin:0 auto}.bldg-troop-controls{align-items:center;gap:5px;margin-left:8px;display:flex}.troop-ctrl-btn{width:26px;height:26px;font-family:var(--font-main);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;font-size:14px;font-weight:800;transition:all .12s;display:flex}.troop-minus-btn{color:#4a5568;background:#edf2f7;border:1.5px solid #cbd5e0}.troop-minus-btn:hover:not(:disabled){color:#e53e3e;background:#fed7d7;border-color:#feb2b2}.troop-minus-btn:disabled{opacity:.35;cursor:not-allowed}.troop-plus-btn{color:#fff;background:#10b981;border:1.5px solid #059669}.troop-plus-btn:hover:not(:disabled){background:#059669;transform:scale(1.06)}.troop-plus-btn:disabled{color:#a0aec0;cursor:not-allowed;background:#e2e8f0;border-color:#cbd5e0}.troop-count-badge{font-family:var(--font-mono);text-align:center;min-width:20px;color:var(--ink-primary);font-size:12px;font-weight:700}.stationed-list{flex-wrap:wrap;gap:6px;margin:4px 0;display:flex}.stationed-tag{font-size:10.5px;font-family:var(--font-main);color:#2d3748;background:#edf2f7;border:1px solid #cbd5e0;border-radius:6px;padding:3px 8px}.stat-row{justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.stat-row.highlight{background:#f0f0f4;border-radius:4px;padding:4px 6px;font-weight:600}.stat-name{color:var(--ink-secondary)}.stat-val{font-family:var(--font-mono);color:var(--ink-primary);font-weight:600}.panel-actions-row{align-items:stretch;gap:8px;width:100%;margin-top:14px;display:flex}.panel-actions-row button{min-width:0;font-family:var(--font-main);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:9px 6px;transition:all .16s;display:flex;box-shadow:0 2px 6px #0000000d}.panel-actions-row span:first-child{letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:800;line-height:1.15;overflow:hidden}.panel-actions-row span:last-child{font-family:var(--font-mono,monospace);white-space:nowrap;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:700;line-height:1.15;display:inline-flex}.panel-actions-row .currency-icon.inline{vertical-align:middle;width:12px;height:12px;margin:0}.panel-actions-row .primary-btn{background:var(--ink-primary);color:#fff;border:1.5px solid var(--ink-primary);flex:1.3 1 0}.panel-actions-row .primary-btn:hover:not(:disabled){color:#fff;background:#2b2b36;border-color:#2b2b36;transform:translateY(-1.5px);box-shadow:0 4px 12px #0000002e}.panel-actions-row .primary-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.panel-actions-row .repair-btn{color:#059669;background:#f0fdf4;border:1.5px solid #10b981;flex:1 1 0}.panel-actions-row .repair-btn:hover:not(:disabled){color:#fff;background:#10b981;border-color:#10b981;transform:translateY(-1.5px);box-shadow:0 4px 12px #10b98140}.panel-actions-row .repair-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.panel-actions-row .speedup-gold-btn{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border:1.5px solid #b45309;flex:1.3 1 0;font-weight:800;box-shadow:0 2px #92400e,0 4px 10px #d9770640}.panel-actions-row .speedup-gold-btn:hover:not(:disabled){color:#fff;background:linear-gradient(135deg,#fbbf24 0%,#f59e0b 100%);border-color:#92400e;transform:translateY(-1.5px);box-shadow:0 3px #92400e,0 6px 14px #d9770659}.panel-actions-row .speedup-gold-btn:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px #92400e}.panel-actions-row .speedup-gold-btn:disabled{opacity:.55;color:#94a3b8;box-shadow:none;cursor:not-allowed;background:#f1f5f9;border-color:#cbd5e1;transform:none}.panel-actions-row .danger-btn{color:#dc2626;background:#fef2f2;border:1.5px solid #ef4444;flex:.9 1 0}.panel-actions-row .danger-btn:hover:not(:disabled){color:#fff;background:#ef4444;border-color:#ef4444;transform:translateY(-1.5px);box-shadow:0 4px 12px #ef444440}.primary-btn{background:var(--ink-primary);color:#fff;border:1.5px solid var(--ink-primary);width:100%;font-family:var(--font-main);cursor:pointer;border-radius:6px;padding:10px;font-size:13px;font-weight:700;transition:all .15s}.primary-btn:hover:not(:disabled){color:var(--ink-primary);background:#fff}.primary-btn:disabled{opacity:.45;cursor:not-allowed}.danger-btn{color:var(--accent-red);border:1.5px solid var(--accent-red);font-family:var(--font-main);cursor:pointer;background:#fff;border-radius:6px;padding:10px 12px;font-size:12px;font-weight:700;transition:all .15s}.danger-btn:hover{background:var(--accent-red);color:#fff}.repair-btn{color:#059669;font-family:var(--font-main);cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #10b981;border-radius:6px;padding:10px 14px;font-size:12px;font-weight:700;transition:all .15s}.repair-btn:hover:not(:disabled){color:#fff;background:#10b981}.repair-btn:disabled{opacity:.45;cursor:not-allowed}.bldg-hp-bar-track{background:#0f172a14;border-radius:999px;width:100%;height:6px;margin:3px 0 6px;overflow:hidden}.bldg-hp-bar-fill{background:#10b981;border-radius:999px;height:100%;transition:width .25s,background-color .25s}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;background:#f7f7f8d9;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .25s;display:flex;position:absolute;top:0;left:0}.auth-modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(12px);background:#121214c7}.auth-card{border:2px solid var(--ink-primary);text-align:center;background:#fff;border-radius:20px;flex-direction:column;align-items:center;width:90%;max-width:440px;padding:34px 32px 26px;display:flex;box-shadow:0 24px 64px #00000047}.auth-header{flex-direction:column;align-items:center;margin-bottom:20px;display:flex}.auth-crest{background:var(--ink-primary);color:#fff;border-radius:16px;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:12px;display:flex;box-shadow:0 6px 16px #12121440}.auth-shield-icon{width:30px;height:30px}.auth-title{letter-spacing:1.5px;color:var(--ink-primary);margin-bottom:6px;font-size:22px;font-weight:800}.auth-subtitle{color:var(--ink-secondary);max-width:330px;font-size:13px;line-height:1.45}.auth-body{flex-direction:column;gap:14px;width:100%;display:flex}.auth-field{flex-direction:column;align-items:flex-start;gap:6px;width:100%;display:flex}.auth-label{letter-spacing:.8px;color:var(--ink-primary);text-transform:uppercase;font-size:11px;font-weight:700}.auth-input-wrap{width:100%}.auth-input{border:1.5px solid var(--border-subtle);width:100%;color:var(--ink-primary);box-sizing:border-box;background:#fbfbfd;border-radius:10px;outline:none;padding:12px 14px;font-size:14px;font-weight:600;transition:border-color .2s,box-shadow .2s}.auth-input:focus{border-color:var(--ink-primary);background:#fff;box-shadow:0 0 0 3px #12121414}.auth-hint{color:var(--ink-muted);text-align:left;font-size:11px;line-height:1.35}.auth-status-msg{text-align:left;box-sizing:border-box;border-radius:8px;width:100%;padding:10px 14px;font-size:12px;font-weight:600;line-height:1.4}.auth-status-msg.error{color:#991b1b;background:#fee2e2;border:1px solid #f87171}.auth-status-msg.info{color:#0369a1;background:#e0f2fe;border:1px solid #7dd3fc}.google-auth-btn{color:#1f2937;width:100%;font-family:var(--font-main);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1.5px solid #d1d5db;border-radius:10px;justify-content:center;align-items:center;gap:12px;padding:13px 20px;font-size:14px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 2px 6px #0000000f}.google-auth-btn:hover{background:#f9fafb;border-color:#9ca3af;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.google-auth-btn:active{background:#f3f4f6;transform:translateY(0)}.google-auth-btn:disabled{opacity:.65;cursor:not-allowed;transform:none!important}.google-g-icon{flex-shrink:0;width:20px;height:20px}.auth-perks{border-top:1px solid #e5e7eb;justify-content:space-between;width:100%;margin-top:20px;padding-top:16px;display:flex}.auth-perk{color:var(--ink-secondary);align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.auth-perk-icon{width:15px;height:15px;color:var(--ink-muted);flex-shrink:0}.profile-card{border:2px solid var(--ink-primary);text-align:left;box-sizing:border-box;background:#fff;border-radius:18px;flex-direction:column;width:92%;max-width:440px;padding:24px 26px;display:flex;box-shadow:0 20px 50px #00000038}.profile-card-header{justify-content:space-between;align-items:flex-start;gap:12px;width:100%;margin-bottom:18px;display:flex}.profile-title-group{align-items:center;gap:12px;display:flex}.profile-badge-icon{background:var(--ink-primary);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.profile-badge-icon svg{width:20px;height:20px}.profile-title-text-wrap{flex-direction:column;gap:2px;display:flex}.profile-modal-title{letter-spacing:.8px;color:var(--ink-primary);margin:0;font-size:17px;font-weight:800}.profile-modal-subtitle{color:var(--ink-secondary);margin:0;font-size:12px;line-height:1.35}.profile-card-body{flex-direction:column;width:100%;display:flex}.profile-account-pill{box-sizing:border-box;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;width:100%;margin-bottom:18px;padding:10px 14px;display:flex}.profile-account-left{align-items:center;gap:10px;min-width:0;display:flex}.profile-google-icon{flex-shrink:0;width:20px;height:20px}.profile-account-info{flex-direction:column;gap:1px;min-width:0;display:flex}.profile-account-label{letter-spacing:.6px;color:var(--ink-muted);text-transform:uppercase;font-size:9.5px;font-weight:700}.profile-account-email{color:var(--ink-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.profile-status-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-left:10px;box-shadow:0 0 0 3px #10b98133}.profile-field-group{flex-direction:column;gap:6px;width:100%;margin-bottom:20px;display:flex}.profile-field-header{justify-content:space-between;align-items:center;width:100%;display:flex}.profile-field-label{letter-spacing:.8px;color:var(--ink-primary);text-transform:uppercase;font-size:11px;font-weight:700}.profile-char-count{font-family:var(--font-mono);color:var(--ink-muted);font-size:11px;font-weight:600}.profile-input-wrap{width:100%}.profile-text-input{width:100%;font-family:var(--font-main);border:1.5px solid var(--border-subtle);color:var(--ink-primary);box-sizing:border-box;background:#fbfbfd;border-radius:10px;outline:none;padding:12px 14px;font-size:15px;font-weight:600;transition:all .2s}.profile-text-input:focus{border-color:var(--ink-primary);background:#fff;box-shadow:0 0 0 3px #12121414}.profile-field-hint{color:var(--ink-muted);font-size:11px;line-height:1.35}.profile-actions-row{gap:10px;width:100%;display:flex}.profile-btn{font-family:var(--font-main);letter-spacing:.4px;cursor:pointer;box-sizing:border-box;border-radius:10px;flex:1;padding:12px 16px;font-size:14px;font-weight:700;transition:all .2s}.profile-btn-secondary{color:var(--ink-secondary);background:#f3f4f6;border:1.5px solid #e5e7eb}.profile-btn-secondary:hover{color:var(--ink-primary);background:#e5e7eb}.profile-btn-primary{background:var(--ink-primary);color:#fff;border:1.5px solid var(--ink-primary)}.profile-btn-primary:hover{background:#27272a;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.profile-btn:active{transform:translateY(0)}@media (width<=480px){.profile-card{width:calc(100vw - 28px);padding:20px 18px}.profile-modal-title{font-size:16px}.profile-modal-subtitle{font-size:11px}}.modal-overlay.hidden{opacity:0;pointer-events:none;visibility:hidden;display:none!important}.modal-card{border:2px solid var(--ink-primary);text-align:center;box-shadow:var(--shadow-lg);background:#fff;border-radius:14px;width:90%;max-width:400px;padding:36px 44px;animation:.3s cubic-bezier(.18,.89,.32,1.28) modal-pop}@keyframes modal-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}#modal-title{letter-spacing:1px;color:var(--ink-primary);margin-bottom:8px;font-size:26px;font-weight:800}#modal-subtitle{color:var(--ink-secondary);margin-bottom:24px;font-size:14px;line-height:1.4}.modal-stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px;display:grid}.modal-stat-box{background:var(--bg-color);border:1px solid var(--border-subtle);border-radius:8px;flex-direction:column;gap:4px;padding:12px 8px;display:flex}.m-label{color:var(--ink-secondary);letter-spacing:.5px;font-size:11px;font-weight:600}.m-val{font-family:var(--font-mono);color:var(--ink-primary);font-size:20px;font-weight:700}.modal-btn{background:var(--ink-primary);color:#fff;border:2px solid var(--ink-primary);width:100%;font-family:var(--font-main);letter-spacing:1px;cursor:pointer;border-radius:8px;padding:14px;font-size:15px;font-weight:700;transition:all .2s}.modal-btn:hover{color:var(--ink-primary);background:#fff}.zoom-controls{background:var(--card-bg,#fff);border:1.5px solid var(--ink-primary);z-index:15;pointer-events:auto;-webkit-user-select:none;user-select:none;border-radius:18px;align-items:center;gap:1px;padding:2px 4px;transition:transform .2s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;bottom:20px;right:20px;box-shadow:0 2px 8px #00000014}.zoom-controls:hover{box-shadow:0 4px 12px #0000001f}.zoom-btn{width:22px;height:22px;font-family:var(--font-mono);color:var(--ink-primary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;transition:all .15s;display:flex}.zoom-btn:hover{background:var(--ink-primary);color:#fff}.zoom-btn:active{transform:scale(.9)}.zoom-level-btn{font-family:var(--font-mono);color:var(--ink-secondary);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:4px;min-width:36px;padding:2px 5px;font-size:10.5px;font-weight:700;transition:all .15s}.zoom-level-btn:hover{color:var(--ink-primary);background:#18181b14}.zoom-level-btn:active{transform:scale(.95)}@media (width<=600px){#hud{gap:6px;top:10px;left:10px;right:10px}.camp-health-box{padding:6px 10px}.health-bar-bg{width:80px}.hud-pill{padding:6px 10px}.build-drawer{width:95vw}}.btn-icon{font-size:14px}.drawer-tab[data-cat=military].active{color:#d35400;border-bottom-color:#e67e22}.drawer-tab[data-cat=attraction].active{color:#0891b2;border-bottom-color:#06b6d4}.army-card{width:92vw;max-width:680px;max-height:88vh;padding:24px 28px;overflow-y:auto}.army-cap-progress-bar{background:#edf2f7;border:1px solid #cbd5e0;border-radius:4px;width:100%;height:8px;margin:10px 0 16px;overflow:hidden}.army-cap-fill{background:linear-gradient(90deg,#3498db,#2ecc71);height:100%;transition:width .3s}.troop-roster-grid{-webkit-user-select:none;user-select:none;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:12px;max-height:54vh;margin-bottom:20px;padding:6px 4px;display:grid;overflow-y:auto}.roster-grid-card{cursor:pointer;touch-action:manipulation;background:#fff;border:2px solid #e2e8f0;border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:center;padding:10px 8px 12px;transition:transform .12s,box-shadow .15s,border-color .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 6px #0000000a}.roster-grid-card:hover:not(.card-disabled){border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 14px #3b82f638}.roster-grid-card.is-pressing:not(.card-disabled){background:#eff6ff;border-color:#2563eb;transform:scale(.93);box-shadow:0 0 0 2px #2563eb59}.roster-card-count-badge{color:#fff;font-family:var(--font-mono,monospace);z-index:2;pointer-events:none;background:#2563eb;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:800;position:absolute;top:6px;right:6px;box-shadow:0 2px 4px #0003}.roster-card-untrain-btn{color:#ef4444;cursor:pointer;z-index:3;background:#fee2e2;border:1px solid #fca5a5;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:14px;font-weight:800;line-height:1;transition:transform .12s,background .12s;display:flex;position:absolute;top:6px;left:6px}.roster-card-untrain-btn:hover{color:#fff;background:#ef4444;transform:scale(1.12)}.roster-obj-wrap{pointer-events:none;background:radial-gradient(circle,#f8fafc 0%,#e2e8f0 100%);border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;width:100%;height:76px;margin-bottom:8px;display:flex;overflow:hidden}.roster-3d-canvas{object-fit:contain;width:100%;height:100%;display:block}.roster-card-name{color:#1e293b;text-align:center;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;width:100%;margin-bottom:4px;font-size:12.5px;font-weight:700;line-height:1.25;overflow:hidden}.roster-card-lvl{color:#475569;text-align:center;pointer-events:none;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.roster-grid-card.card-disabled{opacity:.52;filter:grayscale(.7);cursor:not-allowed;background:#f8fafc;border-color:#cbd5e1}.roster-grid-card.card-disabled:hover{transform:none;box-shadow:0 2px 6px #0000000a}.roster-lock-badge{color:#f8fafc;text-align:center;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:2;background:#0f172aeb;border-radius:5px;padding:3px 4px;font-size:10px;font-weight:700;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden;box-shadow:0 2px 5px #0000004d}.modal-actions-row{border-top:1.5px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:16px;display:flex}.army-action-btn{font-family:var(--font-main,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);letter-spacing:.6px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-size:13px;font-weight:800;transition:all .16s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 2px 5px #0000000d}.army-action-btn .btn-icon{flex-shrink:0;transition:transform .15s}.quick-fill-btn{color:#1d4ed8;background:linear-gradient(#eff6ff 0%,#dbeafe 100%);border:1.5px solid #93c5fd;flex:1.1}.quick-fill-btn:hover{color:#fff;background:linear-gradient(#2563eb 0%,#1d4ed8 100%);border-color:#1d4ed8;transform:translateY(-2px);box-shadow:0 6px 16px #2563eb52}.quick-fill-btn:hover .btn-icon{transform:scale(1.18)rotate(-8deg)}.dismiss-all-btn{color:#dc2626;background:linear-gradient(#fef2f2 0%,#fee2e2 100%);border:1.5px solid #fca5a5;flex:1.1}.dismiss-all-btn:hover{color:#fff;background:linear-gradient(#ef4444 0%,#dc2626 100%);border-color:#dc2626;transform:translateY(-2px);box-shadow:0 6px 16px #dc262652}.dismiss-all-btn:hover .btn-icon{transform:scale(1.15)}.done-army-btn{color:#fff;background:linear-gradient(#1e293b 0%,#0f172a 100%);border:1.5px solid #0f172a;flex:1.5}.done-army-btn:hover{background:linear-gradient(#334155 0%,#1e293b 100%);border-color:#1e293b;transform:translateY(-2px);box-shadow:0 6px 18px #0f172a59}.army-action-btn:active{transform:translateY(1px);box-shadow:0 1px 3px #0000001a}.secondary-btn{color:#2563eb;font-family:var(--font-main,inherit);cursor:pointer;background:#eff6ff;border:1.5px solid #93c5fd;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:12px;font-weight:700;transition:all .15s;display:inline-flex}.secondary-btn:hover{color:#fff;background:#2563eb;border-color:#2563eb;transform:translateY(-1.5px);box-shadow:0 4px 12px #2563eb40}@media (width<=520px){.modal-actions-row{flex-wrap:wrap}.quick-fill-btn,.dismiss-all-btn{flex:45%}.done-army-btn{flex:100%;order:3}}.scouting-banner{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#fffffff2;border:2px solid #1a202c;border-radius:12px;justify-content:space-between;align-items:center;gap:24px;width:90vw;max-width:720px;padding:12px 20px;display:flex;position:absolute;top:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #0000002e}.scout-info{flex-direction:column;gap:4px;display:flex}.scout-title{align-items:center;gap:8px;display:flex}.scout-label{color:#718096;font-size:11px;font-weight:700}.scout-name{color:#1a202c;font-size:16px;font-weight:700}.scout-loot{align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.highlight-gold{color:#d69e2e;font-weight:700;font-family:var(--font-mono)}.highlight-trophy{color:#b7791f;font-weight:700}.scout-actions{align-items:center;gap:8px;display:flex}.scout-btn{font-family:var(--font-main);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700;transition:all .15s}.scout-btn.next-btn{color:#2d3748;background:#edf2f7;border:1.5px solid #cbd5e0}.scout-btn.next-btn:hover{background:#e2e8f0}.scout-btn.attack-btn-go{color:#fff;background:#e53e3e;border:1.5px solid #c53030;box-shadow:0 4px 10px #e53e3e59}.scout-btn.attack-btn-go:hover{background:#c53030;transform:scale(1.04)}.scout-btn.cancel-btn-go{color:#4a5568;background:#fff;border:1.5px solid #a0aec0}.scout-btn.cancel-btn-go:hover{background:#edf2f7}.matchmaking-loader{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0f172ab8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader-content{background:#fff;border:2px solid #1a202c;border-radius:20px;flex-direction:column;align-items:center;gap:16px;padding:32px 40px;animation:.25s cubic-bezier(.175,.885,.32,1.275) popIn;display:flex;box-shadow:0 20px 40px #00000047}.circular-spinner{width:58px;height:58px;animation:1.4s linear infinite rotateSpinner}.circular-spinner svg{width:100%;height:100%}.spinner-track{stroke:#edf2f7}.spinner-circle{stroke:#3182ce;stroke-linecap:round;stroke-dasharray:125;stroke-dashoffset:35px;animation:1.4s ease-in-out infinite dashSpinner}@keyframes rotateSpinner{to{transform:rotate(360deg)}}@keyframes dashSpinner{0%{stroke-dashoffset:120px}50%{stroke-dashoffset:30px;transform:rotate(135deg)}to{stroke-dashoffset:120px;transform:rotate(450deg)}}.loader-text{font-family:var(--font-main);letter-spacing:.08em;color:#1a202c;font-size:15px;font-weight:800}.loader-subtext{color:#718096;font-size:13px;font-weight:500}.inline-spinner{border:2.5px solid #e2e8f0;border-top-color:#3182ce;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.8s linear infinite rotateSpinner;display:inline-block}.battle-hud{z-index:100;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:18px;left:20px;right:20px}.battle-hud-left,.battle-hud-center,.battle-hud-right{pointer-events:auto}.battle-hud-left{gap:8px;display:flex}.destruction-meter-wrap{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:2px solid #1a202c;border-radius:12px;flex-direction:column;align-items:center;padding:8px 18px;display:flex;box-shadow:0 4px 14px #00000026}.stars-row{gap:8px;display:flex}.battle-star{color:#cbd5e0;font-size:20px;transition:color .25s,transform .25s}.battle-star.active{color:#f6e05e;text-shadow:0 0 8px #f6e05ecc;transform:scale(1.2)}.destruction-bar-bg{background:#e2e8f0;border-radius:3px;width:140px;height:6px;margin:4px 0 2px;overflow:hidden}.destruction-bar-fill{background:#e53e3e;height:100%;transition:width .3s}.destruction-text{font-size:11px;font-weight:700;font-family:var(--font-mono);color:#2d3748}.surrender-btn{color:#e53e3e;font-family:var(--font-main);cursor:pointer;background:#fff;border:2px solid #e53e3e;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700;box-shadow:0 4px 10px #0000001a}.surrender-btn:hover{color:#fff;background:#e53e3e}.battle-troop-tray{z-index:100;pointer-events:auto;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.deploy-hint-text{color:#fff;letter-spacing:.5px;background:#000000bf;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700}.battle-cards-row{-webkit-backdrop-filter:blur(12px);scrollbar-width:none;background:#fffffff2;border:2px solid #0f172a;border-radius:16px;align-items:center;gap:10px;max-width:95vw;padding:8px 14px;display:flex;overflow-x:auto;box-shadow:0 10px 28px #00000047}.battle-cards-row::-webkit-scrollbar{display:none}.battle-card{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#fff;border:2px solid #cbd5e1;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:center;width:74px;min-width:74px;height:90px;padding:6px 4px;transition:transform .15s,border-color .15s,box-shadow .15s,background-color .15s;display:flex;position:relative;overflow:visible}.battle-card:hover:not(.depleted){border-color:#3b82f6;transform:translateY(-4px);box-shadow:0 6px 16px #3b82f640}.battle-card.selected{background:#eff6ff;border-color:#2563eb;transform:translateY(-6px);box-shadow:0 0 0 3px #2563eb59,0 8px 20px #2563eb4d}.battle-card.depleted{opacity:.38;filter:grayscale(.85);cursor:not-allowed;box-shadow:none;background:#f1f5f9;border-color:#94a3b8;transform:none}.battle-card-canvas-wrap{pointer-events:none;background:radial-gradient(circle,#f8fafc 0%,#e2e8f0 100%);border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:100%;height:52px;display:flex;overflow:hidden}.battle-troop-canvas{object-fit:contain;width:100%;height:100%;display:block}.card-troop-name{color:#1e293b;text-align:center;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;width:100%;margin-top:3px;font-size:10px;font-weight:700;line-height:1.15;overflow:hidden}.no-troops-banner{color:#64748b;align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-weight:700;display:flex}.no-troops-icon{font-size:16px}.card-count-badge{color:#fff;font-size:11px;font-weight:700;font-family:var(--font-mono);background:#e53e3e;border:1.5px solid #fff;border-radius:10px;padding:1px 6px;position:absolute;top:-6px;right:-6px}.card-level-badge{color:#fff;font-size:9px;font-weight:800;font-family:var(--font-mono);background:#6b46c1;border:1.5px solid #fff;border-radius:8px;padding:1px 5px;position:absolute;top:-6px;left:-6px;box-shadow:0 2px 4px #0003}.roster-lvl-tag{color:#fff;background:#6b46c1;border-radius:6px;margin-left:4px;padding:1px 6px;font-size:10px;font-weight:800;display:inline-block}.battle-result-card{border:2.5px solid var(--ink-primary);background:#fff;border-radius:20px;width:92%;max-width:440px;position:relative;box-shadow:0 24px 64px #00000047,0 4px 12px #0000001a;padding:42px 28px 28px!important;overflow:visible!important}.battle-crest-banner{z-index:5;filter:drop-shadow(0 10px 22px #00000052);justify-content:center;align-items:center;margin:-102px auto 6px;animation:.5s cubic-bezier(.34,1.56,.64,1) forwards crestPopIn;display:flex;position:relative}.battle-crest-img{object-fit:contain;width:250px;max-width:90%;height:auto;display:block}@keyframes crestPopIn{0%{opacity:0;transform:translateY(-30px)scale(.65)}65%{transform:translateY(6px)scale(1.08)}85%{transform:translateY(-2px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.victory-title,.defeat-title{font-family:var(--font-main);letter-spacing:.6px;text-transform:uppercase;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:4px 0 8px;font-size:clamp(20px,4.4vw,24px);font-weight:800;line-height:1.25}.victory-title{color:var(--ink-primary)}.defeat-title{color:#dc2626}.result-stars-wrap{justify-content:center;align-items:center;margin:8px 0 12px;display:flex;position:relative}.result-stars-row{justify-content:center;align-items:center;gap:16px;display:flex}.big-star{color:#cbd5e1;filter:drop-shadow(0 2px 4px #00000026);font-size:44px;line-height:1;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:inline-block;transform:scale(.88)}.big-star.star-center{margin-top:-6px;font-size:58px}.big-star.active{color:#fbbf24;background:linear-gradient(#fff 0%,#fef08a 20%,#f59e0b 65%,#d97706 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px #78350f)drop-shadow(0 0 20px #f59e0be6);-webkit-background-clip:text}.big-star.pop.active{animation:.55s cubic-bezier(.34,1.56,.64,1) forwards starJuicyPop}.star-1.pop{animation-delay:.12s}.star-2.pop{animation-delay:.32s}.star-3.pop{animation-delay:.52s}@keyframes starJuicyPop{0%{opacity:0;transform:scale(.2)rotate(-25deg)}55%{transform:scale(1.4)rotate(10deg)}80%{transform:scale(.92)rotate(-4deg)}to{opacity:1;transform:scale(1)rotate(0)}}#b-result-subtitle{color:var(--ink-secondary);margin-bottom:20px;font-size:13.5px;font-weight:600;line-height:1.4}.battle-result-stats{grid-template-columns:1fr 1fr;gap:14px;margin:16px 0 24px;display:grid}.modal-stat-box.loot-stat-box,.modal-stat-box.trophy-stat-box{border:1.5px solid var(--ink-primary);background:#f8fafc;border-radius:12px;flex-direction:row;justify-content:center;align-items:center;gap:10px;padding:12px 14px;display:flex;box-shadow:0 2px 6px #0000000d}.modal-stat-icon.loot-currency-icon{filter:drop-shadow(0 1px 2px #0000001f);flex-shrink:0;width:26px;height:26px}.modal-stat-icon.trophy-stat-img{object-fit:contain;filter:drop-shadow(0 2px 4px #00000026);flex-shrink:0;width:28px;height:28px}.battle-result-stats .m-val{font-family:var(--font-mono);letter-spacing:.5px;color:var(--ink-primary);font-size:18px;font-weight:800}.battle-result-stats .m-val.highlight-gold{color:#b45309}.battle-result-stats .m-val.highlight-trophy{color:#2563eb}.text-input{width:100%;font-family:var(--font-main);border:1.5px solid #cbd5e0;border-radius:6px;outline:none;margin:12px 0 16px;padding:10px 14px;font-size:14px;font-weight:600}.text-input:focus{border-color:#3182ce}.cloud-transition{z-index:9999999;pointer-events:all;-webkit-user-select:none;user-select:none;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.cloud-transition.hidden{display:none!important}.cloud-bank{pointer-events:none;will-change:transform, opacity;position:absolute}.cloud-bank-tl{opacity:0;width:75vw;min-width:520px;height:75vh;min-height:520px;top:-10vw;left:-10vw;transform:translate(-115%,-115%)scale(.6)}.cloud-bank-tr{opacity:0;width:75vw;min-width:520px;height:75vh;min-height:520px;top:-10vw;right:-10vw;transform:translate(115%,-115%)scale(.6)}.cloud-bank-bl{opacity:0;width:75vw;min-width:520px;height:75vh;min-height:520px;bottom:-10vw;left:-10vw;transform:translate(-115%,115%)scale(.6)}.cloud-bank-br{opacity:0;width:75vw;min-width:520px;height:75vh;min-height:520px;bottom:-10vw;right:-10vw;transform:translate(115%,115%)scale(.6)}.cloud-svg{filter:drop-shadow(0 20px 30px #0f172a29);width:100%;height:100%}.cloud-bank-center{opacity:0;justify-content:center;align-items:center;width:120vw;height:120vh;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.15)}.cloud-puff-core{background:radial-gradient(circle,#fff 45%,#f8fafc 75%,#f1f5f900 100%);border-radius:50%;width:70vw;height:70vh;position:absolute}.cloud-puff-blob{background:radial-gradient(circle,#fff 50%,#f1f5f9 85%);border-radius:50%;position:absolute;box-shadow:0 10px 35px #3341551f}.cloud-puff-blob.blob-1{width:48vw;height:48vw;top:15%;left:20%}.cloud-puff-blob.blob-2{width:52vw;height:52vw;top:25%;right:18%}.cloud-puff-blob.blob-3{width:46vw;height:46vw;bottom:12%;left:28%}.cloud-puff-blob.blob-4{width:42vw;height:42vw;bottom:20%;right:25%}.cloud-transition.closing .cloud-bank-tl{animation:.48s cubic-bezier(.16,1,.3,1) forwards cloudsInTL}.cloud-transition.closing .cloud-bank-tr{animation:.48s cubic-bezier(.16,1,.3,1) forwards cloudsInTR}.cloud-transition.closing .cloud-bank-bl{animation:.48s cubic-bezier(.16,1,.3,1) forwards cloudsInBL}.cloud-transition.closing .cloud-bank-br{animation:.48s cubic-bezier(.16,1,.3,1) forwards cloudsInBR}.cloud-transition.closing .cloud-bank-center{animation:.48s cubic-bezier(.16,1,.3,1) forwards cloudsInCenter}.cloud-transition.closed .cloud-bank-tl,.cloud-transition.closed .cloud-bank-tr,.cloud-transition.closed .cloud-bank-bl,.cloud-transition.closed .cloud-bank-br{opacity:1;transform:translate(0)scale(1.15)}.cloud-transition.closed .cloud-bank-center{opacity:1;transform:translate(-50%,-50%)scale(1.1)}.cloud-transition.opening .cloud-bank-tl{animation:.62s cubic-bezier(.4,0,.2,1) forwards cloudsOutTL}.cloud-transition.opening .cloud-bank-tr{animation:.62s cubic-bezier(.4,0,.2,1) forwards cloudsOutTR}.cloud-transition.opening .cloud-bank-bl{animation:.62s cubic-bezier(.4,0,.2,1) forwards cloudsOutBL}.cloud-transition.opening .cloud-bank-br{animation:.62s cubic-bezier(.4,0,.2,1) forwards cloudsOutBR}.cloud-transition.opening .cloud-bank-center{animation:.62s cubic-bezier(.4,0,.2,1) forwards cloudsOutCenter}@keyframes cloudsInTL{0%{opacity:.1;transform:translate(-115%,-115%)scale(.6)}to{opacity:1;transform:translate(0)scale(1.15)}}@keyframes cloudsInTR{0%{opacity:.1;transform:translate(115%,-115%)scale(.6)}to{opacity:1;transform:translate(0)scale(1.15)}}@keyframes cloudsInBL{0%{opacity:.1;transform:translate(-115%,115%)scale(.6)}to{opacity:1;transform:translate(0)scale(1.15)}}@keyframes cloudsInBR{0%{opacity:.1;transform:translate(115%,115%)scale(.6)}to{opacity:1;transform:translate(0)scale(1.15)}}@keyframes cloudsInCenter{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)}50%{opacity:.8}to{opacity:1;transform:translate(-50%,-50%)scale(1.1)}}@keyframes cloudsOutTL{0%{opacity:1;transform:translate(0)scale(1.15)}to{opacity:0;transform:translate(-130%,-130%)scale(1.3)}}@keyframes cloudsOutTR{0%{opacity:1;transform:translate(0)scale(1.15)}to{opacity:0;transform:translate(130%,-130%)scale(1.3)}}@keyframes cloudsOutBL{0%{opacity:1;transform:translate(0)scale(1.15)}to{opacity:0;transform:translate(-130%,130%)scale(1.3)}}@keyframes cloudsOutBR{0%{opacity:1;transform:translate(0)scale(1.15)}to{opacity:0;transform:translate(130%,130%)scale(1.3)}}@keyframes cloudsOutCenter{0%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}35%{opacity:.95}to{opacity:0;transform:translate(-50%,-50%)scale(1.7)}}.cloud-transition-label{z-index:20;-webkit-backdrop-filter:blur(10px);pointer-events:none;background:#ffffffe0;border:1px solid #fffffff2;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:8px 22px;animation:1.4s ease-in-out infinite cloudLabelPulse;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 20px #0f172a14,0 1px 3px #0f172a0d}.cloud-transition-label.hidden{display:none!important}.cloud-transition-label span{font-family:var(--font-main,sans-serif);letter-spacing:.5px;color:#334155;text-shadow:0 1px 2px #ffffffe6;font-size:13px;font-weight:700}@keyframes cloudLabelPulse{0%,to{opacity:.92;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.04)}}.leaderboard-sidebar{z-index:25;pointer-events:auto;will-change:transform;width:320px;max-width:calc(100vw - 42px);height:72vh;min-height:380px;max-height:560px;transition:transform .32s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)translate(0)}.leaderboard-sidebar.collapsed{transform:translateY(-50%)translate(-100%)}.leaderboard-sidebar.hidden{display:none!important}.leaderboard-toggle-btn{background:var(--card-bg,#fffffff5);-webkit-backdrop-filter:blur(14px);border:1.5px solid var(--ink-primary);cursor:pointer;color:var(--ink-primary);-webkit-user-select:none;user-select:none;border-left:none;border-radius:0 12px 12px 0;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:10px 6px;transition:background .15s,transform .15s,box-shadow .15s;display:flex;position:absolute;top:50%;left:100%;transform:translateY(-50%);box-shadow:3px 4px 14px #0000001f}.leaderboard-toggle-btn:hover{background:#fff;transform:translateY(-50%)translate(3px);box-shadow:5px 6px 18px #0000002e}.leaderboard-toggle-btn:active{transform:translateY(-50%)translate(1px)}.lb-toggle-trophy{justify-content:center;align-items:center;display:flex}.lb-toggle-trophy-img{object-fit:contain;filter:drop-shadow(0 1px 2px #0003);width:17px;height:17px;display:block}.lb-toggle-text{font-family:var(--font-main);letter-spacing:2px;color:var(--ink-primary);writing-mode:vertical-rl;text-transform:uppercase;padding:4px 0;font-size:10.5px;font-weight:800;line-height:1;transform:rotate(180deg)}.lb-toggle-arrow{font-family:var(--font-mono);color:#2563eb;font-size:14px;font-weight:800;line-height:1;transition:transform .25s;display:inline-block}.leaderboard-sidebar:not(.collapsed) .lb-toggle-arrow{transform:rotate(180deg)}.lb-sidebar-content{background:var(--card-bg,#fffffff5);-webkit-backdrop-filter:blur(14px);border:1.5px solid var(--ink-primary);border-left:none;border-radius:0 14px 14px 0;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden;box-shadow:0 12px 36px #00000029}.lb-header{border-bottom:1.5px solid var(--border-subtle,#e2e8f0);background:#f8fafcd9;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.lb-title-group{align-items:center;gap:9px;display:flex}.lb-header-trophy{object-fit:contain;filter:drop-shadow(0 2px 4px #f59e0b4d);width:24px;height:24px}.lb-title-text-wrap{flex-direction:column;display:flex}.lb-title{font-family:var(--font-main);letter-spacing:.6px;color:var(--ink-primary);font-size:13.5px;font-weight:800;line-height:1.2}.lb-subtitle{color:var(--ink-secondary);font-size:10px;font-weight:500}.lb-actions{align-items:center;gap:5px;display:flex}.lb-action-icon-btn{border:1px solid var(--border-subtle,#d1d5db);cursor:pointer;width:26px;height:26px;color:var(--ink-secondary);background:0 0;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.lb-action-icon-btn:hover{color:var(--ink-primary);border-color:var(--ink-primary);background:#fff}.lb-action-icon-btn:active{transform:scale(.92)}.lb-refresh-icon.spinning{animation:.75s linear infinite lb-spin}@keyframes lb-spin{to{transform:rotate(360deg)}}.lb-player-card{background:#eff6ff;border:1.5px solid #3b82f6;border-radius:10px;justify-content:space-between;align-items:center;margin:10px 12px 6px;padding:8px 10px;display:flex;box-shadow:0 2px 6px #2563eb14}.lb-player-card-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.lb-rank-badge{min-width:26px;height:24px;font-family:var(--font-mono);box-sizing:border-box;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:800;display:inline-flex}.lb-rank-badge.rank-me{color:#fff;background:#2563eb;box-shadow:0 1px 3px #2563eb4d}.lb-player-details{flex-direction:column;min-width:0;display:flex}.lb-player-sub{letter-spacing:.5px;color:#2563eb;text-transform:uppercase;font-size:8.5px;font-weight:800}.lb-player-name{color:var(--ink-primary);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:12px;font-weight:800;overflow:hidden}.lb-player-card-right{background:#fff;border:1px solid #bfdbfe;border-radius:8px;flex-shrink:0;align-items:center;gap:5px;padding:3px 8px;display:flex}.lb-stat-trophy-img{object-fit:contain;width:15px;height:15px}.lb-my-trophies-val{font-family:var(--font-mono);color:#b45309;font-size:12.5px;font-weight:800}.lb-col-headers{font-family:var(--font-mono);letter-spacing:.5px;color:var(--ink-muted,#94a3b8);border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;padding:6px 14px 4px;font-size:9.5px;font-weight:700;display:flex}.lb-col-rank{width:32px}.lb-col-name{flex:1;padding-left:10px}.lb-col-trophies{text-align:right;width:70px}.lb-list-container{scroll-behavior:smooth;flex:1;padding:4px 6px 10px;overflow:hidden auto}.lb-list-container::-webkit-scrollbar{width:5px}.lb-list-container::-webkit-scrollbar-track{background:0 0}.lb-list-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.lb-list-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.lb-item{cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffffbf;border:1px solid #0000000a;border-radius:8px;justify-content:space-between;align-items:center;margin:3px 4px;padding:6px 8px;transition:background .12s,border-color .12s,transform .1s,box-shadow .12s;display:flex}.lb-item:hover{background:#fff;border-color:#93c5fd;transform:translate(2px);box-shadow:0 2px 6px #2563eb14}.lb-item:active{transform:scale(.98)}.lb-item.is-me{background:#2563eb14;border:1.5px solid #2563eb73}.lb-view-popover{z-index:100000;pointer-events:auto;filter:drop-shadow(0 6px 18px #00000059)drop-shadow(0 2px 6px #0003);will-change:transform, opacity;justify-content:center;align-items:center;animation:.16s cubic-bezier(.16,1,.3,1) forwards lbPopoverPopIn;display:flex;position:fixed}.lb-view-popover.hidden{display:none!important}@keyframes lbPopoverPopIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.lb-popover-view-btn{color:#fff;font-family:var(--font-main,sans-serif);letter-spacing:.4px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);border:1.5px solid #38bdf8;border-radius:20px;outline:none;align-items:center;gap:6px;padding:6px 14px;font-size:11.5px;font-weight:800;transition:all .15s;display:inline-flex;box-shadow:0 4px 14px #0284c759}.lb-popover-view-btn:hover{background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border-color:#7dd3fc;transform:translateY(-1px);box-shadow:0 6px 18px #0284c78c}.lb-popover-view-btn:active{transform:translateY(1px)}.lb-popover-arrow{pointer-events:none;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute}.lb-view-popover.placement-top .lb-popover-arrow{border-top:6px solid #38bdf8;border-bottom:none;bottom:-6px}.lb-view-popover.placement-bottom .lb-popover-arrow{border-top:none;border-bottom:6px solid #38bdf8;top:-6px}.lb-item.is-active-inspect,.lb-player-card.is-active-inspect{background:#eff6ff!important;border-color:#38bdf8!important;box-shadow:0 0 0 2px #38bdf859,0 2px 8px #0284c726!important}.spectate-banner{z-index:100;box-sizing:border-box;justify-content:space-between;align-items:center;gap:20px;width:calc(100vw - 32px);max-width:680px;padding:12px 20px;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%);-webkit-backdrop-filter:blur(12px)!important;background:#fff!important;border:1.5px solid #e2e8f0!important;border-radius:16px!important;box-shadow:0 10px 30px #0000001f,0 2px 6px #0000000a!important}.spectate-banner.hidden{display:none!important}.spectate-left{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.spectate-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spectate-label{color:#64748b;letter-spacing:.6px;text-transform:uppercase;font-size:11px;font-weight:800}.spectate-owner-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.2px;font-size:16px;font-weight:800;overflow:hidden}.spectate-th-pill{color:#334155;letter-spacing:.3px;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:800}.spectate-badge-tag{color:#2563eb;letter-spacing:.5px;text-transform:uppercase;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:800}.spectate-stats-row{align-items:center;gap:6px;font-size:12px;display:flex}.spectate-stat-label{color:#64748b;letter-spacing:.4px;font-size:11px;font-weight:700}.spectate-stat-val{color:#b45309;font-size:12px;font-weight:800;font-family:var(--font-mono,monospace)}.spectate-right{flex-shrink:0;align-items:center;display:flex}.spectate-home-action-btn{color:#fff;font-family:var(--font-main,inherit);letter-spacing:.5px;cursor:pointer;white-space:nowrap;background:#0f172a;border:1.5px solid #0f172a;border-radius:9px;justify-content:center;align-items:center;padding:9px 18px;font-size:12px;font-weight:800;transition:all .15s;display:inline-flex;box-shadow:0 2px 6px #0000001a}.spectate-home-action-btn:hover{background:#1e293b;border-color:#1e293b;transform:translateY(-1.5px);box-shadow:0 4px 12px #0f172a40}.spectate-home-action-btn:active{transform:translateY(1px)}.lb-item-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.lb-rank-badge.rank-1{color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px solid #f59e0b;box-shadow:0 1px 4px #f59e0b40}.lb-rank-badge.rank-2{color:#334155;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:1.5px solid #94a3b8;box-shadow:0 1px 4px #94a3b840}.lb-rank-badge.rank-3{color:#9a3412;background:linear-gradient(135deg,#ffedd5,#fed7aa);border:1.5px solid #f97316;box-shadow:0 1px 4px #f9731640}.lb-rank-badge.rank-other{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.lb-avatar-circle{width:24px;height:24px;color:var(--ink-primary);font-family:var(--font-main);background:#e2e8f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;overflow:hidden}.lb-avatar-img{object-fit:cover;width:100%;height:100%}.lb-player-info{flex-direction:column;min-width:0;display:flex}.lb-item-name-row{align-items:center;gap:5px;display:flex}.lb-item-name{font-family:var(--font-main);color:var(--ink-primary);white-space:nowrap;text-overflow:ellipsis;max-width:115px;font-size:12px;font-weight:700;overflow:hidden}.lb-you-tag{color:#fff;font-family:var(--font-mono);letter-spacing:.3px;background:#2563eb;border-radius:4px;flex-shrink:0;padding:1px 4px;font-size:8px;font-weight:800}.lb-item-stats{color:var(--ink-muted);font-size:9.5px;font-family:var(--font-mono)}.lb-item-right{flex-shrink:0;align-items:center;gap:4px;padding-left:6px;display:flex}.lb-item-trophy-img{object-fit:contain;width:14px;height:14px}.lb-item-trophies{font-family:var(--font-mono);color:#b45309;font-size:12px;font-weight:800}.lb-loading-state,.lb-empty-state{color:var(--ink-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:30px 15px;font-size:12px;display:flex}@media (width<=640px){.leaderboard-sidebar{width:290px;height:75vh;max-height:calc(100vh - 120px)}.lb-toggle-text{letter-spacing:1.5px;font-size:9.5px}.leaderboard-toggle-btn{padding:8px 5px}}.defense-report-card{text-align:center;background:#fff;border:2.5px solid #ef4444;border-radius:20px;width:92%;max-width:440px;position:relative;box-shadow:0 24px 64px #ef444438,0 4px 12px #0000001a;padding:32px 28px 24px!important}.defense-report-badge{color:#b91c1c;letter-spacing:1px;background:#fee2e2;border:1px solid #fca5a5;border-radius:20px;margin-bottom:8px;padding:4px 12px;font-size:11px;font-weight:800;display:inline-block}.defense-report-title{color:#1e293b;letter-spacing:-.5px;margin:4px 0 6px;font-size:20px;font-weight:900}.defense-report-subtitle{color:#64748b;margin-bottom:16px;font-size:13px;font-weight:600;line-height:1.4}.defense-report-stars{justify-content:center;gap:8px;margin-bottom:18px;font-size:28px;display:flex}.defense-result-stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.defense-loot-protected-notice{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;gap:6px;margin-bottom:20px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.highlight-danger{font-weight:800;color:#dc2626!important}body.tutorial-blur #game-canvas{filter:blur(8px)brightness(.8);transition:filter .3s cubic-bezier(.16,1,.3,1)}body.tutorial-placing #game-canvas{filter:none!important}.tutorial-root{z-index:99995;pointer-events:none;position:fixed;inset:0}.tutorial-backdrop{pointer-events:none;z-index:3;opacity:0;background:#0f172a59;transition:opacity .3s;position:fixed;inset:0}body.tutorial-blur .tutorial-backdrop{opacity:1}body.tutorial-placing .tutorial-backdrop{opacity:0!important}.tutorial-target{animation:1.1s ease-in-out infinite alternate tutorialTargetPulse!important;box-shadow:0 0 0 3.5px #e6194b,0 0 25px #e6194bd9!important}@keyframes tutorialTargetPulse{0%{box-shadow:0 0 0 3px #e6194b,0 0 14px #e6194b80}to{box-shadow:0 0 0 5.5px #e6194b,0 0 28px #e6194be0}}.building-card.tutorial-locked{opacity:.28!important;filter:grayscale()brightness(.65)!important;cursor:not-allowed!important}.building-card.tutorial-locked *{pointer-events:none!important}.tutorial-dialogue-card{-webkit-backdrop-filter:blur(14px);pointer-events:auto;z-index:100002;background:#fffffffa;border:2px solid #1e293b;border-radius:14px;width:min(540px,100vw - 28px);padding:16px 18px;animation:.4s cubic-bezier(.16,1,.3,1) forwards tutorialCardDrop;position:absolute;top:76px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #00000047,0 2px 8px #0000001a}@keyframes tutorialCardDrop{0%{opacity:0;transform:translate(-50%,-20px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}.tutorial-skip-btn{color:#64748b;font-family:var(--font-main,sans-serif);cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700;transition:all .15s;position:absolute;top:10px;right:12px}.tutorial-skip-btn:hover{color:#0f172a;background:#e2e8f0}.tutorial-card-body{align-items:flex-start;gap:14px;display:flex}.tutorial-avatar-wrap{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.tutorial-avatar{background:linear-gradient(135deg,#1e293b,#0f172a);border:2px solid #3b82f6;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;animation:2.2s ease-in-out infinite avatarBreath;display:flex;box-shadow:0 4px 12px #3b82f64d}@keyframes avatarBreath{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.tutorial-avatar-badge{color:#fff;font-family:var(--font-mono,monospace);letter-spacing:.5px;z-index:1;background:#e6194b;border-radius:4px;margin-top:-6px;padding:1.5px 5px;font-size:8.5px;font-weight:800;box-shadow:0 2px 4px #0003}.tutorial-content-wrap{flex:1;min-width:0;padding-right:45px}.tutorial-header-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.tutorial-step-tag{color:#f8fafc;font-family:var(--font-mono,monospace);letter-spacing:.5px;background:#0f172a;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:800}.tutorial-title{color:#0f172a;letter-spacing:.3px;text-transform:uppercase;font-size:14px;font-weight:800}.tutorial-text{color:#334155;margin-bottom:10px;font-size:13px;line-height:1.45}.tutorial-text strong{color:#0f172a;font-weight:700}.tutorial-action-row{justify-content:flex-end;display:flex}.tutorial-action-btn{color:#fff;font-family:var(--font-main,sans-serif);cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#e6194b,#be123c);border:none;border-radius:8px;padding:7px 16px;font-size:12px;font-weight:800;transition:all .15s;box-shadow:0 4px 12px #e6194b59}.tutorial-action-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #e6194b73}.tutorial-action-btn:active{transform:translateY(1px)}.tutorial-spotlight{pointer-events:none;z-index:100001;border-radius:10px;transition:all .18s cubic-bezier(.16,1,.3,1);position:fixed}.spotlight-pulse{border:3px solid #e6194b;border-radius:10px;animation:1.1s ease-in-out infinite alternate spotlightPulseAnim;position:absolute;inset:0;box-shadow:0 0 0 4px #e6194b4d,0 0 25px #e6194b8c}@keyframes spotlightPulseAnim{0%{opacity:.85;transform:scale(.98);box-shadow:0 0 0 2px #e6194b33,0 0 15px #e6194b66}to{opacity:1;transform:scale(1.03);box-shadow:0 0 0 6px #e6194b66,0 0 30px #e6194bb3}}.tutorial-arrow{filter:drop-shadow(0 3px 6px #00000059);font-size:28px;animation:.7s ease-in-out infinite alternate arrowBounceAnim;position:absolute}@keyframes arrowBounceAnim{0%{transform:translateY(0)}to{transform:translateY(-8px)}}
