:root{--biome-bg:none;--bg-deep:#0d0820;--bg-mid:#1a0d2e;--bg-card:#251440;--bg-card-2:#321a55;--bg-elevated:#3d2168;--ink:#f4ecff;--ink-dim:#b8a4d8;--ink-faint:#6b5588;--accent-fire:#ff7043;--accent-grass:#66bb6a;--accent-water:#4fc3f7;--accent-electric:#ffd54f;--accent-neon:#c084ff;--accent-purple:#a259f0;--accent-cyan:#80deea;--accent-gold:#ffd166;--accent-pink:#e74093;--accent-amber:#ffa726;--danger:#ff4c7a;--warn:#ffb74d;--border:#3d2168;--border-light:#553a8a;--shadow-sm:0 2px 6px #00000080;--shadow-md:0 6px 20px #0009;--shadow-lg:0 12px 36px #000c;--glow-neon:0 0 22px #c084ff80;--r-sm:4px;--r-md:8px;--r-lg:14px}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--accent-neon);outline-offset:2px}html,body{background:var(--bg-deep);min-height:100vh;color:var(--ink);-webkit-font-smoothing:antialiased;font-family:JetBrains Mono,ui-monospace,monospace}body{background-image:radial-gradient(900px 600px at 15% -10%,#00ffaa0f,#0000 60%),radial-gradient(800px 600px at 110% 110%,#b388ff12,#0000 55%),radial-gradient(600px 400px,#4dd0e108,#0000 70%);background-attachment:fixed}::selection{background:var(--accent-neon);color:var(--bg-deep)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-mid)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--accent-neon)}button{border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));color:var(--ink);letter-spacing:.5px;cursor:pointer;border-radius:var(--r-md);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff0a;padding:10px 16px;font-family:inherit;font-size:13px;transition:all .15s;position:relative}button:hover:not(:disabled){border-color:var(--accent-purple);color:var(--accent-purple);box-shadow:var(--shadow-md), 0 0 0 1px #a259f059, inset 0 1px 0 #ffffff0d;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.35;cursor:not-allowed}button.primary{color:#1a0d2e;text-shadow:0 1px #ffffff40;box-shadow:var(--shadow-md), 0 0 22px #ffd16673, inset 0 1px 0 #ffffff40;background:linear-gradient(#ffd166 0%,#ffa726 50%,#e74093 100%);border-color:#ffd166;font-weight:700}button.primary:hover:not(:disabled){color:#1a0d2e;filter:brightness(1.08)}#root{flex-direction:column;height:100vh;padding:16px;display:flex;overflow:hidden}.app{flex-direction:column;flex:1;gap:12px;width:100%;max-width:1280px;min-height:0;margin:0 auto;display:flex}.panel,.header,.map-container,.team-sidebar,.team-tray,.hand-panel,.log-panel,.screen-card{border:1px solid var(--border);background:linear-gradient(180deg, var(--bg-mid), var(--bg-card));border-radius:var(--r-lg);box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff08;position:relative}.header:before,.map-container:before,.team-sidebar:before,.team-tray:before,.hand-panel:before,.log-panel:before,.screen-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#00ffaa59,#0000);height:1px;position:absolute;top:0;left:14px;right:14px}.header{justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;display:flex}.title{letter-spacing:3px;background:linear-gradient(#ffd166 0%,#ffa726 50%,#e74093 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 14px #a259f0a6)drop-shadow(0 2px 4px #000000b3);-webkit-background-clip:text;background-clip:text;font-family:VT323,monospace;font-size:44px;line-height:1}.subtitle{color:var(--ink-dim);letter-spacing:2px;text-transform:uppercase;margin-top:4px;font-family:Special Elite,serif;font-size:12px}.run-stats{color:var(--accent-gold);align-items:center;gap:14px;font-family:VT323,monospace;font-size:22px;display:flex}.run-stats span{background:var(--bg-deep);border:1px solid var(--border);border-radius:var(--r-md);padding:4px 12px}.layout-with-sidebar{flex:1;grid-template-columns:305px 1fr;gap:16px;min-height:0;display:grid}.team-sidebar{flex-direction:column;gap:14px;padding:18px;display:flex;overflow-y:auto}.team-sidebar h3,.panel-title,.map-title{color:var(--ink-dim);letter-spacing:4px;text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:4px;font-family:VT323,monospace;font-size:18px}.team-member{border:1px solid var(--border);background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));border-radius:var(--r-md);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff0a;flex-direction:column;gap:8px;padding:12px;transition:border-color .15s;display:flex}.team-member:hover{border-color:var(--border-light)}.team-member.fainted,.team-slot.fainted{opacity:.32;filter:grayscale()}.tm-head{align-items:center;gap:10px;display:flex}.tm-sprite{border:1px solid var(--border-light);background:radial-gradient(circle at 50% 50%, #00ffaa14, transparent 70%), var(--bg-deep);border-radius:var(--r-md);width:46px;height:46px;color:var(--accent-neon);place-items:center;display:grid;overflow:hidden}.tm-name{color:var(--ink);letter-spacing:1px;font-family:VT323;font-size:22px}.tm-role{color:var(--ink-dim);text-transform:uppercase;letter-spacing:1px;font-size:10px}.tm-hp-bar,.hp-bar{background:var(--bg-deep);border:1px solid var(--border);border-radius:6px;height:10px;overflow:hidden;box-shadow:inset 0 2px 4px #0006}.tm-hp-fill,.hp-fill{background:linear-gradient(90deg,#00d488,#0fa);height:100%;transition:width .3s;box-shadow:0 0 10px #00ffaa80}.tm-hp-fill.low,.hp-fill.low{background:linear-gradient(90deg,#ff8a00,#ffd54f);box-shadow:0 0 10px #ffd54f73}.tm-hp-fill.critical,.hp-fill.critical{background:linear-gradient(90deg,#d32f2f,#ff5470);box-shadow:0 0 10px #ff54708c}.tm-hp-text,.muted{color:var(--ink-dim);font-size:11px}.tm-level{color:var(--accent-neon);font-weight:700}.tm-xp-bar{background:var(--bg-deep);border:1px solid #64c8ff2e;border-radius:4px;height:7px;margin-top:2px;position:relative;overflow:hidden}.tm-xp-fill{background:linear-gradient(90deg,#1a6fff 0%,#00e5ff 100%);border-radius:4px;height:100%;transition:width .5s;box-shadow:0 0 8px #00e5ff80}.tm-xp-text{color:#fffc;letter-spacing:.5px;text-shadow:0 1px 3px #000;pointer-events:none;justify-content:center;align-items:center;font-size:9px;font-weight:600;display:flex;position:absolute;inset:0}.tm-stats-row{color:var(--ink);align-items:center;gap:10px;font-size:12px;display:flex}.tm-stats-row span{align-items:center;gap:4px;display:flex}.tm-def{color:var(--ink-dim);margin-left:auto}.reward-card-meta{color:var(--ink-dim);align-items:center;gap:5px;font-size:11px;display:flex}.relic-list{flex-wrap:wrap;gap:6px;display:flex}.relic-chip{border:1px solid var(--border-light);background:var(--bg-deep);border-radius:var(--r-md);color:var(--accent-gold);padding:6px 10px;font-size:11px}.gold-box{border:1px solid var(--border-light);background:linear-gradient(180deg, #ffd16614, var(--bg-deep));border-radius:var(--r-md);color:var(--accent-gold);text-align:center;letter-spacing:2px;text-shadow:0 0 12px #ffd16666;padding:10px;font-family:VT323;font-size:26px}.synergy-list{flex-direction:column;gap:6px;display:flex}.synergy-chip{border:1px solid var(--border);color:var(--ink-dim);border-radius:var(--r-md);background:#0000002e;grid-template-columns:24px 1fr;gap:4px 8px;padding:8px 10px;font-size:11px;transition:all .2s;display:grid}.synergy-chip b{color:var(--ink);align-self:center;font-family:VT323;font-size:20px;line-height:1}.synergy-chip small{color:var(--ink-faint);grid-column:2}.synergy-chip.active{color:var(--accent-neon);background:linear-gradient(#00ffaa14,#00ffaa05);border-color:#0fa9;box-shadow:0 0 16px #00ffaa2e,inset 0 1px #00ffaa26}.synergy-chip.active small{color:var(--ink-dim)}.type-row{flex-wrap:wrap;gap:5px;display:flex}.type-pill{text-transform:uppercase;letter-spacing:1.5px;border-radius:var(--r-sm);background:#0000004d;border:1px solid;padding:2px 7px;font-size:9px;font-weight:600}.type-fire{color:#ff7043}.type-water{color:#4fc3f7}.type-grass{color:#66bb6a}.type-electric{color:#ffd54f}.type-normal{color:#c0a878}.type-flying{color:#b39ddb}.type-poison{color:#ba68c8}.type-psychic{color:#ff78c4}.type-rock{color:#b8a25b}.type-ground{color:#d3a35f}.type-fighting{color:#ff5252}.type-bug{color:#9ccc65}.type-ghost{color:#9575cd}.type-dragon{color:#7e57c2}.type-ice{color:#80deea}.map-container{background:radial-gradient(900px 500px at 50% -10%,#00ffaa0d,#0000 60%),linear-gradient(#0d1320b8,#161d2cad);flex-direction:column;min-height:0;padding:18px 16px 12px;display:flex;position:relative;overflow:hidden}.map-container:after{content:"";pointer-events:none;opacity:.55;background-image:radial-gradient(1px 1px at 12% 18%,#ffffff73,#0000),radial-gradient(1px 1px at 32% 62%,#ffffff59,#0000),radial-gradient(1px 1px at 68% 28%,#fff6,#0000),radial-gradient(1px 1px at 84% 78%,#ffffff59,#0000),radial-gradient(1px 1px at 48% 88%,#ffffff4d,#0000),radial-gradient(1px 1px at 78% 12%,#fff6,#0000);position:absolute;inset:0}.map-title{text-align:center;padding:4px 0 18px}.map-svg{z-index:1;flex:1;width:100%;min-height:0;display:block;position:relative}.floor-band-bg{fill:#fff0;transition:fill .25s}.floor-band.current .floor-band-bg{fill:#00ffaa0a}.floor-band.past .floor-band-bg{fill:#0000002e}.floor-label{fill:var(--ink-faint);letter-spacing:3px;font-family:VT323,monospace;font-size:17px}.floor-band.current .floor-label{fill:var(--accent-neon)}.floor-biome{fill:var(--ink-dim);letter-spacing:2px;text-transform:uppercase;font-family:VT323,monospace;font-size:22px}.floor-band.current .floor-biome{fill:var(--ink)}.map-edge{stroke:#788caa2e;stroke-width:2.5px;stroke-dasharray:5 6;stroke-linecap:round;fill:none;transition:all .25s}.map-edge.available{stroke:var(--accent-neon);stroke-width:3px;stroke-dasharray:none;filter:drop-shadow(0 0 6px #0fa9);animation:1.6s linear infinite edge-flow}.map-edge.taken{stroke:#00ffaa40;stroke-width:2px;stroke-dasharray:none}@keyframes edge-flow{0%{stroke-dasharray:0 0;stroke-dashoffset:0}}.map-node{cursor:not-allowed}.map-node.available{cursor:pointer}.node-pulse{fill:var(--node-color);opacity:0;pointer-events:none;animation:2s ease-out infinite node-pulse}.map-node.current .node-pulse{animation:1.4s ease-out infinite node-pulse-strong}@keyframes node-pulse{0%{opacity:.25;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}@keyframes node-pulse-strong{0%{opacity:.45;transform:scale(.85)}to{opacity:0;transform:scale(1.55)}}.node-aura{fill:var(--node-color);opacity:0;transition:opacity .25s}.map-node.available .node-aura{opacity:.25}.map-node.available:hover .node-aura,.map-node.current .node-aura{opacity:.55}.map-node.available:hover .node-bg{stroke-width:4px}.node-bg{stroke:var(--node-color);stroke-width:2px;filter:drop-shadow(0 4px 10px #0000008c);transition:all .2s}.map-node.available .node-bg{stroke-width:3px;filter:drop-shadow(0 4px 10px #0000008c) drop-shadow(0 0 10px var(--node-glow))}.map-node.current .node-bg{stroke-width:3.5px;filter:drop-shadow(0 0 22px var(--node-glow)) drop-shadow(0 4px 10px #0000008c)}.map-node.visited .node-bg{opacity:.4;filter:grayscale(.5)drop-shadow(0 2px 4px #0006)}.node-ring{fill:none;stroke:#00000059;stroke-width:1px}.node-icon{fill:#fff;paint-order:stroke fill;stroke:#0000008c;stroke-width:1.5px;pointer-events:none;font-family:Segoe UI Symbol,Apple Color Emoji,Segoe UI Emoji,Noto Sans Symbols2,sans-serif;font-size:34px;font-weight:700}.map-node.visited .node-icon{fill:#ffffff8c}.node-icon-img{pointer-events:none;filter:drop-shadow(0 2px 4px #0000008c);transition:filter .2s,opacity .2s}.map-node.available .node-icon-img{filter:drop-shadow(0 2px 6px #0009) drop-shadow(0 0 8px var(--node-glow))}.map-node.current .node-icon-img{filter:drop-shadow(0 0 14px var(--node-glow)) drop-shadow(0 2px 4px #0009)}.map-node.visited .node-icon-img{opacity:.45;filter:grayscale(.6)}.node-boss .node-icon{font-size:48px}.node-label{fill:var(--ink-dim);letter-spacing:2px;pointer-events:none;font-family:VT323,monospace;font-size:17px;transition:fill .2s}.map-node.available .node-label{fill:var(--node-color)}.map-node.current .node-label{fill:var(--node-color);font-size:18px}.map-node.visited .node-label{fill:var(--ink-faint)}.node-boss .node-label{font-size:20px}.combat-v2{flex:1;grid-template-rows:auto 1fr auto auto;gap:10px;height:100%;min-height:0;display:grid}.combat-topbars{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;display:grid}.combat-topbar{border:1px solid var(--border);border-radius:var(--r-md);background:linear-gradient(#0d1320d9,#161d2cd9);padding:10px 14px;position:relative}.combat-topbar.empty{opacity:0;pointer-events:none}.combat-topbar.enemy{text-align:right}.combat-topbar-row{color:var(--ink);justify-content:space-between;align-items:baseline;font-family:VT323;font-size:22px;display:flex}.combat-topbar.enemy .combat-topbar-row{flex-direction:row-reverse}.combat-topbar-name{letter-spacing:1px;font-weight:700}.combat-topbar-level{color:var(--accent-neon);letter-spacing:1.5px;font-size:18px}.combat-topbar-hp{height:12px;margin:6px 0 4px}.combat-topbar-stats{color:var(--ink-dim);text-align:center;margin-bottom:6px;font-family:VT323;font-size:14px}.combat-topbar-types{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.combat-topbar.enemy .combat-topbar-types{justify-content:flex-end}.combat-topbar.hp-flash{animation:.35s ease-out topbar-hp-flash}.sprite-hp-bar.flash{box-shadow:0 0 12px #ffffffb3,inset 0 0 6px #fff6}@keyframes topbar-hp-flash{0%,to{box-shadow:var(--shadow-sm)}40%{box-shadow:0 0 20px #ff547099,0 0 0 2px #ff547066}}.combat-topbar.ko{opacity:.55;filter:grayscale(.7)}.combat-topbar.ko:after{content:"K.O.";color:var(--danger);text-shadow:0 0 14px var(--danger), 0 2px 4px #000;letter-spacing:4px;pointer-events:none;font-family:VT323;font-size:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-8deg)}.effectiveness{letter-spacing:1px;border-radius:4px;padding:1px 6px;font-family:VT323;font-size:14px}.effectiveness.super{color:var(--accent-fire);background:#ff70431f;border:1px solid #ff704366}.effectiveness.super-super{color:var(--accent-gold);background:#ffd16626;border:1px solid #ffd16680;animation:1s ease-in-out infinite super-pulse}.effectiveness.resist{color:var(--ink-dim);background:#788caa1a;border:1px solid #788caa4d}.effectiveness.immune{color:var(--accent-purple);background:#b388ff1f;border:1px solid #b388ff66}@keyframes super-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.combat-status-icons{gap:8px;margin-top:6px;font-size:16px;display:flex}.combat-topbar.enemy .combat-status-icons{justify-content:flex-end}.status-pip{text-shadow:0 0 6px;background:#0006;border:1px solid;border-radius:4px;align-items:center;gap:1px;padding:2px 6px;animation:1.4s ease-in-out infinite status-pulse;display:inline-flex}.status-pip sub{color:var(--ink);text-shadow:none;font-family:VT323;font-size:11px}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.65}}.ko-overlay-sprite{color:var(--danger);text-shadow:0 0 18px var(--danger), 0 4px 8px #000;letter-spacing:4px;z-index:5;justify-content:center;align-items:center;font-family:VT323;font-size:48px;animation:.6s cubic-bezier(.5,1.5,.5,1) both ko-stamp;display:flex;position:absolute;inset:0;transform:rotate(-10deg)}@keyframes ko-stamp{0%{opacity:0;transform:rotate(-10deg)scale(2.5)}60%{opacity:1;transform:rotate(-10deg)scale(.85)}80%{transform:rotate(-10deg)scale(1.15)}to{opacity:1;transform:rotate(-10deg)scale(1)}}.battle-sprite-wrap-outer.ko{animation:1s ease-out forwards sprite-faint}@keyframes sprite-faint{0%{filter:brightness()}to{filter:grayscale(.9)brightness(.55);transform:translateY(8px)}}.combat-skill-card{cursor:help}.skill-tooltip{background:linear-gradient(180deg, var(--bg-elevated), var(--bg-card-2));border:1px solid var(--accent-neon);border-radius:var(--r-md);min-width:240px;max-width:320px;color:var(--ink);opacity:0;pointer-events:none;z-index:100;white-space:normal;padding:10px 14px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.5;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(8px);box-shadow:0 8px 24px #000000b3,0 0 16px #00ffaa40}.combat-skill-card:hover .skill-tooltip{opacity:1;transform:translate(-50%)translateY(0)}.skill-tooltip-title{color:var(--accent-neon);letter-spacing:1px;margin-bottom:4px;font-family:VT323;font-size:18px}.skill-tooltip-type{color:var(--ink-dim);margin-bottom:2px}.skill-tooltip-effects{border-top:1px solid var(--border);color:var(--accent-gold);margin-top:6px;padding-top:6px}.confetti-container{pointer-events:none;z-index:10;position:absolute;inset:0;overflow:hidden}.confetti-piece{border-radius:2px;animation:linear infinite confetti-fall;position:absolute;top:-20px;box-shadow:0 0 4px #fff6}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(120vh)rotate(720deg)}}.combat-topbar-kind{letter-spacing:1px;border-radius:4px;padding:1px 8px;font-family:VT323;font-size:12px}.combat-topbar-kind.kind-dresseur{color:var(--accent-neon);background:#00ffaa14;border:1px solid #00ffaa4d}.combat-topbar-kind.kind-sauvage{color:var(--accent-fire);background:#ff704314;border:1px solid #ff70434d}.combat-topbar-kind.kind-champion{color:var(--accent-gold);background:#ffd1661a;border:1px solid #ffd16666}.turn-badge{color:var(--ink);background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));border:1px solid var(--border-light);border-radius:var(--r-md);letter-spacing:4px;white-space:nowrap;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff0d;padding:8px 22px;font-family:VT323;font-size:22px}.combat-arena{border-radius:var(--r-lg);border:1px solid var(--border);background-position:50%;background-size:cover;min-height:360px;padding:0;display:block;position:relative;overflow:hidden}.combat-arena:after{content:"";pointer-events:none;border-radius:var(--r-lg);background:repeating-linear-gradient(0deg,#0000,#0000 3px,#0000000d 3px 4px);position:absolute;inset:0}.combat-arena.shake{animation:.22s steps(2,end) both shake}.combat-arena.ult-flash{animation:.52s steps(4,end) both shake-big}.combat-arena.ult-flash:before{content:"";z-index:5;pointer-events:none;border-radius:var(--r-lg);background:radial-gradient(circle,#ffffff8c,#ffd16640 40%,#0000 75%);animation:.52s ease-out both ult-flash-fade;position:absolute;inset:0}.battle-sprite-wrap-outer{z-index:2;position:absolute}.battle-sprite-wrap-outer:before{content:"";background:radial-gradient(ellipse, var(--aura-color,#00ffaa73), transparent 70%);filter:blur(8px);z-index:-2;width:75%;height:8px;animation:2.2s ease-in-out infinite battle-aura-pulse;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.battle-sprite-wrap-outer.player{--aura-color:#00ffaa8c}.battle-sprite-wrap-outer.enemy{--aura-color:#ff54708c}.battle-sprite-wrap-outer.player.ko,.battle-sprite-wrap-outer.enemy.ko{--aura-color:transparent}@keyframes battle-aura-pulse{0%,to{opacity:.55;transform:translate(-50%)scaleX(1)}50%{opacity:.9;transform:translate(-50%)scaleX(1.15)}}.battle-sprite-wrap-outer.player{bottom:90px;left:14%}.battle-sprite-wrap-outer.enemy{top:50px;right:14%}.battle-sprite-wrap-outer:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(#0000008c 0%,#00000040 50%,#0000 75%),radial-gradient(#c9a35c 0%,#8a6a3c 38%,#5a4a2c 70%,#0000 95%);border-radius:50%;width:80%;height:24px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 0 3px #7cb3428c,0 0 0 6px #669e3259}.battle-sprite-wrap-outer.enemy:after{width:70%;height:16px;bottom:-10px}.battle-sprite-wrap-outer.player:after{bottom:0;transform:translate(calc(32px - 50%))}.battle-sprite-wrap{will-change:transform;align-items:flex-end;display:flex;position:relative}.battle-sprite-wrap-outer.player .battle-sprite{width:220px;height:220px}.battle-sprite-wrap-outer.enemy .battle-sprite{width:160px;height:160px}.battle-sprite-wrap .battle-sprite{image-rendering:pixelated;filter:drop-shadow(0 6px 14px #0000008c)}.battle-sprite-wrap .sprite-wrap{width:auto!important;height:auto!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;display:block!important}.pokemon-sprite.back{transform:none!important}.arena-stats-panel{border:1px solid var(--border-light);border-radius:var(--r-md);z-index:50;width:130px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#0d1320eb,#161d2ceb);flex-direction:column;gap:3px;padding:10px 12px;font-family:VT323,monospace;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.arena-stats-panel.left{left:16px}.arena-stats-panel.right{right:16px}@media (width<=1600px){.arena-stats-panel{display:none}}.arena-stats-title{color:var(--ink-dim);letter-spacing:2px;text-align:center;border-bottom:1px solid var(--border);margin-bottom:2px;padding-bottom:3px;font-size:12px}.arena-stat-row{justify-content:space-between;font-size:14px;display:flex}.arena-stat-row span{color:var(--ink-dim)}.arena-stat-row b{color:var(--ink)}.arena-stat-row.buff b{color:var(--accent-gold)}.arena-stats-energy{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.arena-stats-energy-bar{border:1px solid var(--border-light);background:#00000080;border-radius:3px;height:6px;overflow:hidden}.arena-stats-energy-fill{background:linear-gradient(90deg,#4dd0e1,#0fa,#ffd166);height:100%;transition:width .35s}.arena-stats-energy small{text-align:center;color:var(--ink-dim);margin-top:2px;font-size:11px;display:block}.pokemon-details-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.pokemon-details-modal{background:linear-gradient(180deg, var(--bg-mid), var(--bg-card));border:1px solid var(--accent-neon);border-radius:var(--r-lg);width:min(620px,92vw);max-height:88vh;box-shadow:var(--shadow-lg), 0 0 32px #00ffaa40;padding:22px 24px;animation:.3s cubic-bezier(.5,1.5,.5,1) modal-pop;position:relative;overflow-y:auto}@keyframes modal-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.pokemon-details-close{z-index:2;border-radius:50%;width:32px;height:32px;padding:0;font-size:16px;position:absolute;top:12px;right:12px}.pokemon-details-header{border-bottom:1px solid var(--border);grid-template-columns:120px 1fr;align-items:center;gap:18px;margin-bottom:14px;padding-bottom:16px;display:grid}.pokemon-details-sprite{width:120px;height:120px}.pokemon-details-info h2{letter-spacing:1px;color:var(--ink);margin-bottom:4px;font-family:VT323;font-size:28px}.pokemon-details-level{color:var(--accent-neon);margin-bottom:8px;font-family:VT323;font-size:18px}.pokemon-details-rarity{color:var(--ink-dim);text-transform:capitalize;margin-top:6px;font-family:VT323;font-size:14px}.pokemon-details-section{margin-bottom:14px}.pokemon-details-section h4{color:var(--ink-dim);letter-spacing:3px;border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:4px;font-family:VT323;font-size:14px}.pokemon-details-hp-text{text-align:center;color:var(--ink-dim);margin-top:4px;font-family:VT323;font-size:16px}.pokemon-details-stats-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pokemon-details-stats-grid>div{border-radius:var(--r-sm);background:#0000004d;justify-content:space-between;padding:6px 12px;font-family:VT323;font-size:16px;display:flex}.pokemon-details-stats-grid span{color:var(--ink-dim)}.pokemon-details-stats-grid b{color:var(--accent-fire)}.pokemon-details-skills{flex-direction:column;gap:8px;display:flex}.pokemon-details-skill{border:1px solid var(--border);border-radius:var(--r-sm);background:#0000004d;padding:8px 12px}.pokemon-details-skill.ult{border-color:var(--accent-gold);background:#ffd1660f}.pokemon-details-skill.auto{opacity:.82}.pokemon-details-skill-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.pokemon-details-skill-stats{color:var(--ink-dim);gap:14px;font-family:VT323;font-size:13px;display:flex}.pokemon-details-skill-stats b{color:var(--ink);margin-left:4px}.pokemon-details-skill-effects{color:var(--accent-gold);margin-top:4px;font-family:JetBrains Mono;font-size:11px}.skill-level-tag{color:var(--accent-gold);border:1px solid var(--accent-gold);background:#ffd1661a;border-radius:3px;margin-left:auto;padding:1px 5px;font-family:VT323;font-size:12px}.combat-team-member.clickable{cursor:pointer}.combat-team-member.clickable:hover:not(.dead){transform:translateY(-1px);box-shadow:0 4px 12px #0fa3}.ko-badge{background:var(--danger);color:#fff;letter-spacing:1px;border-radius:4px;padding:1px 6px;font-family:VT323;font-size:12px}.combat-cast-bar{z-index:4;background:linear-gradient(#000000bf,#0000008c);border:1px solid #ffffff2e;border-radius:9px;width:38%;height:18px;position:absolute;bottom:22px;overflow:hidden;box-shadow:0 4px 14px #00000080,inset 0 1px #ffffff0d}.combat-cast-bar.player{left:5%}.combat-cast-bar.enemy{right:5%}.combat-cast-fill{border-radius:8px 0 0 8px;height:100%;transition:width 80ms linear}.combat-cast-fill.player{background:linear-gradient(90deg,#4dd0e1 0%,#0fa 100%);box-shadow:0 0 14px #00ffaa8c,inset 0 0 6px #ffffff40}.combat-cast-fill.enemy{float:right;background:linear-gradient(90deg,#ffb347 0%,#ff5470 100%);border-radius:0 8px 8px 0;margin-left:auto;box-shadow:0 0 14px #ff54708c,inset 0 0 6px #ffffff40}.combat-cast-fill[style*="width: 100%"]{animation:.3s ease-out cast-ready-flash}@keyframes cast-ready-flash{0%{filter:brightness()}50%{filter:brightness(2)saturate(1.5)}to{filter:brightness()}}.combat-cast-bar:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(90deg,#0000 0%,#ffffff26 50%,#0000 100%);animation:1.8s linear infinite energy-shimmer;position:absolute;inset:0}.battle-narrative{border:1px solid var(--border-light);border-radius:var(--r-md);color:var(--ink);letter-spacing:.5px;text-align:center;box-shadow:var(--shadow-sm);background:linear-gradient(#0d1320d9,#161d2cd9);padding:10px 18px;font-family:VT323;font-size:18px}.combat-bottom-grid{grid-template-columns:280px 1fr 240px;gap:12px;min-height:0;display:grid}.combat-team-panel,.combat-skills-panel,.combat-energy-panel{background:linear-gradient(180deg, var(--bg-mid), var(--bg-card));border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;gap:10px;padding:12px;display:flex}.combat-panel-title{color:var(--ink-dim);letter-spacing:3px;text-transform:uppercase;text-align:center;border-bottom:1px solid var(--border);padding-bottom:4px;font-family:VT323;font-size:14px}.combat-team-list{flex-direction:column;gap:8px;min-height:0;display:flex;overflow-y:auto}.combat-team-member{border:1px solid var(--border);border-radius:var(--r-sm);background:#0d132066;grid-template-columns:42px 1fr;gap:10px;padding:6px;transition:all .2s;display:grid}.combat-team-member.active{border-color:var(--accent-neon);background:#00ffaa0f;animation:1.8s ease-in-out infinite active-team-pulse;box-shadow:0 0 12px #00ffaa2e}@keyframes active-team-pulse{0%,to{box-shadow:0 0 12px #00ffaa2e}50%{box-shadow:0 0 22px #00ffaa73}}.combat-team-member.dead{opacity:.42;filter:grayscale(.7)}.combat-team-sprite{width:42px;height:42px}.combat-team-info{flex-direction:column;gap:3px;min-width:0;display:flex}.combat-team-name{color:var(--ink);font-family:VT323;font-size:16px}.combat-team-meta{color:var(--ink-dim);justify-content:space-between;font-family:VT323;font-size:12px;display:flex}.combat-team-hp{height:6px}.combat-skill-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-content:start;gap:10px;display:grid}.combat-skill-card{background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));border:1px solid var(--border-light);border-radius:var(--r-md);flex-direction:column;gap:6px;padding:8px;transition:all .25s;display:flex;position:relative;overflow:hidden}.combat-skill-card.ready{box-shadow:0 0 14px #00ffaa26}.combat-skill-card.cooling{opacity:.55}.combat-skill-card.ult.ready{border-color:var(--accent-gold);background:linear-gradient(180deg, #ffd1661f, var(--bg-card));animation:1.6s ease-in-out infinite ult-ready-pulse;box-shadow:0 0 22px #ffd16680}.combat-skill-card.auto{opacity:.82}.combat-skill-card-header{align-items:center;gap:8px;display:flex}.combat-skill-card-name{color:var(--ink);letter-spacing:.5px;flex:1;font-family:VT323;font-size:14px;line-height:1.1}.combat-skill-card-name.ult-name{color:var(--accent-gold);font-weight:700}.skill-type-badge{background:#00000059;border:2px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.combat-skill-card-body{flex-direction:column;gap:2px;display:flex}.combat-skill-stat{justify-content:space-between;font-family:VT323;font-size:13px;display:flex}.combat-skill-stat span{color:var(--ink-dim)}.combat-skill-stat b{color:var(--accent-fire)}.combat-skill-cd-bar{background:#0006;border-radius:2px;height:4px;overflow:hidden}.combat-skill-cd-fill{background:linear-gradient(90deg, var(--accent-cyan), var(--accent-water));height:100%;transition:width .35s}.combat-skill-card-status{text-align:center;color:var(--ink-dim);background:#00000040;border-radius:3px;padding:2px;font-family:VT323;font-size:12px}.combat-skill-card-status.ready{color:var(--accent-neon);background:#00ffaa14}.combat-skill-card.type-fire{border-color:#ff704373}.combat-skill-card.type-water{border-color:#4fc3f773}.combat-skill-card.type-grass{border-color:#7cb34273}.combat-skill-card.type-electric{border-color:#ffd54f73}.combat-skill-card.type-bug{border-color:#9ccc6573}.combat-skill-card.type-poison{border-color:#ba68c873}.combat-skill-card.type-flying{border-color:#b39ddb73}.combat-skill-card.type-ground{border-color:#d3a35f73}.combat-skill-card.type-fairy{border-color:#ff6e9c73}.combat-skill-card.type-fighting{border-color:#ff525273}.combat-skill-card.type-psychic{border-color:#ff78c473}.combat-skill-card.type-steel{border-color:#b0bec573}.combat-skill-card.type-ice{border-color:#80deea73}.combat-skill-card.type-ghost{border-color:#9575cd73}.combat-skill-card.type-rock{border-color:#b8a25b73}.combat-skill-card.type-normal{border-color:#c0a87873}.combat-skill-card.type-dragon{border-color:#7e57c273}.combat-energy-meter-wrap{flex-direction:column;gap:4px;display:flex}.combat-energy-bar{border:1px solid var(--border-light);background:linear-gradient(#0b0f18,#1a2230);border-radius:9px;height:18px;position:relative;overflow:hidden}.combat-energy-fill{background:linear-gradient(90deg,#4dd0e1 0%,#0fa 50%,#ffd166 100%);height:100%;transition:width .35s;position:relative;box-shadow:0 0 12px #0fa6}.combat-energy-fill[style*="width: 100%"]{animation:1.2s ease-in-out infinite energy-overflow}@keyframes energy-overflow{0%,to{filter:brightness()saturate()}50%{filter:brightness(1.6)saturate(1.8);box-shadow:0 0 24px #ffd166d9}}.combat-energy-bar:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff2e 50%,#0000 100%);animation:2.5s linear infinite energy-shimmer;position:absolute;inset:0}@keyframes energy-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.combat-energy-text{color:var(--ink-dim);text-align:center;font-family:VT323;font-size:14px}.combat-ult-badge{text-align:center;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--ink-faint);letter-spacing:2px;padding:8px;font-family:VT323;font-size:14px;position:relative;overflow:hidden}.combat-ult-badge.ready{color:var(--accent-gold);border-color:var(--accent-gold);background:#ffd1661f;animation:1.4s ease-in-out infinite ult-ready-pulse;box-shadow:0 0 14px #ffd1664d,inset 0 0 12px #ffd16626}.combat-ult-badge.ready:before{content:"";background:linear-gradient(90deg,#0000,#ffd16659,#0000);animation:2s linear infinite ult-sweep;position:absolute;inset:0}@keyframes ult-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.combat-speed-selector{gap:4px;display:flex}.combat-speed-btn{flex:1;padding:6px 0;font-family:VT323;font-size:14px}.combat-speed-btn.active{border-color:var(--accent-neon);color:var(--accent-neon);background:#00ffaa14;box-shadow:0 0 10px #00ffaa40}.combat-controls{flex-direction:column;gap:6px;margin-top:auto;display:flex}.combat-controls button{width:100%}.team-tray{justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.team-tray.enemy{flex-direction:row-reverse}.team-tray-label{color:var(--ink-dim);letter-spacing:3px;text-transform:uppercase;font-family:VT323;font-size:18px}.slot-list{gap:8px;display:flex}.team-slot{border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));border-radius:var(--r-md);width:58px;height:58px;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff0a;place-items:center;transition:all .2s;display:grid;position:relative}.team-slot:hover{border-color:var(--ink-dim)}.team-slot.active{border-color:var(--accent-neon);box-shadow:0 0 18px #00ffaa73,inset 0 0 14px #00ffaa1a}.team-slot small{color:var(--ink);background:#0000008c;border-radius:3px;padding:1px 4px;font-size:10px;position:absolute;bottom:2px;right:4px}.arena{border:1px solid var(--border);border-radius:var(--r-lg);background-image:linear-gradient(180deg, #0000008c, #0000002e 30%, #0000002e 70%, #0000008c), linear-gradient(90deg, #0000004d, transparent 22%, transparent 78%, #0000004d), var(--arena-bg);min-height:380px;box-shadow:var(--shadow-lg), inset 0 0 50px #0009;background-position:50%;background-size:cover;grid-template-columns:minmax(280px,1fr) 96px minmax(280px,1fr);align-items:center;gap:22px;padding:28px;display:grid;position:relative;overflow:hidden}.arena:after{content:"";pointer-events:none;border-radius:var(--r-lg);background:repeating-linear-gradient(0deg,#0000,#0000 3px,#00000012 3px 4px);position:absolute;inset:0}.arena.shake{animation:.22s steps(2,end) both shake}.arena.ult-flash{animation:.52s steps(4,end) both shake-big}.arena.ult-flash:before{content:"";z-index:5;pointer-events:none;border-radius:var(--r-lg);background:radial-gradient(circle,#ffffff8c,#ffd16640 40%,#0000 75%);animation:.52s ease-out both ult-flash-fade;position:absolute;inset:0}@keyframes shake-big{0%{transform:translate(0)scale(1)}20%{transform:translate(14px,-6px)scale(1.02)}40%{transform:translate(-12px,8px)scale(1.01)}60%{transform:translate(10px,-4px)scale(1.02)}80%{transform:translate(-8px,4px)scale(1)}to{transform:translate(0)scale(1)}}@keyframes ult-flash-fade{0%{opacity:0}20%{opacity:1}to{opacity:0}}.arena.freeze{filter:contrast(1.25)brightness(1.08)}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(7px,-2px)}55%{transform:translate(-6px,3px)}to{transform:translate(0)}}.fighter{border:1px solid var(--border-light);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);min-height:310px;box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff0d;z-index:1;background:linear-gradient(#161d2ceb,#0d1320f2);flex-direction:column;align-items:center;gap:10px;padding:18px 14px;transition:transform .22s,filter .22s;display:flex;position:relative}.fighter.player{box-shadow:var(--shadow-md), 0 0 0 1px #00ffaa2e, inset 0 1px 0 #00ffaa1a;border-color:#00ffaa80}.fighter.enemy{box-shadow:var(--shadow-md), 0 0 0 1px #ff704333, inset 0 1px 0 #ff70431a;border-color:#ff70438c}.fighter.hit{animation:.32s hit}.fighter.heal{box-shadow:0 0 22px #00ffaa59}.fighter.fx-big{animation:.36s impact}.fighter.ko{opacity:.35;filter:grayscale()}@keyframes hit{0%,to{transform:translate(0)}35%{filter:brightness(1.6);transform:translate(-10px)}}@keyframes impact{0%{transform:scale(1)}35%{filter:brightness(1.8);transform:scale(1.08)}to{transform:scale(1)}}.intent{text-align:center;letter-spacing:2px;text-transform:uppercase;border-radius:var(--r-sm);align-self:stretch;min-height:22px;padding:2px 6px;font-family:VT323;font-size:18px}.intent-dresseur{color:var(--accent-neon);background:#00ffaa12;border:1px solid #00ffaa40}.intent-sauvage{color:var(--accent-fire);background:#ff704312;border:1px solid #ff704340}.intent-champion{color:var(--accent-gold);background:#ffd16612;border:1px solid #ffd1664d}.fighter-level{color:var(--accent-neon);letter-spacing:1px;background:#00ffaa1a;border:1px solid #00ffaa40;border-radius:4px;margin-left:4px;padding:1px 6px;font-family:VT323;font-size:15px}.current-badge{background:var(--accent-neon);color:var(--bg-deep);letter-spacing:1px;text-transform:uppercase;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.select-mon.current{border-color:var(--accent-neon);box-shadow:0 0 16px #00ffaa4d}.sprite-wrap{border:1px solid var(--border-light);background:radial-gradient(circle at 50% 70%, #00ffaa1f, transparent 60%), radial-gradient(circle at 50% 50%, #00000080, transparent 70%), var(--bg-deep);border-radius:var(--r-md);place-items:center;width:144px;height:144px;display:grid;position:relative;box-shadow:inset 0 0 16px #0000008c}.fighter.enemy .sprite-wrap{background:radial-gradient(circle at 50% 70%, #ff70431f, transparent 60%), radial-gradient(circle at 50% 50%, #00000080, transparent 70%), var(--bg-deep)}.sprite-hp-bar{background:#111;border:1px solid #ffffff14;border-radius:4px;width:100%;height:8px;margin-bottom:2px;overflow:hidden;box-shadow:inset 0 2px 4px #0009}.sprite-hp-fill{border-radius:4px;height:100%;transition:width .35s,background .35s;box-shadow:0 0 6px}.pokemon-sprite{object-fit:contain;filter:drop-shadow(0 4px 8px #00000080)drop-shadow(0 0 10px #00ffaa40);-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;image-rendering:pixelated;display:block}.pokemon-sprite.battle-sprite{width:130px;height:130px;animation:1.6s ease-in-out infinite idle}.fighter.player .sprite-wrap,.pokemon-sprite:not(.inline-sprite):not(.battle-sprite),.sprite-fallback:not(.inline-sprite){transform:scaleX(-1)}.fighter.enemy .pokemon-sprite,.fighter.enemy .sprite-fallback,.team-tray.enemy .pokemon-sprite,.team-tray.enemy .sprite-fallback,.enemy-preview .pokemon-sprite,.enemy-preview .sprite-fallback,.switch-enemy-preview .switch-enemy-mon .pokemon-sprite,.switch-enemy-preview .switch-enemy-mon .sprite-fallback{transform:scaleX(1)}.pokemon-sprite.inline-sprite{vertical-align:middle;width:28px;height:28px;margin-right:4px;display:inline-block}.sprite-fallback{color:var(--accent-neon);text-shadow:0 0 16px #00ffaa80;font-family:VT323;font-size:48px}.sprite-fallback.inline-sprite{font-size:24px}.team-slot .pokemon-sprite{width:46px;height:46px}.tm-sprite .pokemon-sprite{width:40px;height:40px}.target-mon .pokemon-sprite{width:56px;height:56px}.pokemon-sprite.shiny{filter:drop-shadow(0 4px 8px #00000080)drop-shadow(0 0 12px #ffd54f80)saturate(1.3)brightness(1.08)}@keyframes idle{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.fighter.enemy .pokemon-sprite{filter:drop-shadow(0 4px 8px #00000080)drop-shadow(0 0 10px #ff704359)}.fighter.enemy .pokemon-sprite.shiny{filter:drop-shadow(0 4px 8px #00000080)drop-shadow(0 0 12px #ffd54f80)saturate(1.3)brightness(1.08)}.float-text{color:var(--danger);pointer-events:none;text-shadow:0 0 12px,0 2px 4px #000000d9;z-index:5;font-family:VT323;font-size:36px;animation:.65s forwards floatUp;position:absolute;top:6px;right:6px}.float-text.heal,.float-text.shield{color:var(--accent-neon)}.float-text.crit{color:var(--accent-gold);font-size:44px}.float-text.dot{color:var(--accent-purple)}@keyframes floatUp{to{opacity:0;transform:translateY(-40px)}}.particle{width:6px;height:6px;color:var(--accent-neon);z-index:4;background:currentColor;border-radius:50%;animation:.55s forwards particle;position:absolute;top:65px;left:65px;box-shadow:0 0 8px}.particle-damage{color:var(--danger)}.particle-crit{color:var(--accent-gold)}.particle-dot{color:var(--accent-purple)}@keyframes particle{to{transform:translate(var(--x), var(--y));opacity:0}}.fighter-name{color:var(--ink);letter-spacing:1px;font-family:VT323;font-size:28px}.fighter-stats{color:var(--ink-dim);letter-spacing:1px;font-size:12px}.energy-row{gap:5px;min-height:14px;display:flex}.energy-row span{border:1px solid var(--accent-electric);background:0 0;border-radius:3px;width:14px;height:14px;transition:all .15s}.energy-row span.on{background:var(--accent-electric);box-shadow:0 0 10px #ffd54fa6,inset 0 1px #fff6}.status-row{flex-wrap:wrap;justify-content:center;gap:4px;min-height:26px;display:flex}.status{border-radius:var(--r-sm);letter-spacing:.5px;background:#00000059;border:1px solid;padding:2px 6px;font-size:10px;font-weight:600}.status.burn{color:var(--accent-fire)}.status.poison{color:var(--accent-purple)}.status.curse{color:#9575cd}.status.slow,.status.freeze{color:#80deea}.status.shield{color:var(--accent-water)}.vs-meter{color:var(--ink-dim);border:1px solid var(--border);border-radius:var(--r-md);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;place-items:center;gap:10px;padding:14px 6px;font-family:VT323;font-size:22px;display:grid}.vs-meter b{color:var(--accent-neon);text-shadow:0 0 12px #00ffaa8c;font-size:28px}.controls{justify-content:center;align-items:center;gap:12px;padding:4px 0;display:flex}.skill-bar{border:1px solid var(--border);background:linear-gradient(180deg, var(--bg-mid), var(--bg-card));border-radius:var(--r-lg);flex-direction:column;gap:12px;padding:14px 18px;display:flex;position:relative}.skill-bar-header{justify-content:space-between;align-items:center;gap:14px;display:flex}.skill-owner{color:var(--ink);align-items:center;gap:8px;font-family:VT323;font-size:18px;display:flex}.energy-meter{border:1px solid var(--border-light);background:linear-gradient(#0b0f18,#1a2230);border-radius:9px;flex:1;max-width:380px;height:18px;position:relative;overflow:hidden}.energy-fill{background:linear-gradient(90deg,#ffb347 0%,#ffd166 50%,#fff176 100%);height:100%;transition:width .35s;box-shadow:0 0 14px #ffd1668c,inset 0 0 8px #ffffff40}.energy-label{color:#fff;letter-spacing:1.5px;text-shadow:0 1px 2px #000000bf;justify-content:center;align-items:center;font-family:VT323;font-size:13px;display:flex;position:absolute;inset:0}.skill-slots{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.skill-slot{border-radius:var(--r-md);border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));flex-direction:column;align-items:center;gap:4px;min-height:78px;padding:10px 8px;transition:all .2s;display:flex;position:relative;overflow:hidden}.skill-slot.ready{box-shadow:0 0 12px #00ffaa2e}.skill-slot.cooling{opacity:.55}.skill-slot.last-used{transform:translateY(-2px);box-shadow:0 0 18px #ffffff59}.skill-slot.ult.ready{border-color:var(--accent-gold);background:linear-gradient(180deg, #ffd1661f, var(--bg-card));animation:1.4s ease-in-out infinite ult-ready-pulse;box-shadow:0 0 22px #ffd1668c}@keyframes ult-ready-pulse{0%,to{box-shadow:0 0 18px #ffd16673}50%{box-shadow:0 0 28px #ffd166d9}}.skill-slot.auto{border-color:#788caa40}.skill-slot-name{text-align:center;color:var(--ink);letter-spacing:.5px;font-family:VT323;font-size:14px;line-height:1}.skill-slot.ult .skill-slot-name{color:var(--accent-gold);font-weight:700}.skill-slot.auto .skill-slot-name{color:var(--ink-dim)}.skill-slot-meta{align-items:center;gap:6px;font-family:VT323;font-size:12px;display:flex}.skill-dmg{color:var(--accent-fire);font-weight:700}.skill-cd{color:var(--ink-dim)}.skill-ult-tag{background:var(--accent-gold);color:var(--bg-deep);letter-spacing:1px;border-radius:3px;padding:1px 4px;font-size:10px;font-weight:700}.skill-cd-overlay{pointer-events:none;background:linear-gradient(#0000,#0000008c);transition:height .35s;position:absolute;bottom:0;left:0;right:0}.skill-slot.type-fire{border-color:#ff704366}.skill-slot.type-water{border-color:#4fc3f766}.skill-slot.type-grass{border-color:#7cb34266}.skill-slot.type-electric{border-color:#ffd54f66}.skill-slot.type-bug{border-color:#9ccc6566}.skill-slot.type-poison{border-color:#ba68c866}.skill-slot.type-flying{border-color:#b39ddb66}.skill-slot.type-ground{border-color:#d3a35f66}.skill-slot.type-fairy{border-color:#ff6e9c66}.skill-slot.type-fighting{border-color:#ff525266}.skill-slot.type-psychic{border-color:#ff78c466}.skill-slot.type-steel{border-color:#b0bec566}.skill-slot.type-ice{border-color:#80deea66}.skill-slot.type-ghost{border-color:#9575cd66}.skill-slot.type-rock{border-color:#b8a25b66}.skill-slot.type-normal{border-color:#c0a87866}.skill-slot.type-dragon{border-color:#7e57c266}.hand-panel{padding:16px 20px}.team-cards{flex-direction:column;gap:12px;display:flex}.deck-line{opacity:.55;border-radius:var(--r-md);border:1px solid #0000;grid-template-columns:170px 1fr;align-items:center;gap:14px;padding:8px 10px;transition:opacity .2s;display:grid}.deck-line.active{opacity:1;background:#00ffaa0a;border-color:#0fa3}.deck-owner{color:var(--ink);letter-spacing:1px;font-family:VT323;font-size:20px}.mini-cards{flex-wrap:wrap;gap:6px;display:flex}.mini-card{border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));cursor:help;border-radius:var(--r-sm);letter-spacing:.5px;box-shadow:var(--shadow-sm);padding:4px 8px;font-size:10px;transition:transform .12s;position:relative}.mini-card:hover{transform:translateY(-2px)}.mini-card.attack,.stripe-attack{border-color:var(--accent-fire)}.mini-card.aoe,.stripe-aoe{border-color:var(--accent-purple)}.mini-card.heal,.mini-card.shield,.stripe-heal,.stripe-shield{border-color:var(--accent-neon)}.mini-card.buff,.stripe-buff{border-color:var(--accent-electric)}.mini-card.upgraded{border-color:var(--accent-gold);color:var(--accent-gold);background:linear-gradient(180deg, #ffd16614, var(--bg-card));box-shadow:0 0 8px #ffd16633}.card-cat-icon{vertical-align:middle;border-radius:50%;flex-shrink:0;width:13px;height:13px;display:inline-block;position:relative}.card-cat-icon.physical{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:radial-gradient(circle at 40% 35%,#ffe066,#ff7043 65%);box-shadow:0 0 5px #ff7043b3}.card-cat-icon.special{background:radial-gradient(circle,#4dd0e1 20%,#0000 70%);border:2px solid #4dd0e1;box-shadow:0 0 6px #4dd0e1a6,inset 0 0 4px #4dd0e166}.card-cat-icon.special:after{content:"";background:#4dd0e1;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 5px #4dd0e1}.card-tooltip{background:linear-gradient(180deg, var(--bg-card-2), var(--bg-mid));border:1px solid var(--accent-neon);border-radius:var(--r-md);width:240px;color:var(--ink);text-align:left;pointer-events:none;opacity:0;z-index:100;box-shadow:var(--shadow-lg), 0 0 24px #00ffaa40;flex-direction:column;gap:5px;padding:10px 12px;font-size:11px;transition:opacity .12s ease-out;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.card-tooltip b{color:var(--accent-neon);letter-spacing:1px;font-family:VT323;font-size:19px}.card-tooltip small{color:var(--ink-dim);letter-spacing:.5px;font-size:10px}.card-tooltip div{color:var(--ink);line-height:1.45}.mini-card:hover .card-tooltip{opacity:1}.log-panel{flex-direction:column;gap:5px;max-height:200px;padding:14px 16px;display:flex;overflow-y:auto}.log-entry{color:var(--ink-dim);border-left:2px solid var(--border);padding:3px 8px;font-size:12px;transition:border-color .2s}.log-entry:hover{border-left-color:var(--accent-neon)}.log-entry.crit{color:var(--accent-gold);border-left-color:var(--accent-gold)}.log-entry.attack{color:var(--ink)}.log-entry.faint{color:var(--danger);border-left-color:var(--danger)}.log-entry.dot{color:var(--accent-purple);border-left-color:var(--accent-purple)}.log-entry.system{color:var(--accent-cyan);border-left-color:var(--accent-cyan)}.banner{text-align:center;letter-spacing:6px;border-radius:var(--r-lg);border:1px solid var(--border);margin:0;padding:16px;font-family:VT323;font-size:56px}.banner.victory{color:var(--accent-neon);text-shadow:0 0 22px #00ffaaa6;background:#00ffaa0f;border-color:#0fa6}.banner.defeat{color:var(--danger);text-shadow:0 0 22px #ff547099;background:#ff54700d;border-color:#ff547066}.screen-card{flex-direction:column;align-items:center;gap:20px;padding:30px;display:flex}.screen-title{color:var(--accent-neon);letter-spacing:4px;text-shadow:0 0 16px #00ffaa73;text-transform:uppercase;font-family:VT323;font-size:40px}.screen-subtitle{color:var(--ink-dim);text-align:center;max-width:760px;font-size:13px;line-height:1.6}.reward-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;width:100%;display:grid}.reward-card{border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-card-2), var(--bg-card));cursor:pointer;border-radius:var(--r-md);min-height:150px;box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff0a;flex-direction:column;gap:10px;padding:16px;transition:all .18s;display:flex;position:relative;overflow:hidden}.reward-card:hover{border-color:var(--accent-neon);box-shadow:var(--shadow-lg), 0 0 22px #00ffaa40, inset 0 1px 0 #ffffff14;transform:translateY(-3px)}.reward-card-desc{color:var(--ink-dim);font-size:12px;line-height:1.5}.card-header{color:var(--ink);letter-spacing:1px;justify-content:space-between;gap:10px;font-family:VT323;font-size:22px;display:flex}.card-header span{color:var(--accent-electric)}.card-type-stripe{background:var(--border);border-radius:2px;height:3px;margin-top:auto}.stripe-attack{background:var(--accent-fire);box-shadow:0 0 8px #ff704366}.stripe-aoe{background:var(--accent-purple);box-shadow:0 0 8px #b388ff66}.stripe-heal,.stripe-shield{background:var(--accent-neon);box-shadow:0 0 8px #0fa6}.stripe-buff{background:var(--accent-electric);box-shadow:0 0 8px #ffd54f66}.relic-reward{border-color:var(--accent-gold);background:linear-gradient(180deg, #ffd1660f, var(--bg-card))}.recruit-reward{border-color:var(--accent-purple);background:linear-gradient(180deg, #b388ff0f, var(--bg-card))}.reward-actions,.target-selector{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.reroll-btn{color:var(--accent-cyan);background:linear-gradient(180deg, #4dd0e114, var(--bg-card));border-color:#4dd0e166}.reroll-btn:hover:not(:disabled){border-color:var(--accent-cyan);color:var(--accent-cyan);box-shadow:0 0 18px #4dd0e166}.target-mon{flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:140px;min-height:110px;padding:12px;display:flex}.recruit-title{color:var(--ink);justify-content:center;align-items:center;gap:12px;font-family:VT323;font-size:22px;display:flex}.recruit-title .pokemon-sprite{width:64px;height:64px}.deck-edit{border:1px solid var(--border);background:var(--bg-deep);border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:12px;display:flex}.deck-edit b{align-items:center;gap:4px;min-width:140px;display:flex}.event-result{color:var(--accent-neon);letter-spacing:1px;text-shadow:0 0 14px #00ffaa73;border-radius:var(--r-md);background:#00ffaa0a;border:1px solid #00ffaa4d;padding:10px 16px;font-family:VT323;font-size:26px}.enemy-preview{flex-wrap:wrap;justify-content:center;gap:22px;padding:8px 0 16px;display:flex}.enemy-preview-mon{background:linear-gradient(180deg, #ff70430f, var(--bg-deep));border-radius:var(--r-md);border:1px solid #ff70434d;flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.enemy-preview-mon .pokemon-sprite{filter:drop-shadow(0 4px 8px #00000080)drop-shadow(0 0 12px #ff70438c);width:72px;height:72px}.enemy-preview-mon .sprite-fallback{color:var(--accent-fire);font-size:44px}.switch-enemy-preview{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;padding:8px 0 4px;display:flex}.switch-enemy-mon{background:linear-gradient(180deg, #ff70430f, var(--bg-deep));border-radius:var(--r-md);border:1px solid #ff704340;flex-direction:column;align-items:center;gap:4px;min-width:90px;padding:10px 10px 8px;transition:opacity .25s,filter .25s;display:flex;position:relative}.switch-enemy-mon.incoming{border-color:var(--accent-fire);background:linear-gradient(180deg, #ff704326, var(--bg-deep));box-shadow:0 0 18px #ff704366}.switch-enemy-mon.dead{opacity:.38;filter:grayscale(.9)}.switch-enemy-mon .pokemon-sprite{width:64px;height:64px}.switch-enemy-mon .sprite-fallback{font-size:38px}.switch-enemy-name{color:var(--text-main);text-align:center;font-family:VT323;font-size:14px;line-height:1}.switch-enemy-mon .sprite-hp-bar{width:80px;margin:0}.incoming-label{background:var(--accent-fire);color:#fff;white-space:nowrap;letter-spacing:.5px;border-radius:4px;padding:0 6px;font-family:VT323;font-size:12px;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.ko-overlay{color:#f44336;letter-spacing:1px;pointer-events:none;justify-content:center;align-items:center;font-family:VT323;font-size:22px;display:flex;position:absolute;inset:0}.selection-grid{flex-wrap:wrap;justify-content:center;gap:16px;width:100%;display:flex}.select-mon{border-radius:var(--r-md);flex-direction:column;align-items:center;gap:10px;min-width:160px;padding:18px 14px;display:flex}.select-mon:not(:disabled):hover{border-color:var(--accent-neon);box-shadow:var(--shadow-lg), 0 0 22px #00ffaa4d;transform:translateY(-4px)}.screen-hint{color:var(--warn);border-radius:var(--r-md);text-align:center;background:#ffb74d14;border:1px solid #ffb74d4d;margin:4px 0 8px;padding:8px 14px;font-family:VT323,monospace;font-size:16px}.pokeball-role{color:var(--ink-dim);font-size:11px}.select-mon.shiny-pick{border-color:var(--accent-gold);background:linear-gradient(180deg, #ffd16614, var(--bg-card));box-shadow:0 0 18px #ffd16659}.pokemon-sprite.select-sprite{width:84px;height:84px}.sprite-fallback.select-sprite{font-size:54px}.fighter.fx-hit{animation:.32s hit}.fighter.fx-heal{animation:.5s heal-glow}@keyframes heal-glow{0%,to{box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff0d}45%{box-shadow:0 0 32px #00ffaa8c,inset 0 0 22px #00ffaa38}}.battle-sprite-wrap.fx-hit{animation:.35s ease-out hit-shake}.battle-sprite-wrap.fx-big{animation:.42s ease-out hit-impact}.battle-sprite-wrap.fx-heal .battle-sprite{animation:.55s ease-out heal-pulse}.battle-sprite-wrap.fx-shield .battle-sprite{animation:.45s ease-out shield-pulse}.battle-sprite-wrap.fx-counter{animation:.4s ease-out counter-flash}@keyframes hit-shake{0%{transform:translate(0)}18%{filter:brightness(1.8)saturate(1.4);transform:translate(-14px)rotate(-3deg)}36%{filter:brightness(1.6);transform:translate(10px)rotate(2deg)}54%{filter:brightness(1.3);transform:translate(-6px)rotate(-1deg)}to{filter:brightness();transform:translate(0)rotate(0)}}@keyframes hit-impact{0%{filter:brightness();transform:scale(1)}20%{filter:brightness(2.2)saturate(1.6);transform:scale(1.18)translate(-10px)}40%{filter:brightness(1.7);transform:scale(.94)translate(8px)}60%{filter:brightness(1.4);transform:scale(1.08)translate(-4px)}to{filter:brightness();transform:scale(1)translate(0)}}@keyframes heal-pulse{0%{filter:brightness()drop-shadow(0 0 #0000)}50%{filter:brightness(1.4)drop-shadow(0 0 18px #0fac)}to{filter:brightness()drop-shadow(0 6px 14px #0000008c)}}@keyframes shield-pulse{0%,to{filter:brightness()}50%{filter:brightness(1.3)drop-shadow(0 0 14px #4fc3f7d9)}}@keyframes counter-flash{0%,to{filter:brightness();transform:scale(1)}30%{filter:brightness(2.4)sepia()hue-rotate(-20deg);transform:scale(1.1)}}.hit-flash{pointer-events:none;opacity:0;z-index:3;mix-blend-mode:screen;background:radial-gradient(circle,currentColor 0%,#0000 65%);border-radius:50%;animation:.35s ease-out hit-flash-anim;position:absolute;inset:-8px}.hit-flash.type-fire{color:#ff7043}.hit-flash.type-water{color:#4fc3f7}.hit-flash.type-grass{color:#7cb342}.hit-flash.type-electric{color:#ffd54f}.hit-flash.type-normal{color:#fff}.hit-flash.type-flying{color:#b39ddb}.hit-flash.type-poison{color:#ba68c8}.hit-flash.type-psychic{color:#ff78c4}.hit-flash.type-rock{color:#b8a25b}.hit-flash.type-ground{color:#d3a35f}.hit-flash.type-fighting{color:#ff5252}.hit-flash.type-bug{color:#9ccc65}.hit-flash.type-ghost{color:#9575cd}.hit-flash.type-dragon{color:#7e57c2}.hit-flash.type-ice{color:#80deea}.hit-flash.type-steel{color:#b0bec5}.hit-flash.type-fairy{color:#ff6e9c}@keyframes hit-flash-anim{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(1.8)}}.crit-slash{pointer-events:none;filter:drop-shadow(0 0 6px #fffc);opacity:0;z-index:4;mix-blend-mode:screen;background:linear-gradient(120deg,#0000 30%,#fffffff2 49% 51%,#0000 70%),linear-gradient(60deg,#0000 30%,#ffdc96b3 49% 51%,#0000 70%);animation:.45s ease-out crit-slash-anim;position:absolute;inset:10% 5%}@keyframes crit-slash-anim{0%{opacity:0;transform:scale(.4)rotate(-12deg)}25%{opacity:1;transform:scale(1.05)rotate(0)}to{opacity:0;transform:scale(1.3)rotate(8deg)}}.fighter.lunging-player,.battle-sprite-wrap.lunging-player{animation:.42s ease-out lunge-player}.fighter.lunging-enemy,.battle-sprite-wrap.lunging-enemy{animation:.42s ease-out lunge-enemy}@keyframes lunge-player{0%{transform:translate(0)scale(1)}35%{filter:brightness(1.45);transform:translate(38px)scale(1.06)}60%{transform:translate(28px)scale(1.04)}to{filter:brightness();transform:translate(0)scale(1)}}@keyframes lunge-enemy{0%{transform:translate(0)scale(1)}35%{filter:brightness(1.45);transform:translate(-38px)scale(1.06)}60%{transform:translate(-28px)scale(1.04)}to{filter:brightness();transform:translate(0)scale(1)}}.attack-ring{border:3px solid var(--type-color,#fff);border-radius:var(--r-md);box-shadow:0 0 20px var(--type-color,#fff), inset 0 0 12px var(--type-color,#fff);pointer-events:none;z-index:3;animation:.46s ease-out forwards attack-ring;position:absolute;inset:-6px}@keyframes attack-ring{0%{opacity:0;transform:scale(.7)}25%{opacity:1;transform:scale(1.04)}to{opacity:0;transform:scale(1.5)}}.hit-overlay{background:var(--type-color,#ff525266);mix-blend-mode:screen;pointer-events:none;z-index:3;border-radius:var(--r-md);animation:.38s ease-out forwards hit-overlay;position:absolute;inset:0}@keyframes hit-overlay{0%{opacity:.85}to{opacity:0}}.particle-type-fire{color:#ff7043}.particle-type-water{color:#4fc3f7}.particle-type-grass{color:#66bb6a}.particle-type-electric{color:#ffd54f}.particle-type-poison{color:#ba68c8}.particle-type-psychic{color:#ff78c4}.particle-type-ghost{color:#9575cd}.particle-type-ice{color:#80deea}.particle-type-rock{color:#b8a25b}.particle-type-ground{color:#d3a35f}.particle-type-fighting{color:#ff5252}.particle-type-flying{color:#b39ddb}.particle-type-dragon{color:#7e57c2}.particle-type-bug{color:#9ccc65}.particle-type-normal{color:#c0a878}.difficulty-screen-wrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.difficulty-screen-card{z-index:2;border:1px solid var(--accent-purple);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#0d0820b8,#1a0d2ee0);flex-direction:column;align-items:center;gap:14px;max-width:720px;margin-bottom:30px;padding:28px 38px 32px;display:flex;position:relative;box-shadow:0 16px 48px #000000b3,0 0 32px #a259f059}.difficulty-screen-tagline{color:var(--accent-gold);letter-spacing:3px;text-align:center;text-shadow:0 0 14px #ffd1668c,0 2px 4px #000;font-family:VT323,monospace;font-size:22px}.difficulty-btn{border-radius:var(--r-lg);border-width:2px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-width:250px;min-height:110px;padding:18px;display:flex}.difficulty-btn b{letter-spacing:2px;font-family:VT323,monospace;font-size:36px}.difficulty-btn small{color:var(--ink-dim);text-align:center;letter-spacing:.5px;max-width:220px;font-size:11px;line-height:1.5}.diff-easy{border-color:var(--accent-grass)}.diff-easy:hover:not(:disabled){color:var(--accent-grass);box-shadow:0 0 24px #66bb6a59, var(--shadow-md);border-color:var(--accent-grass)}.diff-normal{border-color:var(--accent-electric)}.diff-normal:hover:not(:disabled){color:var(--accent-electric);box-shadow:0 0 24px #ffd54f59, var(--shadow-md);border-color:var(--accent-electric)}.diff-hard{border-color:var(--danger)}.diff-hard:hover:not(:disabled){color:var(--danger);box-shadow:0 0 24px #ff547059, var(--shadow-md);border-color:var(--danger)}.diff-badge{border-radius:var(--r-sm);letter-spacing:2px;background:#0006;border:1px solid;padding:4px 12px;font-family:VT323,monospace;font-size:20px}.act-badge{border-radius:var(--r-sm);color:var(--accent-neon);letter-spacing:2px;text-shadow:0 0 12px #00ffaa59;background:#00ffaa14;border:1px solid #0fa6;padding:4px 12px;font-family:VT323,monospace;font-size:20px}@media (width<=960px){#root{padding:12px}.layout-with-sidebar,.arena{grid-template-columns:1fr}.vs-meter{display:none}.header{flex-direction:column;align-items:flex-start;gap:12px}.deck-line{grid-template-columns:1fr}.title{font-size:36px}}
