:root{--dark:#07050f;--deep:#0e0b1c;--panel:#161228;--card:#1e1836;--border:#2e2650;--border-hi:#4a3d80;--gold:#c9a84c;--gold-lt:#e8c97a;--gold-dim:#c9a84c26;--violet:#7c5cbf;--violet-lt:#a882e8;--violet-dim:#7c5cbf26;--cyan:#4ac9c0;--cyan-dim:#4ac9c01f;--spirit:#e0d4ff;--ember:#e8604a;--frost:#72c4e8;--nature:#6ecb8a;--void:#9b6ee0;--muted:#e0d4ff73;--glass:#161228bf;--glass-border:#7c5cbf33;--font-display:"Cinzel", serif;--font-body:"Crimson Pro", serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--dark);min-height:100vh;color:var(--spirit);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--deep)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--border-hi)}.cinzel{font-family:var(--font-display)}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}.ambient-bg{pointer-events:none;z-index:0;background:radial-gradient(at 25% 20%,#7c5cbf24 0%,#0000 55%),radial-gradient(at 80% 75%,#4ac9c017 0%,#0000 50%),radial-gradient(#c9a84c0d 0%,#0000 70%);position:absolute;inset:0}.ambient-battle{pointer-events:none;z-index:0;background:radial-gradient(at 15% 10%,#7c5cbf1a 0%,#0000 50%),radial-gradient(at 85% 85%,#4ac9c012 0%,#0000 45%);position:absolute;inset:0}.glass-panel{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes floatUp{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-50px)}}@keyframes cardStrike{0%{transform:translateY(0)scale(1)}30%{transform:translateY(-22px)scale(1.08)}60%{transform:translateY(6px)scale(.96)}to{transform:translateY(0)scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes orbPulse{0%,to{box-shadow:0 0 #a882e866}50%{box-shadow:0 0 0 6px #a882e800}}@keyframes xpGain{0%{opacity:1;transform:translateY(0)scale(1)}50%{transform:translateY(-12px)scale(1.2)}to{opacity:0;transform:translateY(-28px)scale(.8)}}@keyframes levelUp{0%{filter:brightness();transform:scale(1)}25%{filter:brightness(1.8);transform:scale(1.15)}50%{filter:brightness(2.2);box-shadow:0 0 40px var(--gold);transform:scale(1.05)}75%{filter:brightness(1.5);transform:scale(1.1)}to{filter:brightness();transform:scale(1)}}@keyframes abilityUnlock{0%{opacity:0;filter:blur(4px);transform:translateY(10px)scale(.8)}40%{opacity:1;filter:blur();transform:translateY(-5px)scale(1.1)}70%{transform:translateY(2px)scale(1.02)}to{transform:translateY(0)scale(1)}}@keyframes runeRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glowPulse{0%,to{box-shadow:0 0 10px #c9a84c33}50%{box-shadow:0 0 25px #c9a84c80}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes particleFloat{0%{opacity:0;transform:translate(0)scale(0)}20%{opacity:1;transform:scale(1)}to{opacity:0;transform:translate(var(--px,20px), var(--py,-40px)) scale(0)}}.anim-fadein{animation:.3s both fadeIn}.anim-fadein-up{animation:.5s both fadeInUp}.anim-fadein-scale{animation:.3s both fadeInScale}.anim-strike{animation:.38s ease-in-out cardStrike}.anim-pulse{animation:1.4s ease-in-out infinite pulse}.anim-shimmer{animation:2s linear infinite shimmer}.anim-xp{animation:1.2s ease-out forwards xpGain}.anim-levelup{animation:.8s ease-in-out levelUp}.anim-ability{animation:.6s ease-out both abilityUnlock}.anim-slide-right{animation:.3s both slideInRight}.anim-shake{animation:.4s ease-in-out shake}.anim-damage{animation:.5s ease-in-out damageFlash}.anim-heal{animation:.8s ease-out healGlow}.anim-shield{animation:.6s ease-in-out shieldShimmer}.anim-death{animation:.8s ease-out forwards deathDissolve}.anim-critical{animation:.5s ease-in-out criticalHit}.anim-summon{animation:.5s cubic-bezier(.34,1.56,.64,1) both cardSummon}@keyframes damageFlash{0%{filter:brightness()}15%{filter:brightness(3)saturate(2);box-shadow:0 0 20px #e8604acc}30%{filter:brightness(.5);transform:translate(-3px)}45%{filter:brightness(2);transform:translate(3px)}60%{filter:brightness(.7);transform:translate(-2px)}to{filter:brightness();transform:translate(0)}}@keyframes healGlow{0%{box-shadow:0 0 #6ecb8a00}30%{box-shadow:0 0 25px #6ecb8a99,inset 0 0 15px #6ecb8a33}60%{box-shadow:0 0 35px #6ecb8a66}to{box-shadow:0 0 #6ecb8a00}}@keyframes shieldShimmer{0%{box-shadow:0 0 #4ac9c000}30%{box-shadow:0 0 0 3px #4ac9c080,0 0 20px #4ac9c04d}60%{box-shadow:0 0 0 2px #4ac9c04d,0 0 30px #4ac9c033}to{box-shadow:0 0 #4ac9c000}}@keyframes deathDissolve{0%{opacity:1;filter:brightness();transform:scale(1)}30%{opacity:.8;filter:brightness(2)saturate(0)}60%{opacity:.4;filter:brightness(.5)saturate(0);transform:scale(.9)}to{opacity:0;filter:brightness(0)blur(4px);transform:scale(.7)translateY(10px)}}@keyframes criticalHit{0%{transform:scale(1)}15%{filter:brightness(3);transform:scale(1.3);box-shadow:0 0 40px #c9a84ce6}30%{filter:brightness(1.5);transform:scale(.95)}50%{transform:scale(1.1);box-shadow:0 0 20px #c9a84c66}to{filter:brightness();box-shadow:none;transform:scale(1)}}@keyframes cardSummon{0%{opacity:0;filter:blur(8px);transform:scale(.3)translateY(20px)}60%{opacity:1;filter:blur();transform:scale(1.08)translateY(-4px)}to{transform:scale(1)translateY(0)}}.field-card{transition:box-shadow .2s,transform .2s}.field-card:hover{transform:translateY(-2px);box-shadow:0 0 12px #c9a84c4d}.field-card img{transition:filter .3s}.field-card:hover img{filter:brightness(1.15)!important}.title-gradient{font-family:var(--font-display);background:linear-gradient(135deg, var(--gold), var(--violet-lt), var(--cyan));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.subtitle{color:var(--muted);letter-spacing:2px;font-style:italic}.label{font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:10px}.btn{font-family:var(--font-display);letter-spacing:1.2px;border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;outline:none;padding:7px 18px;font-size:11px;transition:all .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-default{border:1px solid var(--border);color:var(--spirit);background:0 0}.btn-default:hover:not(:disabled){border-color:var(--violet);background:#2e265066}.btn-primary{background:var(--violet-dim);border:1px solid var(--violet);color:var(--violet-lt)}.btn-primary:hover:not(:disabled){border-color:var(--violet-lt);background:#7c5cbf4d}.btn-gold{background:var(--gold-dim);border:1px solid var(--gold);color:var(--gold-lt)}.btn-gold:hover:not(:disabled){border-color:var(--gold-lt);background:#c9a84c40;box-shadow:0 0 15px #c9a84c26}.btn-danger{border:1px solid var(--ember);color:#f5a08a;background:#e8604a1a}.btn-danger:hover:not(:disabled){border-color:var(--ember);background:#e8604a38}.btn-ghost{color:var(--muted);background:0 0;border:1px solid #0000}.btn-ghost:hover:not(:disabled){border-color:var(--border);background:#2e26504d}.tag{font-family:var(--font-display);letter-spacing:.8px;border-radius:3px;align-items:center;padding:2px 6px;font-size:8px;display:inline-flex}.tag-gold{color:var(--gold);background:#c9a84c1f;border:1px solid #c9a84c4d}.tag-violet{color:var(--violet-lt);background:#7c5cbf1f;border:1px solid #7c5cbf4d}.tag-cyan{color:var(--cyan);background:#4ac9c01f;border:1px solid #4ac9c04d}.tag-ember{color:var(--ember);background:#e8604a1f;border:1px solid #e8604a4d}.tag-nature{color:var(--nature);background:#6ecb8a1f;border:1px solid #6ecb8a4d}.tag-frost{color:var(--frost);background:#72c4e81f;border:1px solid #72c4e84d}.tag-void{color:var(--void);background:#9b6ee01f;border:1px solid #9b6ee04d}.level-badge{font-family:var(--font-display);letter-spacing:.5px;border-radius:10px;padding:2px 7px;font-size:9px;font-weight:700}.level-1{color:#aaa;background:#a0a0a026;border:1px solid #a0a0a04d}.level-2{color:var(--nature);background:#6ecb8a26;border:1px solid #6ecb8a4d}.level-3{color:var(--frost);background:#72c4e826;border:1px solid #72c4e84d}.level-4{color:var(--violet-lt);background:#a882e826;border:1px solid #a882e84d}.level-5{color:var(--gold);background:#c9a84c33;border:1px solid #c9a84c66}.rarity-common{color:#b0b0b0}.rarity-rare{color:var(--frost)}.rarity-epic{color:var(--violet-lt)}.rarity-legendary{color:var(--gold)}.xp-bar-container{background:#ffffff0f;border-radius:3px;width:100%;height:6px;position:relative;overflow:hidden}.xp-bar-fill{background:linear-gradient(90deg, var(--violet), var(--violet-lt));border-radius:3px;height:100%;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.xp-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d);border-radius:0 3px 3px 0;width:20px;height:100%;position:absolute;top:0;right:0}.xp-bar-fill.xp-bar-max{background:linear-gradient(90deg, var(--gold), var(--gold-lt))}.hp-bar-container{background:#ffffff12;border-radius:3px;height:5px;overflow:hidden}.hp-bar-fill{border-radius:3px;height:100%;transition:width .5s}.hand-card{cursor:pointer;border-radius:9px;flex-direction:column;flex-shrink:0;justify-content:space-between;width:82px;height:118px;padding:8px 7px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden}.hand-card:hover:not(.hand-card--disabled){transform:translateY(-10px);box-shadow:0 16px 36px #000000a6}.hand-card--selected{transform:translateY(-14px)!important}.hand-card--disabled{opacity:.35;cursor:not-allowed}.hand-card .card-shimmer{pointer-events:none;background:linear-gradient(135deg,#ffffff0f 0%,#0000 55%,#ffffff08 100%);position:absolute;inset:0}.field-card{cursor:pointer;border-radius:8px;flex-direction:column;justify-content:space-between;width:100%;height:96px;padding:7px 8px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.field-card--enemy{height:88px}.field-card--dead{opacity:.2;cursor:not-allowed;background:var(--deep)!important}.field-card--stunned:after{content:"STUNNED";font-family:var(--font-display);color:var(--ember);letter-spacing:1px;background:#0000008c;border-radius:8px;justify-content:center;align-items:center;font-size:9px;display:flex;position:absolute;inset:0}.empty-slot{border:1px dashed var(--border);border-radius:8px;justify-content:center;align-items:center;width:100%;height:96px;transition:border-color .2s,background .2s;display:flex}.empty-slot--active{cursor:pointer;border-color:#c9a84c80}.empty-slot--active:hover{border-color:var(--gold);background:#c9a84c0d}.collection-card{border-radius:var(--radius-md);cursor:pointer;flex-direction:column;gap:6px;padding:14px 12px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.collection-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #00000080}.collection-card--selected{box-shadow:0 0 0 2px var(--gold), 0 12px 30px #00000080}.mana-orb{border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:all .3s}.mana-orb--filled{border-color:var(--violet-lt);background:var(--violet-lt);box-shadow:0 0 4px #a882e866}.game-header{background:var(--deep);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:10px 20px;display:flex;position:relative}.phase-track{align-items:center;gap:6px;display:flex}.phase-pill{font-family:var(--font-display);letter-spacing:1px;border-radius:20px;padding:3px 12px;font-size:9px;transition:all .2s}.phase-pill--active{background:var(--panel);border:1px solid var(--gold);color:var(--gold-lt)}.phase-pill--inactive{border:1px solid var(--border);color:var(--muted);background:0 0}.battle-log{background:var(--deep);border-top:1px solid var(--border);z-index:5;max-height:56px;padding:7px 16px;position:relative;overflow:hidden}.battle-log .label{margin-bottom:3px}.tab-bar{background:var(--deep);border-bottom:1px solid var(--border);gap:0;padding:0 24px;display:flex}.tab-btn{color:var(--muted);font-family:var(--font-display);letter-spacing:1.5px;cursor:pointer;text-transform:uppercase;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px;font-size:11px;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--spirit)}.tab-btn--active{border-bottom-color:var(--gold);color:var(--gold-lt)}.room-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;transition:border-color .2s;display:flex}.room-card:hover{border-color:var(--border-hi)}.input{background:var(--deep);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--gold);font-family:var(--font-display);outline:none;padding:8px 14px;transition:border-color .2s}.input:focus{border-color:var(--violet)}.input::placeholder{color:var(--muted)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#07050fe0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dmg-popup{font-family:var(--font-display);pointer-events:none;z-index:200;font-size:22px;font-weight:700;animation:.9s ease-out forwards floatUp;position:fixed;top:40%;left:50%;transform:translate(-50%)}.xp-popup{font-family:var(--font-display);color:var(--gold);pointer-events:none;z-index:150;font-size:12px;font-weight:600;animation:1.2s ease-out forwards xpGain;position:absolute}.ability-tree{flex-direction:column;gap:6px;display:flex}.ability-node{border-radius:var(--radius-sm);border:1px solid var(--border);padding:8px 12px;transition:all .2s}.ability-node--unlocked{border-color:var(--violet);background:var(--violet-dim)}.ability-node--active{border-color:var(--gold);background:var(--gold-dim);box-shadow:0 0 10px #c9a84c26}.ability-node--locked{opacity:.4;border-style:dashed}.payment-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.payment-total{font-family:var(--font-display);color:var(--gold);justify-content:space-between;align-items:center;padding:14px 0 6px;font-size:14px;font-weight:600;display:flex}.ws-status{font-family:var(--font-display);letter-spacing:1px;align-items:center;gap:5px;font-size:9px;display:flex}.ws-dot{border-radius:50%;width:6px;height:6px}.ws-dot--live{background:var(--nature);box-shadow:0 0 6px #6ecb8a80}.ws-dot--offline{background:var(--ember)}.ws-dot--connecting{background:var(--gold);animation:1s infinite pulse}.divider{background:linear-gradient(90deg, transparent, var(--border), transparent);height:1px}.volume-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:all .15s;display:flex}.volume-btn:hover{border-color:var(--violet);color:var(--spirit)}.volume-btn--muted{color:var(--ember);border-color:var(--ember)}.nft-badge{background:linear-gradient(135deg, var(--gold), var(--gold-lt));color:var(--dark);font-size:7px;font-weight:700;font-family:var(--font-display);letter-spacing:.5px;border-radius:3px;padding:2px 5px;position:absolute;top:4px;right:4px;box-shadow:0 0 8px #c9a84c4d}.loading-screen{background:var(--dark);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;display:flex}.loading-spinner{border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite runeRotate}@media (width<=960px){.game-header{flex-wrap:wrap;gap:8px;padding:8px 12px}.phase-track{gap:3px}.phase-pill{padding:3px 8px;font-size:8px}.tab-bar{-webkit-overflow-scrolling:touch;padding:0 12px;overflow-x:auto}.tab-btn{white-space:nowrap;padding:10px 14px;font-size:10px}.room-card{flex-direction:column;align-items:stretch;gap:10px}.room-card .btn{width:100%}}@media (width<=640px){.game-header{gap:6px;padding:6px 10px}.game-header .title-gradient{letter-spacing:3px!important;font-size:16px!important}.phase-track{-webkit-overflow-scrolling:touch;gap:4px;overflow-x:auto}.phase-pill{letter-spacing:.5px;white-space:nowrap;padding:3px 7px;font-size:7px}.tab-bar{-webkit-overflow-scrolling:touch;gap:0;overflow-x:auto}.tab-btn{letter-spacing:1px;flex-shrink:0;padding:9px 12px;font-size:9px}.hand-card{touch-action:manipulation;width:74px;height:108px;padding:6px}.hand-card:hover:not(.hand-card--disabled){transform:translateY(-6px)}.hand-card--selected{transform:translateY(-10px)!important}.field-card{height:78px;padding:5px 6px}.field-card--enemy{height:72px}.field-card .cinzel{font-size:8px!important}.empty-slot{height:78px}.collection-card{padding:10px 8px}.room-card{flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px}.modal-overlay .glass-panel,.modal-overlay .anim-fadein-scale{margin:12px;border-radius:var(--radius-md)!important;max-width:calc(100vw - 24px)!important;padding:24px 20px!important}.battle-log{max-height:40px;padding:5px 10px}.battle-log .label{font-size:7px}.dmg-popup{font-size:18px}}@media (width<=420px){.game-header{padding:5px 8px}.game-header .title-gradient{font-size:14px!important}.hand-card{width:64px;height:96px;padding:5px}.field-card{height:68px;padding:4px 5px}.field-card--enemy{height:64px}.empty-slot{height:68px}.phase-pill{padding:2px 5px;font-size:6px}.tab-btn{padding:8px 10px;font-size:8px}.btn{padding:6px 12px;font-size:9px}.collection-card{padding:8px 6px}.mana-orb{width:8px;height:8px}}@media (hover:none) and (pointer:coarse){.hand-card:hover:not(.hand-card--disabled){box-shadow:none;transform:none}.hand-card--selected{box-shadow:0 8px 20px #00000080;transform:translateY(-8px)!important}.collection-card:hover{box-shadow:none;transform:none}.btn{min-width:40px;min-height:40px}.tab-btn{min-height:44px}.input{min-height:44px;font-size:16px!important}.tab-bar{scrollbar-width:none;-ms-overflow-style:none}.tab-bar::-webkit-scrollbar{display:none}}@supports (padding-bottom:env(safe-area-inset-bottom)){.game-header{padding-top:max(6px, env(safe-area-inset-top))}}@media (height<=500px) and (orientation:landscape){.game-header{padding:4px 10px}.hand-card{width:58px;height:84px}.field-card,.empty-slot{height:64px}.battle-log{display:none}.phase-pill{padding:2px 6px;font-size:7px}}
