:root{--bg0:#070a14;--bg1:#0b0f1e;--bg2:#111832;--bg3:#182040;--ink:#e8ecff;--ink-dim:#9aa3c7;--cyan:#22d3ee;--magenta:#e879f9;--gold:#fbbf24;--green:#4ade80;--red:#f87171;--line:#94a3ff29;--glass:#111832b8;--radius:14px;--shadow:0 10px 30px #00000073;--neon:0 0 10px #22d3ee8c, 0 0 26px #e879f938}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{height:100%}body{background:radial-gradient(1200px 700px at 70% -10%, #1a1442 0%, var(--bg1) 55%, var(--bg0) 100%);color:var(--ink);-webkit-user-select:none;user-select:none;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,sans-serif;overflow:hidden}button{color:inherit;cursor:pointer;font-family:inherit}input,select{font-family:inherit}body.shake{animation:.42s bodyShake}@keyframes bodyShake{0%,to{transform:translate(0)}20%{transform:translate(-7px,3px)}40%{transform:translate(6px,-4px)}60%{transform:translate(-4px,2px)}80%{transform:translate(3px,-2px)}}.app{height:100%}.screen{flex-direction:column;gap:14px;height:100%;padding:18px;display:flex;overflow:hidden auto}.loading{color:var(--ink-dim);letter-spacing:.08em;margin:auto;font-size:18px;animation:1.4s infinite pulse}@keyframes pulse{50%{opacity:.45}}.btn{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;transition:transform .12s,box-shadow .2s,border-color .2s}.btn:hover{border-color:#22d3ee80;transform:translateY(-1px)}.btn.primary{box-shadow:var(--neon);background:linear-gradient(135deg,#22d3ee40,#e879f940);border-color:#22d3ee99}.btn.ghost{background:0 0}.btn.danger{color:#fca5a5;border-color:#f8717180}.btn.big{border-radius:14px;padding:14px 30px;font-size:17px}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.hint{color:var(--ink-dim);font-size:12.5px}.toast{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:400;box-shadow:var(--shadow);border-radius:999px;padding:10px 22px;font-size:14px;animation:.25s toastIn;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}}.screen-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.screen-head h2{letter-spacing:.04em;flex:1;font-size:22px}.record-badge{background:var(--bg2);border:1px solid var(--line);color:var(--gold);border-radius:999px;padding:6px 14px;font-weight:700}.title-screen{justify-content:center;align-items:center;position:relative;overflow:hidden}.title-art{pointer-events:none;position:absolute;inset:0}.spark{background:var(--cyan);width:4px;height:4px;box-shadow:0 0 12px var(--cyan);animation:9s linear infinite orbit;animation-delay:calc(var(--i) * -.375s);transform:rotate(calc(var(--i) * 15deg)) translateX(38vw);opacity:.7;border-radius:50%;position:absolute;top:50%;left:50%}@keyframes orbit{to{transform:rotate(calc(var(--i) * 15deg + 360deg)) translateX(38vw)}}.title-center{text-align:center;z-index:1;flex-direction:column;align-items:center;gap:18px;display:flex}.game-logo{letter-spacing:.22em;background:linear-gradient(120deg, var(--cyan) 20%, var(--magenta) 60%, var(--gold));color:#0000;filter:drop-shadow(0 0 26px #22d3ee59);-webkit-background-clip:text;background-clip:text;font-size:clamp(56px,12vw,120px);font-weight:900}.game-sub{color:var(--ink-dim);letter-spacing:.35em;text-transform:uppercase;font-size:13px}.title-note{color:var(--ink-dim);opacity:.7;font-size:12px}.menu-screen{justify-content:center;align-items:center;gap:30px}.menu-logo{letter-spacing:.25em;color:#0000;background:linear-gradient(120deg, var(--cyan), var(--magenta));-webkit-background-clip:text;background-clip:text;font-size:42px;font-weight:900}.menu-grid{grid-template-columns:repeat(3,minmax(180px,240px));gap:16px;display:grid}.menu-card{text-align:left;background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;align-items:flex-start;gap:6px;padding:20px;transition:transform .15s,border-color .2s,box-shadow .2s;display:flex}.menu-card:hover{box-shadow:var(--neon);border-color:#22d3ee8c;transform:translateY(-3px)}.menu-card b{font-size:17px}.menu-card small{color:var(--ink-dim)}.menu-card .mc-icon{font-size:26px}.menu-card.primary{border-color:#e879f973}.menu-card.tutorial{border-color:#fbbf2466}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters input,.filters select{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:9px;outline:none;padding:8px 12px;font-size:13px}.filters input:focus,.filters select:focus{border-color:#22d3ee8c}.fav-toggle{color:var(--ink-dim);align-items:center;gap:6px;font-size:13px;display:flex}.deck-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.deck-option{text-align:left;background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;gap:8px;padding:18px;transition:transform .14s,border-color .2s;display:flex}.deck-option:hover{transform:translateY(-2px)}.deck-option.selected{border-color:var(--cyan);box-shadow:var(--neon)}.deck-option.new-deck{color:var(--ink-dim);border-style:dashed;justify-content:center;align-items:center;min-height:120px}.do-name{font-size:17px}.do-desc{color:var(--ink-dim);min-height:32px;font-size:12.5px}.do-stats{color:var(--cyan);flex-wrap:wrap;gap:10px;font-size:11.5px;display:flex}.do-invalid{color:var(--red);font-size:12px}.match-setup{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:end;gap:14px;padding:16px 18px;display:flex}.match-setup label{color:var(--ink-dim);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.match-setup select,.match-setup input{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:9px;min-width:150px;padding:9px 12px}.card-full{background:linear-gradient(160deg, var(--bg2), var(--bg1));border:1.6px solid var(--faction,var(--line));width:268px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:8px;padding:12px;display:flex;position:relative}.card-full.selected{outline:2px solid var(--cyan)}.card-full.dim{opacity:.55;filter:grayscale(.4)}.card-full.glow{box-shadow:0 0 18px #22d3ee99}.card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.card-name{letter-spacing:.02em;font-size:16.5px;font-weight:800}.hp-badge{color:var(--gold);font-size:17px;font-style:normal;font-weight:900}.hp-badge small{color:var(--ink-dim);margin-left:2px;font-size:10px}.card-stage{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);color:var(--ink-dim);background:#94a3ff1a;border-radius:999px;padding:2.5px 8px;font-size:10.5px;font-weight:700}.kind-chip{color:var(--faction);border-color:var(--faction)}.unique-chip{color:var(--gold);border-color:var(--gold)}.qty{color:var(--cyan)}.card-art{border:1px solid var(--line);border-radius:10px;height:130px;position:relative;overflow:hidden}.art-svg{width:100%;height:100%;display:block}.rarity{text-shadow:0 0 8px;font-size:15px;position:absolute;top:6px;right:8px}.card-rulebox{color:var(--ink-dim);border-left:3px solid var(--faction);background:#94a3ff0f;border-radius:6px;padding:6px 8px;font-size:11.5px}.card-body{flex-direction:column;gap:6px;min-height:60px;display:flex}.ability-line,.attack-line{border:1px solid var(--line);background:#94a3ff12;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 8px;padding:6px 8px;font-size:11.5px;display:grid}.ab-name,.atk-name{grid-column:1}.ab-trigger{color:var(--magenta);grid-column:2;font-size:10px}.ab-text,.atk-text{color:var(--ink-dim);grid-column:1/-1}.atk-dmg{color:var(--gold);grid-column:3;font-size:15px;font-weight:900}.atk-cost{grid-column:1;gap:3px;display:flex}.cost-pip{color:#06080f;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:900;display:inline-flex;box-shadow:inset 0 0 6px #00000080}.attack-line{grid-template-columns:auto 1fr auto}.attack-line .atk-name{grid-column:2}.card-foot{color:var(--ink-dim);border-top:1px solid var(--line);justify-content:space-between;padding-top:6px;font-size:10.5px;display:flex}.weak{color:#fca5a5}.resist{color:#93c5fd}.retreat{color:var(--ink-dim)}.card-number{color:var(--ink-dim);opacity:.6;font-size:9px;position:absolute;bottom:6px;right:12px}.resource-body .res-amount{color:var(--ink-dim);font-size:12px}.card-mini{background:var(--glass);border:1px solid var(--line);border-left:3px solid var(--faction);border-radius:11px;align-items:center;gap:10px;min-width:200px;padding:7px 10px;transition:transform .13s,box-shadow .18s,border-color .18s;display:flex;position:relative}.card-mini:hover{box-shadow:var(--shadow);z-index:5;transform:translateY(-4px)scale(1.02)}.card-mini.playable{cursor:pointer;border-color:#4ade80a6;box-shadow:0 0 12px #4ade8059}.card-mini.dim{opacity:.45;filter:saturate(.5)}.mini-art{border-radius:8px;flex-shrink:0;width:40px;height:40px;overflow:hidden}.mini-info{flex-direction:column;flex:1;gap:3px;display:flex}.mini-name{font-size:13px;font-weight:700}.mini-name em{color:var(--cyan);font-style:normal}.mini-sub{align-items:center;gap:5px;display:flex}.mini-sub .chip{padding:1.5px 6px;font-size:9px}.mini-hp{color:var(--gold);margin-left:auto;font-size:11px;font-weight:800}.card-mini .rarity{font-size:12px;position:static}.builder-layout{flex:1;grid-template-columns:1fr 330px;gap:14px;min-height:0;display:grid}.library{flex-direction:column;gap:10px;min-height:0;display:flex}.lib-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));align-content:start;gap:9px;padding:4px;display:grid;overflow-y:auto}.lib-cell{position:relative}.lib-cell.fav:after{content:"★";color:var(--gold);font-size:15px;position:absolute;top:-6px;right:-4px}.lib-add{color:var(--cyan);background:#22d3ee29;border:1px solid #22d3ee66;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-weight:900;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.fav-btn{color:#fbbf2459;background:0 0;border:none;font-size:15px;position:absolute;top:6px;left:6px}.fav-btn.on{color:var(--gold);text-shadow:0 0 8px var(--gold)}.usage-chip{color:var(--cyan);background:#22d3ee24;border-radius:999px;padding:1px 7px;font-size:9.5px;position:absolute;bottom:6px;right:6px}.deck-panel{flex-direction:column;gap:10px;min-height:0;display:flex}.deck-validity{border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:12.5px}.deck-validity.ok{color:var(--green);border-color:#4ade8066}.deck-validity.bad{color:#fca5a5;border-color:#f8717166}.deck-contents{flex-direction:column;flex:1;gap:5px;min-height:120px;padding-right:4px;display:flex;overflow-y:auto}.deck-name-input{border:none;border-bottom:2px dashed var(--line);min-width:120px;color:var(--ink);background:0 0;outline:none;flex:1;padding:4px 6px;font-size:19px;font-weight:800}.deck-name-input:focus{border-color:var(--cyan)}.head-actions{gap:8px;display:flex}.deck-stats{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;padding:12px;display:flex}.stat-row{color:var(--ink-dim);justify-content:space-between;font-size:12.5px;display:flex}.stat-row b{color:var(--ink)}.curve{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:8px;display:flex}.curve b{color:var(--magenta);font-size:11.5px}.curve-row{color:var(--ink-dim);grid-template-columns:68px 1fr 24px;align-items:center;gap:6px;font-size:11px;display:grid}.curve-bar{background:#94a3ff1a;border-radius:99px;height:8px;overflow:hidden}.curve-bar span{background:linear-gradient(90deg, var(--cyan), var(--magenta));border-radius:99px;height:100%;display:block}.curve-row em{text-align:right;color:var(--cyan)}.history-list{flex-direction:column;gap:8px;display:flex}.history-line{background:var(--glass);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 16px;font-size:13px;display:flex}.history-line .result{width:74px;font-weight:900}.history-line .result.win{color:var(--green)}.history-line .result.loss{color:var(--red)}.matchup{flex:1}.history-line .meta{color:var(--ink-dim)}.history-line .date{color:var(--ink-dim);font-size:11.5px}.settings-body{flex-direction:column;gap:14px;max-width:520px;display:flex}.settings-body label{color:var(--ink-dim);flex-direction:column;gap:6px;font-size:13px;display:flex}.settings-body input,.settings-body select{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:9px 12px}.settings-body label.check{flex-direction:row;align-items:center}.about{border-top:1px solid var(--line);color:var(--ink-dim);padding-top:12px;font-size:12.5px;line-height:1.5}.results-screen{justify-content:center;align-items:center}.results-card{text-align:center;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;align-items:center;gap:16px;padding:46px 60px;display:flex}.results-screen.win .results-card{border-color:#4ade8080;box-shadow:0 0 40px #4ade8033}.results-screen.loss .results-card{border-color:#f8717166}.results-card h1{letter-spacing:.08em;font-size:44px}.results-screen.win h1{color:var(--green);text-shadow:0 0 24px #4ade8080}.results-screen.loss h1{color:var(--red)}.results-card p{color:var(--ink-dim);max-width:420px}.results-actions{flex-direction:column;gap:10px;min-width:260px;display:flex}.match-screen{gap:6px;padding:8px;position:relative;overflow:hidden}.opp-bar,.my-bar{align-items:center;gap:16px;padding:4px 10px;display:flex}.player-name{letter-spacing:.04em;font-weight:800}.ai-tag{color:var(--magenta);border:1px solid #e879f966;border-radius:99px;margin-left:6px;padding:1px 7px;font-size:10px}.opp-info,.my-info{flex-direction:column;flex:1;gap:4px;display:flex}.vp-track{gap:5px;display:flex}.vp-pip{border:1px solid var(--line);background:#94a3ff24;border-radius:4px;width:17px;height:9px}.vp-pip.earned{background:linear-gradient(90deg, var(--gold), #f59e0b);border-color:var(--gold);box-shadow:0 0 8px #fbbf24b3}.opp-hand-backs{align-items:center;gap:3px;display:flex}.hand-back{border:1px solid var(--line);background:linear-gradient(160deg,#1e2a55,#10162e);border-radius:4px;width:20px;height:30px}.hand-count{color:var(--ink-dim);margin-left:6px;font-size:12px}.zone-pile{cursor:pointer;flex-direction:column;align-items:center;gap:2px;display:flex}.pile-visual{border:1px solid var(--line);width:46px;height:62px;box-shadow:var(--shadow);border-radius:8px;position:relative}.zone-pile.deck .pile-visual{background:repeating-linear-gradient(160deg,#1c2650 0 6px,#141c3c 6px 12px)}.zone-pile.discard .pile-visual{opacity:.8;background:repeating-linear-gradient(160deg,#2a1a2e 0 8px,#1a1220 8px 16px)}.pile-count{color:var(--cyan);font-size:14px;font-weight:900}.pile-label{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.1em;font-size:9.5px}.field-row{justify-content:center;display:flex}.bench-row{align-items:stretch;gap:10px;display:flex}.active-row{align-items:center;gap:20px}.active-zone{width:min(320px,30vw)}.slot.empty{min-height:96px;color:var(--ink-dim);letter-spacing:.12em;border:2px dashed #94a3ff38;border-radius:14px;justify-content:center;align-items:center;font-size:11px;display:flex}.slot.empty.active-slot{width:100%;min-height:300px}.slot.empty.mini-slot{flex:1;max-width:150px;min-height:96px}.center-strip{flex-direction:column;align-items:center;gap:10px;min-width:190px;display:flex}.turn-banner{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:10px 18px;font-size:13.5px;display:flex}.turn-banner .my-turn{color:var(--cyan);font-weight:800}.turn-banner .opp-turn{color:var(--magenta)}.field-chip{color:var(--gold);border:1px solid #fbbf2459;border-radius:99px;padding:2px 10px;font-size:10.5px}.field-slot{border:1.5px dashed #fbbf244d;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-width:190px;min-height:42px;padding:4px 12px;display:flex}.field-empty{color:#fbbf2480;letter-spacing:.14em;text-transform:uppercase;font-size:11px}.field-card{color:var(--gold);background:#fbbf241a;border:1px solid #fbbf2473;border-radius:9px;padding:7px 14px;font-size:12px;font-weight:700}.board-card{background:linear-gradient(165deg, var(--bg3), var(--bg1));border:1.6px solid var(--faction);cursor:pointer;border-radius:14px;flex-direction:column;gap:5px;width:100%;padding:8px 10px;transition:transform .14s,box-shadow .2s;display:flex;position:relative;box-shadow:0 6px 18px #0006}.board-card:hover{box-shadow:var(--shadow), var(--neon);z-index:6;transform:translateY(-3px)}.board-card.is-active{box-shadow:0 10px 30px #00000080, 0 0 22px color-mix(in srgb, var(--faction) 35%, transparent);padding:12px 14px}.board-card.targetable{outline:2.5px solid var(--cyan);cursor:crosshair;animation:1.1s infinite targetPulse}@keyframes targetPulse{50%{outline-color:#22d3ee40}}.board-card.selected{outline:2.5px solid var(--magenta)}.board-card.can-attack:after{content:"⚔";color:var(--red);text-shadow:0 0 8px #f87171cc;font-size:15px;position:absolute;top:-8px;right:-6px}.board-card.soft-glow{box-shadow:0 0 14px #4ade8059}.just-played{font-size:13px;position:absolute;top:-7px;left:-6px}.bc-top{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.bc-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:800;overflow:hidden}.is-active .bc-name{font-size:16px}.bc-hp{color:var(--gold);font-size:14px;font-weight:900}.bc-hp small{color:var(--ink-dim);font-weight:400}.bc-hp[data-damaged=true]{color:var(--red)}.bc-art{border:1px solid var(--line);border-radius:9px;height:58px;position:relative;overflow:hidden}.is-active .bc-art{height:108px}.hp-bar{background:#0000008c;height:5px;position:absolute;bottom:0;left:0;right:0}.hp-bar span{background:linear-gradient(90deg, var(--green), #a3e635);height:100%;transition:width .4s;display:block}.hp-bar span[data-low=true]{background:linear-gradient(90deg, var(--red), #fb923c)}.dmg-count{color:#fca5a5;background:#f8717133;border-radius:99px;padding:1px 6px;font-size:10px;font-weight:800;position:absolute;top:4px;right:6px}.bc-stage{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.bc-attacks,.bc-abilities{flex-direction:column;gap:3px;display:flex}.bc-attack{color:var(--ink-dim);background:#94a3ff12;border-radius:6px;justify-content:space-between;padding:3px 7px;font-size:11px;display:flex}.bc-attack.playable{color:var(--ink);border:1px solid #4ade8080}.bc-atk-dmg{color:var(--gold);font-weight:900}.bc-equip{color:var(--cyan);font-size:10px}.bc-res{flex-wrap:wrap;align-items:center;gap:4px;min-height:12px;display:flex}.res-pip{width:12px;height:12px;box-shadow:0 0 6px color-mix(in srgb, currentColor 60%, transparent), inset 0 -2px 3px #0006;border-radius:50%}.res-empty{border:1px dashed #94a3ff4d;border-radius:50%;width:12px;height:12px}.bc-status{flex-wrap:wrap;gap:4px;display:flex}.status-chip{border:1px solid var(--line);background:#94a3ff1f;border-radius:6px;padding:1px 5px;font-size:11px;animation:.3s statusPop}@keyframes statusPop{0%{opacity:0;transform:scale(.4)}}.status-chip.st-burn{color:#fca5a5;border-color:#f8717180}.status-chip.st-poison{color:#bef264;border-color:#bef26466}.status-chip.st-shield,.status-chip.st-regeneration{color:#93c5fd;border-color:#93c5fd66}.counter-chip{background:var(--bg2);color:var(--gold);border:1px solid #fbbf2480;border-radius:99px;padding:1px 7px;font-size:10px;position:absolute;bottom:-8px;right:6px}.ability-btn{color:var(--ink-dim);border:1px dashed var(--line);border-radius:7px;width:fit-content;padding:2px 7px;font-size:10.5px}.ability-btn.playable{color:var(--magenta);border-color:#e879f98c}.hand{z-index:20;scrollbar-width:none;justify-content:safe center;gap:8px;padding:10px 14px;display:flex;position:absolute;bottom:76px;left:0;right:0;overflow-x:auto}.hand::-webkit-scrollbar{display:none}.command-dock{z-index:30;scrollbar-width:none;flex-wrap:nowrap;flex:2;justify-content:flex-end;gap:8px;display:flex;position:relative;overflow-x:auto}.command-dock::-webkit-scrollbar{display:none}.dock-btn{background:var(--glass);border:1px solid var(--line);color:var(--ink-dim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:11px;padding:9px 14px;font-size:12.5px;font-weight:700;transition:transform .12s,box-shadow .18s,border-color .18s}.dock-btn.playable{color:var(--ink)}.dock-btn.playable:hover{transform:translateY(-2px)}.attack-btn.playable{color:#fecaca;border-color:#f8717199;box-shadow:0 0 10px #f8717140}.attack-btn b{color:var(--gold);margin-left:4px}.ability-btn.dock-btn.playable{color:var(--magenta);border-color:#e879f98c}.ability-btn small{color:var(--ink-dim);font-weight:400}.retreat-btn.playable{color:var(--cyan);border-color:#22d3ee80}.endturn-btn.playable{color:#bbf7d0;border-color:#4ade808c}.target-banner{z-index:60;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1.5px solid var(--cyan);box-shadow:var(--neon);border-radius:999px;align-items:center;gap:14px;padding:10px 22px;font-size:14px;animation:.2s toastIn;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.cancel-target{color:var(--ink-dim);background:0 0;border:none;font-size:12px;text-decoration:underline}.tutorial-banner{z-index:60;background:linear-gradient(140deg, #fbbf2429, var(--glass));max-width:min(480px,88vw);box-shadow:var(--shadow);border:1.5px solid #fbbf248c;border-radius:16px;flex-direction:column;gap:6px;padding:14px 22px;animation:.3s toastIn;display:flex;position:absolute;bottom:170px;left:50%;transform:translate(-50%)}.tutorial-banner b{color:var(--gold);font-size:15px}.tutorial-banner span{font-size:13.5px}.skip-tutorial{background:var(--bg2);border:1px solid var(--line);color:var(--ink-dim);border-radius:99px;padding:3px 10px;font-size:10.5px;position:absolute;top:-12px;right:-10px}.match-hud{z-index:70;gap:6px;display:flex;position:absolute;top:10px;right:10px}.hud-btn{background:var(--glass);border:1px solid var(--line);border-radius:10px;width:34px;height:34px;font-size:15px}.log-drawer{z-index:80;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);width:min(320px,80vw);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:4px;padding:12px;display:flex;position:absolute;top:52px;bottom:90px;right:10px;overflow-y:auto}.log-line{color:var(--ink-dim);border-bottom:1px dashed #94a3ff14;padding:3px 2px;font-size:12px}.log-line.p0{color:var(--cyan)}.log-line.p1{color:var(--magenta)}.debug-panel{z-index:90;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(360px,86vw);max-height:60vh;box-shadow:var(--shadow);border:1px solid #e879f966;border-radius:14px;flex-direction:column;display:flex;position:absolute;bottom:90px;left:10px;overflow:hidden}.debug-head{border-bottom:1px solid var(--line);color:var(--magenta);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.debug-tabs{gap:4px;padding:6px 10px;display:flex}.debug-tabs button{border:1px solid var(--line);color:var(--ink-dim);background:0 0;border-radius:8px;padding:4px 10px;font-size:11.5px}.debug-tabs button.on{color:var(--magenta);border-color:#e879f980}.debug-body{flex-direction:column;gap:8px;padding:10px 12px;font-size:12px;display:flex;overflow-y:auto}.debug-body label{color:var(--ink-dim);align-items:center;gap:8px;display:flex}.debug-body input,.debug-body select{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:7px;width:70px;padding:4px 8px}.debug-body button{background:var(--bg2);border:1px solid var(--line);border-radius:7px;padding:5px 10px;font-size:11.5px}.debug-grid{grid-template-columns:1fr 1fr;gap:4px;max-height:200px;display:grid;overflow-y:auto}.debug-char{border:1px solid var(--line);border-radius:9px;padding:6px 8px}.debug-actions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.debug-body pre{white-space:pre-wrap;max-height:200px;color:var(--ink-dim);font-size:10px;overflow:auto}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#04060eb8;justify-content:center;align-items:center;padding:20px;animation:.16s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}}.modal{animation:.2s modalIn;position:relative}@keyframes modalIn{0%{opacity:0;transform:scale(.92)}}.modal.inspect .card-full{width:min(320px,88vw)}.modal.pause{background:var(--glass);border:1px solid var(--line);text-align:center;border-radius:18px;flex-direction:column;align-items:stretch;gap:12px;min-width:280px;padding:30px 40px;display:flex}.close-btn{z-index:5;background:var(--bg2);border:1px solid var(--line);width:28px;height:28px;color:var(--ink-dim);border-radius:8px;position:absolute;top:8px;right:8px}.fx-layer{pointer-events:none;z-index:300;position:fixed;inset:0}.fx-float{text-shadow:0 2px 10px #000c;font-size:22px;font-weight:900;animation:1.5s ease-out forwards floatUp;position:fixed;transform:translate(-50%,-50%)}.fx-float.big{font-size:34px}.fx-float.dmg{color:var(--red)}.fx-float.heal{color:var(--green)}.fx-float.upgrade{color:var(--gold);font-size:26px}.fx-float.ko{color:#fff;letter-spacing:.2em;font-size:20px}.fx-float.info{color:var(--cyan)}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.15)}to{opacity:0;transform:translate(-50%,-170%)scale(1)}}.fx-slash{background:linear-gradient(90deg, transparent, #fff, var(--cyan), transparent);width:120px;height:3px;filter:drop-shadow(0 0 8px var(--cyan));animation:.5s ease-out forwards slash;position:fixed;transform:translate(-50%,-50%)rotate(-35deg)}@keyframes slash{0%{opacity:0;width:0}30%{opacity:1;width:140px}to{opacity:0;width:220px}}.fx-burst{position:fixed;transform:translate(-50%,-50%)}.fx-burst i{background:var(--gold);width:6px;height:6px;box-shadow:0 0 8px var(--gold);border-radius:50%;animation:.8s ease-out forwards burst;position:absolute}@keyframes burst{0%{transform:rotate(var(--ang)) translateY(0);opacity:1}to{transform:rotate(var(--ang)) translateY(-70px);opacity:0}}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px}.btn,.card-mini,.zone-pile,.board-card,.dock-btn,.menu-card{touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (width<=980px){.builder-layout{grid-template-rows:1fr auto;grid-template-columns:1fr}.deck-panel{max-height:44vh}.menu-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.active-zone{width:min(280px,44vw)}}@media (width<=700px){.screen{gap:10px;padding:10px}.menu-grid{grid-template-columns:1fr 1fr;width:100%}.match-screen{padding:6px}.opp-bar,.my-bar{gap:8px;padding:2px 4px}.pile-visual{width:34px;height:46px}.active-row{flex-direction:column;gap:8px}.active-zone{width:min(340px,92vw)}.slot.empty.active-slot{min-height:230px}.center-strip{flex-flow:wrap;justify-content:center;gap:8px;min-width:0}.bench-row{flex-wrap:nowrap;width:100%;padding-bottom:4px;overflow-x:auto}.bench-row .board-card{min-width:108px;max-width:120px}.bc-attacks{display:none}.hand{justify-content:flex-start;bottom:66px}.command-dock{justify-content:center}.dock-btn{padding:8px 10px;font-size:11.5px}.tutorial-banner{bottom:150px}.my-bar{background:linear-gradient(transparent, var(--bg0) 40%);z-index:30;padding-bottom:8px;position:absolute;bottom:0;left:0;right:0}.my-info{display:none}.card-full{width:236px}.results-card{width:92vw;padding:30px 22px}}@media (width<=420px){.menu-grid{grid-template-columns:1fr}.card-full{width:min(206px,84vw)}.dock-btn{padding:7px 8px;font-size:10.5px}.bench-row .board-card{min-width:88px;max-width:102px}.active-zone{width:94vw}.hand{bottom:74px}.tutorial-banner{padding:8px 10px;font-size:12px;bottom:168px}.results-card{width:96vw;padding:24px 14px}.filters{flex-wrap:wrap}}@media (width>=1024px){.menu-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}}.chip.edition-chip{color:var(--gold-hi);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(135deg,#d4af3733,#d4af3714);border-color:#d4af378c;font-size:10px;font-weight:800}.chip.edition-chip.ed-mvp{color:#d7dce4;background:linear-gradient(135deg,#c0c5ce2e,#c0c5ce0d);border-color:#c0c5ce99}.chip.edition-chip.ed-champion{color:#ffe9a8;border-color:#f5d97abf}.chip.edition-chip.ed-finals{color:#fca5a5;border-color:#f8717199}.chip.edition-chip.ed-icon{color:#c4b5fd;border-color:#a78bfa99}.chip.identity-chip{color:var(--ink-dim);border-style:dashed;font-size:10px}.chip.holo-chip{color:#fff3cd;background:linear-gradient(100deg,#f5d97a40,#ffffff1f,#d4af3733);border-color:#f5d97ab3;font-size:10px}.card.holo{background-image:linear-gradient(135deg,#f5d97a12 0%,#0000 30%,#ffffff0d 50%,#0000 70%,#d4af3712 100%)}.card.holo .card-art:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 40%,#fff8dc24 50%,#0000 60%);position:absolute;inset:0}.card-art-img{width:100%;height:100%;display:block}.deck-preview{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.deck-preview-label{color:var(--ink-dim);font-size:12.5px;font-weight:700}.deck-preview-thumb{border:1px solid var(--line);background:var(--bg2);border-radius:10px;flex-shrink:0;width:46px;height:46px;overflow:hidden}.variants-strip{z-index:320;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}body.shake{animation:none!important}.fx-layer,.spark{display:none}}.btn:disabled,.dock-btn:disabled,.menu-card:disabled{cursor:not-allowed}.btn:disabled:hover,.dock-btn:disabled:hover{box-shadow:none;border-color:var(--line);transform:none}.card-mini.dim{cursor:default}.menu-screen{justify-content:flex-start;padding-top:4vh}.menu-sub{color:var(--ink-dim);letter-spacing:.28em;text-transform:uppercase;margin-top:-14px;font-size:11.5px}.menu-grid{grid-template-columns:repeat(auto-fit,minmax(210px,250px));justify-content:center;width:min(1120px,100%)}.menu-card{text-align:left;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;min-height:88px;display:grid}.menu-card .mc-icon{opacity:.9;grid-row:1/span 2;font-size:28px}.menu-card b{grid-column:2}.menu-card small{grid-column:2;line-height:1.35}.menu-card.online{border-color:#22d3ee80}.menu-card.online:hover{box-shadow:0 0 12px #22d3ee73}.menu-foot{text-align:center;opacity:.6;letter-spacing:.08em}.multiplayer-screen{width:100%;max-width:980px;margin:0 auto}.mp-banner{border-radius:var(--radius);border:1px solid var(--line);background:var(--glass);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.mp-banner.warn{border-color:#fbbf2480}.mp-banner.error{border-color:#f871718c}.mp-banner code{background:#94a3ff1f;border-radius:6px;padding:1px 6px}.mp-entry{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.mp-card{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:stretch;gap:12px;padding:20px;display:flex}.mp-card h3{letter-spacing:.03em;font-size:18px}.mp-code-field{color:var(--ink-dim);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.mp-code-field input{background:var(--bg1);border:1px solid var(--line);color:var(--ink);letter-spacing:.3em;text-transform:uppercase;text-align:center;border-radius:10px;padding:12px 14px;font-size:22px;font-weight:800}.mp-code-field input:focus{border-color:var(--cyan);outline-offset:1px}.mp-lobby{flex-direction:column;gap:16px;display:flex}.mp-room-code{text-align:center;background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:center;gap:8px;padding:18px;display:flex}.mp-label{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);font-size:11.5px}.mp-code{letter-spacing:.22em;color:var(--cyan);text-shadow:0 0 18px #22d3ee66;font-variant-numeric:tabular-nums;font-size:clamp(30px,9vw,46px);font-weight:900}.mp-copy{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.mp-status{color:var(--gold);font-size:13px}.mp-seats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.mp-seat{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:6px;padding:16px;display:flex;position:relative}.mp-seat.me{border-color:#22d3ee8c}.mp-seat.empty{color:var(--ink-dim);border-style:dashed}.mp-seat b{font-size:16px}.mp-seat small{color:var(--ink-dim);font-size:12.5px}.mp-seat small.ready{color:var(--green);font-weight:700}.mp-dot{border-radius:50%;width:9px;height:9px;position:absolute;top:16px;right:16px}.mp-dot.on{background:var(--green);box-shadow:0 0 8px var(--green)}.mp-dot.off{background:var(--red)}.mp-you{letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);font-size:10px;position:absolute;bottom:12px;right:14px}.mp-deck-row{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:end;gap:12px;padding:16px;display:flex}.mp-deck-row label{color:var(--ink-dim);flex-direction:column;flex:1;gap:6px;min-width:200px;font-size:12.5px;display:flex}.mp-deck-row select{background:var(--bg1);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:10px}.net-banner{z-index:120;background:var(--bg2);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:999px;padding:7px 16px;font-size:12.5px;font-weight:600;position:absolute;top:8px;left:50%;transform:translate(-50%)}.net-banner.ok{color:#bbf7d0;border-color:#4ade8073}.net-banner.warn{color:#fde68a;border-color:#fbbf2480}.online-match .opp-bar{position:relative}.hint{color:#b3bce0}.small,small{line-height:1.4}.chip{letter-spacing:.04em}@media (width<=700px){.menu-screen{gap:18px;padding-top:2vh}.menu-card{min-height:74px}.mp-card{padding:16px}.mp-deck-row{align-items:stretch}.mp-deck-row .btn{width:100%}.net-banner{text-align:center;max-width:92vw;padding:6px 12px;font-size:11.5px}}
