:root{--bg:#14121a;--panel:#1f1c29;--text:#f1eee6;--muted:#a39fae;--accent:#fc3;--ok:#5fd38d;--bad:#ff6b6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,sans-serif}body{background:var(--bg);color:var(--text);margin:0}.app{max-width:640px;margin:0 auto;padding:48px 16px}h1{color:var(--accent);margin:0;font-size:3rem}.tagline{color:var(--muted);margin-top:4px}.panel{background:var(--panel);border-radius:12px;margin-top:24px;padding:16px 20px}.panel h2{color:var(--muted);margin:0 0 12px;font-size:1rem}dl{grid-template-columns:max-content 1fr;gap:8px 16px;margin:0;display:grid}dt{color:var(--muted)}dd{margin:0}.status-connected{color:var(--ok)}.status-disconnected{color:var(--bad)}.modes{flex-wrap:wrap;gap:12px;display:flex}.modes button,.modes a.button{border:1px solid var(--muted);color:var(--text);font:inherit;text-align:center;background:0 0;border-radius:8px;flex:1;padding:12px;text-decoration:none}.modes a.button:hover{border-color:var(--accent)}.modes a.button.primary{border-color:var(--accent);background:var(--accent);color:#1b1500;font-weight:600}.lib-loading{text-align:center;color:var(--muted);padding:48px 16px}.setup label{grid-template-columns:5.5em auto auto;justify-content:start;align-items:center;gap:12px;margin:12px 0;display:grid}.setup input[type=number]{width:10ch}.setup select,.setup input{font:inherit;border:1px solid var(--muted);background:var(--bg);color:var(--text);border-radius:6px;padding:6px 8px}.buttons{flex-wrap:wrap;gap:8px;display:inline-flex}button{font:inherit;cursor:pointer;border:1px solid var(--muted);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 12px}button:disabled{cursor:default;opacity:.6}button:not(.card,.unit,.hud-aura,.primary):not(:disabled):hover{border-color:var(--text);background:#2c2839}button.primary:not(:disabled):hover{filter:brightness(1.08)}button.primary{background:var(--accent);border-color:var(--accent);color:#1b1500;font-weight:600}button.subtle{color:var(--muted);border-color:#0000}button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.match{padding:12px 16px}.match-header{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px;display:flex}.match-body{grid-template-columns:minmax(0,1fr) 280px;gap:16px;display:grid}@media (width<=900px){.match-body{grid-template-columns:1fr}}.game-over{background:var(--accent);color:#1b1500;text-align:center;border-radius:12px;margin-bottom:12px;padding:12px;font-size:1.4rem;font-weight:700}.board{flex-direction:column;gap:12px;display:flex}.side{background:var(--panel);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.player-panel{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.player-panel.acting strong{color:var(--accent)}.player-panel .aura{font-weight:700}.units,.hand{flex-wrap:wrap;gap:12px;padding-top:10px;display:flex}.units{min-height:180px}.hand{min-height:240px}.table .units,.table .hand{min-height:0}.hidden-hand{min-height:90px}.action-bar{background:var(--panel);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex;position:sticky;bottom:8px}.error{color:var(--bad);margin:0}.event-log{background:var(--panel);border-radius:12px;max-height:80vh;padding:12px;font-size:.82rem;overflow-y:auto}.event-log h2{color:var(--muted);margin:0 0 8px;font-size:1rem}.event-log ol{margin:0;padding-left:18px}.hint{color:var(--muted);margin:0}.account p{margin:0 0 12px}.account-user{align-items:center;gap:12px;display:flex}.account-user button{margin-left:auto}.avatar{object-fit:cover;border-radius:50%;flex:none;width:36px;height:36px}.avatar-initial{background:var(--accent);color:#111;place-items:center;font-weight:800;display:grid}.google-button{min-height:44px;margin-bottom:12px}.dev-login{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.dev-login label{color:var(--muted);gap:4px;font-size:.85rem;display:grid}.dev-login input{color:var(--text);font:inherit;background:#0c0a11;border:1px solid #fff3;border-radius:8px;padding:7px 10px}:root{--brainrot:#6b3fa0;--swiss:#b3262d;--gold:#e8b923;--spell:#2f6fb3;--burst:#f2c230;--focus:#2bb8a6;--fast:#3d8bfd;--slow:#a25ddc;--common:#b5b0c0;--rare:#3d8bfd;--epic:#c051e6}.card,.unit{--frame:#4a4560;--u:1rem;text-align:left;color:var(--text);border:3px solid var(--frame);border-radius:calc(var(--u) * .75);padding:calc(var(--u) * .375);font-size:calc(var(--u) * .72);background:linear-gradient(#2a2638 0%,#1d1a28 100%);flex-direction:column;align-items:stretch;gap:3px;line-height:1.25;transition:transform .12s,box-shadow .12s;display:flex;position:relative}.card{width:150px;min-height:230px}.unit{width:120px;min-height:170px}.card[aria-disabled=true],.unit[aria-disabled=true]{opacity:1;cursor:default}.set-brainrot{--frame:var(--brainrot)}.set-swiss-food{--frame:var(--swiss)}.set-demacia{--frame:#c9b47a}.set-freljord{--frame:#5fa8d3}.set-ionia{--frame:#d96f9e}.set-noxus{--frame:#b8352f}.set-piltover-zaun{--frame:#d98a2b}.set-shadow-isles{--frame:#2f9e83}.set-bilgewater{--frame:#a86a3c}.set-targon{--frame:#6d5bd0}.set-shurima{--frame:#e0a526}.set-bandle-city{--frame:#8fbf3a}.set-runeterra{--frame:#8c8fa6}.role-champion{--frame:var(--gold);box-shadow:0 0 0 1px #00000080,0 0 12px #e8b92355}.role-spell{--frame:var(--spell);background:linear-gradient(#1f2d47 0%,#171c2b 100%)}.role-equipment{--frame:#c08a4a;background:linear-gradient(#3b2c1c 0%,#1d1710 100%)}.role-spell.set-brainrot{box-shadow:inset 0 5px 0 var(--brainrot)}.role-spell.set-swiss-food{box-shadow:inset 0 5px 0 var(--swiss)}.card-art{aspect-ratio:4/3;border-radius:calc(var(--u) * .5);background:#00000040;border:1px solid #fff2;width:100%;display:block;overflow:hidden}.unit .card-art{aspect-ratio:1}.card-art img{object-fit:cover;width:100%;height:100%;display:block}.card-art.art-loading,.card-art.art-loaded{position:relative}.card-art.art-loading img{opacity:0}.card-art.art-loaded img{animation:.28s ease-out art-fade-in}.art-placeholder{background:radial-gradient(circle at 30% 25%, #ffffff1f, transparent 60%), linear-gradient(135deg, color-mix(in srgb, var(--frame) 75%, #000), #15121d);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.art-placeholder:after{content:"";background:linear-gradient(105deg,#0000 25%,#ffffff40 50%,#0000 75%);animation:1.3s ease-in-out infinite art-shimmer;position:absolute;inset:0;transform:translate(-100%)}.art-placeholder .default-glyph{opacity:.6;animation:1.3s ease-in-out infinite art-breathe}@keyframes art-shimmer{to{transform:translate(100%)}}@keyframes art-breathe{50%{opacity:.95;transform:scale(1.12)}}@keyframes art-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.art-placeholder:after,.art-placeholder .default-glyph,.card-art.art-loaded img{animation:none}}.role-spell .card-art{aspect-ratio:1;border:2px solid var(--frame);border-radius:50%;align-self:center;width:78%}.role-champion .card-art{border:2px solid var(--gold)}.default-art{background:radial-gradient(circle at 30% 25%, #fff2, transparent 60%), linear-gradient(135deg, var(--frame), #15121d);place-items:center;display:grid}.default-glyph{font-size:calc(var(--u) * 2.2);filter:drop-shadow(0 2px 2px #0008)}.card-cost{top:calc(var(--u) * -.5);left:calc(var(--u) * -.5);z-index:1;width:calc(var(--u) * 1.625);height:calc(var(--u) * 1.625);color:#fff;font-weight:800;font-size:calc(var(--u) * .9);background:radial-gradient(circle at 35% 30%,#8fd3ff,#1f6fb8);border:2px solid #0e2a44;border-radius:50%;place-items:center;display:grid;position:absolute}.role-badge{top:calc(var(--u) * .5);right:calc(var(--u) * .5);z-index:1;padding:calc(var(--u) * .0625) calc(var(--u) * .375);font-weight:700;font-size:calc(var(--u) * .66);color:#111;background:var(--gold);border-radius:999px;position:absolute;box-shadow:0 1px 3px #0008}.role-badge.speed-burst{background:var(--burst)}.role-badge.speed-focus{background:var(--focus)}.role-badge.speed-fast{background:var(--fast);color:#fff}.role-badge.speed-slow{background:var(--slow);color:#fff}.card-name,.unit-name{font-weight:800;font-size:calc(var(--u) * .82);align-items:baseline;gap:4px;display:flex}.unit-name{font-size:calc(var(--u) * .74)}.gem{font-size:calc(var(--u) * .7)}.gem-common{color:var(--common)}.gem-rare{color:var(--rare)}.gem-epic{color:var(--epic)}.gem-champion{color:var(--gold)}.card-type{color:var(--muted);font-size:calc(var(--u) * .66);text-transform:uppercase;letter-spacing:.04em}.card-keywords{flex-wrap:wrap;gap:3px;display:flex}.kw{cursor:help;align-items:center;gap:4px;display:inline-flex}.kw-icon{color:#ddd;background:#0d0b14e6;border-radius:50%;flex:none;place-items:center;width:1.7em;height:1.7em;display:inline-grid;box-shadow:0 0 0 1.5px,0 1px 3px #000a}.kw-icon svg{width:70%;height:70%;overflow:visible}.kw-labeled{background:#ffffff14;border-radius:999px;padding:1px 7px 1px 1px;font-weight:600}.card-keywords .kw-icon{width:1.45em;height:1.45em}.kw-elusive{color:#7fd3ff}.kw-fearsome{color:#c77dff}.kw-challenger{color:#ff6b6b}.kw-overwhelm{color:#ff9f43}.kw-quick-attack{color:#ffd43b}.kw-tough{color:#b8c2cc}.kw-barrier{color:#ffd76a}.kw-lifesteal{color:#ff5d73}.kw-regeneration{color:#5fd38d}.kw-cant-block{color:#ff8787}.kw-ephemeral{color:#b197fc}.kw-last-breath{color:#ced4da}.kw-fleeting{color:#99e9f2}.kw-double-attack{color:#ffc078}.kw-fury{color:#ff6b3d}.kw-support{color:#8ce99a}.kw-scout{color:#a9e34b}.kw-vulnerable{color:#ff8fab}.kw-deep{color:#4dabf7}.kw-immobile{color:#adb5bd}.kw-attune{color:#74c0fc}.kw-brash{color:#ffa94d}.kw-plunder{color:#fcc419}.kw-trap{color:#e599f7}.kw-imbue{color:#66d9e8}.kw-flow{color:#63e6be}.kw-spellshield{color:#e9d8fd}.kw-sharpsight{color:#96f2d7}.kw-augment{color:#ffd8a8}.kw-countdown{color:#ffe066}.kw-lurk{color:#ff8787}.kw-formidable{color:#c5b8a0}.kw-impact{color:#ff922b}.kw-evolve{color:#b197fc}.kw-hallowed{color:#fff3bf}.kw-equipment{color:#c08a4a}.kw-boon{color:#ffd43b}.kw-deathless{color:#9fe0c8}.kw-curse{color:#c48cf0}.kw-gloom{color:#a78bce}.kw-spirit{color:#99e9f2}.kw-attach{color:#d0bfff}.unit.has-barrier:after,.unit.fx-barrier-pop:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(30% 18% at 30% 14%,#ffffffd0 0,#fff0 100%),radial-gradient(#ffd76a26 45%,#ffd76a80 74%,#ffd76a 100%);border:3px solid #ffe08a;border-radius:50%;animation:2.4s ease-in-out infinite barrier-shimmer;position:absolute;inset:-9% -14%;box-shadow:0 0 0 2px #8a6a1088,0 0 22px #ffd76a,inset 0 0 18px #ffd76acc}.unit.fx-barrier-pop:not(.has-barrier):after{animation:.7s ease-out forwards barrier-pop}@keyframes barrier-shimmer{50%{box-shadow:0 0 18px #ffd76a,inset 0 0 18px #ffd76acc}}@keyframes barrier-pop{to{opacity:0;border-width:6px;transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.unit.has-barrier:after{animation:none}.unit.fx-barrier-pop:not(.has-barrier):after{animation:none;display:none}}.card-text{color:#e6e1d6}.unit-keywords,.unit-note{color:var(--muted);font-size:.66rem}.unit-status{z-index:2;gap:2px;font-size:.9rem;display:flex;position:absolute;top:34px;left:8px}.unit-status>span{background:#0b0912d9;border-radius:50%;place-items:center;width:1.5em;height:1.5em;line-height:1;display:grid;box-shadow:0 0 0 1px #ffffff40,0 1px 3px #000a}.card-stats{justify-content:space-between;margin-top:auto;display:flex}.stat{min-width:calc(var(--u) * 1.5);height:calc(var(--u) * 1.5);padding:0 calc(var(--u) * .25);font-weight:800;font-size:calc(var(--u) * .85);color:#fff;border:2px solid #0008;border-radius:50%;place-items:center;display:grid}.stat.power{background:#d9822b}.stat.health{background:#c0392b}.stat.buffed{color:#a6ffb0}.stat.debuffed,.stat.damaged{color:#ffd0d0;box-shadow:inset 0 0 0 2px #ff6b6b}.card.playable,.unit.active{box-shadow:0 0 0 2px var(--ok), 0 0 14px #5fd38d66;cursor:pointer}.card.selected,.unit.selected{box-shadow:0 0 0 3px var(--accent), 0 0 16px #fc38}.card.replace{box-shadow:0 0 0 3px var(--swiss)}.card.replace>:not(.replace-mark){opacity:.45}.replace-mark{z-index:3;background:var(--swiss);color:#fff;text-align:center;letter-spacing:.04em;pointer-events:none;border-radius:6px;padding:4px 6px;font-size:.85em;font-weight:800;position:absolute;inset:38% 6% auto}.hand .card:hover,.hand .card:focus-visible{z-index:2;transform:translateY(-10px)scale(1.06)}.unit.attacking{transform:translateY(-6px)}.unit.blocking{outline:2px dashed #7fc8ff}.card-back{background:repeating-linear-gradient(45deg,#2a2638,#2a2638 6px,#332e45 6px 12px);border-color:#4a4560;width:60px;min-height:90px}.credits ul{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding:0;list-style:none;display:grid}.credits li{align-items:center;gap:8px;font-size:.8rem;display:flex}.credits img{object-fit:cover;border-radius:6px;width:56px;height:56px}.credits a{color:#7fc8ff}.card-levelup{border-left:3px solid var(--gold);color:#ffe9a8;font-size:calc(var(--u) * .66);background:#e8b92322;border-radius:4px;margin-top:2px;padding:2px 4px}.card-levelup.leveled{font-weight:700}.detail-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#07060bcc;place-items:center;padding:16px;display:grid;position:fixed;inset:0}:where(.detail){--frame:#4a4560}.detail{border:4px solid var(--frame);background:linear-gradient(#2a2638,#17141f);border-radius:18px;grid-template-columns:minmax(220px,360px) 1fr;gap:20px;width:min(960px,100%);max-height:calc(100vh - 32px);padding:20px;display:grid;position:relative;overflow-y:auto;box-shadow:0 20px 60px #000c}.detail.role-spell{background:linear-gradient(#1f2d47,#141a28);box-shadow:0 20px 60px #000c}@media (width<=700px){.detail{grid-template-columns:1fr}}.detail-close{border-radius:50%;width:36px;height:36px;font-size:1.1rem;line-height:1;position:absolute;top:10px;right:10px}.detail-art .card-art{aspect-ratio:4/5;border-width:2px;border-radius:12px}.detail.role-spell .detail-art .card-art{aspect-ratio:1;border-radius:50%}.detail-art .default-glyph{font-size:5rem}.detail-body h2{align-items:center;gap:8px;margin:0 40px 4px 0;font-size:1.8rem;display:flex}.detail-type{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px;font-size:.8rem}.detail-speed,.detail-text,.detail-levelup,.detail-stats p{font-size:1rem;line-height:1.45}.detail-speed{background:#ffffff10;border-radius:8px;padding:6px 10px}.detail-text{font-size:1.1rem}.detail-levelup{border-left:4px solid var(--gold);color:#ffe9a8;background:#e8b92322;border-radius:8px;padding:8px 12px}.detail-stats .stat{vertical-align:middle;display:inline-grid}.detail-keywords{gap:6px;margin:12px 0;display:grid}.detail-keywords dt{color:#ffe9a8;font-weight:700}.detail-keywords dd{color:#d8d2e4;margin:0 0 0 12px}.detail-flavor{color:var(--muted);font-style:italic}.detail-related{border-top:1px solid #ffffff18;flex-wrap:wrap;grid-column:1/-1;gap:20px;padding-top:14px;display:flex}.detail-related figure{margin:0}.detail-related figcaption{color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-size:.75rem}.card-cost.cheaper{color:#a6ffb0}.card-cost.dearer{color:#ffb3b3}.hud{background:linear-gradient(90deg,#1b1826,#241f33);border:1px solid #ffffff14;border-radius:14px;flex-wrap:wrap;align-items:center;gap:18px;padding:8px 14px;display:flex}.hud.acting{border-color:var(--accent);box-shadow:0 0 14px #ffcc3340}.hud-avatar{background:radial-gradient(circle at 35% 30%,#5b5476,#2a2638);border:2px solid #4a4560;border-radius:50%;place-items:center;width:44px;height:44px;font-weight:800;display:grid}.hud.acting .hud-avatar{border-color:var(--accent);color:var(--accent)}.hud-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.62rem}.hud-count{font-variant-numeric:tabular-nums;font-weight:700}.hud-aura{color:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:0;padding:0;display:inline-flex}.aura-ring{width:56px;height:56px}.aura-track{fill:#120f19;stroke:#ffffff18;stroke-width:6px}.aura-fill{fill:none;stroke:#f5d76e;stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .3s}.aura-value{fill:#fff4c9;font-size:18px;font-weight:800}.hud-aura.low .aura-fill{stroke:var(--bad)}.hud-aura.low .aura-value{fill:#ffd0d0}.hud-aura.low .aura-ring{animation:1.2s ease-in-out infinite aura-pulse}.hud-aura.targetable{cursor:pointer}.hud-aura.targetable .aura-ring{box-shadow:0 0 0 3px var(--ok), 0 0 14px #5fd38d88;border-radius:50%}@keyframes aura-pulse{50%{filter:drop-shadow(0 0 6px #ff6b6b)}}.hud-mana{align-items:center;gap:8px;display:inline-flex}.gems{grid-template-columns:repeat(5,10px);gap:5px;padding:2px;display:inline-grid}.mana-gem{border:1px solid #3b7fc4;border-radius:2px;width:10px;height:10px;transform:rotate(45deg)}.mana-gem.full{background:radial-gradient(circle at 35% 30%,#bfe6ff,#2a8be0);box-shadow:0 0 5px #4aa8ff88}.mana-gem.spent{background:#0f2236}.mana-gem.locked{border-color:#ffffff14}.hud-spell-mana{gap:4px;display:inline-flex}.spell-gem{border:1px solid #8a4fc7;border-radius:2px;width:11px;height:11px;transform:rotate(45deg)}.spell-gem.full{background:radial-gradient(circle at 35% 30%,#f0d0ff,#9b45e0);box-shadow:0 0 5px #b46cff88}.hud-counter{align-items:center;gap:4px;display:inline-flex}.hud-icon{fill:#2a2638;width:20px;height:20px;stroke:var(--muted);stroke-width:1.5px}.hud-token{border:2px dashed #ffffff20;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.hud-token svg{fill:none;stroke:#ffffff30;stroke-width:1.8px;stroke-linejoin:round;width:18px;height:18px}.hud-token.held{background:radial-gradient(circle at 35% 30%,#ffe38a,#c8961a);border:2px solid #8a6a10;box-shadow:0 0 10px #e8b92388}.hud-token.held svg{stroke:#3a2a00}.battlefield{background:radial-gradient(#ffffff0d 0%,#0000 70%),repeating-linear-gradient(90deg,#ffffff06 0 1px,#0000 1px 120px),#15121d;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;gap:8px;min-height:210px;padding:10px 14px;display:flex;position:relative}.battle-status{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.battle-status ul{color:var(--text);margin:0;padding-left:18px}.battle-hint{color:var(--muted);letter-spacing:.04em;margin:auto;font-size:1rem}.board.dragging .battlefield.attack-zone{border-color:var(--ok);box-shadow:inset 0 0 30px #5fd38d33}.lanes{flex-wrap:wrap;justify-content:center;gap:16px;margin:0;padding:0;list-style:none;display:flex}.lane{background:#ffffff08;border-radius:12px;grid-template-rows:auto 22px auto;justify-items:center;gap:4px;padding:6px;display:grid}.lane.planned{outline:1px dashed #ffffff30}.lane-vs{font-size:1rem;line-height:22px}.lane .unit{animation:.26s ease-out lane-enter}.slot{border:2px dashed #0000;border-radius:12px;width:120px;min-height:170px}.slot.open{text-align:center;color:var(--muted);border-color:#ffffff30;place-items:center;padding:10px;font-size:.75rem;display:grid}.board.dragging .slot.open{border-color:var(--ok);color:var(--ok);background:#5fd38d14}.bench{border-radius:12px;transition:background .12s}.board.dragging .bench{background:#ffffff06}.unit.draggable{cursor:grab}.unit.draggable:active{cursor:grabbing}.unit.fx-enter{animation:.32s cubic-bezier(.2,1.4,.4,1) pop-in}.unit.fx-lunge-me{animation:.38s ease-in-out lunge-up}.unit.fx-lunge-foe{animation:.38s ease-in-out lunge-down}.unit.fx-shake{animation:.36s ease-in-out .18s shake}.unit.fx-lunge-me.fx-shake{animation:.38s ease-in-out lunge-up,.36s ease-in-out .38s shake}.unit.fx-lunge-foe.fx-shake{animation:.38s ease-in-out lunge-down,.36s ease-in-out .38s shake}.unit.fx-level{animation:.9s ease-out level-up}.float{z-index:3;white-space:nowrap;pointer-events:none;-webkit-text-stroke:1.5px #120a0a;paint-order:stroke fill;text-shadow:0 2px 6px #000,0 0 14px #000c;font-size:1.8rem;font-weight:900;line-height:1;animation:1.1s ease-out forwards float-up;position:absolute;top:30%;left:50%;transform:translate(-50%)}.table .unit .float{font-size:clamp(1.1rem, calc(var(--unit-w) * .42), 2.6rem)}.float-damage{color:#ff5a5a}.float-heal{color:#6dff9a}.hud-aura-wrap{display:inline-flex;position:relative}.hud-aura-wrap .float{font-size:1.7rem;top:-12px}@keyframes pop-in{0%{opacity:0;transform:scale(.6)translateY(20px)}to{opacity:1;transform:none}}@keyframes lane-enter{0%{opacity:.4;transform:translateY(30px)scale(.92)}}@keyframes lunge-up{45%{transform:translateY(-26px)scale(1.06)}}@keyframes lunge-down{45%{transform:translateY(26px)scale(1.06)}}@keyframes shake{20%,60%{transform:translate(-6px)rotate(-2deg)}40%,80%{transform:translate(6px)rotate(2deg)}}@keyframes level-up{0%{box-shadow:0 0 #e8b923}40%{transform:scale(1.08);box-shadow:0 0 30px 12px #e8b923aa}to{box-shadow:0 0 12px #e8b92355}}@keyframes float-up{0%{opacity:0;transform:translate(-50%,10px)scale(.8)}15%{opacity:1;transform:translate(-50%)scale(1.15)}to{opacity:0;transform:translate(-50%,-40px)scale(1)}}@media (prefers-reduced-motion:reduce){.unit,.float,.lane .unit,.hand .card,.hud-aura .aura-ring,.aura-fill{transition:none!important;animation:none!important}.float{opacity:1}}.hand .card.draggable{cursor:grab}.hand .card.draggable:active{cursor:grabbing}.board.dragging-card .my-bench,.board.dragging-card .battlefield{outline-offset:-4px;outline:2px dashed #5fd38d55}.unit.drop-target{box-shadow:0 0 0 3px var(--ok), 0 0 18px #5fd38daa;transform:scale(1.04)}.match{background:radial-gradient(70% 55% at 50% 52%,#2b2440 0%,#17131f 60%,#0c0a11 100%);padding:0;position:fixed;inset:0;overflow:clip}.table{--card-w:clamp(110px, 24vh, 290px);--hand-h:calc(var(--card-w) * .86);--unit-ratio:1.3;--unit-w:clamp(52px, min(calc((100vh - 48px - var(--hand-h) - 94px) / (4 * var(--unit-ratio) + .1)), calc((100vw - max(196px, 15vw) - max(170px, 16vw) - 190px) / 6)), 144px);grid-template-columns:minmax(196px,15vw) minmax(0,1fr) minmax(170px,16vw);grid-template-rows:48px minmax(0, 1fr) var(--hand-h);grid-template-areas:"foehand foehand foehand""left center right""hand hand hand";gap:0;display:grid;position:absolute;inset:0}.table-foe-hand,.table-hand{pointer-events:none;justify-content:center;align-items:flex-start;display:flex}.table-foe-hand{grid-area:foehand;align-items:flex-end;transform:translateY(-38%)}.table-hand{z-index:20;grid-area:hand;gap:0;min-height:0;padding:0;overflow:visible}.fan-slot{pointer-events:auto;--fan-span:74vw;margin-left:clamp(calc(var(--card-w) * -.72), calc((var(--fan-span) - var(--fan-count) * var(--card-w)) / max(var(--fan-count) - 1, 1)), calc(var(--card-w) * -.12));transform-origin:50% 160%;--rot:var(--fan-rot);--lift:calc(var(--card-w) * -.68);--lift-scale:1.1;transform:translateY(var(--fan-y)) rotate(var(--rot));transition:transform .16s}.fan-slot:first-child{margin-left:0}.table-foe-hand .fan-slot{transform-origin:50% -120%;margin-left:-26px}.table-hand .fan-slot:hover,.table-hand .fan-slot.raised{z-index:50!important}.table-hand .fan-slot:has(:focus-visible){z-index:50!important}.table-hand .fan-slot .card{transform-origin:50% 160%;transition:transform .16s,box-shadow .12s}.table-hand .fan-slot:hover .card,.table-hand .fan-slot.raised .card{transform:rotate(calc(var(--rot) * -1)) translateY(calc(var(--fan-y) * -1 + var(--lift))) scale(var(--lift-scale))}.table-hand .fan-slot:has(:focus-visible) .card{transform:rotate(calc(var(--rot) * -1)) translateY(calc(var(--fan-y) * -1 + var(--lift))) scale(var(--lift-scale))}.table-hand .fan-slot.raised,.table-hand .fan-slot.raised *{pointer-events:none}.table-hand .fan-slot:has(.drag-source){z-index:auto!important}.table-hand .fan-slot:has(.drag-source) .card{transform:none}.table-hand .card{width:var(--card-w);min-height:calc(var(--card-w) * 1.5);--u:calc(var(--card-w) * .1067);box-shadow:0 8px 24px #000a}.table-hand .card.playable{box-shadow:0 0 0 2px var(--ok), 0 0 16px #5fd38d88, 0 8px 24px #000a}.table-hand .card.selected{box-shadow:0 0 0 3px var(--accent), 0 0 20px #fc3a, 0 8px 24px #000a}.table-foe-hand .card-back{width:56px;min-height:82px;transform:rotate(180deg);box-shadow:0 4px 12px #000a}.table-left,.table-right{z-index:10;flex-direction:column;gap:12px;padding:12px;display:flex}.table-left{grid-area:left;justify-content:space-between;min-height:0}.table-left .hud{grid-template-columns:repeat(3,auto);justify-content:start;align-items:center;gap:6px 10px;padding:10px;display:grid}.table-left .hud-avatar{width:36px;height:36px;font-size:.8rem}.table-left .aura-ring{width:48px;height:48px}.table-left .hud-mana{grid-column:1/-1}.table-left .hud-spell-mana,.table-left .hud-counter,.table-left .hud-token{justify-self:start}.table-left .hud-token{grid-area:1/3;width:28px;height:28px}.table-right{grid-area:right;justify-content:center;align-items:stretch;min-height:0}.table-right .phase{color:var(--muted);text-align:center;margin:0;font-size:.85rem}.table-right .stack{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.table-right .stack li{border-left:3px solid var(--spell);cursor:help;background:#2f6fb326;border-radius:8px;padding:6px 10px}.table-right .action-bar{text-align:center;background:#1b1826e6;border:1px solid #ffffff14;flex-direction:column;align-items:stretch;position:static}.table-right .action-bar .prompt{color:#d8d2e4;font-size:.82rem}.table-right .action-bar .buttons{flex-direction:column;align-items:stretch}.table-right .action-bar button.primary{text-transform:uppercase;letter-spacing:.02em;background:radial-gradient(circle at 35% 30%,#ffe38a,#c8961a);border:3px solid #8a6a10;border-radius:50%;align-self:center;width:clamp(80px,12vh,108px);height:clamp(80px,12vh,108px);padding:6px;font-size:clamp(.68rem,1.5vh,.9rem);font-weight:800;line-height:1.15;box-shadow:0 0 22px #e8b92366,inset 0 -4px 8px #0004}.table-right .action-bar button.primary:not(:disabled):hover{filter:brightness(1.08);box-shadow:0 0 30px #e8b923aa,inset 0 -4px 8px #0004}.table-right .action-bar button.primary:not(:disabled):active{transform:translateY(1px)scale(.98)}.table-right .action-bar button.primary:disabled{filter:grayscale(.8);box-shadow:none}.table-right .action-bar button.subtle{background:0 0;align-self:center;padding:2px 10px;font-size:.75rem}.table-right .action-bar button.subtle:hover{color:var(--bad)}.table-right .attack-spells{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.table-right .action-bar .spell-chip{border:0;border-left:3px solid var(--spell);text-align:left;background:#2f6fb326;border-radius:8px;width:100%;padding:6px 10px;font-size:.8rem}.table-right .action-bar .spell-chip:hover{background:#2f6fb355}.table-center{perspective:1400px;grid-area:center;justify-content:center;align-items:stretch;min-width:0;min-height:0;display:flex}.board-plane{transform-origin:50% 70%;transform-style:flat;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);gap:8px;width:100%;max-width:1100px;min-height:0;padding:6px 0;display:grid;transform:rotateX(14deg)}.board-plane .bench{background:#ffffff05;border-radius:14px;justify-content:center;align-items:center;min-height:0;padding:4px}.board-plane .battlefield{min-height:calc(var(--unit-w) * 1.2)}.table .unit,.table .slot{box-sizing:border-box;width:var(--unit-w);height:calc(var(--unit-w) * var(--unit-ratio));min-height:0}.table .slot.open{padding:4px}.table .unit{--stat:clamp(16px, calc(var(--unit-w) * .22), 32px);padding:3px 3px calc(var(--stat) * .62);font-size:clamp(.5rem, calc(var(--unit-w) * .095), .85rem);border-width:2px;border-radius:10px;gap:2px}.table .unit .card-art{aspect-ratio:auto;border-radius:7px;flex:1 1 0;min-height:0}.table .unit .unit-name{-webkit-line-clamp:2;line-clamp:2;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;font-size:clamp(.55rem, calc(var(--unit-w) * .115), .95rem);-webkit-box-orient:vertical;flex:none;line-height:1.15;display:-webkit-box;overflow:hidden}.table .unit .unit-keywords{left:50%;bottom:calc(var(--stat) * -.5);z-index:4;font-size:calc(var(--stat) * .58);gap:1px;display:flex;position:absolute;transform:translate(-50%)}.table .unit .card-stats{left:-6px;right:-6px;bottom:calc(var(--stat) * -.5);z-index:4;position:absolute}.table .unit .stat{min-width:var(--stat);height:var(--stat);font-size:calc(var(--stat) * .56);padding:0 3px;box-shadow:0 2px 4px #000a}.table .unit .role-badge{font-size:clamp(.5rem, calc(var(--unit-w) * .1), .78rem);padding:0 4px;top:4px;right:4px}.table .unit .unit-status{font-size:clamp(.6rem, calc(var(--unit-w) * .13), 1rem);top:4px;left:4px}.unit-impact{color:#ff922b;align-self:center;font-size:.7em;font-weight:800}.unit-item{box-shadow:0 0 0 1.5px #c08a4a}.unit-attached{background:#0d0b14e6;border-radius:999px;padding:0 .3em;box-shadow:0 0 0 1.5px #d0bfff}.unit-stack{color:#ffd76a;background:#0d0b14e6;border-radius:999px;padding:0 .35em;font-weight:800;box-shadow:0 0 0 1.5px #ffd76a}.table .lane-vs{font-size:.85rem;line-height:16px}.table .lane{grid-template-rows:auto 16px auto}.unit-slot{display:inline-flex}.table-menu{z-index:40;background:#0c0a11cc;border-radius:10px;align-items:center;gap:10px;padding:4px 8px;font-size:.75rem;display:flex;position:absolute;top:8px;right:10px}.table-menu button{padding:3px 8px;font-size:.75rem}.menu-info{color:var(--muted)}.sound-controls{align-items:center;gap:4px;display:inline-flex}.sound-controls input[type=range]{width:64px;accent-color:var(--accent)}.sound-controls input[type=range]:disabled{opacity:.4}.log-drawer{z-index:45;width:min(320px,85vw);transition:transform .22s;position:absolute;top:48px;bottom:0;right:0;transform:translate(105%)}.log-drawer.open{transform:none}.log-drawer .event-log{border-radius:12px 0 0;height:100%;max-height:none;box-shadow:-10px 0 30px #0008}.match .game-over{z-index:60;color:var(--accent);text-shadow:0 2px 12px #e8b92366;border:2px solid var(--accent);white-space:nowrap;background:linear-gradient(#2a2638,#17141f);border-radius:18px;flex-direction:column;align-items:center;gap:18px;margin:0;padding:28px 48px;font-size:2.4rem;font-weight:800;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #07060ba6,0 20px 60px #000c}.match .game-over .buttons{font-size:1rem}.match .game-over button{padding:8px 20px;font-size:1rem}.match:has(.game-over) .table{pointer-events:none}@media (prefers-reduced-motion:reduce){.fan-slot,.table-hand .fan-slot .card,.log-drawer,.drag-ghost{transition:none}}@media (width<=700px) and (orientation:portrait){.table{--card-w:min(30vw, 16vh);--unit-w:clamp(40px, calc((100vw - 48px) / 6), 80px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:26px auto minmax(0, 1fr) auto calc(var(--card-w) * 1.05);grid-template-areas:"foehand foehand""foehud foehud""center center""myhud right""hand hand"}.table-left{display:contents}.table-left>section:first-child{grid-area:foehud;padding:4px 0 0 8px}.table-left>section:last-child{grid-area:myhud;align-self:end;padding:0 0 6px 8px}.table-left .hud{flex-wrap:wrap;gap:4px 8px;padding:4px 8px;display:flex}.table-left .hud-avatar{width:28px;height:28px;font-size:.7rem}.table-left .aura-ring{width:36px;height:36px}.table-left .hud-label,.table-left .gems{display:none}.table-left .hud-token{width:24px;height:24px}.table-right{justify-content:flex-end;gap:4px;padding:0 8px 6px 4px}.table-right .phase{font-size:.7rem}.table-right .action-bar{gap:4px;padding:6px}.table-right .action-bar .prompt{font-size:.68rem}.table-right .action-bar button.primary{width:64px;height:64px;padding:4px;font-size:.55rem}.board-plane{gap:4px;padding:2px 6px}.board-plane .bench{gap:4px}.table .unit .unit-name{white-space:nowrap;text-overflow:ellipsis;display:block}.table .lanes{gap:2px}.table .lane{padding:1px}.battlefield{padding:2px}.table-hand .fan-slot{--rot:calc(var(--fan-rot) * .5);--lift:calc(var(--card-w) * -.3);--lift-scale:1.05}.table-hand .fan-slot:not(:first-child){margin-left:calc(var(--card-w) * -.6)}.table-hand:has(>:nth-child(7)) .fan-slot:not(:first-child){margin-left:calc(var(--card-w) * -.78)}.table-foe-hand .card-back{width:40px;min-height:58px}.table-menu{padding:2px 4px;top:4px;right:4px}.table-menu .menu-info,.sound-controls input[type=range]{display:none}.table-menu .buttons{gap:4px}.table-menu button{padding:2px 6px}}.table{-webkit-user-select:none;user-select:none}.table img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.table .unit.draggable,.table .card.draggable{touch-action:none;cursor:grab}.table.dragging,.table.dragging *{cursor:grabbing!important}.drag-ghost{z-index:200;pointer-events:none;filter:drop-shadow(0 18px 24px #000c);transition:transform 80ms ease-out;position:fixed;transform:translate(-50%,-45%)rotate(-4deg)scale(1.04)}.drag-ghost-card{transform:translate(-50%,-96%)rotate(-4deg)scale(.72)}.drag-ghost .card{width:var(--card-w);min-height:calc(var(--card-w) * 1.5);--u:calc(var(--card-w) * .1067)}.drag-ghost-unit .unit{width:var(--unit-w)}.drag-source{opacity:.3}.battlefield.drop-hover,.bench.drop-hover{box-shadow:inset 0 0 0 2px var(--ok), inset 0 0 40px #5fd38d33;background:#5fd38d1c!important}.slot.drop-hover,.unit.drop-hover{transform:scale(1.06);box-shadow:0 0 0 3px var(--accent), 0 0 22px #fc3a!important}.board.dragging-card .unit.drop-hover:not(.drop-target){transform:none;box-shadow:none!important}.board.dragging-card .unit.role-champion.drop-hover:not(.drop-target){box-shadow:0 0 0 1px #00000080,0 0 12px #e8b92355!important}.board.dragging-card .bench:has(.unit.drop-hover:not(.drop-target)){box-shadow:inset 0 0 0 2px var(--ok), inset 0 0 40px #5fd38d33;background:#5fd38d1c!important}.board.dragging-card .battle-hint{visibility:hidden}.choice-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0b0912c7;place-content:center;justify-items:center;gap:16px;display:grid;position:absolute;inset:0}.choice-overlay h2{color:var(--accent);margin:0}.choice-options{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.choice-options .card{width:var(--card-w);min-height:calc(var(--card-w) * 1.5)}.table-right .stack .stack-target{width:100%;color:inherit;font:inherit;text-align:left;box-shadow:0 0 0 2px var(--ok);background:0 0;border:0;border-radius:4px;padding:0}.unit.landmark{background:linear-gradient(#3a3122,#1c1710);border-color:#c9b37e;box-shadow:0 0 0 2px #6b5a2e,0 6px 14px #0008}.landmark-countdown{z-index:2;color:#ffe066;font-weight:800;font-size:clamp(.6rem, calc(var(--unit-w) * .14), 1rem);background:#0d0b14e6;border-radius:999px;align-items:center;gap:.1em;padding:.05em .4em .05em .15em;display:inline-flex;position:absolute;top:4px;right:4px;box-shadow:0 0 0 1.5px #ffe066}
