:root{--bg: #0b0d14;--panel: #151925;--panel-2: #1c2131;--line: #2a3046;--line-soft: #ffffff10;--text: #e8eaf2;--muted: #8a90a8;--magic: #b884ff;--magic-dim: #3a2a5c;--ai: #3fd6c6;--ai-dim: #17403f;--atk: #ffb347;--hp: #ff5f6d;--good: #7ee787;--earth: #6b8f3a;--water: #2f7dd1;--fire: #e2572b;--air: #9fd3e8;--aether: #9b5de5;--cloud: #6c7a96;--static: #4a4d57;--s: 1;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:radial-gradient(ellipse at 50% 0%,#1b1631 0%,var(--bg) 60%) var(--bg)}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer;transition:border-color .15s,background .15s}button:hover{border-color:var(--muted)}button.primary{background:var(--magic-dim);border-color:var(--magic)}button.link{background:none;border:none;color:var(--muted);text-decoration:underline}.viewport{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.stage{position:absolute;left:50%;top:50%;width:1600px;height:900px;transform:translate(-50%,-50%) scale(var(--s));transform-origin:50% 50%}.stage-root{position:absolute;top:0;right:0;bottom:0;left:0}.fx-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:20;overflow:visible}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000a;display:grid;place-items:center;padding:24px;z-index:30}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 26px;max-width:680px;max-height:92%;overflow-y:auto;box-shadow:0 30px 80px -20px #000}.panel h2{margin-top:0}.panel p{line-height:1.5;font-size:15px}.hint{font-size:13px;color:var(--muted)}.gameover{text-align:center;min-width:340px}.gameover h2{font-size:40px;margin-bottom:4px}.gameover button{margin:4px}.start{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}.start h1,.logo{font-weight:900;letter-spacing:.08em;margin:0}.start h1{font-size:96px;line-height:1}.start h1 span,.logo span{color:var(--ai)}.tagline{color:var(--muted);margin:6px 0 34px;font-size:18px}.modes{display:grid;grid-template-columns:repeat(2,360px);gap:14px;margin-bottom:22px}.modes button{text-align:left;padding:18px 20px;display:flex;flex-direction:column;gap:6px;font-size:17px;border-radius:12px}.modes button small{color:var(--muted);font-size:13px}.modes button:nth-child(1){border-color:var(--magic-dim)}.modes button:nth-child(2){border-color:var(--ai-dim)}.start-links{display:flex;gap:18px;justify-content:center}.styles-panel{max-width:780px}.styles-panel h3{margin:14px 0 8px}.style-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.style-tile{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 8px 10px;background:var(--panel-2)}.style-tile .card{flex:none;width:140px;height:200px;cursor:pointer;opacity:1}.style-tile:hover .card{transform:translateY(-4px)}.style-tile.equipped{border-color:var(--good);box-shadow:0 0 0 1px var(--good)}.style-meta{display:flex;flex-direction:column;gap:2px;text-align:center}.style-meta small{color:var(--muted);font-size:11px}.equipped-tag{color:var(--good);font-size:11px;font-weight:700;margin-top:2px}.log-drawer{position:absolute;right:12px;top:54px;bottom:12px;width:330px;z-index:12;display:flex;flex-direction:column;gap:8px;padding:12px;background:#0f121cf2;border:1px solid var(--line);border-radius:14px;box-shadow:-20px 0 60px -20px #000;animation:drawer .2s ease-out}@keyframes drawer{0%{transform:translate(30px);opacity:0}}.log-head{display:flex;align-items:center;justify-content:space-between;font-weight:700}.log{flex:1;overflow-y:auto;font-size:13px;line-height:1.5;color:#c4c8d8}.log .round{color:var(--text);font-weight:700;margin-top:8px}.log .phase{color:var(--muted)}.log .win{color:var(--good);font-weight:700}.banner{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);pointer-events:none;z-index:25;font-size:72px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;opacity:0;white-space:nowrap;text-shadow:0 0 30px currentColor,0 4px 0 #0008}.banner.phase-incantation,.banner.phase-twilight{color:var(--magic)}.banner.phase-calculation,.banner.phase-dawn{color:var(--ai)}.banner.phase-reckoning{color:var(--atk)}.banner.show{animation:banner 1.1s ease-out}@keyframes banner{0%{opacity:0;transform:translate(-50%,-40%)}20%{opacity:1;transform:translate(-50%,-50%)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-60%)}}@media (prefers-reduced-motion: reduce){.fx-layer,.banner{display:none}}.layout{position:absolute;top:0;right:0;bottom:0;left:0;padding:12px;display:grid;grid-template-rows:36px 1fr;gap:10px}.topbar{display:flex;align-items:center;gap:16px}.logo{font-size:22px}.phases{flex:1}.top-actions{display:flex;gap:6px}.top-actions button{padding:5px 11px;font-size:13px;border-radius:7px;background:#ffffff08}.top-actions button.on{border-color:var(--good);color:var(--good)}.top-actions button.skip{border-color:var(--atk);color:var(--atk)}.table{display:grid;gap:10px;min-height:0;grid-template-columns:minmax(0,1fr) 250px 210px;grid-template-rows:88px minmax(0,1fr) 88px 252px;grid-template-areas:"tl    td    tr" "board board steps" "bl    bd    ctl" "hand  hand  hand"}.ga{min-width:0;min-height:0;display:flex}.ga>*{flex:1;min-width:0}.ga-tl{grid-area:tl}.ga-td{grid-area:td}.ga-tr{grid-area:tr}.ga-board{grid-area:board}.ga-steps{grid-area:steps}.ga-bl{grid-area:bl}.ga-bd{grid-area:bd}.ga-ctl{grid-area:ctl}.ga-hand{grid-area:hand}.leader{--fc: var(--magic);--fc-dim: var(--magic-dim);position:relative;display:grid;grid-template-columns:84px minmax(0,1fr) auto 92px;align-items:center;gap:14px;padding:6px 14px 6px 8px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(90deg,color-mix(in srgb,var(--fc) 14%,var(--panel)) 0%,var(--panel) 45%);transition:box-shadow .2s,border-color .2s}.leader.ai{--fc: var(--ai);--fc-dim: var(--ai-dim)}.leader.active{border-color:color-mix(in srgb,var(--fc) 60%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--fc) 35%,transparent),0 0 30px -8px var(--fc)}.portrait-wrap{position:relative;width:76px;height:76px}.portrait{position:relative;width:76px;height:76px;border-radius:50%;overflow:hidden;border:3px solid var(--fc);box-shadow:0 0 0 2px #0008,0 0 18px -4px var(--fc);background:radial-gradient(circle,var(--fc-dim),var(--panel-2));display:grid;place-items:center}.portrait-glyph{font-size:30px;color:var(--fc)}.portrait-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%}.hp-badge{position:absolute;right:-8px;bottom:-6px;width:36px;height:40px;display:grid;place-items:center;z-index:2;background:radial-gradient(circle at 40% 25%,#ffb3bd,#e2344b 55%,#7a0f20);clip-path:polygon(50% 0,100% 12%,100% 58%,50% 100%,0 58%,0 12%);filter:drop-shadow(0 2px 3px #000)}.hp-badge span{font-size:19px;font-weight:900;color:#fff;text-shadow:0 1px 2px #000,0 0 4px #000;margin-top:-2px}.hp-badge.low{animation:low-hp 1s ease-in-out infinite}@keyframes low-hp{50%{filter:drop-shadow(0 0 8px #ff3d5a) brightness(1.2)}}.leader-info{display:flex;flex-direction:column;gap:6px;min-width:0}.lname{font-size:18px;font-weight:800;letter-spacing:.02em;color:var(--fc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hp-segs{display:flex;gap:3px;height:13px}.hp-segs i{flex:1;transform:skew(-18deg);border-radius:2px;background:#2a1a20;box-shadow:inset 0 0 0 1px #ffffff0d;transition:background .3s}.hp-segs i.on{background:linear-gradient(180deg,#ff8a96,#d8243a);box-shadow:0 0 6px -1px #ff3d5a88}.hp-segs.low i.on{animation:low-seg 1s ease-in-out infinite}@keyframes low-seg{50%{background:linear-gradient(180deg,#ffc0c8,#ff3d5a)}}.chips{display:flex;gap:6px;height:18px;overflow:hidden}.chip{font-size:11px;line-height:16px;padding:0 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);white-space:nowrap}.chip.hex{border-color:var(--magic);color:var(--magic)}.hand-fan{display:flex;align-items:center;padding-right:4px}.hand-fan i{width:16px;height:23px;margin-left:-9px;border-radius:3px;border:1px solid var(--fc);background:repeating-linear-gradient(45deg,var(--fc-dim) 0 3px,#0d0f17 3px 6px);box-shadow:0 1px 3px #000}.hand-fan i:first-child{margin-left:0}.hand-fan span{margin-left:8px;font-weight:800;font-size:15px;color:var(--muted)}.res{display:flex;flex-direction:column;align-items:center;gap:2px}.res-gem{width:58px;height:58px;display:grid;place-items:center;background:conic-gradient(from 210deg,#f3d6ff,#a35cff,#5b1fb8,#c58bff,#f3d6ff);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);filter:drop-shadow(0 0 10px #a35cff66)}.leader.ai .res-gem{background:linear-gradient(160deg,#c9fff8,#3fd6c6 45%,#127a72);clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);filter:drop-shadow(0 0 10px #3fd6c666)}.res-num{font-size:28px;font-weight:900;color:#fff;text-shadow:0 2px 3px #000,0 0 6px #000}.res-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fc)}.leader.target{cursor:pointer;outline:2px solid var(--good);outline-offset:2px}.round-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--line);border-radius:14px}.rb-label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.round-badge b{font-size:40px;line-height:1;font-weight:900;background:linear-gradient(180deg,#fff,var(--atk));-webkit-background-clip:text;background-clip:text;color:transparent}.device{position:relative;border-radius:14px;padding:8px 12px;overflow:hidden;display:grid;grid-template-columns:56px 1fr;grid-template-rows:auto auto 1fr;column-gap:12px;row-gap:3px;align-items:center}.dev-title{grid-column:2;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:12px;align-self:end}.dev-sub{grid-column:2;font-size:11px;color:var(--muted);line-height:1.3;align-self:start}.dev-sub b{color:var(--text)}.dev-cta{position:absolute;left:0;right:0;bottom:0;padding:3px 8px;text-align:center;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(90deg,transparent,var(--magic-dim),transparent)}.scheduler{border:1px solid var(--ai-dim);color:var(--ai);background:repeating-linear-gradient(90deg,#3fd6c608 0 1px,transparent 1px 14px),repeating-linear-gradient(0deg,#3fd6c608 0 1px,transparent 1px 14px),linear-gradient(135deg,#0f2a2c,var(--panel))}.sch-socket{grid-column:1;grid-row:1 / 4;position:relative;width:52px;height:70px;display:grid;place-items:center;justify-self:center}.sch-ring{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:11px;opacity:.3;padding:2px;background:conic-gradient(from 0deg,transparent 0 70%,var(--ai) 85%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.scheduler.armed .sch-ring{opacity:1;animation:spin 2.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sch-empty{width:100%;height:100%;border:2px dashed var(--ai-dim);border-radius:8px;display:grid;place-items:center;font-size:9px;color:var(--muted);text-align:center;padding:3px;text-transform:uppercase;letter-spacing:.06em}.sch-card{position:relative;width:100%;height:100%;border-radius:8px;overflow:hidden;display:grid;place-items:center;border:2px solid var(--a-accent, var(--ai));background:var(--a-back, #11363a);box-shadow:0 0 16px -4px var(--a-accent, var(--ai))}.sch-card .back-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.sch-q{position:relative;font-size:30px;font-weight:900;color:var(--a-accent, var(--ai));text-shadow:0 0 12px var(--a-accent, var(--ai));animation:flicker 3s infinite}@keyframes flicker{0%,92%,to{opacity:1}94%{opacity:.3}96%{opacity:.9}97%{opacity:.4}}.sch-name{position:relative;font-size:10px;font-weight:700;color:var(--text);text-align:center;padding:2px;text-shadow:0 1px 3px #000}.sch-cost{position:absolute;top:-7px;left:-7px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--ai);color:#002;font-weight:900;font-size:12px;border:2px solid var(--bg);z-index:2}.scheduler.drop-ok{border-color:var(--good);box-shadow:0 0 0 1px var(--good);cursor:pointer}.scheduler.drop-ok .sch-empty{border-color:var(--good);color:var(--good)}.scheduler.unweavable{cursor:pointer;border-color:var(--magic);animation:unweavable 1.6s ease-in-out infinite}.scheduler.unweavable:hover .sch-card{transform:scale(1.06) rotate(-2deg);border-color:var(--magic);box-shadow:0 0 22px var(--magic)}@keyframes unweavable{50%{box-shadow:0 0 22px -4px var(--magic)}}.altar{border:1px solid #4a1d26;color:#ff7a9a;background:radial-gradient(circle at 36px 50%,#3a1020 0,transparent 70px),linear-gradient(135deg,#2a1424,var(--panel))}.altar-gem{grid-column:1;grid-row:1 / 4;position:relative;width:56px;height:56px;display:grid;place-items:center}.gem{width:32px;height:32px;transform:rotate(45deg);border-radius:6px;background:linear-gradient(135deg,#ff9db4,#d8243a 40%,#7a1fd8);border:2px solid #ffc3d1;box-shadow:inset 0 0 10px #fff6;transition:transform .2s,filter .2s}.gem-glow{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle,#ff4d7a66,transparent 65%);opacity:0}.altar-trade{grid-column:2;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800}.t-hp{color:var(--hp)}.t-mana{color:var(--magic)}.t-arrow,.altar.locked,.altar.used,.altar.low{color:var(--muted)}.altar.locked .gem,.altar.used .gem,.altar.low .gem{filter:grayscale(.85) brightness(.6)}.altar.ready{border-color:#d8243a}.altar.ready .gem-glow{opacity:1;animation:breathe-gem 1.8s ease-in-out infinite}.altar.ready:not(.enemy){cursor:pointer}.altar.ready:not(.enemy):hover .gem{transform:rotate(45deg) scale(1.15);filter:brightness(1.3)}.altar.ready:not(.enemy):hover{box-shadow:0 0 22px -4px #ff4d7a}@keyframes breathe-gem{50%{transform:scale(1.25);opacity:.6}}.board{position:relative;height:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;padding:8px;border-radius:16px;border:1px solid var(--line);background:#0d1019;box-shadow:inset 0 0 40px -10px #000}.lane{--lane: var(--static);position:relative;display:grid;grid-template-rows:34px 1fr 1fr;border-radius:11px;overflow:hidden;border:1px solid color-mix(in srgb,var(--lane) 45%,var(--line));background:var(--panel)}.lane-earth{--lane: var(--earth)}.lane-water{--lane: var(--water)}.lane-fire{--lane: var(--fire)}.lane-air{--lane: var(--air)}.lane-aether{--lane: var(--aether)}.lane-cloud{--lane: var(--cloud)}.lane-static{--lane: var(--static)}.lane-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.32;pointer-events:none}.lane-static .lane-art{filter:grayscale(.5)}.lane>:not(.lane-art){position:relative}.lane-head{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 8px;background:linear-gradient(180deg,color-mix(in srgb,var(--lane) 40%,#0d1019e6),#0d1019cc);border-bottom:1px solid color-mix(in srgb,var(--lane) 50%,transparent)}.lane-name{font-weight:800;font-size:14px;line-height:1.1;color:color-mix(in srgb,var(--lane) 65%,white);letter-spacing:.04em}.lane-name small{font-weight:400;color:var(--muted)}.lane-trait{font-size:10px;color:#c8ccda;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.reckoning-badge{position:absolute!important;top:38px;left:50%;transform:translate(-50%);z-index:3;white-space:nowrap;font-size:10px;padding:1px 7px;border-radius:999px;color:var(--muted);border:1px solid var(--line);background:#0d1019dd}.reckoning-badge.hit{color:var(--text);border-color:var(--atk);background:#3a2a14ee}.slot{position:relative;display:flex;align-items:center;justify-content:center;padding:6px}.slot.side-magic{background:linear-gradient(var(--dir, 180deg),transparent,#b884ff1f)}.slot.side-ai{background:linear-gradient(var(--dir, 180deg),transparent,#3fd6c61c)}.slot.bottom{--dir: 0deg}.slot.top:after{content:"";position:absolute;left:6px;right:6px;bottom:-1px;height:2px;z-index:1;background:linear-gradient(90deg,transparent,#ffffff40 20%,#ffffff40 80%,transparent)}.empty-slot{width:124px;height:140px;border:1px dashed #ffffff1c;border-radius:10px}.lane.target{cursor:pointer;border-color:var(--good);box-shadow:inset 0 0 0 2px var(--good),0 0 18px -4px var(--good)}.phase-steps{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 12px;display:flex}.pt-steps{flex:1;position:relative;display:grid;grid-template-rows:repeat(5,1fr)}.pt-steps:before{content:"";position:absolute;left:26px;top:10%;bottom:10%;width:2px;background:var(--line)}.pt-step{position:relative;display:flex;align-items:center;gap:10px;padding-left:11px;z-index:1;color:var(--muted);cursor:help;outline:none}.pt-icon{position:relative;overflow:hidden;width:32px;height:32px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:14px;background:var(--panel-2);border:2px solid var(--line);transition:all .2s}.pt-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:var(--panel-2)}.pt-label{font-size:13px;letter-spacing:.02em}.pt-step.done .pt-icon{opacity:.55}.pt-step.now{color:var(--text);font-weight:700}.pt-step.now .pt-label{font-size:14px}.pt-step.now .pt-icon{transform:scale(1.15);border-color:currentColor;box-shadow:0 0 14px -2px currentColor}.pt-step.owner-magic.now{color:var(--magic)}.pt-step.owner-ai.now{color:var(--ai)}.pt-step.owner-neutral.now{color:var(--atk)}.pt-step.owner-magic .pt-icon{border-color:var(--magic-dim)}.pt-step.owner-ai .pt-icon{border-color:var(--ai-dim)}.pt-marker{--glow: var(--atk);position:absolute;left:0;right:0;top:calc(var(--idx) * 20%);height:20%;z-index:0;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,var(--glow) 30%,transparent),transparent 85%);border-left:3px solid var(--glow);border-radius:8px;animation:pt-slide .45s cubic-bezier(.3,.9,.3,1)}.pt-marker.owner-magic{--glow: var(--magic)}.pt-marker.owner-ai{--glow: var(--ai)}@keyframes pt-slide{0%{transform:translateY(calc((var(--from) - var(--idx)) * 100%))}to{transform:translateY(0)}}.pt-tip{position:absolute;right:calc(100% + 14px);top:50%;transform:translate(4px,-50%);width:240px;z-index:15;padding:9px 11px;border-radius:9px;background:#0b0d14f5;border:1px solid var(--line);box-shadow:0 10px 30px -10px #000;color:var(--text);font-size:12px;font-weight:400;line-height:1.45;text-align:left;opacity:0;pointer-events:none;transition:opacity .12s,transform .12s}.pt-tip:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-left-color:var(--line)}.pt-step:hover .pt-tip,.pt-step:focus .pt-tip{opacity:1;transform:translateY(-50%)}.pt-step.owner-magic .pt-tip b{color:var(--magic)}.pt-step.owner-ai .pt-tip b{color:var(--ai)}.pt-step.owner-neutral .pt-tip b{color:var(--atk)}.phase-track{position:relative;display:flex}.pt-go{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 12px;border-radius:14px;border-width:2px;font-weight:800}.pt-go-caption{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.pt-go-label{font-size:19px;letter-spacing:.03em}.pt-go.to-magic{background:linear-gradient(90deg,var(--panel-2),var(--magic-dim));border-color:var(--magic)}.pt-go.to-ai{background:linear-gradient(90deg,var(--panel-2),var(--ai-dim));border-color:var(--ai)}.pt-go.to-neutral{background:linear-gradient(90deg,var(--panel-2),#4a3412);border-color:var(--atk)}.pt-go .chev{display:inline-block;letter-spacing:-2px;opacity:.7}.pt-go:hover .chev{animation:chev .6s linear infinite}@keyframes chev{0%{transform:translate(-3px)}to{transform:translate(4px)}}.pt-go.ready{border-color:var(--atk);animation:ready 1.4s ease-in-out infinite}.pt-go.ready:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(100deg,transparent 30%,#ffffff22 50%,transparent 70%);animation:sheen 2.2s ease-in-out infinite}@keyframes ready{50%{box-shadow:0 0 22px -2px var(--atk)}}@keyframes sheen{0%{transform:translate(-100%)}to{transform:translate(100%)}}.pt-go.idle{background:var(--panel-2);color:var(--muted);cursor:default}.pt-go.idle .pt-go-label{font-size:15px;font-weight:600}.dots{display:inline-flex;gap:3px;margin-left:6px;vertical-align:middle}.dots i{width:5px;height:5px;border-radius:50%;background:currentColor;animation:dot 1s infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,to{opacity:.2}50%{opacity:1}}.pt-bubble{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:8;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:12px;background:#0f121cf2;border:1px solid color-mix(in srgb,var(--good) 45%,var(--line));box-shadow:0 12px 30px -10px #000;animation:bubble .15s ease-out}@keyframes bubble{0%{opacity:0;transform:translateY(6px)}}.pt-hint{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px}.pt-hint>span{flex-basis:100%}.pt-mini{padding:3px 10px;font-size:12px;border-radius:6px}.pt-mini.primary{background:var(--magic-dim);border-color:var(--magic)}.pt-mini.schedule{background:var(--ai-dim);border-color:var(--ai)}.pt-extras{display:flex;gap:6px}.pt-extra{flex:1;font-size:13px;padding:6px 8px}.pt-extra.unweave{background:var(--magic-dim);border-color:var(--magic)}.hand{position:relative;display:flex;justify-content:center;align-items:flex-end;padding:0 8px 2px}.hand .card+.card{margin-left:var(--gap, 10px)}.hand.watch,.empty-hand{color:var(--muted);align-items:center;justify-content:center;display:flex;width:100%;height:100%}.hp-segs{max-width:470px}.reckoning-badge{top:calc(50% + 17px)!important;transform:translate(-50%,-50%)!important;box-shadow:0 2px 8px #000a}body,[data-mstyle=gilded]{--m-frame: linear-gradient(135deg, #fff1b8 0%, #c99a3a 22%, #fff4c9 45%, #8a6420 68%, #e9c66b 100%);--m-body: linear-gradient(170deg, #34265a 0%, #1d1631 55%, #140f22 100%);--m-line: #f7e19966;--m-accent: #f2c75c;--m-banner: linear-gradient(90deg, #4e3780, #3d2a66 70%, transparent);--m-gem: conic-gradient(from 210deg, #f3d6ff, #a35cff, #5b1fb8, #c58bff, #f3d6ff);--m-back: radial-gradient(circle at 50% 50%, #f2c75c33 0 18%, transparent 19%), repeating-conic-gradient(from 0deg, #2e2050 0 15deg, #251a42 15deg 30deg)}[data-mstyle=verdant]{--m-frame: linear-gradient(135deg, #e6d9a2 0%, #7f8f3c 25%, #d8cf8e 48%, #4f5f24 70%, #b7b36a 100%);--m-body: linear-gradient(170deg, #233a26 0%, #16251a 55%, #0f1a12 100%);--m-line: #c9e3a066;--m-accent: #a8dc6e;--m-banner: linear-gradient(90deg, #3b6236, #2c4a2a 70%, transparent);--m-gem: conic-gradient(from 210deg, #dcffd0, #4fcf6a, #1e7a37, #8de39b, #dcffd0);--m-back: radial-gradient(circle at 50% 50%, #a8dc6e33 0 18%, transparent 19%), repeating-conic-gradient(from 0deg, #1f3522 0 15deg, #182b1b 15deg 30deg)}[data-mstyle=ember]{--m-frame: linear-gradient(135deg, #ffd2a8 0%, #c2562c 24%, #ffb37a 46%, #7a2a14 70%, #e8834f 100%);--m-body: linear-gradient(170deg, #3a1e17 0%, #22130f 55%, #160c0a 100%);--m-line: #ffb37a55;--m-accent: #ff9a5a;--m-banner: linear-gradient(90deg, #7a3220, #5a2418 70%, transparent);--m-gem: conic-gradient(from 210deg, #ffe0c2, #ff6a2a, #9a1f0c, #ffa04f, #ffe0c2);--m-back: radial-gradient(circle at 50% 50%, #ff9a5a33 0 18%, transparent 19%), repeating-conic-gradient(from 0deg, #33190f 0 15deg, #28130c 15deg 30deg)}[data-mstyle=moonlit]{--m-frame: linear-gradient(135deg, #ffffff 0%, #8f97b5 24%, #eef1ff 46%, #555c78 70%, #c9cfe8 100%);--m-body: linear-gradient(170deg, #1e2648 0%, #131a33 55%, #0c1124 100%);--m-line: #dfe5ff55;--m-accent: #c3d0ff;--m-banner: linear-gradient(90deg, #334079, #26305a 70%, transparent);--m-gem: conic-gradient(from 210deg, #e6ecff, #5c7cff, #23338f, #9fb2ff, #e6ecff);--m-back: radial-gradient(circle at 50% 50%, #c3d0ff33 0 18%, transparent 19%), repeating-conic-gradient(from 0deg, #1c2448 0 15deg, #161d3b 15deg 30deg)}body,[data-astyle=chrome]{--a-frame: linear-gradient(160deg, #e9fbff 0%, #6fb6c0 30%, #2a5f66 55%, #9fd6de 80%, #3c7b84 100%);--a-body: linear-gradient(170deg, #12333a 0%, #0f2328 55%, #0b1a1e 100%);--a-pattern: repeating-linear-gradient(90deg, #3fd6c60c 0 1px, transparent 1px 12px), repeating-linear-gradient(0deg, #3fd6c60c 0 1px, transparent 1px 12px);--a-line: #3fd6c6aa;--a-accent: #3fd6c6;--a-banner: linear-gradient(90deg, #3fd6c633, #0b1a1e 70%);--a-gem: linear-gradient(160deg, #c9fff8, #3fd6c6 45%, #127a72);--a-back: repeating-linear-gradient(45deg, #11363a 0 6px, #0d2a2d 6px 12px)}[data-astyle=desert]{--a-frame: linear-gradient(160deg, #f4e6bd 0%, #b39a5e 30%, #6b5a32 55%, #d8c48a 80%, #8a7442 100%);--a-body: linear-gradient(170deg, #4a412b 0%, #3a3322 55%, #2b2619 100%);--a-pattern: radial-gradient(ellipse 22px 14px at 20% 30%, #6e623f99 60%, transparent 62%), radial-gradient(ellipse 18px 26px at 70% 20%, #2f291b99 60%, transparent 62%), radial-gradient(ellipse 28px 16px at 60% 75%, #7d6f4899 60%, transparent 62%), radial-gradient(ellipse 16px 20px at 25% 80%, #3a3322aa 60%, transparent 62%);--a-line: #f0c860aa;--a-accent: #f0c860;--a-banner: linear-gradient(90deg, #f0c86033, #2b2619 70%);--a-gem: linear-gradient(160deg, #fff1c4, #f0c860 45%, #8a6a1e);--a-back: repeating-linear-gradient(45deg, #4a412b 0 6px, #3a3322 6px 12px)}[data-astyle=blacksite]{--a-frame: linear-gradient(160deg, #5a5a5a 0%, #1b1b1b 30%, #0a0a0a 55%, #3a3a3a 80%, #ff3d3d 100%);--a-body: linear-gradient(170deg, #1a1a1c 0%, #111113 55%, #0a0a0b 100%);--a-pattern: repeating-linear-gradient(-45deg, #ff3d3d08 0 2px, transparent 2px 10px);--a-line: #ff3d3daa;--a-accent: #ff4d4d;--a-banner: linear-gradient(90deg, #ff3d3d33, #0a0a0b 70%);--a-gem: linear-gradient(160deg, #ffd0d0, #ff3d3d 45%, #7a0f0f);--a-back: repeating-linear-gradient(45deg, #1a1a1c 0 6px, #111113 6px 12px)}[data-astyle=arctic]{--a-frame: linear-gradient(160deg, #ffffff 0%, #bfe0ee 30%, #7aa6ba 55%, #f2fbff 80%, #9cc4d6 100%);--a-body: linear-gradient(170deg, #2c4150 0%, #20313d 55%, #172530 100%);--a-pattern: radial-gradient(ellipse 20px 12px at 25% 30%, #e8f6ff22 60%, transparent 62%), radial-gradient(ellipse 14px 22px at 72% 25%, #0b141a55 60%, transparent 62%), radial-gradient(ellipse 26px 14px at 55% 78%, #e8f6ff1a 60%, transparent 62%);--a-line: #bfefffaa;--a-accent: #bfefff;--a-banner: linear-gradient(90deg, #bfefff33, #172530 70%);--a-gem: linear-gradient(160deg, #ffffff, #9fe6ff 45%, #2f7a99);--a-back: repeating-linear-gradient(45deg, #2c4150 0 6px, #20313d 6px 12px)}.card{position:relative;flex:none;width:152px;height:246px;padding:7px 8px 30px;display:flex;flex-direction:column;gap:4px;border:3px solid transparent;opacity:.62;cursor:not-allowed;transition:transform .14s,opacity .14s,box-shadow .14s}.card.magic{border-radius:14px;background:radial-gradient(circle at 8px 8px,var(--m-accent) 0 2px,transparent 3px),radial-gradient(circle at calc(100% - 8px) 8px,var(--m-accent) 0 2px,transparent 3px),radial-gradient(circle at 8px calc(100% - 8px),var(--m-accent) 0 2px,transparent 3px),radial-gradient(circle at calc(100% - 8px) calc(100% - 8px),var(--m-accent) 0 2px,transparent 3px),var(--m-body) padding-box,var(--m-frame) border-box;box-shadow:inset 0 0 0 1px var(--m-line),0 8px 18px -8px #000}.card.ai{border-radius:6px;background:linear-gradient(var(--a-accent),var(--a-accent)) 5px 5px / 12px 2px no-repeat,linear-gradient(var(--a-accent),var(--a-accent)) 5px 5px / 2px 12px no-repeat,linear-gradient(var(--a-accent),var(--a-accent)) calc(100% - 5px) calc(100% - 5px) / 12px 2px no-repeat,linear-gradient(var(--a-accent),var(--a-accent)) calc(100% - 5px) calc(100% - 5px) / 2px 12px no-repeat,var(--a-pattern),var(--a-body) padding-box,var(--a-frame) border-box;box-shadow:inset 0 0 0 1px var(--a-line),0 8px 18px -8px #000}.card.playable{opacity:1;cursor:grab;box-shadow:inset 0 0 0 1px var(--m-line),0 0 0 2px #7ee78755,0 0 18px -4px var(--good),0 8px 18px -8px #000}.card.ai.playable{box-shadow:inset 0 0 0 1px var(--a-line),0 0 0 2px #7ee78755,0 0 18px -4px var(--good),0 8px 18px -8px #000}.hand .card:hover{transform:translateY(-16px) scale(1.05);z-index:5;opacity:1}.card.selected{transform:translateY(-20px) scale(1.05);z-index:6;box-shadow:0 0 0 3px var(--good),0 14px 28px -8px var(--good)!important}.chead{flex:none;height:28px;display:flex;align-items:center;gap:6px;margin:0 -2px}.cost{flex:none;display:grid;place-items:center;width:28px;height:28px;font-weight:900;font-size:15px}.card.magic .cost{border-radius:50%;color:#fff;text-shadow:0 1px 2px #000,0 0 4px #000;background:var(--m-gem);border:2px solid var(--m-accent);box-shadow:0 2px 6px #000a,inset 0 0 6px #fff6}.card.ai .cost{height:26px;color:#001;background:var(--a-gem);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);filter:drop-shadow(0 2px 3px #000)}.cost.discount{outline:2px solid var(--good)}.cname{flex:1;min-width:0;padding:3px 6px;font-weight:800;font-size:13px;line-height:1.15;color:var(--text);text-shadow:0 1px 2px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cname.long{font-size:11.5px}.cname.longer{font-size:10.5px;letter-spacing:-.01em}.card.magic .cname{background:var(--m-banner);border-top:1px solid var(--m-line);border-bottom:1px solid var(--m-line)}.card.ai .cname{background:var(--a-banner);border-left:3px solid var(--a-accent);text-transform:uppercase;font-size:11.5px;letter-spacing:.05em}.card.ai .cname.long,.card.ai .cname.longer{font-size:10px}.card-art{flex:none;display:block;width:calc(100% + 16px);margin:0 -8px;aspect-ratio:4 / 3;height:auto;object-fit:cover;object-position:50% 28%;border-top:1px solid #0007;border-bottom:1px solid #0007}.ctype{flex:none;display:flex;align-items:center;justify-content:center;gap:5px;font-size:10.5px;line-height:1.2;color:var(--muted)}.card.ai .ctype{justify-content:flex-start}.ctype:before{content:"";width:8px;height:8px;transform:rotate(45deg);background:#8a90a8;box-shadow:0 0 0 1px #0008;flex:none}.r-rare .ctype:before{background:#4ea3ff;box-shadow:0 0 6px #4ea3ff}.r-epic .ctype:before{background:#b26bff;box-shadow:0 0 6px #b26bff}.r-legendary .ctype:before{background:#ffb02e;box-shadow:0 0 8px #ffb02e}.card.r-legendary:not(.playable){box-shadow:inset 0 0 0 1px var(--m-line),0 0 18px -4px #ffb02e,0 8px 18px -8px #000}.ctext{flex:none;overflow:hidden;text-align:center;font-size:11.5px;line-height:1.28;max-height:3.84em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.ctext.long{font-size:10.5px;line-height:1.25;max-height:3.75em}.card.ai .ctext{text-align:left}.stats{position:absolute;left:6px;right:6px;bottom:5px;display:flex;justify-content:space-between;pointer-events:none}.atk,.hp{display:inline-grid;place-items:center;min-width:26px;height:26px;font-weight:900;font-size:14px}.atk{border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe0a0,#f0a030 55%,#9a5a10);color:#1a0f00;box-shadow:0 0 0 2px #0009}.hp{height:28px;color:#2a0006;background:radial-gradient(circle at 40% 25%,#ffc0c8,#e8384c 55%,#8a1020);clip-path:polygon(50% 0,100% 12%,100% 55%,50% 100%,0 55%,0 12%)}.atk.up{box-shadow:0 0 0 2px var(--good),0 0 8px var(--good)}.hp.up{filter:drop-shadow(0 0 3px var(--good)) drop-shadow(0 0 1px var(--good))}.hp.hurt{background:radial-gradient(circle at 40% 25%,#ffd9dd,#ff7a8a 55%,#b83040)}.fx-bigcard{width:240px;height:380px;padding:12px 14px 16px;opacity:1!important;border-width:4px;cursor:default}.fx-bigcard .chead{height:40px}.fx-bigcard .cost{width:40px;height:40px;font-size:20px}.fx-bigcard .cname{font-size:19px}.fx-bigcard .card-art{width:calc(100% + 28px);margin:0 -14px}.fx-bigcard .ctype{font-size:13px}.fx-bigcard .ctext{font-size:15px;max-height:6.4em;-webkit-line-clamp:5}.fx-bigcard.magic{box-shadow:inset 0 0 0 1px var(--m-line),0 20px 60px -10px #000c,0 0 40px -6px var(--m-accent)}.fx-bigcard.ai{box-shadow:inset 0 0 0 1px var(--a-line),0 20px 60px -10px #000c,0 0 40px -6px var(--a-accent)}.unit{position:relative;width:124px;height:140px;padding:4px 4px 28px;display:flex;flex-direction:column;gap:3px;overflow:hidden;border:2px solid transparent;will-change:transform}.unit.magic{border-radius:11px;background:var(--m-body) padding-box,var(--m-frame) border-box;box-shadow:inset 0 0 0 1px var(--m-line),0 6px 14px -6px #000}.unit.ai{border-radius:6px;background:linear-gradient(var(--a-accent),var(--a-accent)) 4px 4px / 10px 2px no-repeat,linear-gradient(var(--a-accent),var(--a-accent)) 4px 4px / 2px 10px no-repeat,var(--a-pattern),var(--a-body) padding-box,var(--a-frame) border-box;box-shadow:inset 0 0 0 1px var(--a-line),0 6px 14px -6px #000}.unit-art{flex:none;display:block;width:100%;aspect-ratio:4 / 3;height:auto;object-fit:cover;object-position:50% 25%;border-radius:6px;box-shadow:0 0 0 1px #0008}.uname{flex:none;text-align:center;font-weight:800;font-size:11.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit.magic .uname{color:var(--m-accent)}.unit.ai .uname{color:var(--a-accent);text-transform:uppercase;font-size:10.5px;letter-spacing:.04em}.utext{font-size:10.5px;line-height:1.25;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5}.unit-art~.utext{display:none}.unit .stats{left:4px;right:4px;bottom:3px}.unit .atk,.unit .hp{min-width:24px;height:24px;font-size:13px}.unit .hp{height:26px}.unit.shrouded{opacity:.82}.unit.shrouded .unit-art{filter:saturate(.4) brightness(.8)}.unit.movable{cursor:grab}.unit.selected{outline:2px solid var(--good);outline-offset:2px}.veil-tag,.move-tag{position:absolute;top:6px;right:6px;z-index:2;font-size:10px;padding:1px 6px;border-radius:999px;background:var(--magic-dim);border:1px solid var(--magic)}.move-tag{right:auto;left:6px;background:#17304f;border-color:var(--water)}.unit.back{align-items:center;justify-content:center;padding:4px;background:var(--m-back) padding-box,var(--m-frame) border-box;border-radius:11px}.back-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.85}.veil{position:relative;font-size:36px;font-weight:900;color:var(--m-accent);text-shadow:0 0 12px #000}.unit.back .uname{position:relative;color:var(--text);text-shadow:0 1px 3px #000}.anim-slam{animation:slam .42s cubic-bezier(.2,.9,.3,1.3)}@keyframes slam{0%{transform:translateY(-40px) scale(1.4);opacity:0;filter:brightness(2)}55%{transform:translateY(0) scale(.94);opacity:1}75%{transform:scale(1.03)}to{transform:scale(1);filter:none}}.anim-pop{animation:pop .32s ease-out}@keyframes pop{0%{transform:scale(.7);opacity:.3}70%{transform:scale(1.06)}to{transform:scale(1)}}.anim-hit{animation:hit .42s ease-out}@keyframes hit{0%{filter:brightness(2.2) saturate(0)}15%{transform:translate(-6px) rotate(-2deg)}35%{transform:translate(5px) rotate(1.5deg);box-shadow:0 0 0 2px var(--hp),0 0 26px var(--hp)}60%{transform:translate(-3px)}to{transform:none;filter:none}}.anim-heal{animation:heal .5s ease-out}@keyframes heal{40%{box-shadow:0 0 0 2px var(--good),0 0 30px var(--good)}}.anim-buff{animation:buff .48s ease-out}@keyframes buff{40%{box-shadow:0 0 0 2px var(--good),0 0 22px var(--good);transform:scale(1.06)}}.anim-flip{animation:flip .6s ease-out}@keyframes flip{0%{transform:perspective(600px) rotateY(90deg);filter:brightness(2)}60%{transform:perspective(600px) rotateY(-10deg)}to{transform:none;filter:none}}.anim-death{animation:death .55s ease-in forwards}@keyframes death{25%{filter:grayscale(1) brightness(1.4);transform:translate(-3px)}40%{transform:translate(3px)}to{filter:grayscale(1);transform:scale(.6) rotate(8deg) translateY(16px);opacity:0}}.anim-lane{animation:lanefx .65s ease-out}@keyframes lanefx{30%{filter:brightness(1.8);box-shadow:inset 0 0 40px #fff3}}.anim-lock{animation:lock .6s cubic-bezier(.2,.9,.3,1.4)}@keyframes lock{30%{transform:scale(1.06);box-shadow:0 0 40px var(--ai)}}.anim-execute{animation:execute .9s ease-out}@keyframes execute{0%{filter:brightness(2.4);box-shadow:0 0 50px var(--ai)}}.anim-shatter{animation:shatter .7s ease-out}@keyframes shatter{0%{filter:brightness(2) hue-rotate(60deg)}20%{transform:translate(-6px) rotate(-1deg)}40%{transform:translate(6px) rotate(1deg);box-shadow:0 0 40px var(--magic)}}.anim-flare .gem{animation:flare 1.2s ease-out}@keyframes flare{25%{transform:rotate(225deg) scale(1.6);filter:brightness(2.5);box-shadow:0 0 40px 10px #ff4d7a}to{transform:rotate(405deg) scale(1)}}.altar.awaken .gem{animation:awaken .9s ease-out}@keyframes awaken{0%{filter:grayscale(1) brightness(.6)}40%{filter:brightness(1.8);transform:rotate(45deg) scale(1.3)}to{transform:rotate(45deg)}}.altar.awaken:after{content:"";position:absolute;left:40px;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);animation:awaken-ring .9s ease-out}@keyframes awaken-ring{0%{box-shadow:0 0 #ff4d7aaa}to{box-shadow:0 0 0 40px #ff4d7a00}}.fx-ring{position:absolute;width:40px;height:40px;border-radius:50%;border:3px solid #fff8;transform:translate(-50%,-50%);animation:ring .6s ease-out forwards}@keyframes ring{to{width:190px;height:120px;opacity:0;border-width:1px}}.fx-splat{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:64px;height:64px;font-weight:900;font-size:24px;color:#fff;text-shadow:0 2px 0 #000,0 0 6px #000;animation:splat 1.05s ease-out forwards}.fx-splat:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#d8243a;clip-path:polygon(50% 0%,61% 30%,95% 20%,72% 47%,100% 70%,65% 68%,58% 100%,44% 72%,10% 92%,28% 62%,0% 40%,34% 36%)}.fx-splat.heal:before{background:#2f9e57;clip-path:circle(42%)}.fx-splat.buff{width:auto;height:auto;font-size:16px;color:var(--good)}.fx-splat.buff:before{display:none}.fx-splat span{position:relative}@keyframes splat{0%{transform:translate(-50%,-50%) scale(.2) rotate(-20deg);opacity:0}15%{transform:translate(-50%,-50%) scale(1.25) rotate(4deg);opacity:1}30%{transform:translate(-50%,-50%) scale(1) rotate(0)}75%{opacity:1}to{transform:translate(-50%,-110%) scale(.9);opacity:0}}.fx-impact{position:absolute;width:30px;height:30px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0 25%,#ffd27a 45%,transparent 70%);animation:impact .5s ease-out forwards}@keyframes impact{to{width:150px;height:150px;opacity:0}}.fx-bigcard{position:absolute;transform:translate(-50%,-50%);animation:bigcard 1.25s cubic-bezier(.2,.8,.3,1) forwards}@keyframes bigcard{0%{transform:translate(-50%,-20%) scale(.4) rotate(-6deg);opacity:0}18%{transform:translate(-50%,-50%) scale(1.06) rotate(1deg);opacity:1}28%{transform:translate(-50%,-50%) scale(1) rotate(0)}72%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-60%) scale(.85);opacity:0}}.fx-bigcard.unweaved{animation:unweave 1.25s ease-in forwards}.fx-bigcard.unweaved:after{content:"UNWEAVED";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-14deg);font-weight:900;font-size:30px;letter-spacing:.1em;color:var(--magic);border:3px solid var(--magic);padding:4px 10px;border-radius:6px;background:#0d0f17cc;animation:stamp .35s .35s both cubic-bezier(.2,.9,.3,1.4)}@keyframes unweave{0%{transform:translate(-50%,-20%) scale(.4);opacity:0}20%,60%{transform:translate(-50%,-50%) scale(1);opacity:1;filter:none}to{transform:translate(-50%,-50%) scale(1.15) rotate(4deg);opacity:0;filter:grayscale(1) blur(3px)}}@keyframes stamp{0%{transform:translate(-50%,-50%) rotate(-14deg) scale(2.5);opacity:0}to{opacity:1}}.fx-bolt{position:absolute;width:26px;height:26px;border-radius:50%;transform:translate(-50%,-50%)}.fx-bolt.magic{background:radial-gradient(circle,#fff 0 20%,var(--magic) 45%,transparent 70%);box-shadow:0 0 24px 8px #b884ff88}.fx-bolt.ai{background:radial-gradient(circle,#fff 0 20%,var(--ai) 45%,transparent 70%);box-shadow:0 0 24px 8px #3fd6c688;border-radius:4px}.fx-scan{position:absolute;left:0!important;top:0!important;width:100%;height:100%;background:linear-gradient(180deg,transparent 0,#3fd6c600 40%,#3fd6c655 49%,#ffffff88 50%,#3fd6c655 51%,transparent 60%) no-repeat;background-size:100% 300%;animation:scan 1.2s ease-in-out forwards}@keyframes scan{0%{background-position:0 100%}to{background-position:0 0%;opacity:.2}}.fx-headline{position:absolute;transform:translate(-50%,-50%);text-align:center;white-space:nowrap;animation:headline 1.6s ease-out forwards}.hl-title{position:relative;font-size:76px;font-weight:900;letter-spacing:.18em;line-height:1}.hl-sub{margin-top:8px;font-size:16px;color:var(--text);text-shadow:0 2px 8px #000;background:#0d0f17cc;display:inline-block;padding:4px 14px;border-radius:999px}.fx-headline.ai .hl-title{color:var(--ai);text-shadow:0 0 30px var(--ai)}.fx-headline.ai .hl-title:before,.fx-headline.ai .hl-title:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;animation:glitch .3s steps(2) 4}.fx-headline.ai .hl-title:before{color:#ff3d6e;transform:translate(-3px);clip-path:inset(0 0 55% 0)}.fx-headline.ai .hl-title:after{color:#7af3ff;transform:translate(3px);clip-path:inset(55% 0 0 0)}@keyframes glitch{50%{transform:translate(0)}}.fx-headline.blood .hl-title{color:#ff5f7f;text-shadow:0 0 24px #d8243a,0 0 60px #7a1fd8}@keyframes headline{0%{opacity:0;transform:translate(-50%,-50%) scale(1.6);filter:blur(6px)}15%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:none}80%{opacity:1}to{opacity:0;transform:translate(-50%,-56%)}}.fx-flycard{position:absolute;width:70px;height:96px;border-radius:8px;display:grid;place-items:center;transform:translate(-50%,-50%);border:2px solid var(--a-accent);background:var(--a-back);color:var(--a-accent);font-size:40px;font-weight:900;box-shadow:0 0 30px var(--a-accent)}.fx-burst{position:absolute;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%);animation:burst .8s ease-out forwards}.fx-burst.ai{border:3px solid var(--ai);box-shadow:0 0 20px var(--ai)}.fx-burst.magic{border:3px solid #ff4d7a;box-shadow:0 0 24px #ff4d7a}@keyframes burst{to{width:180px;height:180px;opacity:0;border-width:1px}}.fx-callout{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-weight:800;font-size:14px;padding:4px 10px;border-radius:999px;background:#0d0f17ee;border:1px solid var(--ai);color:var(--ai);animation:callout 1.1s ease-out forwards}@keyframes callout{0%{opacity:0;transform:translate(-50%,-30%)}15%,80%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-80%)}}.fx-vignette{position:absolute;left:0!important;top:0!important;width:100%;height:100%;background:radial-gradient(ellipse at center,transparent 35%,#d8243a66 75%,#7a1fd899 100%);animation:vignette 1.4s ease-out forwards}@keyframes vignette{0%{opacity:0}15%{opacity:1}to{opacity:0}}.fx-orb{position:absolute;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%)}.fx-orb.blood{background:radial-gradient(circle,#fff 0 15%,#ff4d7a 45%,transparent 70%);box-shadow:0 0 12px #d8243a}.fx-orb.mana{width:20px;height:20px;background:radial-gradient(circle,#fff 0 15%,var(--magic) 45%,transparent 70%);box-shadow:0 0 16px var(--magic)}.card.playable,.unit.movable{touch-action:none;-webkit-user-select:none;user-select:none}body.is-dragging,body.is-dragging *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.drag-origin{opacity:.2!important;transform:none!important}.drag-ghost{position:absolute;left:0;top:0;z-index:30;pointer-events:none;transform-origin:50% 30%;filter:drop-shadow(0 18px 24px #000a)}.drag-ghost>*{opacity:1!important;margin:0!important;transform:none!important}.drag-ghost.valid{filter:drop-shadow(0 18px 24px #000a) drop-shadow(0 0 12px var(--good))}body.is-dragging .lane.target,body.is-dragging .leader.target{animation:breathe 1.2s ease-in-out infinite}@keyframes breathe{50%{box-shadow:inset 0 0 0 2px var(--good),0 0 26px -2px var(--good)}}.lane.drop-hover{background-color:color-mix(in srgb,var(--good) 14%,var(--panel));box-shadow:inset 0 0 0 3px var(--good),0 0 26px -2px var(--good)}.leader.drop-hover{box-shadow:0 0 0 3px var(--good),0 0 26px -2px var(--good)}.scheduler.drop-hover{box-shadow:0 0 24px -2px var(--good)}body.is-dragging .board.drop-ok{outline:2px dashed var(--good);outline-offset:3px}.board.drop-hover{outline:2px solid var(--good);outline-offset:3px}.board.drop-hover:after{content:"Release to cast";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:5;font-size:26px;font-weight:800;letter-spacing:.1em;color:var(--good);background:#0d0f1799;border-radius:16px}.landing{position:absolute;left:50%;top:50%;width:124px;height:140px;transform:translate(-50%,-50%);z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px;pointer-events:none;border:2px dashed var(--good);border-radius:10px;background:color-mix(in srgb,var(--good) 14%,#0d0f17cc);color:var(--text);font-size:13px;text-align:center;animation:landing .9s ease-in-out infinite}.landing small{color:var(--good);font-size:11px}.landing .stats-row{display:flex;gap:8px}@keyframes landing{50%{background:color-mix(in srgb,var(--good) 24%,#0d0f17cc)}}.reticle-on{position:relative;box-shadow:0 0 0 3px var(--hp),0 0 24px var(--hp)!important}.reticle-on:before{content:"";position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);z-index:4;pointer-events:none;border:3px solid var(--hp);border-radius:50%;background:linear-gradient(var(--hp),var(--hp)) center / 3px 70% no-repeat,linear-gradient(var(--hp),var(--hp)) center / 70% 3px no-repeat;animation:reticle 1s linear infinite}.leader.reticle-on:before{left:46px}@keyframes reticle{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(90deg)}}
