/* Arena visual system: quiet chrome, warm actions, cool opposing side. */
:root{--surface:#142631;--surface-raised:#1b303b;--edge:#ffffff14;--ink:#f3f0e6;--muted:#a5b5be;--gold:#e7c58c;--arena-line:#ffffff18;--player-bg:#0b1721;color-scheme:dark}
body{background:radial-gradient(ellipse at 80% -10%,#28434d70,transparent 55%),#0b1721;color:var(--ink)}
button,a{touch-action:manipulation}button:disabled{filter:saturate(.35)}
.home{max-width:1120px;padding:28px 40px 32px}.home .brand{border-color:var(--edge);padding-bottom:23px}.brand-ball{flex-shrink:0}.home .brand>div{font-size:10px;letter-spacing:.2em}.home .brand strong{font-size:20px;letter-spacing:.2em}.home-nav{gap:25px;font-size:12px;color:var(--muted)}.home-nav a:hover{color:var(--ink)}.home-nav .nav-play{color:#17232b;background:var(--gold);border-radius:6px}
.hero235{grid-template-columns:1fr 1.1fr;gap:56px;padding:64px 0 48px}.hero235 .eyebrow{font-size:10px;letter-spacing:.2em;color:var(--gold);margin:0 0 20px}.hero235 h1{font-size:clamp(42px,5vw,64px);font-weight:800;line-height:1.02;letter-spacing:-.055em;margin:0 0 24px}.hero235 p:not(.eyebrow){max-width:360px;font-size:14px;line-height:1.8}.hero-actions{gap:12px;margin:28px 0 22px}.hero-actions>a{border-radius:6px;min-height:48px;background:transparent;border-color:var(--edge);padding:14px 20px}.hero-actions>a.player-primary{background:var(--gold);border-color:var(--gold);box-shadow:0 6px 22px #0003;color:#14232c}.hero-facts{color:#8fa5af;font-size:10px;gap:16px}.hero-facts span:before{content:''}.hero-facts span+span{border-left:1px solid #ffffff25;padding-left:16px}
.arena-preview{position:relative;transform:rotate(-1deg);border:1px solid #e7c58c40;border-radius:12px;box-shadow:0 28px 65px #0006,0 0 65px #e7c58c06;background:#132530}.arena-preview:before{content:'IN THE ARENA';display:block;padding:14px 18px;font-size:9px;letter-spacing:.22em;color:var(--gold);border-bottom:1px solid var(--edge)}.arena-preview video{aspect-ratio:10/7}.arena-preview figcaption{padding:5px 16px;align-items:center;font-size:10px;background:#10202b}.arena-preview a{padding:12px 0}.preview-toggle{font-size:10px}.how235{padding:0 0 48px;gap:30px}.how235 article{border-color:var(--edge);padding:20px 0 0;position:relative}.how235 small{font-size:9px;color:#9aafba;letter-spacing:.13em}.how235 h2{font-size:15px;font-weight:650;margin:12px 0 8px}.how235 p{font-size:12px;max-width:260px}.section-heading{margin:10px 0 20px}.section-heading h2{font-size:25px;letter-spacing:-.04em;font-weight:750}.section-heading>span{font-size:9px;letter-spacing:.18em}
.home .battle-grid{gap:16px}.home .battle{min-height:186px;border:1px solid var(--edge);border-radius:10px;background:linear-gradient(120deg,#1b303b,#12232e);box-shadow:none;position:relative;transition:transform .18s,border-color .18s,background .18s}.home .battle:before{content:'';position:absolute;left:0;top:24px;bottom:24px;width:2px;background:var(--accent);opacity:.65}.home .battle-art{height:184px;width:185px;flex-basis:185px;border:0;background:radial-gradient(ellipse at 50% 74%,#b7cfcc13,transparent 64%)}.home .battle-art .trainer{transform:scale(1.5);bottom:32px}.home .battle-art .trainer:first-child{left:7px}.home .battle-art .trainer:last-child,.home .battle-art .paul{right:2px!important}.home .battle-art:after{bottom:25px;width:140px;background:linear-gradient(90deg,transparent,#93a5a44d,transparent)}.home .versus{left:81px;top:41px;font-size:12px;opacity:.7}.home .battle-copy{padding:22px 20px 22px 8px}.home .battle-copy .eyebrow{font-size:8px;letter-spacing:.16em}.home .battle h3{font-size:26px;margin:10px 0 24px;letter-spacing:-.045em;font-weight:750}.home .battle h3 span{font-size:12px}.home .battle-cta{font-size:11px;color:#a4b7c0;font-weight:500}.home .battle-cta>span{color:var(--accent);font-size:16px}.home footer{border-color:var(--edge);margin-top:48px;padding-top:22px;font-size:10px}.home footer .home-nav{margin:0;justify-content:flex-start;font-size:11px}
/* Selection: two equal stages with shared roster rhythm. */
.select-main{max-width:900px;padding:24px 32px 170px}.select-main .home-back{color:#91a7b3;font-size:11px}.select-main .brand{padding:4px 0 22px;border-bottom:1px solid var(--edge)}.select-main .brand-top{font-size:17px;letter-spacing:.1em}.select-main .brand-bottom{font-size:10px;letter-spacing:.3em}.select-main .format{font-size:10px;letter-spacing:.14em;color:var(--gold)}.select-main .intro{margin:34px 0 20px}.select-main .intro p{font-size:9px;color:var(--gold);letter-spacing:.18em}.select-main .intro h1{font-size:clamp(28px,4vw,40px);font-weight:750;letter-spacing:-.045em}.selector-shortcuts{margin:0 0 20px;justify-content:flex-start;gap:12px}.selector-shortcuts button{background:transparent;border:1px solid var(--edge);border-radius:6px;padding:9px 14px;font-size:11px;color:#bbcad1;min-height:44px}
.select-main .versus-grid{gap:32px}.select-main .trainer-card,.select-main .trainer-card.right{border:1px solid var(--edge);border-radius:12px;padding:20px;box-shadow:0 16px 32px #0002;background:radial-gradient(ellipse at 50% 28%,#dfb87712,transparent 60%),#132630}.select-main .trainer-card.right{background:radial-gradient(ellipse at 50% 28%,#78b5d21a,transparent 60%),#132630}.select-main .trainer-card:before{left:20px;right:20px;height:1px;opacity:.7}.side-label{font-size:8px;letter-spacing:.18em;color:#d5bb92}.trainer-card.right .side-label{color:#9cc7d8}.select-main .trainer-choice canvas{height:205px}.select-main .trainer-name{font-size:36px;font-weight:750;letter-spacing:-.035em;text-transform:none}.select-main .trainer-era{font-size:10px;color:#93aab6;margin-top:7px;min-height:20px}.select-main .change{font-size:9px;border:0;background:#ffffff08;padding:10px 14px;min-height:44px;letter-spacing:.06em;border-radius:6px}.select-main .team-label{border-color:var(--edge);padding-top:17px;margin-top:20px;font-size:8px;letter-spacing:.13em}.select-main .team-label span{font-size:7px}.select-main .selection-team{gap:7px;margin-top:12px}.select-main .pokemon-slot{background:#08192380;border:0;border-radius:6px;padding:7px 0 9px}.select-main .pokemon-slot canvas{height:45px}.select-main .pokemon-slot span{font-size:9px;color:#aebfc7}.select-main .vs{top:35%;font-size:15px;font-style:normal;transform:translate(-50%,-50%);color:#d5c299;background:#0b1721;border:1px solid #ffffff18;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;text-shadow:none}.select-main #selection-status{font-size:11px;color:#91a7b3;margin:20px 0}.select-main .selection-footer{padding:18px 24px max(16px,env(safe-area-inset-bottom));background:#0c1923f2;border-top:1px solid var(--edge);backdrop-filter:blur(16px)}.select-main #matchup{font-size:9px;letter-spacing:.14em;color:#99afb9}.select-main #start-battle{width:min(100%,430px);min-height:52px;border-radius:7px;background:var(--gold);border:1px solid #f1d7aa;box-shadow:0 5px 20px #0003;font-size:16px;font-weight:750}.select-main .selection-footer small{font-size:9px;color:#8197a4}.select-main .credits{font-size:10px}dialog#trainer-picker{background:#122430;border:1px solid #47606c;border-radius:12px;box-shadow:0 30px 120px #0008;padding:24px}.picker-head h2{font-weight:750;letter-spacing:-.035em}.picker-trainer{border:1px solid var(--edge);border-radius:8px;background:#1a303c;padding:12px 8px}.picker-trainer[aria-pressed=true]{background:#2e3c41;border-color:var(--gold);box-shadow:inset 0 -2px var(--gold)}.picker-trainer strong{font-size:15px;font-weight:650}.picker-trainer small{font-size:9px;color:#96adb9}
/* Battle chrome and overlays continue the same restrained palette. */
.player-battle{background:#0b1721}.player-battle .stage{background:#10212b;border-color:var(--edge)}.player-battle .names{background:#132630;letter-spacing:.04em}.player-battle .stage-footer{background:#11232e;border-top:1px solid var(--edge);font-size:10px}.journey-bar{background:#0e202bf2;border-color:var(--edge);gap:12px;padding-top:10px}.journey-bar button,.journey-bar a{border-color:transparent;background:transparent;color:#aebfc8;border-radius:6px;min-height:44px;font-size:11px}.journey-bar button:hover,.journey-bar a:hover{background:#ffffff0a;color:#f3f0e6}.journey-bar button[aria-label*=Pause],.journey-bar button[aria-label*=Resume]{color:var(--gold)}.journey-result{border-color:#e7c58c70;border-radius:12px;background:radial-gradient(ellipse at 50% 0,#cfae6820,transparent 70%),#122630;padding:40px 28px;box-shadow:0 0 0 100vmax #06111bb3,0 30px 90px #0008}.journey-result:before{content:'POKÉVERSUS ARENA';display:block;color:var(--gold);font-size:9px;letter-spacing:.22em;margin-bottom:24px}.journey-result h2{font-size:38px;font-weight:750;letter-spacing:-.045em;line-height:1.1}.journey-result p{font-size:12px;color:#a2b7c1;line-height:1.7}.journey-actions{gap:9px;margin-top:28px}.journey-actions button,.journey-actions a{font-size:12px;border-color:var(--edge);border-radius:6px;background:#ffffff06}.journey-actions .journey-primary{background:var(--gold);border-color:var(--gold)}.journey-loading{background:radial-gradient(ellipse at 50% 45%,#213b46,transparent 60%),#0b1721}.journey-loading:before{content:'';width:42px;height:42px;border:2px solid var(--gold);border-radius:50%;background:linear-gradient(var(--gold) 44%,#0b1721 44% 56%,transparent 56%);margin-bottom:8px}.journey-loading h2{font-weight:750;letter-spacing:-.04em}.journey-loading p{font-size:13px}.journey-loading progress{height:4px;width:min(250px,80%)}
@media(hover:hover){.home .battle:hover{transform:translateY(-3px);background:#1b313d;border-color:var(--accent)}.select-main .trainer-choice:hover .change{background:#ffffff12}.selector-shortcuts button:hover{border-color:#ffffff40}}
@media(max-width:860px) and (min-width:720px){.home{padding-inline:28px}.hero235{gap:28px}.home .battle-art{width:145px;flex-basis:145px}.home .battle-art .trainer{transform:scale(1.2)}.home .battle-art .trainer:first-child{left:0}.home .battle-art .trainer:last-child{right:-5px!important}.home .versus{left:62px}.home .battle h3{font-size:22px}}
@media(max-width:719px){.home{max-width:540px;padding:20px 22px 28px}.home-nav{gap:16px;font-size:11px}.home .brand{padding-bottom:18px}.home .brand>div{font-size:9px}.home .brand strong{font-size:18px}.hero235{grid-template-columns:1fr;gap:30px;padding:38px 0 30px}.hero235 h1{font-size:48px;max-width:390px}.hero235 .eyebrow{margin-bottom:18px;font-size:9px}.hero235 p:not(.eyebrow){font-size:13px;max-width:355px}.hero-actions{margin:23px 0 20px}.hero-actions>a{font-size:12px;min-height:48px;padding:12px 17px}.hero-facts{font-size:9px;gap:12px}.hero-facts span+span{padding-left:12px}.arena-preview{transform:none;width:100%;max-width:none}.arena-preview:before{padding:12px 15px;font-size:8px}.how235{gap:14px;padding-bottom:34px}.how235 h2{font-size:13px;line-height:1.35}.how235 small{font-size:8px;letter-spacing:.07em}.how235 p{font-size:10px;line-height:1.65}.section-heading{margin:6px 0 16px}.section-heading h2{font-size:23px}.section-heading>span{font-size:8px}.home .battle-grid{grid-template-columns:1fr;gap:12px}.home .battle{min-height:150px}.home .battle-art{height:148px;width:155px;flex-basis:155px}.home .battle-art .trainer{transform:scale(1.3);bottom:24px}.home .battle-art .trainer:first-child{left:0}.home .battle-art .trainer:last-child,.home .battle-art .paul{right:-4px!important}.home .versus{left:66px;top:28px;font-size:11px}.home .battle-art:after{bottom:18px;width:120px}.home .battle-copy{padding:18px 17px 18px 5px}.home .battle h3{font-size:25px;margin:10px 0 19px}.home .battle-copy .eyebrow{font-size:8px;letter-spacing:.1em}.home footer{margin-top:32px}.select-main{padding:18px 18px 165px}.select-main .versus-grid{gap:18px}.select-main .trainer-card,.select-main .trainer-card.right{padding:14px}.select-main .trainer-choice canvas{height:170px}.select-main .trainer-name{font-size:30px}.select-main .selection-team{gap:5px}.select-main .pokemon-slot span{font-size:8px}.journey-result{padding:32px 20px}.journey-result h2{font-size:32px}.journey-bar{gap:3px}.journey-bar button,.journey-bar a{padding:10px 8px;font-size:10px}}
@media(max-width:400px){.home{padding-inline:16px}.home .brand>div{font-size:8px}.home-nav{gap:12px;font-size:10px}.hero235 h1{font-size:43px}.home .battle-art{width:135px;flex-basis:135px}.home .battle-art .trainer{transform:scale(1.15)}.home .battle-art .trainer:first-child{left:-7px}.home .battle-art .trainer:last-child,.home .battle-art .paul{right:-10px!important}.home .versus{left:56px}.home .battle h3{font-size:23px}.select-main{padding-inline:12px}.select-main .trainer-card,.select-main .trainer-card.right{padding:10px}.select-main .trainer-choice canvas{height:145px}.select-main .trainer-name{font-size:27px}.select-main .trainer-era{font-size:8px}.select-main .team-label{letter-spacing:.02em;font-size:7px}.select-main .team-label span{font-size:6px}.select-main .pokemon-slot span{font-size:7px}.select-main .pokemon-slot canvas{height:36px}.select-main .vs{width:30px;height:30px;font-size:12px}}
@media(max-width:340px){.home-nav a[href='#iconic-battles']{display:none}.home .battle-art{width:120px;flex-basis:120px}.home .battle h3{font-size:21px}.hero-actions>a{padding-inline:13px}.select-main .change{padding-inline:6px;font-size:8px}.journey-bar button,.journey-bar a{font-size:9px;padding-inline:6px}}
@media(prefers-reduced-motion:reduce){.home .battle{transition:none}.home .battle:hover{transform:none}.arena-preview{transform:none}}

/* The backing store now carries its own display density; CSS must not pixelate HUD text. */
#lab-canvas{image-rendering:auto}.trainer-choice canvas,.picker-trainer canvas{image-rendering:auto}
