:root{color-scheme:dark;--bg: #0a0a14;--panel: #14142a;--panel-hi: #1d1d3a;--border: #2a2a52;--ink: #e6e6f8;--muted: #9090b0;--hp: #22c55e;--hp-foe: #ef4444;--mana: #3b82f6;--warn: #fbbf24;--err: #f87171;--rare-1: #94a3b8;--rare-2: #4ade80;--rare-3: #38bdf8;--rare-4: #a78bfa;--rare-5: #f472b6;--rare-6: #f59e0b;--at-dmg: #ef4444;--at-heal: #22c55e;--at-kill: #c026d3;--at-buf: #4ade80;--at-debuf: #ec4899;--at-ret: #60a5fa;--at-stunt: #818cf8;--at-stuna: #94a3b8;--at-copy: #14b8a6;--at-return_to_hand: var(--at-ret);--at-skip_turn: var(--at-stunt);--at-skip_attack: var(--at-stuna);--sc-self: #60a5fa;--sc-opp: #ef4444;--sc-friend: #22c55e;--sc-adjacent: #f59e0b;--sc-attacker: #fb923c}.g-atom{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;padding:1.5px 6px;border-radius:6px;background:color-mix(in srgb,currentColor 18%,transparent);border:1px solid color-mix(in srgb,currentColor 45%,transparent);white-space:nowrap;line-height:1.25}.g-atom .g-at-ico{font-size:11px;line-height:1}.g-atom .g-at-n{font-variant-numeric:tabular-nums}.at-dmg{color:var(--at-dmg)}.at-heal{color:var(--at-heal)}.at-kill{color:var(--at-kill)}.at-buf{color:var(--at-buf)}.at-debuf{color:var(--at-debuf)}.at-return_to_hand{color:var(--at-ret)}.at-skip_turn{color:var(--at-stunt)}.at-skip_attack{color:var(--at-stuna)}.at-copy_fx{color:var(--at-copy)}.g-scope{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:1px 5px;border-radius:5px;background:color-mix(in srgb,currentColor 14%,transparent);border:1px solid color-mix(in srgb,currentColor 40%,transparent)}.sc-self{color:var(--sc-self)}.sc-opp{color:var(--sc-opp)}.sc-friend{color:var(--sc-friend)}.sc-adjacent{color:var(--sc-adjacent)}.sc-attacker{color:var(--sc-attacker)}.g-cond{display:flex;align-items:flex-start;gap:5px;font-size:10.5px;font-weight:700;color:#fef3c7;background:linear-gradient(180deg,#fbbf2426,#fbbf240f);border:1.5px dashed rgba(251,191,36,.65);border-radius:6px;padding:4px 6px;line-height:1.25}.g-cond.negated{background:linear-gradient(180deg,#ef444426,#ef44440f);border-color:#ef4444a6;color:#fecaca}.g-cond .g-cond-ico{font-size:12px;line-height:1;margin-top:0}.g-cond .g-cond-prefix{opacity:.85;letter-spacing:.4px;text-transform:uppercase;font-size:9px;font-weight:800;margin-right:3px}.g-cond .g-cond-phrase{font-weight:800;color:#fff;text-decoration:underline;text-decoration-color:#ffffff80;text-underline-offset:2px}.g-minimap-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0}.g-minimap-label{font-size:9px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:4px}.g-minimap-label .dot{width:8px;height:8px;border-radius:2px;border:1.5px solid currentColor;background:transparent}.g-minimap-label.scan{color:var(--warn)}.g-minimap-label.scan .dot{border-style:dashed}.g-minimap-label.hits{color:#cbd5e1}.g-minimap{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:3px;width:88px;height:60px;background:#0a0a16d9;border:1px solid var(--border);border-radius:4px;padding:3px;flex-shrink:0}.g-minimap .cell{border-radius:2.5px;background:#ffffff08;border:1.2px solid rgba(255,255,255,.08);position:relative;display:flex;align-items:center;justify-content:center}.g-minimap .cell.self{border:1.8px solid var(--sc-self);background:color-mix(in srgb,var(--sc-self) 14%,transparent)}.g-minimap .cell.self:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--sc-self);box-shadow:0 0 5px color-mix(in srgb,var(--sc-self) 80%,transparent)}.g-minimap .cell.cond{border:1.8px dashed var(--warn);background:transparent}.g-minimap .cell.hit{border:1.8px solid var(--hit-color);background:transparent;box-shadow:0 0 5px color-mix(in srgb,var(--hit-color) 60%,transparent);color:var(--hit-color)}.g-minimap .cell.self.hit:after{display:none}.g-minimap .cell .cell-icon{font-size:12px;line-height:1;filter:drop-shadow(0 0 2px currentColor)}.g-minimap.tiny{width:54px;height:36px;gap:2px;padding:2px}.g-minimap.tiny .cell .cell-icon{font-size:9px}.g-minimap.small{width:72px;height:50px;gap:2.5px;padding:2.5px}.g-minimap.small .cell .cell-icon{font-size:11px}.g-minimap.big{width:120px;height:82px;gap:4px;padding:4px}.g-minimap.big .cell .cell-icon{font-size:16px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(ellipse at top,rgba(40,40,90,.4) 0%,transparent 60%),#06060c;color:var(--ink);min-height:100vh}#app{display:flex;flex-direction:column;min-height:100vh}.screen{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.lobby-screen{align-content:center}.arena-home{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:28px;width:min(960px,calc(100vw - 48px));box-shadow:0 24px 60px #00000080}.arena-home .home-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px}.arena-home h1{margin:0 0 4px;font-size:30px;letter-spacing:.5px}.arena-home h2{margin:0 0 8px;font-size:22px}.arena-home .badge{display:inline-block;background:#a855f72e;color:#c4b5fd;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:1px;margin-bottom:12px}.arena-home .sub{color:var(--muted);font-size:13px;line-height:1.5;max-width:520px}.arena-home input,.arena-home button{width:100%;padding:11px 14px;border-radius:10px;border:1px solid var(--border);background:var(--panel-hi);color:var(--ink);font-size:14px;margin-bottom:10px;font-family:inherit}.arena-home button{cursor:pointer;background:var(--mana);border-color:var(--mana);font-weight:800}.arena-home button:hover{filter:brightness(1.1)}.arena-home button.secondary{background:var(--panel-hi);border-color:var(--border)}.arena-home button.league{background:linear-gradient(90deg,#7c3aed,#db2777);border-color:#f472b6b3}.arena-home .row{display:flex;gap:8px}.arena-home .row input{flex:1}.arena-home .row button{flex:0 0 110px}.player-chip{min-width:220px;background:var(--panel-hi);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.player-chip span{display:block;color:var(--muted);font-size:11px;letter-spacing:.8px;text-transform:uppercase;margin-bottom:3px}.player-chip strong{display:block;font-size:14px;color:#fff}.player-chip input{margin:0}.deck-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:18px 0;padding:12px 14px;border-radius:12px;border:1px solid rgba(96,165,250,.35);background:#3b82f614}.deck-strip strong{display:block;font-size:14px;color:#fff}.deck-strip span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.deck-strip button{width:auto;min-width:130px;margin:0}.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.mode-card{background:linear-gradient(180deg,var(--panel-hi),rgba(20,20,42,.88));border:1px solid var(--border);border-radius:16px;padding:22px}.mode-card.primary{border-color:#f472b673;background:radial-gradient(circle at top right,rgba(219,39,119,.24),transparent 45%),linear-gradient(180deg,var(--panel-hi),rgba(20,20,42,.9))}.mode-card p{color:var(--muted);margin:0 0 18px;font-size:13px;line-height:1.5}.mode-card button{margin:0}.live-invite{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.live-invite .row{align-items:stretch;margin-top:8px}.live-invite .row input,.live-invite .row button{height:42px;margin-bottom:0}.live-invite .row button{display:flex;align-items:center;justify-content:center}.waiting-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:32px 36px;width:420px;text-align:center;box-shadow:0 24px 60px #00000080}.waiting-card .badge{display:inline-block;background:#fbbf2429;color:var(--warn);padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:1px;margin-bottom:14px}.waiting-card h1{margin:0 0 8px;font-size:30px}.waiting-card .sub{color:var(--muted);margin-bottom:22px;font-size:13px;line-height:1.5}.waiting-card button{width:100%;padding:11px 14px;border-radius:10px;border:1px solid var(--border);background:var(--panel-hi);color:var(--ink);cursor:pointer;font-weight:800;font-family:inherit}.hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 24px;gap:24px;background:var(--panel);border-bottom:1px solid var(--border)}.hud .opp{text-align:left}.hud .me{text-align:right}.hud .turn-pill{background:#fbbf241f;border:1px solid rgba(251,191,36,.4);color:var(--warn);padding:6px 16px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.hud .turn-pill.foe{background:#ef44441a;border-color:#ef444459;color:var(--err)}.hud strong{font-size:14px}.hud .stat-row{display:inline-flex;align-items:center;gap:14px;margin-top:4px}.hud .tower{display:inline-flex;align-items:center;gap:6px;font-size:13px}.hud .tower-bar{width:130px;height:14px;border-radius:8px;background:#0006;border:1px solid var(--border);overflow:hidden}.hud .tower-bar .fill{height:100%;background:var(--hp);transition:width .3s ease}.hud .tower-bar.foe .fill{background:var(--hp-foe)}.hud .mana{color:var(--mana);font-weight:700}.hud .mana .pip{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--mana);margin-left:2px;box-shadow:0 0 4px #3b82f699}.hud .mana .pip.spent{background:#3b82f62e;box-shadow:none}.hud .deck{font-size:13px;font-weight:700;color:#cbd5e1;display:inline-flex;align-items:center;gap:3px}.hud .deck.low{color:var(--warn)}.hud .deck.fatigued{color:var(--err)}.hud .fatigue{display:inline-flex;align-items:center;gap:2px;margin-left:4px;font-size:12px;font-weight:800;color:#fff;background:var(--err);padding:1px 6px;border-radius:999px;box-shadow:0 0 8px #ef44448c;animation:fatiguePulse 1.6s ease-in-out infinite}@keyframes fatiguePulse{0%,to{box-shadow:0 0 6px #ef444466}50%{box-shadow:0 0 14px #ef4444d9}}.arena{flex:1;display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(220px,1fr);gap:16px;padding:12px 18px;align-items:stretch}.arena .left,.arena .right{display:flex;flex-direction:column;gap:10px}.arena .center{display:flex;flex-direction:column;align-items:center;gap:10px}.board-wrap{display:flex;align-items:stretch;gap:14px}.side-rail{width:220px;display:grid;grid-template-rows:auto 1fr auto;gap:10px}.side-turn{display:flex;flex-direction:column;justify-content:center;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px}.side-turn button{padding:12px 14px;border-radius:10px;border:1px solid var(--mana);background:var(--mana);color:#fff;font-weight:900;cursor:pointer}.side-turn button:disabled{opacity:.45;cursor:not-allowed}.tower-card{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:8px;width:100%;padding:10px;border-radius:14px;border:2px solid var(--border);background:linear-gradient(180deg,var(--panel-hi),var(--panel));box-shadow:0 8px 18px #00000059;position:relative;overflow:hidden}.tower-card.mine{border-color:#22c55e8c;background:linear-gradient(180deg,rgba(34,197,94,.14),var(--panel))}.tower-card.foe{border-color:#ef44448c;background:linear-gradient(180deg,rgba(239,68,68,.14),var(--panel))}.tower-card.low{animation:towerLow 1.2s ease-in-out infinite}@keyframes towerLow{0%,to{box-shadow:0 8px 18px #00000059,0 0 #ef444400}50%{box-shadow:0 8px 18px #00000059,0 0 22px 4px #ef444473}}.tower-card .t-icon{font-size:26px;line-height:1;text-align:center;filter:drop-shadow(0 3px 6px rgba(0,0,0,.4))}.tower-card .t-body{display:flex;flex-direction:column;gap:2px;min-width:0}.tower-card .t-name{font-size:12px;font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tower-card .t-bar{height:8px;background:#ffffff14;border-radius:4px;overflow:hidden;position:relative}.tower-card .t-bar .fill{height:100%;background:linear-gradient(90deg,var(--hp),#4ade80);transition:width .35s ease}.tower-card.foe .t-bar .fill{background:linear-gradient(90deg,var(--err),#fb7185)}.tower-card.low .t-bar .fill{background:linear-gradient(90deg,var(--err),var(--warn))}.tower-card .t-hp{grid-column:1 / -1;display:flex;align-items:baseline;justify-content:flex-end;gap:2px;font-variant-numeric:tabular-nums}.tower-card .t-hp .cur{font-size:30px;font-weight:800;color:#fff;line-height:1}.tower-card .t-hp .max{font-size:14px;color:var(--muted)}.tower-card .t-hp .heart{font-size:18px;margin-right:2px}.tower-card .t-resources{grid-column:1 / -1;display:flex;flex-direction:column;gap:6px;align-items:flex-end;font-size:12px}.tower-card .mana{color:var(--mana);font-weight:800}.tower-card .mana .pip{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mana);margin-left:2px;box-shadow:0 0 4px #3b82f68c}.tower-card .mana .pip.spent{background:#3b82f62e;box-shadow:none}.lanes{display:flex;flex-direction:column;gap:22px;padding:18px;background:linear-gradient(180deg,#14143299,#0a0a1c99);border:1px solid var(--border);border-radius:18px;box-shadow:inset 0 0 60px #0000004d}.lane-row{display:grid;grid-template-columns:repeat(3,180px);gap:28px;justify-content:center}.lanes{position:relative}.lanes svg.live-synergy,.lanes svg.hover-arrows{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;mix-blend-mode:screen}.lanes svg.live-synergy .live-synergy-line,.lanes svg.hover-arrows .live-synergy-line{filter:drop-shadow(0 0 3px currentColor);opacity:.95}.lanes svg.live-synergy .live-synergy-head,.lanes svg.hover-arrows .live-synergy-head{opacity:.98}.lanes svg.hover-arrows .live-synergy-line{stroke-width:3;animation:hoverArrowPulse 1.2s ease-in-out infinite}@keyframes hoverArrowPulse{0%,to{opacity:.85}50%{opacity:1;filter:drop-shadow(0 0 6px currentColor)}}.lane-divider{height:2px;background:linear-gradient(90deg,transparent,var(--border) 20%,var(--border) 80%,transparent);margin:4px 0}.slot{width:180px;height:270px;border:2px dashed rgba(80,80,130,.4);border-radius:14px;display:flex;align-items:center;justify-content:center;position:relative;background:#1414284d;transition:all .2s}.slot.mine{border-color:#22c55e59;background:#22c55e0a}.slot.foe{border-color:#ef444459;background:#ef44440a}.slot.empty.targetable{cursor:pointer;border-style:solid;box-shadow:0 0 18px #22c55e66 inset}.slot.empty.targetable:hover{background:#22c55e1f;transform:scale(1.03)}.slot.live-source{border-style:solid;border-color:var(--live-color);box-shadow:0 0 9px color-mix(in srgb,var(--live-color) 32%,transparent) inset;opacity:.92}.slot.live-affected{border-style:solid;border-color:color-mix(in srgb,var(--live-color) 48%,var(--border));box-shadow:0 0 8px color-mix(in srgb,var(--live-color) 34%,transparent),0 0 0 1px color-mix(in srgb,var(--live-color) 60%,transparent) inset;opacity:.88}.lanes.hover-focus .slot:not(.focus-keep) .placed{opacity:.22;filter:grayscale(.7)}.lanes.hover-focus .slot.focus-keep{z-index:6}.slot .lane-label{position:absolute;top:4px;left:6px;font-size:10px;color:#c8c8ff66;letter-spacing:1.5px}.placed,.card-hand{background:linear-gradient(180deg,#1a1a32,#0f0f1e 60%,#07070e);border:1.5px solid var(--border);border-radius:14px;padding:0 0 30px;position:relative;overflow:visible;box-shadow:0 10px 28px #0000008c,0 0 0 1px #ffffff0a inset;display:flex;flex-direction:column}.placed .cd-cost,.card-hand .cd-cost{position:absolute;top:6px;left:6px;z-index:3;width:26px;height:26px;border-radius:50%;background:var(--mana);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #3b82f673}.placed .cd-art,.card-hand .cd-art{height:62px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 60%,rgba(255,255,255,.08),transparent 55%),linear-gradient(180deg,#a855f726,#3b82f614);border-bottom:1px solid var(--border);border-top-left-radius:14px;border-top-right-radius:14px}.placed .cd-art .ico,.card-hand .cd-art .ico{font-size:40px;line-height:1;filter:drop-shadow(0 3px 8px rgba(0,0,0,.55));margin-top:8px}.placed .cd-name,.card-hand .cd-name{padding:5px 8px 3px;text-align:center;font-size:12px;font-weight:800;letter-spacing:.3px;text-shadow:0 1px 0 rgba(0,0,0,.6);background:linear-gradient(180deg,rgba(255,255,255,.04),transparent);border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.placed .cd-body,.card-hand .cd-body{padding:6px 7px 3px;display:flex;flex-direction:column;gap:7px}.placed .cd-rule,.card-hand .cd-rule{display:flex;flex-direction:column;gap:6px}.placed .cd-rule+.cd-rule,.card-hand .cd-rule+.cd-rule{padding-top:6px;border-top:1px dashed rgba(255,255,255,.07)}.placed .cd-rule .g-cond,.card-hand .cd-rule .g-cond{font-size:10px;padding:4px 6px;line-height:1.3;gap:4px}.placed .cd-rule .g-cond-ico,.card-hand .cd-rule .g-cond-ico{font-size:11px}.placed .cd-rule .g-cond-prefix,.card-hand .cd-rule .g-cond-prefix{font-size:8.5px}.placed .cd-rule .g-cond .g-cond-phrase,.card-hand .cd-rule .g-cond .g-cond-phrase{white-space:normal;word-break:break-word}.placed .cd-effects,.card-hand .cd-effects{display:flex;flex-direction:column;align-items:center;gap:5px}.placed .cd-atoms,.card-hand .cd-atoms{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center}.placed .cd-plus,.card-hand .cd-plus{color:var(--muted);font-size:10px}.placed .cd-fork,.card-hand .cd-fork{font-size:8.5px;color:var(--warn);font-weight:800;letter-spacing:.5px;padding:1px 4px;border-radius:3px;background:#fbbf2426}.placed .cd-minimaps,.card-hand .cd-minimaps{display:flex;justify-content:center;gap:8px}.placed .stats,.card-hand .stats{position:absolute;bottom:6px;left:8px;right:8px;display:flex;justify-content:space-between;align-items:baseline;font-weight:900;font-size:26px;letter-spacing:.5px;text-shadow:0 2px 0 rgba(0,0,0,.85),0 0 6px rgba(0,0,0,.55);line-height:1}.placed .stats .atk,.card-hand .stats .atk{color:#fca5a5}.placed .stats .hp,.card-hand .stats .hp{color:#86efac}.placed .stats .hp.dmg{color:var(--warn)}.placed .stats .atk.buffed,.card-hand .stats .atk.buffed{color:var(--warn);text-shadow:0 2px 0 rgba(0,0,0,.85),0 0 10px rgba(251,191,36,.7)}.placed .stats .hp.buffed,.card-hand .stats .hp.buffed{color:#fde047;text-shadow:0 2px 0 rgba(0,0,0,.85),0 0 10px rgba(253,224,71,.65)}.placed .stats .atk.debuffed,.placed .stats .hp.debuffed,.card-hand .stats .atk.debuffed,.card-hand .stats .hp.debuffed{color:#c4b5fd;text-shadow:0 2px 0 rgba(0,0,0,.85),0 0 8px rgba(167,139,250,.55)}.placed .stats .delta,.card-hand .stats .delta{font-size:14px;font-weight:800;margin-left:3px;vertical-align:super;line-height:0;letter-spacing:0}.placed .stats .delta.pos,.card-hand .stats .delta.pos{color:var(--warn)}.placed .stats .delta.neg,.card-hand .stats .delta.neg{color:#c4b5fd}.placed{width:172px;height:260px}.placed.bounceable{cursor:pointer}.placed.bounceable:hover{transform:translateY(-2px);box-shadow:0 12px 32px #000000a6,0 0 0 1px #fbbf2473 inset;transition:transform .15s ease,box-shadow .15s ease}.placed.validated{box-shadow:0 8px 20px #0006,0 0 18px 2px #fbbf248c,0 0 0 1px #fbbf24bf inset}.placed .cd-rule.validated .g-cond{border-style:solid;border-color:#fbbf24;background:linear-gradient(180deg,#fbbf2447,#fbbf2424);box-shadow:0 0 10px #fbbf2499,0 0 0 1px #fbbf2480 inset;animation:condValidatedPulse 2s ease-in-out infinite}.placed .cd-rule.validated .g-cond.negated{border-color:#ef4444;background:linear-gradient(180deg,#ef44444d,#ef444424);box-shadow:0 0 10px #ef444499,0 0 0 1px #ef444480 inset}@keyframes condValidatedPulse{0%,to{box-shadow:0 0 8px #fbbf2480,0 0 0 1px #fbbf2466 inset}50%{box-shadow:0 0 16px #fbbf24d9,0 0 0 1px #fbbf24a6 inset}}.placed.mine{border-color:#22c55e8c}.placed.foe{border-color:#ef44448c}.placed.tower{background:linear-gradient(180deg,#fbbf242e,#3c1e0a66);border-color:#fbbf2480}.placed.dead{animation:cardDie .4s ease forwards}@keyframes cardDie{to{opacity:0;transform:scale(.8) rotate(8deg)}}.placed.death-ghost{pointer-events:none;z-index:4;animation:deathGhost .9s ease-out var(--death-delay, 0ms) forwards}.placed.just-hit.death-ghost{animation:cardHit .34s cubic-bezier(.36,.07,.19,.97) var(--hit-delay, 0ms) both,deathGhost .9s ease-out var(--death-delay, 0ms) forwards}@keyframes deathGhost{0%{opacity:1;transform:scale(1);filter:saturate(1)}55%{opacity:.9;transform:scale(.98);filter:saturate(.7)}to{opacity:0;transform:scale(.82) translateY(10px);filter:saturate(.2)}}.damage-float{position:absolute;left:50%;top:42%;z-index:20;transform:translate(-50%,-50%);color:#fff;background:#ef4444f0;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:3px 10px;font-size:20px;font-weight:1000;text-shadow:0 1px 2px rgba(0,0,0,.7);box-shadow:0 8px 24px #ef444473;pointer-events:none;animation:damageFloat .7s ease-out var(--hit-delay, 0ms) both}.damage-float.tower-float{top:50%;right:18px;left:auto;transform:translateY(-50%)}@keyframes damageFloat{0%{opacity:0;transform:translate(-50%,-30%) scale(.7)}18%{opacity:1;transform:translate(-50%,-55%) scale(1.16)}to{opacity:0;transform:translate(-50%,-110%) scale(.92)}}.damage-float.tower-float{animation-name:towerDamageFloat}@keyframes towerDamageFloat{0%{opacity:0;transform:translateY(-20%) scale(.7)}18%{opacity:1;transform:translateY(-50%) scale(1.16)}to{opacity:0;transform:translateY(-110%) scale(.92)}}.placed.just-hit{animation:cardHit .34s cubic-bezier(.36,.07,.19,.97) var(--hit-delay, 0ms) both}.placed.attacking{animation:cardAttack .6s cubic-bezier(.34,.07,.19,.97) var(--attack-delay, 0ms) both;z-index:5}.placed.foe.attacking{animation-name:cardAttackFoe}@keyframes cardAttack{0%{transform:translateY(0) scale(1);box-shadow:0 8px 20px #0006}35%{transform:translateY(-14px) scale(1.06);box-shadow:0 10px 24px #60a5fa80}60%{transform:translateY(8px) scale(1.04);box-shadow:0 4px 18px #60a5fa8c}to{transform:translateY(0) scale(1);box-shadow:0 8px 20px #0006}}@keyframes cardAttackFoe{0%{transform:translateY(0) scale(1);box-shadow:0 8px 20px #0006}35%{transform:translateY(14px) scale(1.06);box-shadow:0 10px 24px #ef44448c}60%{transform:translateY(-8px) scale(1.04);box-shadow:0 4px 18px #ef44448c}to{transform:translateY(0) scale(1);box-shadow:0 8px 20px #0006}}@keyframes cardHit{0%{transform:translate(0);box-shadow:0 8px 20px #0006}20%{transform:translate(-6px);box-shadow:0 0 24px #ef4444e6,0 0 0 2px #ef4444cc inset}40%{transform:translate(5px);box-shadow:0 0 28px #ef4444d9,0 0 0 2px #ef4444b3 inset}60%{transform:translate(-3px);box-shadow:0 0 20px #ef4444b3,0 0 0 2px #ef44448c inset}80%{transform:translate(2px);box-shadow:0 0 10px #ef444466,0 0 0 1px #ef44444d inset}to{transform:translate(0);box-shadow:0 8px 20px #0006}}.placed.just-hit .stats .hp.dmg{animation:hpDropPulse .42s ease-out var(--hit-delay, 0ms) both}@keyframes hpDropPulse{0%{transform:scale(1);color:#86efac;text-shadow:none}45%{transform:scale(1.45);color:#fff;text-shadow:0 0 12px rgba(239,68,68,.95)}to{transform:scale(1);color:var(--warn);text-shadow:0 0 8px rgba(251,191,36,.75)}}.placed.just-hit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:#ef444447;pointer-events:none;animation:cardHitOverlay .38s ease-out both;z-index:5}@keyframes cardHitOverlay{0%{opacity:1}60%{opacity:.6}to{opacity:0}}.tower-card.just-hit{animation:towerHit .42s ease-out var(--hit-delay, 0ms) both}@keyframes towerHit{0%{box-shadow:0 8px 18px #00000059,0 0 #ef444400;transform:translate(0)}25%{box-shadow:0 8px 18px #00000059,0 0 28px 6px #ef4444d9;transform:translate(-4px)}55%{box-shadow:0 8px 18px #00000059,0 0 18px 3px #ef444480;transform:translate(3px)}to{box-shadow:0 8px 18px #00000059,0 0 #ef444400;transform:translate(0)}}.placed .badges{position:absolute;top:6px;right:6px;display:flex;flex-direction:column;gap:2px;font-size:11px;z-index:3}.placed .badge{background:#000000a6;padding:1px 5px;border-radius:4px}.hand-area{padding:14px 14px 18px;background:var(--panel);border-top:1px solid var(--border);display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:flex-end;min-height:260px}.deck-pile{position:relative;width:100px;height:250px;margin-right:14px;flex-shrink:0;align-self:flex-end}.deck-pile .pile-card{position:absolute;width:86px;height:130px;bottom:0;left:7px;border-radius:12px;background:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 6px,transparent 6px 12px),linear-gradient(180deg,#6366f18c,#1e293bd9);border:1.5px solid rgba(129,140,248,.65);box-shadow:0 6px 18px #0000008c,0 0 0 1px #ffffff0a inset}.deck-pile .pile-card-3{transform:translate(-6px,-4px) rotate(-4deg);opacity:.55}.deck-pile .pile-card-2{transform:translate(-2px,-2px) rotate(-2deg);opacity:.85}.deck-pile .pile-card-empty{background:none;border:2px dashed rgba(148,163,184,.35);box-shadow:none}.deck-pile .pile-count{position:absolute;bottom:50px;left:0;right:0;text-align:center;font-size:38px;font-weight:900;color:#fff;letter-spacing:1px;text-shadow:0 3px 0 rgba(0,0,0,.85),0 0 12px rgba(0,0,0,.7);pointer-events:none}.deck-pile .pile-fatigue{position:absolute;top:84px;left:50%;transform:translate(-50%);background:#ef44442e;border:1px solid rgba(239,68,68,.6);color:var(--err);font-weight:800;font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap}.deck-pile.low .pile-card-1{border-color:#fbbf24d9;box-shadow:0 6px 18px #0000008c,0 0 12px #fbbf2480}.deck-pile.low .pile-count{color:var(--warn);text-shadow:0 3px 0 rgba(0,0,0,.85),0 0 14px rgba(251,191,36,.7)}.deck-pile.fatigued .pile-card-1{border-color:#ef4444d9;box-shadow:0 6px 18px #0000008c,0 0 14px #ef44448c}.deck-pile.fatigued .pile-count{color:var(--err)}.card-hand{width:172px;min-height:260px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .18s ease,box-shadow .18s ease}.card-hand:hover:not(.unaffordable){transform:translateY(-12px);box-shadow:0 20px 44px #000000b3,0 0 0 1px #ffffff0f inset}.card-hand.selected{transform:translateY(-12px);border-color:var(--warn);box-shadow:0 0 28px #fbbf248c,0 0 0 1px var(--warn) inset}.card-hand.unaffordable{opacity:.45;filter:grayscale(.5);cursor:not-allowed}.card-hand .cd-norules{font-size:10.5px;color:var(--muted);font-style:italic;text-align:center;padding:6px 0}.slot.hl-scan{border-style:dashed!important;border-color:var(--hl-color)!important;border-width:2.5px!important;box-shadow:0 0 10px color-mix(in srgb,var(--hl-color) 45%,transparent)!important;animation:hlScanPulse 1.4s ease-in-out infinite;background:#1414284d!important}.slot.hl-hit{border-style:solid!important;border-color:var(--hl-color)!important;border-width:2.5px!important;box-shadow:0 0 14px color-mix(in srgb,var(--hl-color) 55%,transparent),0 0 0 1px var(--hl-color) inset!important;background:#1414284d!important}@keyframes hlScanPulse{0%,to{box-shadow:0 0 6px color-mix(in srgb,var(--hl-color) 35%,transparent)}50%{box-shadow:0 0 16px color-mix(in srgb,var(--hl-color) 65%,transparent)}}.slot .hl-tag{position:absolute;bottom:-11px;left:50%;transform:translate(-50%);font-size:9.5px;font-weight:900;letter-spacing:.8px;color:#fff;background:var(--hl-color);padding:2px 7px;border-radius:4px;white-space:nowrap;z-index:4;box-shadow:0 3px 8px #0000008c;pointer-events:none}.slot .hl-tag.scan{color:var(--hl-color);background:#0a0a16eb;border:1px solid var(--hl-color);font-weight:800}.log{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px;font-family:ui-monospace,SF Mono,monospace;font-size:11px;flex:1;min-height:200px;max-height:340px;overflow-y:auto;color:#aaa}.log .entry{margin:3px 0;line-height:1.4;opacity:0;animation:logIn .3s ease forwards}.log .entry.k-attack{color:#fca5a5}.log .entry.k-fx{color:#c4b5fd}.log .entry.k-die{color:#f87171;font-weight:700}.log .entry.k-turn{color:var(--warn);font-weight:700;margin-top:6px}.log .entry.k-play{color:#93c5fd}@keyframes logIn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.controls{display:flex;gap:8px;padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.controls button{flex:1;padding:11px 16px;border-radius:10px;border:1px solid var(--border);background:var(--panel-hi);color:var(--ink);cursor:pointer;font-weight:700;font-size:13px}.controls button.primary{background:var(--mana);border-color:var(--mana)}.controls button.danger{background:#ef444429;border-color:var(--err);color:var(--err)}.controls button:hover{filter:brightness(1.15)}.controls button:disabled{opacity:.4;cursor:not-allowed}#card-tooltip{position:fixed;z-index:300;pointer-events:none;min-width:260px;max-width:340px;padding:13px 15px;border-radius:12px;background:linear-gradient(180deg,#181830fa,#0a0a16fa);border:1px solid var(--border);box-shadow:0 16px 44px #000000a6;color:var(--ink);font-size:13px;line-height:1.45;opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#card-tooltip.visible{opacity:1;transform:translateY(0)}#card-tooltip .tt-head{display:flex;align-items:center;gap:11px;padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid rgba(255,255,255,.08)}#card-tooltip .tt-icon{font-size:30px;line-height:1}#card-tooltip .tt-name{font-size:14px;font-weight:800;color:#fff}#card-tooltip .tt-meta{display:flex;gap:10px;margin-top:3px;font-size:11px;color:var(--muted);font-family:ui-monospace,SF Mono,monospace}#card-tooltip .tt-meta .cost{color:#60a5fa;font-weight:800}#card-tooltip .tt-meta .atk{color:#fca5a5;font-weight:800}#card-tooltip .tt-meta .hp{color:#86efac;font-weight:800}#card-tooltip .tt-meta .rar{padding:1px 6px;border-radius:4px;background:var(--border);color:var(--ink);font-weight:700;font-size:10px;letter-spacing:.6px;text-transform:uppercase}#card-tooltip .tt-rule{display:flex;flex-direction:column;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.08)}#card-tooltip .tt-rule:first-of-type{margin-top:0;padding-top:0;border-top:0}#card-tooltip .tt-human{font-size:13px;line-height:1.5;color:#e5e7eb}#card-tooltip .tt-human strong{color:#fef3c7;font-weight:800;text-decoration:underline;text-decoration-color:#fbbf2480;text-underline-offset:2px}#card-tooltip .tt-fork{margin-top:4px;font-size:10px;color:var(--warn);font-weight:800;letter-spacing:.8px;text-transform:uppercase}#card-tooltip .tt-empty{color:var(--muted);font-style:italic;padding:4px 0}#card-tooltip .tt-minimaps{display:flex;gap:10px;margin-top:8px;align-items:flex-start;justify-content:center}.banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel);border:2px solid var(--warn);border-radius:18px;padding:28px 48px;z-index:100;box-shadow:0 30px 80px #000000bf,0 0 0 1px #ffffff0a inset;display:flex;flex-direction:column;align-items:center;gap:18px;min-width:320px;animation:bannerPop .22s cubic-bezier(.34,1.56,.64,1) both}.banner.win{border-color:var(--hp)}.banner.loss{border-color:var(--err)}.banner .banner-title{font-size:36px;font-weight:900;letter-spacing:1px;text-align:center;text-shadow:0 2px 0 rgba(0,0,0,.6)}.banner.win .banner-title{color:var(--hp)}.banner.loss .banner-title{color:var(--err)}.banner .banner-back{min-width:200px;padding:10px 24px;font-size:14px;font-weight:800;letter-spacing:.5px}@keyframes bannerPop{0%{transform:translate(-50%,-50%) scale(.85);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.deckbuilder{display:flex;flex-direction:column;height:100vh;background:var(--bg);overflow:hidden}.db-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;gap:16px;flex-shrink:0;border-bottom:1px solid var(--border);background:var(--panel)}.db-title{display:flex;align-items:center;gap:12px}.db-count{font-size:22px;font-weight:800;padding:2px 14px;border-radius:10px;font-variant-numeric:tabular-nums}.db-count.ok{background:#22c55e26;color:#86efac}.db-count.warn{background:#fbbf2426;color:#fde68a}.db-hint{color:var(--muted);font-size:12px}.db-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.db-controls input,.db-controls select{background:var(--panel-hi);color:#fff;border:1px solid var(--border);padding:8px 12px;border-radius:8px;font-size:13px;outline:none}.db-controls input{min-width:180px}.db-controls input:focus,.db-controls select:focus{border-color:#60a5fa}.db-controls button{padding:8px 14px;font-size:13px}.db-panels{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;overflow:hidden}.db-pane{display:flex;flex-direction:column;min-height:0;background:var(--panel);border:1px solid var(--border);border-radius:12px}.db-pane-header{display:flex;align-items:baseline;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.db-pane-header h3{font-size:12px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.db-pane-header .count{font-variant-numeric:tabular-nums;color:#fff;font-weight:700}.db-grid{flex:1;overflow-y:auto;padding:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;align-content:start}.db-empty{grid-column:1 / -1;color:var(--muted);text-align:center;padding:48px 20px;font-size:13px;line-height:1.5}.db-group-header{grid-column:1 / -1;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);padding:6px 4px 2px;margin-top:2px;border-bottom:1px solid var(--border)}.db-group-header:first-child{margin-top:0}.db-group-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 6px #ffffff14}.db-group-dot.rar-1{background:var(--rare-1)}.db-group-dot.rar-2{background:var(--rare-2)}.db-group-dot.rar-3{background:var(--rare-3)}.db-group-dot.rar-4{background:var(--rare-4)}.db-group-dot.rar-5{background:var(--rare-5)}.db-group-dot.rar-6{background:var(--rare-6)}.db-card{position:relative;background:linear-gradient(180deg,var(--panel-hi),var(--panel));border:1px solid var(--border);border-radius:10px;padding:8px 10px 10px;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,border-color .1s ease;display:flex;flex-direction:column;gap:6px;min-height:138px;-webkit-user-select:none;user-select:none}.db-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000059;border-color:#6b7280}.db-card .rar-stripe{position:absolute;top:0;left:0;right:0;height:3px;border-radius:10px 10px 0 0}.db-card.rar-1 .rar-stripe{background:var(--rare-1)}.db-card.rar-2 .rar-stripe{background:var(--rare-2)}.db-card.rar-3 .rar-stripe{background:var(--rare-3)}.db-card.rar-4 .rar-stripe{background:var(--rare-4)}.db-card.rar-5 .rar-stripe{background:var(--rare-5)}.db-card.rar-6 .rar-stripe{background:var(--rare-6)}.db-top{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;margin-top:4px}.db-cost{width:24px;height:24px;border-radius:50%;background:var(--mana);color:#fff;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px #3b82f673}.db-icon{font-size:26px;text-align:center;line-height:1}.db-stats{display:flex;gap:6px;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.db-stats .atk{color:var(--err)}.db-stats .hp{color:var(--hp)}.db-label{font-size:13px;font-weight:700;color:#fff;text-align:center;padding:0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-fx{font-size:10px;color:#c0c3d4;line-height:1.35;display:flex;flex-direction:column;gap:5px;overflow:hidden}.db-rule{display:flex;flex-direction:column;gap:4px}.db-rule+.db-rule{padding-top:4px;border-top:1px dashed rgba(255,255,255,.06)}.db-rule .g-cond{font-size:9.5px;padding:3px 5px;line-height:1.2}.db-rule .g-cond-ico{font-size:11px}.db-rule .g-cond .g-cond-phrase{text-decoration:none}.db-atoms{display:flex;flex-wrap:wrap;gap:3px;align-items:center;justify-content:center}.db-plus{color:var(--muted);font-size:10px}.db-fork{font-size:8.5px;font-weight:800;letter-spacing:.5px;color:var(--warn);background:#fbbf2426;padding:1px 4px;border-radius:3px}.db-fx-none{color:var(--muted);font-style:italic;font-size:10px;text-align:center}.league-screen{min-height:100vh;padding:22px;background:radial-gradient(circle at top left,rgba(124,58,237,.18),transparent 36%),var(--bg)}.league-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px 20px}.league-header .badge{display:inline-block;background:#db277733;color:#f9a8d4;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:1px;margin-bottom:8px}.league-header h1{margin:0 0 4px;font-size:28px}.league-header p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.league-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.league-actions button,.league-card button{padding:10px 13px;border-radius:10px;border:1px solid var(--border);background:var(--panel-hi);color:var(--ink);cursor:pointer;font-weight:800}.league-actions button.primary{background:var(--mana);border-color:var(--mana)}.league-actions button.secondary{background:var(--panel-hi)}.league-card button.danger{background:#ef444429;border-color:var(--err);color:var(--err)}.league-actions button:disabled{opacity:.5;cursor:wait}.league-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.league-panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:14px;min-height:260px}.league-panel.leaderboard{max-width:980px;margin:0 auto}.league-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.league-panel h2{margin:0;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.league-panel-head span{color:var(--muted);font-size:12px}.league-list{display:flex;flex-direction:column;gap:8px}.league-empty{color:var(--muted);border:1px dashed var(--border);border-radius:12px;padding:22px;text-align:center;font-size:13px;line-height:1.5}.league-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;background:var(--panel-hi);border:1px solid var(--border);border-radius:12px;padding:10px}.league-card.self{border-color:#fbbf2473;background:linear-gradient(180deg,rgba(251,191,36,.1),var(--panel-hi))}.self-pill{color:var(--warn);border:1px solid rgba(251,191,36,.45);background:#fbbf241f;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.league-profile{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:10px}.league-profile .rank{font-size:18px;font-weight:900;color:#fbbf24;text-align:center}.league-profile .name{font-size:15px;font-weight:900;color:#fff}.league-profile .meta,.league-profile .mini-stats{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px;color:var(--muted);font-size:11px}.league-profile .meta span,.league-profile .mini-stats span{background:#ffffff0d;border:1px solid rgba(255,255,255,.07);border-radius:999px;padding:2px 7px}.raid-row{background:var(--panel-hi);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:#cbd5e1;font-size:13px}.raid-row.win span{color:var(--hp);font-weight:900}.raid-row.loss span{color:var(--err);font-weight:900}.thinking-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#0808128c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);pointer-events:auto;animation:thinkFade .18s ease;cursor:wait}@keyframes thinkFade{0%{opacity:0}to{opacity:1}}.thinking-overlay .spinner{width:64px;height:64px;border-radius:50%;border:6px solid rgba(255,255,255,.14);border-top-color:#a78bfa;animation:thinkSpin .9s linear infinite}@keyframes thinkSpin{to{transform:rotate(360deg)}}.thinking-overlay .think-label{color:#cfd0e0;font-size:13px;letter-spacing:4px;text-transform:uppercase;font-weight:600}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#ef4444f2;color:#fff;padding:14px 22px;border-radius:10px;font-weight:600;z-index:600;max-width:min(520px,calc(100vw - 48px));text-align:center;line-height:1.4;box-shadow:0 8px 24px #00000080}
