@font-face{font-family:Bungee;src:url(/fonts/bungee-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo-700.woff2) format("woff2");font-weight:700;font-display:swap}:root{--shell: #ee1515;--shell-dark: #8b0000;--shell-mid: #c50d0d;--bezel: #1a1a1a;--bezel-light: #3a3a3a;--panel: #ffffff;--panel-off: #efefef;--panel-sunken: #dcdcdc;--lens: #2a75bb;--lens-bright: #3b9be8;--signal: #ffcb05;--bg: var(--bezel);--surface: var(--panel);--surface-alt: var(--panel-off);--border: var(--bezel);--border-soft: #b9b9b9;--text: #14181f;--muted: #5d6470;--text-on-shell: #ffffff;--accent: var(--lens);--danger: #d32020;--good: #3a9e3a;--warn: #e8930c;--radius: 4px;--radius-lg: 8px;--border-w: 3px;--shadow: 4px 4px 0 var(--bezel);--shadow-sm: 2px 2px 0 var(--bezel);--bevel-light: inset 2px 2px 0 rgba(255, 255, 255, .85);--bevel-dark: inset -2px -2px 0 rgba(0, 0, 0, .28);font-family:Archivo,Helvetica Neue,Arial,sans-serif;color-scheme:light}@keyframes hazard-scroll{to{background-position:32px 0}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overflow:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.1;font-family:Bungee,Archivo,sans-serif;font-weight:400;letter-spacing:.01em}p{margin:0}.muted{color:var(--muted)}.small{font-size:12px}button{font:inherit;font-weight:600;color:inherit;cursor:pointer;border:var(--border-w) solid var(--bezel);border-radius:var(--radius);background:transparent;transition:transform .06s steps(2),box-shadow .06s steps(2)}button:disabled{cursor:not-allowed;opacity:.4}button.primary{background:var(--shell);color:var(--text-on-shell);font-weight:700;letter-spacing:.02em;text-transform:uppercase;padding:12px 18px;box-shadow:var(--shadow),var(--bevel-dark);text-shadow:1px 1px 0 var(--shell-dark)}button.primary:hover:not(:disabled){background:#ff2a2a}button.primary:active:not(:disabled),button.ghost:active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 var(--bezel)}button.ghost{background:var(--surface-alt);color:var(--text);padding:10px 16px;box-shadow:var(--shadow-sm)}button.ghost:hover:not(:disabled){background:var(--panel-sunken)}button.link{color:var(--lens);text-decoration:underline;text-underline-offset:2px;padding:0;border:none;background:none;box-shadow:none}kbd{display:inline-block;background:var(--panel);border:2px solid var(--bezel);border-bottom-width:3px;border-radius:3px;padding:0 5px;font-size:11px;font-weight:700;font-family:Archivo,monospace;color:var(--text)}input,select{width:100%;margin-top:6px;padding:11px 13px;border-radius:var(--radius);border:var(--border-w) solid var(--bezel);background:var(--panel);color:var(--text);font:inherit;box-shadow:inset 2px 2px #00000024}input::placeholder{color:#9aa1ad}input:focus,select:focus{outline:3px solid var(--lens);outline-offset:1px}.ball-icon{--ball: #ef4444;display:inline-block;width:18px;height:18px;border-radius:50%;background:linear-gradient(180deg,var(--ball) 0 46%,var(--bezel) 46% 54%,#fff 54% 100%);border:2px solid var(--bezel);position:relative;flex:none}.ball-icon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:6px;height:6px;border-radius:50%;background:#fff;border:2px solid var(--bezel)}.ball-icon.big{width:30px;height:30px}.potion-icon{width:16px;height:20px;border-radius:4px 4px 6px 6px;background:linear-gradient(180deg,#f9a8d4,#db2777);border:2px solid var(--bezel);position:relative}.potion-icon:before{content:"";position:absolute;top:-6px;left:3px;width:6px;height:5px;background:var(--border-soft);border:2px solid var(--bezel)}.revive-icon{position:relative;width:17px;height:17px;background:#f4f4f4;border:2px solid var(--bezel)}.revive-icon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:9px;height:3px;background:var(--shell);box-shadow:0 0 0 0 transparent}.revive-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:3px;height:9px;background:var(--shell);z-index:1}.revive-btn{border:2px solid var(--bezel);background:var(--shell);color:var(--text-on-shell);padding:8px;font-size:12px;font-weight:700;text-transform:uppercase;box-shadow:var(--shadow-sm)}.revive-btn:hover:not(:disabled){background:#ff2a2a}.stone-icon{width:17px;height:17px;background:linear-gradient(150deg,#7ef0c0,#17a06a);border:2px solid var(--bezel);clip-path:polygon(50% 0%,100% 35%,82% 100%,18% 100%,0% 35%)}.evolve-btn{border:2px solid var(--bezel);background:var(--signal);color:var(--text);padding:8px;font-size:12px;font-weight:700;text-transform:uppercase;box-shadow:var(--shadow-sm)}.evolve-btn:hover:not(:disabled){background:#ffd93d}.evolve-hint{font-size:11px;color:var(--muted);text-align:center}.evolve-choice{display:grid;gap:6px}.evolve-label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase}.evolve-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.evolve-option{display:grid;justify-items:center;gap:3px;padding:6px 3px;border:2px solid var(--bezel);border-radius:var(--radius);background:var(--signal)}.evolve-option:hover{background:#ffd93d}.evolve-option-name{font-size:10px;font-weight:700}.evolve-option-types{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}.evolve-option-types .type-badge{font-size:8px;padding:0 5px}.menu,.lobby,.result{height:100%;display:grid;place-items:center;padding:24px;overflow-y:auto;background:repeating-linear-gradient(135deg,rgba(0,0,0,.05) 0 2px,transparent 2px 10px),linear-gradient(180deg,var(--shell) 0%,var(--shell-mid) 100%)}.menu-card,.lobby-card,.result-card{width:min(560px,100%);background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius-lg);box-shadow:6px 6px 0 var(--bezel);padding:28px}.menu-card:before,.lobby-card:before,.result-card:before{content:"";display:block;height:10px;margin:-28px -28px 22px;border-bottom:var(--border-w) solid var(--bezel);border-radius:5px 5px 0 0;background:linear-gradient(180deg,var(--lens-bright),var(--lens))}.menu-card h1{display:flex;align-items:center;gap:12px;font-size:26px;color:var(--shell);text-shadow:2px 2px 0 var(--bezel)}.tagline{color:var(--muted);margin:12px 0 22px;line-height:1.5}.menu-card form{display:grid;gap:16px}.menu-card label,.lobby-card label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text)}.rules{margin:22px 0 0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.9}.rules strong{color:var(--text)}.conn{margin-top:18px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.conn:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted)}.conn.online:before{background:var(--good)}.conn.offline:before{background:var(--danger)}.conn.connecting:before{background:var(--warn)}.lobby-card{width:min(620px,100%)}.lobby-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.countdown{background:var(--lens);color:var(--text-on-shell);border:var(--border-w) solid var(--bezel);border-radius:var(--radius);padding:12px 16px;text-align:center;margin-bottom:18px}.countdown strong{font-size:22px;color:var(--signal);font-family:Bungee,sans-serif}.lobby-players{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:8px}.lobby-players li{display:flex;align-items:center;gap:12px;padding:10px 13px;border-radius:var(--radius);border:2px solid var(--bezel);background:var(--surface-alt)}.lobby-players li.open{opacity:.45;border-style:dashed}.seat-dot{width:14px;height:14px;border-radius:50%;flex:none;border:2px solid var(--bezel)}.seat-name{flex:1}.seat-name em{color:var(--muted);font-style:normal}.seat-status{font-size:12px;color:var(--muted);padding:2px 9px;border-radius:999px;border:2px solid var(--border-soft);font-weight:700;text-transform:uppercase}.seat-status.ready{color:var(--panel);background:var(--good);border-color:var(--bezel)}.lobby-actions{display:grid;gap:10px;justify-items:center;margin-bottom:22px}.lobby-rules h2{font-size:13px;color:var(--text);margin-bottom:8px;letter-spacing:.04em}.lobby-rules ul{margin:0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.9}.lobby-rules strong{color:var(--text)}.game{position:relative;height:100%;overflow:hidden}.arena{display:block;width:100%;height:100%;cursor:crosshair}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.overlay>*{pointer-events:auto}.hud-top{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;gap:10px;align-items:center}.hud-chip{display:flex;align-items:baseline;gap:6px;background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius);padding:5px 12px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;box-shadow:var(--shadow-sm)}.hud-chip strong{color:var(--text);font-size:15px;font-weight:700}.hud-chip.subtle{opacity:.75;font-size:11px}.hud-chip.zone.shrinking{border-color:var(--warn);color:var(--text)}.hud-chip.zone.danger{color:var(--text);font-weight:700;border-color:var(--bezel);background:repeating-linear-gradient(45deg,var(--signal) 0 11px,var(--bezel) 11px 22px);background-size:32px 32px;animation:hazard-scroll .7s linear infinite,hazard-flash 1.1s steps(2) infinite;text-shadow:0 0 4px var(--signal),0 0 4px var(--signal),0 0 3px var(--signal)}@keyframes hazard-flash{50%{filter:brightness(1.35)}}.minimap{position:absolute;top:14px;right:14px;border-radius:var(--radius);border:var(--border-w) solid var(--bezel);box-shadow:var(--shadow)}.hud-inventory{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px}.item-slot{position:relative;width:78px;padding:9px 6px 7px;display:grid;justify-items:center;gap:3px;background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.item-slot.selected{background:var(--lens);color:var(--text-on-shell);box-shadow:var(--shadow-sm),var(--bevel-dark)}.item-slot.selected .item-label,.item-slot.selected .item-key{color:#ffffffd9}.item-slot.empty{background:var(--panel-sunken);color:var(--muted)}.item-key{position:absolute;top:2px;left:5px;font-size:9px;font-weight:700;color:var(--muted)}.item-label{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--muted)}.item-count{font-size:15px;font-weight:700;font-family:Bungee,sans-serif}.cooldown{position:absolute;left:0;bottom:0;height:3px;background:var(--accent);width:100%;transform-origin:left;animation:drain linear forwards}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.hud-team{position:absolute;bottom:16px;left:16px;width:232px;background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius);padding:9px;box-shadow:var(--shadow)}.hud-team-header{display:flex;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:7px}.team-slots{display:grid;gap:6px}.team-slot{display:flex;align-items:center;gap:9px;padding:5px 7px;border-radius:var(--radius);border:2px solid transparent;background:var(--surface-alt);text-align:left;min-height:44px;box-shadow:none}.team-slot:hover:not(:disabled):not(.empty){border-color:var(--bezel)}.team-slot.active{border-color:var(--lens);background:#d6e8f7}.team-slot.empty{border:2px dashed var(--border-soft);opacity:.5;background:none}.team-slot.fainted{opacity:.45}.team-slot.fainted .mon-sprite{filter:grayscale(1) brightness(.6)}.team-card.fainted{opacity:.55;border-style:dashed}.team-card.fainted .mon-sprite{filter:grayscale(1) brightness(.6)}.capture-counter{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;color:var(--muted)}.capture-counter .ball-icon{width:12px;height:12px;border-width:1px}.capture-counter .ball-icon:after{width:4px;height:4px;border-width:1px}.capture-counter.maxed{color:var(--shell);font-weight:700}.team-slot-info{flex:1;min-width:0;display:grid;gap:3px}.team-slot-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-slot-flag{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--lens)}.hud-hints{position:absolute;bottom:16px;right:16px;display:grid;gap:4px;justify-items:end;font-size:11px;color:var(--muted);background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius);padding:8px 11px;box-shadow:var(--shadow)}.hud-hints span{display:flex;align-items:center;gap:6px}.mon-sprite{image-rendering:pixelated;flex:none}.hp-bar{position:relative;height:13px;border-radius:2px;background:var(--panel-sunken);border:2px solid var(--bezel);overflow:hidden}.hp-bar.compact{height:6px;border-width:1px}.xp-bar{position:relative;height:5px;border-radius:2px;background:var(--panel-sunken);border:1px solid var(--bezel);overflow:hidden}.xp-bar.compact{height:3px;border:none;background:var(--border-soft)}.xp-fill{height:100%;background:var(--lens-bright);transition:width .3s ease}.xp-bar.capped .xp-fill{background:var(--warn)}.xp-row{display:grid;gap:4px}.xp-label{font-size:10px;color:var(--muted)}.slot-level{font-style:normal;color:var(--muted);font-size:10px}.hp-fill{height:100%;transition:width .25s ease}.hp-fill.good{background:var(--good)}.hp-fill.warn{background:var(--warn)}.hp-fill.bad{background:var(--danger)}.hp-text{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:10px;font-weight:700;color:var(--bezel)}.type-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--bezel);border:1px solid var(--bezel)}.level{font-size:12px;color:var(--muted);font-weight:600}.shiny{color:#c98c00;font-size:12px;font-weight:700;margin-left:6px}.capture-panel{position:absolute;top:68px;left:16px;width:268px;background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.capture-head{display:flex;gap:12px;align-items:flex-start}.capture-head h3{font-size:16px}.capture-head>div{flex:1;min-width:0;display:grid;gap:6px}.capture-meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.capture-tip{margin:11px 0;font-size:12px;color:var(--muted);line-height:1.5}.odds-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}.odds-list button{width:100%;display:flex;align-items:center;gap:9px;padding:6px 9px;border-radius:var(--radius);border:2px solid var(--bezel);background:var(--surface-alt);font-size:12px;box-shadow:none}.odds-list li.selected button{background:var(--lens);color:var(--text-on-shell)}.odds-list li.selected .odds-count{color:#fffc}.odds-name{flex:1;text-align:left}.odds-count{color:var(--muted)}.odds-chance{font-weight:700;min-width:40px;text-align:right}.odds-chance.very-high,.odds-chance.high{color:var(--good)}.odds-chance.medium{color:var(--warn)}.odds-chance.low,.odds-chance.very-low{color:var(--danger)}.capture-foot{margin-top:11px;font-size:11px;color:var(--muted);text-align:center}.battle-panel{position:absolute;top:68px;right:16px;width:250px;margin-top:184px;background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.battle-panel h3{font-size:11px;color:var(--panel);background:var(--bezel);text-transform:uppercase;letter-spacing:.1em;margin:-12px -12px 10px;padding:5px 12px;font-family:Archivo,sans-serif;font-weight:700}.combatant{display:flex;gap:10px;align-items:center}.combatant-info{flex:1;min-width:0;display:grid;gap:4px}.combatant-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px;min-width:0;font-size:13px}.combatant-name strong{min-width:0;overflow:hidden;text-overflow:ellipsis}.combatant-types{display:flex;gap:4px;flex-wrap:wrap}.wild-tag{font-size:10px;color:var(--muted)}.versus{margin:10px 0;padding:8px 0;border-top:2px solid var(--bezel);border-bottom:2px solid var(--bezel);display:grid;gap:4px;text-align:center}.versus>span{font-size:11px;color:var(--muted);letter-spacing:.15em}.matchup{display:grid;gap:2px;font-size:11px}.eff.good{color:var(--good)}.eff.bad{color:var(--lens)}.eff.none{color:var(--muted)}.eff.neutral{color:var(--text)}.battle-idle{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5}.battle-log{position:absolute;top:68px;left:50%;transform:translate(-50%);width:min(420px,46vw);display:grid;gap:3px;text-align:center;pointer-events:none}.log-line{font-size:12px;font-weight:700;color:var(--panel);text-shadow:-2px 0 var(--bezel),2px 0 var(--bezel),0 -2px var(--bezel),0 2px var(--bezel),2px 2px var(--bezel),-2px -2px var(--bezel)}.log-line.good{color:#6ee06e}.log-line.bad{color:#ff8080}.log-line.warn{color:var(--signal)}.toast{position:absolute;bottom:108px;left:50%;transform:translate(-50%);padding:8px 16px;border:var(--border-w) solid var(--bezel);border-radius:var(--radius);font-size:13px;font-weight:700;box-shadow:var(--shadow);white-space:nowrap}.toast.notice{background:var(--lens);color:var(--text-on-shell)}.toast.error{background:var(--signal);color:var(--text)}.toast.global{bottom:auto;top:24px}.spectating{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius-lg);padding:20px 28px;text-align:center;box-shadow:6px 6px 0 var(--bezel)}.spectating p{color:var(--muted);font-size:13px;margin-top:8px}.team-panel-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1a1a1abf;display:grid;place-items:center;padding:24px;z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.team-panel{width:min(880px,100%);max-height:100%;overflow-y:auto;background:var(--panel);border:var(--border-w) solid var(--bezel);border-radius:var(--radius-lg);padding:22px;box-shadow:6px 6px 0 var(--bezel)}.team-panel header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.team-panel .close{font-size:22px;line-height:1;padding:0 9px;color:var(--text);background:var(--surface-alt)}.empty-note{color:var(--muted)}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:12px}.team-card{border:var(--border-w) solid var(--bezel);border-radius:var(--radius);padding:12px;display:grid;gap:9px;background:var(--surface-alt)}.team-card.active{border-color:var(--lens);box-shadow:var(--shadow-sm)}.team-card-head{display:flex;gap:10px;align-items:center}.team-card-head h3{font-size:15px}.stat-grid{display:flex;gap:8px;margin:0;flex-wrap:wrap}.stat-grid div{display:grid;justify-items:center}.stat-grid dt{font-size:10px;color:var(--muted)}.stat-grid dd{margin:0;font-size:13px;font-weight:700}.move-list{list-style:none;margin:0;padding:0;display:grid;gap:3px}.move-list li{display:flex;align-items:center;gap:7px;font-size:12px}.move-dot{width:8px;height:8px;border-radius:50%;flex:none}.move-name{flex:1}.move-power{color:var(--muted);font-size:11px}.deploy-btn{border:2px solid var(--bezel);padding:8px;background:var(--panel);font-size:12px}.deploy-btn:hover:not(:disabled){background:var(--panel-sunken)}.team-panel-foot{margin-top:16px;font-size:12px;color:var(--muted);line-height:1.6}.result-card{width:min(720px,100%)}.result-card header{text-align:center;margin-bottom:22px}.result-card header h1{font-size:30px}.result-card header p{color:var(--muted);margin-top:6px;font-size:13px}.result-card header.won h1{color:var(--good);text-shadow:2px 2px 0 var(--bezel)}.result-card header.lost h1{color:var(--muted);text-shadow:2px 2px 0 var(--bezel)}.result-card header.draw h1{color:var(--warn);text-shadow:2px 2px 0 var(--bezel)}.standings{list-style:none;margin:0;padding:0;display:grid;gap:9px}.standings li{display:flex;gap:14px;align-items:flex-start;padding:11px 13px;border-radius:var(--radius);border:2px solid var(--bezel);background:var(--surface-alt)}.standings li.me{border-color:var(--lens);box-shadow:var(--shadow-sm)}.place{font-size:20px;font-family:Bungee,sans-serif;color:var(--muted);min-width:38px}.standings li:first-child .place{color:var(--shell)}.standing-main{flex:1;display:grid;gap:7px;min-width:0}.standing-head{display:flex;gap:8px;align-items:baseline}.standing-head em{font-style:normal;font-size:11px;font-weight:700;color:var(--lens)}.standing-stats{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}.standing-roster{display:flex;flex-wrap:wrap;gap:2px}.roster-mon.fainted{filter:grayscale(1) brightness(.55)}.result-card footer{margin-top:22px;display:flex;justify-content:space-between;align-items:center;gap:16px}.checkout-backdrop{--bg: #0b1220;--panel: rgba(15, 23, 42, .88);--panel-solid: #111c30;--border: rgba(148, 163, 184, .22);--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--danger: #f87171;--good: #4ade80;--warn: #facc15;--radius: 12px;--shadow: 0 12px 32px rgba(2, 6, 23, .55);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text)}.checkout-backdrop button{border:1px solid transparent;border-radius:10px;box-shadow:none;font-weight:500;text-transform:none;letter-spacing:normal;transition:none}.checkout-backdrop button.primary{background:linear-gradient(180deg,#0ea5e9,#0284c7);border-color:#0369a1;color:#f0f9ff;font-weight:700;text-shadow:none}.checkout-backdrop button.primary:hover:not(:disabled){filter:brightness(1.12);background:none}.checkout-backdrop button.primary:active:not(:disabled),.checkout-backdrop button.ghost:active:not(:disabled){transform:none;box-shadow:none}.checkout-backdrop button.ghost{background:#94a3b81f;border-color:var(--border);color:var(--text)}.checkout-backdrop h1,.checkout-backdrop h2,.checkout-backdrop h3{font-family:inherit;font-weight:700;letter-spacing:normal}.checkout-backdrop input,.checkout-backdrop select{border:1px solid var(--border);border-radius:10px;background:#02061799;color:var(--text);box-shadow:none}.checkout-backdrop input::placeholder{color:var(--muted)}.checkout-backdrop input:focus,.checkout-backdrop select:focus{outline:2px solid var(--accent);outline-offset:1px}.unova-offer{position:relative;width:100%;margin-top:18px;display:flex;align-items:center;gap:12px;padding:14px 16px;text-align:left;border-radius:var(--radius);border:var(--border-w) solid var(--bezel);background:var(--surface-alt);box-shadow:var(--shadow-sm);color:var(--text)}.unova-offer:hover{background:var(--panel-sunken)}.unova-offer.revealed{opacity:.6;box-shadow:none}.unova-offer.revealed .unova-badge{display:none}.unova-badge{position:absolute;top:-8px;left:14px;padding:2px 8px;border-radius:999px;background:var(--signal);color:var(--text);border:2px solid var(--bezel);font-size:10px;font-weight:800;letter-spacing:.08em}.unova-offer-main{flex:1;min-width:0;display:grid;gap:3px}.unova-offer-main strong{font-size:14px;color:var(--text)}.unova-price{display:flex;align-items:center;gap:7px;font-weight:800;font-size:15px;white-space:nowrap;color:var(--shell)}.unova-lock{font-size:15px}.checkout-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#020617c7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto}.checkout{position:relative;width:min(460px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--panel-solid);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:20px;animation:checkout-in .18s ease-out}@keyframes checkout-in{0%{opacity:0;transform:translateY(10px) scale(.985)}}.checkout-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.checkout-head h2{font-size:17px;margin-top:4px}.checkout-head .close{font-size:26px;line-height:1;padding:0 6px;color:var(--muted)}.checkout-brand{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c4b5fd}.checkout-brand span{font-size:8px;vertical-align:super}.checkout-summary{display:grid;gap:7px;padding:13px 14px;border-radius:var(--radius);border:1px solid var(--border);background:#02061780;font-size:13px;margin-bottom:16px}.checkout-line{display:flex;justify-content:space-between;gap:12px}.checkout-line.muted{color:var(--muted);font-size:12px}.checkout-line.total{border-top:1px solid var(--border);padding-top:8px;margin-top:2px;font-size:14px}.checkout-line.total strong{font-size:17px;color:var(--accent)}.checkout-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:11px;background:#0206178c;border:1px solid var(--border);margin-bottom:16px}.checkout-tabs button{padding:9px;border-radius:8px;font-size:13px;color:var(--muted)}.checkout-tabs button.active{background:#38bdf829;border-color:#38bdf880;color:var(--text);font-weight:600}.checkout-form{display:grid;gap:13px}.field{display:block;font-size:12px;color:var(--muted)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-wrap{position:relative;display:block}.card-brand{position:absolute;right:11px;top:50%;transform:translateY(-25%);font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--muted);pointer-events:none}.field-error{display:block;margin-top:5px;font-size:11px;color:var(--danger);font-style:normal}.checkout select{width:100%;margin-top:6px;padding:11px 13px;border-radius:10px;border:1px solid var(--border);background:#02061799;color:var(--text);font:inherit}.checkout-pay{width:100%;margin-top:4px}.checkout-fine{margin-top:14px;font-size:10px;line-height:1.6;color:var(--muted);opacity:.75}.checkout-pix{display:grid;grid-template-columns:minmax(0,1fr);gap:13px;text-align:center}.checkout-pix>p{justify-self:center}.fake-qr{width:172px;height:172px;border-radius:8px;background:#fff;padding:6px;justify-self:center}.pix-code{width:100%;display:flex;gap:8px;align-items:center;padding:9px 11px;border-radius:10px;border:1px solid var(--border);background:#02061799}.pix-code code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--muted)}.pix-code button{padding:7px 12px;font-size:12px}.checkout-processing{display:grid;gap:16px;justify-items:center;padding:18px 0 8px;text-align:center}.spinner{width:44px;height:44px;border-radius:50%;border:3px solid rgba(148,163,184,.25);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.checkout-processing ol{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:13px;color:var(--muted);text-align:left}.checkout-processing li{opacity:.4;transition:opacity .25s ease,color .25s ease}.checkout-processing li.now{opacity:1;color:var(--text)}.checkout-processing li.done{opacity:.85;color:var(--good)}.checkout-declined{display:grid;gap:10px;justify-items:center;text-align:center;padding:10px 0}.declined-mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:26px;font-weight:700;color:#fecaca;background:#be123c40;border:2px solid rgba(248,113,113,.6)}.checkout-declined h3{font-size:18px;color:var(--danger)}.checkout-declined p{font-size:13px;line-height:1.55;max-width:34ch}.checkout-code{font-size:11px;color:var(--muted);font-family:ui-monospace,monospace}.checkout-actions{display:grid;gap:9px;width:100%;margin-top:8px}.checkout-actions button{width:100%}.checkout-reveal{position:relative;display:grid;gap:14px;text-align:center;padding:8px 0}.checkout-reveal h2{font-size:28px;color:var(--warn);letter-spacing:.02em}.reveal-lead{font-size:14px;line-height:1.6}.reveal-facts{margin:0;padding-left:20px;text-align:left;font-size:13px;line-height:1.75;color:var(--muted)}.reveal-facts strong{color:var(--good)}.confetti{position:absolute;inset:-20px 0 auto;height:340px;overflow:hidden;pointer-events:none;z-index:0}.checkout-reveal>*:not(.confetti){position:relative;z-index:1}.confetti span{position:absolute;top:-14px;width:8px;height:13px;border-radius:2px;opacity:.9;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0)}to{transform:translateY(360px) rotate(540deg)}}@media (prefers-reduced-motion: reduce){.confetti{display:none}.checkout{animation:none}}@media (max-width: 480px){.checkout{padding:16px;border-radius:14px}.checkout-head h2{font-size:15px}.field-row{gap:10px}.checkout-form{gap:11px}.checkout-summary,.checkout-tabs{margin-bottom:13px}.fake-qr{width:148px;height:148px}.checkout-reveal h2{font-size:23px}}html.touch,html.touch body{overscroll-behavior:none;touch-action:manipulation}@supports (height: 100dvh){html.touch,html.touch body,html.touch #root{height:100dvh}}.game.touch,.game.touch .overlay{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.arena{touch-action:none}.touch .arena{cursor:default}.game.touch .overlay{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto minmax(0,1fr) auto auto auto;grid-template-areas:"chips   chips   chips" "team    team    minimap" "log     log     battle" "capture capture capture" "items   items   items" "stick   spacer  actions";gap:6px;align-items:start;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.game.touch .hud-top,.game.touch .minimap,.game.touch .hud-team,.game.touch .capture-panel,.game.touch .battle-panel,.game.touch .hud-inventory,.game.touch .battle-log{position:static;transform:none;margin:0}.game.touch .hud-top{grid-area:chips;justify-self:center;flex-wrap:wrap;justify-content:center}.game.touch .minimap{grid-area:minimap;justify-self:end}.game.touch .hud-team{grid-area:team;justify-self:start}.game.touch .battle-log{grid-area:log;justify-self:stretch;align-self:start;width:auto}.game.touch .battle-panel{grid-area:battle;justify-self:end}.game.touch .capture-panel{grid-area:capture}.game.touch .hud-inventory{grid-area:items;justify-self:center;align-self:end}.game.touch .touch-stick{grid-area:stick;align-self:end}.game.touch .touch-actions{grid-area:actions;justify-self:end;align-self:end}.touch .hud-hints{display:none}.game.touch .toast,.game.touch .spectating{position:absolute}.game.touch .toast{bottom:auto;top:54px}.touch-stick{width:148px;height:148px;display:grid;place-items:center;touch-action:none;opacity:.55;transition:opacity .15s ease}.touch-stick.active{opacity:1}.touch-stick-base{width:112px;height:112px;border-radius:50%;border:var(--border-w) solid var(--bezel);background:#ffffff80;display:grid;place-items:center}.touch-stick-knob{width:52px;height:52px;border-radius:50%;background:var(--panel);border:var(--border-w) solid var(--bezel);box-shadow:var(--shadow-sm);will-change:transform}.touch-actions{display:grid;gap:10px;justify-items:end}.touch-actions-row{display:flex;gap:10px;align-items:flex-end}.touch-btn{position:relative;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;gap:1px;background:var(--panel);border:var(--border-w) solid var(--bezel);box-shadow:var(--shadow);touch-action:none;transition:transform .06s steps(2),box-shadow .06s steps(2)}.touch-btn.pressed{transform:translate(3px,3px);box-shadow:0 0 0 var(--bezel)}.touch-btn:disabled{opacity:.35}.touch-btn.throw{width:86px;height:86px;background:var(--shell);color:var(--text-on-shell)}.touch-btn.throw.armed{background:var(--signal);color:var(--text)}.touch-btn.send.on{background:var(--lens);color:var(--text-on-shell)}.touch-glyph{font-size:22px;line-height:1}.touch-btn .potion-icon{width:14px;height:18px}.touch-btn-label{font-size:9px;font-weight:700;color:inherit;opacity:.75;letter-spacing:.02em}.touch-btn-count{position:absolute;top:-2px;right:-2px;min-width:20px;padding:1px 5px;border-radius:999px;background:var(--bezel);color:var(--panel);border:2px solid var(--panel);font-size:11px;font-weight:700}.game.touch .hud-team{width:auto;padding:0;background:none;border:none}.game.touch .hud-team-header{display:none}.game.touch .capture-counter{margin:0 0 4px;padding:3px 8px;border-radius:var(--radius);background:var(--panel);border:2px solid var(--bezel);width:fit-content;font-size:10px}.game.touch .team-slots{display:flex;flex-wrap:wrap;gap:5px;max-width:46vw}.game.touch .team-slot{flex-direction:column;width:46px;min-height:0;padding:3px;gap:2px;background:var(--panel);border-color:var(--bezel)}.game.touch .team-slot.empty{display:none}.game.touch .team-slot .mon-sprite{width:34px;height:34px}.game.touch .team-slot-info{width:100%;flex:none}.game.touch .team-slot-name,.game.touch .team-slot-flag{display:none}.game.touch .capture-panel{width:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px}.game.touch .capture-head{flex:1 1 190px;min-width:0;align-items:center}.game.touch .capture-head h3{font-size:14px}.game.touch .capture-head .mon-sprite{width:48px;height:48px}.game.touch .capture-tip,.game.touch .capture-foot{display:none}.game.touch .odds-list{flex:1 1 250px;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.game.touch .odds-list button{padding:8px 10px;min-height:42px}.game.touch .odds-name{display:none}.game.touch .battle-panel{width:168px;padding:9px}.game.touch .battle-panel h3{display:none}.game.touch .battle-panel .mon-sprite{width:36px;height:36px}.game.touch .combatant-name{font-size:11px}.game.touch .versus{margin:6px 0;padding:5px 0}.game.touch .versus>span{display:none}.game.touch .battle-idle{font-size:11px}.game.touch .item-slot{width:62px;padding:7px 4px 6px;min-height:56px}.touch button.primary{padding:14px 20px;min-height:48px}.touch button.ghost{padding:12px 18px;min-height:46px}.touch .odds-list button{min-height:44px}.touch .team-panel .close{min-width:44px;min-height:44px}.touch input{padding:13px;font-size:16px}@media (max-width: 900px){.capture-panel,.battle-panel{width:210px}.battle-panel{margin-top:190px}.hud-hints{display:none}}@media (max-width: 620px){.menu,.lobby,.result{padding:14px;place-items:start center}.menu-card,.lobby-card,.result-card{padding:20px 18px}.menu-card h1{font-size:22px}.tagline{margin:10px 0 18px;font-size:14px}.rules,.lobby-rules ul{line-height:1.7;padding-left:16px}.lobby-card header{flex-direction:column;align-items:stretch}.lobby-card header button{align-self:flex-start}.result-card header h1{font-size:24px}.standings li{flex-direction:column;gap:8px;padding:12px}.place{min-width:0}.standing-stats{gap:8px;font-size:11px}.result-card footer{flex-direction:column-reverse;align-items:stretch;gap:12px}.result-card footer button{width:100%}.team-panel{padding:16px;border-radius:14px}.team-panel-backdrop{padding:10px}.team-grid{grid-template-columns:1fr}}@media (max-width: 620px),(max-height: 460px){.hud-chip{padding:5px 10px;font-size:11px}.hud-chip strong{font-size:13px}.hud-chip.subtle{display:none}.game.touch .hud-top{gap:5px}.game.touch .item-slot{width:54px;padding:6px 3px 5px}.game.touch .item-label{font-size:10px}.game.touch .item-slot .ball-icon{width:15px;height:15px}.game.touch .item-slot .potion-icon{width:13px;height:17px}.game.touch .battle-panel{width:132px;padding:7px}.game.touch .combatant-types{display:none}.game.touch .capture-head .mon-sprite{width:40px;height:40px}.game.touch .team-slot{width:40px}.game.touch .team-slot .mon-sprite{width:30px;height:30px}.log-line{font-size:11px}.toast{font-size:12px;padding:8px 14px;max-width:88vw;white-space:normal;text-align:center}}@media (max-height: 460px) and (orientation: landscape){.game.touch .overlay{grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-areas:"chips   chips   chips" "team    log     minimap" "spacer  spacer  battle" "capture capture capture" "stick   items   actions"}.game.touch .battle-log{justify-self:center}}@media (max-height: 430px) and (orientation: landscape){.game.touch .overlay{gap:4px}.touch-stick{width:120px;height:120px}.touch-stick-base{width:92px;height:92px}.touch-stick-knob{width:42px;height:42px}.touch-btn{width:52px;height:52px}.touch-btn.throw{width:70px;height:70px}.touch-btn-label,.game.touch .battle-log{display:none}}
