/* A pocket-sized battle stage: crisp pixels, warm paper, restrained type accents. */
#battle{--beat:1;--battle-ink:#304a41;background:#e9e8ce;color:var(--battle-ink)}
.battle-scene{height:64%;background:linear-gradient(180deg,#d6dfbb,#eef0d7 62%,#e2e6c8);isolation:isolate}
.battle-scene:before{content:'';position:absolute;left:-10%;right:-10%;bottom:0;height:38%;background:repeating-linear-gradient(0deg,transparent 0 16%,#78936113 17% 18%);transform:perspective(80px) rotateX(28deg);z-index:-1}
.battle-scene.forest{background:radial-gradient(ellipse at 85% 15%,#ecedc7 0,transparent 55%),linear-gradient(#9eb88d,#d7e0b5 70%,#c1d0a1)}
.battle-scene.cave{background:linear-gradient(160deg,#a5a78d,#d5d4b9 60%,#babca2)}
.battle-scene.gym{background:repeating-linear-gradient(90deg,#6c7a6010 0 1px,transparent 1px 13%),linear-gradient(#c6cdb8,#e9e7ce)}
.battle-scene.water-gym{background:repeating-linear-gradient(0deg,transparent 0 11%,#f5f7dc55 12% 13%),linear-gradient(155deg,#a9c8be,#e5edce)}
.battle-scene.electric-gym{background:repeating-linear-gradient(90deg,transparent 0 17%,#ad995526 17% 18%),linear-gradient(145deg,#d8d1a0,#f0eac9)}
.battle-scene.ship{background:repeating-linear-gradient(0deg,transparent 0 10%,#806e5520 10% 11%),linear-gradient(#c3c7b1,#e8ddbd)}
.battle-label{top:2%;font:bold 1.85cqw var(--mono);letter-spacing:.12em;color:#4d675c;z-index:3}
.battle-shadow{border:1px solid #5e78593b;background:radial-gradient(ellipse,#839b6b45 0 50%,#b5c29730 52%);height:12%;box-shadow:0 2px 0 #f7f2d077;z-index:0}
.battle-shadow.enemy{top:45%;right:6%;width:34%}.battle-shadow.ally{bottom:0;left:0;width:43%}
.battle-mon{z-index:1;filter:drop-shadow(0 2px 0 #435b3422)}
.battle-mon.enemy{top:10%;right:8%;width:29%;height:39%}.battle-mon.ally{left:1%;bottom:-2%;width:39%;height:47%}
.battle-mon.idle{animation:battle-breathe calc(2.8s * var(--beat)) ease-in-out infinite}
.battle-mon.attack.ally{animation:lunge-ally calc(.19s * var(--beat)) ease-out both}.battle-mon.attack.enemy{animation:lunge-enemy calc(.19s * var(--beat)) ease-out both}
.battle-mon.hit{animation:impact-recoil calc(.36s * var(--beat)) ease-out both}
.battle-mon.waiting{opacity:0;animation:none}.battle-mon.summon{animation:mon-summon calc(.4s * var(--beat)) cubic-bezier(.18,.8,.3,1) both}
.battle-mon.recall{animation:mon-recall calc(.26s * var(--beat)) ease-in both}
.battle-mon.fainted{animation:mon-faint calc(.42s * var(--beat)) ease-in both;transform:none;transition:none}
.battle-mon.aura,.battle-mon.healing{animation:mon-aura calc(.4s * var(--beat)) ease-in-out both}
.battle-stats{width:48%;padding:2.5% 3%;border:1px solid #536c58;border-bottom:3px solid #536c58;border-radius:2px 2px 9px 2px;background:#faf7e7ed;box-shadow:2px 2px 0 #41563816}
.battle-stats.enemy{top:10%;left:3%}.battle-stats.ally{bottom:5%;right:3%;width:49%}
.battle-stats .stat-top{font-size:2.9cqw;align-items:baseline;gap:2px}.battle-stats .stat-top>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-stats .level{font-size:2.1cqw;white-space:nowrap}
.battle-stats .hp-label{font-size:1.9cqw;margin-top:3%;gap:4%}.battle-stats .hpbar{height:1.65cqw;border:1px solid #7c8870;padding:1px;background:#d9dcca;overflow:hidden;border-radius:2px}
.battle-stats .hpbar i{transition:width calc(.42s * var(--beat)) cubic-bezier(.2,.7,.2,1);background:#65967a}.battle-stats .hpbar.low i{background:#d1aa4e}.battle-stats .hpbar.danger i{background:#bd7258}
.hp-value{font-size:2.25cqw;padding-top:2%}.xp-bar{height:.85cqw;margin-top:3%;border-radius:1px;overflow:hidden;background:#d3d7c3}.xp-bar i{background:#689aab;transition:width calc(.5s * var(--beat)) ease-out}
.pokeball-count{font-size:1.9cqw;letter-spacing:.18em;margin-bottom:2%;color:#aa8150}
#enemy-status:not(:empty){display:inline-block;margin-top:2%;padding:1% 4%;background:#e8d8ae;color:#735b34;border-radius:2px;font-weight:bold}
.battle-bottom{bottom:2%;left:2%;right:2%;height:34%;border:1px solid #3e5949;outline:2px solid #839172;outline-offset:-4px;background:#faf6e3;box-shadow:0 3px 0 #455e4726;border-radius:3px;overflow:hidden}
.battle-prompt{width:31%;flex-shrink:0;box-sizing:border-box;padding:6% 4%;font:2.75cqw/1.45 var(--mono);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(140deg,#f5eac2,#f5efd9);border-right:1px solid #a7af8b}
.battle-prompt small{font:bold 1.45cqw/1.3 var(--mono);letter-spacing:.08em;color:#748163}.battle-prompt b{display:inline-block;margin-top:3%;font-size:3.15cqw;max-width:100%;overflow-wrap:anywhere}
.battle-options{padding:2.5%;border:0;gap:4%;min-width:0}
.battle-options button{position:relative;min-width:0;min-height:0;border:1px solid #b1b99a;border-bottom:2px solid #8f9f7c;border-radius:3px;background:#edf0d9;color:#344e40;padding:4% 5%;font:bold 2.7cqw/1.2 var(--mono);transition:background .12s,box-shadow .12s;touch-action:manipulation}
.battle-options button:hover,.battle-options button:focus-visible{background:#e0e8ba;box-shadow:inset 0 0 0 1px #5e7d4f;outline:0}.battle-options button:active{background:#d1dfaa;box-shadow:inset 0 2px 0 #52684935}
.command-grid button{display:flex;gap:8%;align-items:center}.command-grid button i{font:normal 3.8cqw var(--mono);width:18%;text-align:center;color:#708362}.command-grid button small{font:1.45cqw/1.3 var(--mono);display:block;margin-top:5%;color:#6d7d64;white-space:nowrap;letter-spacing:-.03em}
.command-grid .command-fight{background:#eedca0;border-color:#baa35e}.command-grid .command-fight i{color:#937233}.command-grid .command-fight:hover,.command-grid .command-fight:focus-visible{background:#ead185}
.move-picker{display:flex;flex-direction:column;width:100%;padding:2% 3%;box-sizing:border-box;min-width:0}.move-picker-head{display:flex;align-items:center;justify-content:space-between;font:bold 1.85cqw var(--mono);height:18%;padding:0 1%;color:#6c7f62;gap:2%}.move-picker-head small{font:1.55cqw var(--mono)}
#back-moves{border:0;background:transparent;padding:1% 2%;color:#4c6752;font:bold 1.9cqw var(--mono);white-space:nowrap;border-radius:2px}#back-moves:focus-visible{outline:1px solid #5e7d4f;background:#dce4be}
.battle-options.moves{flex:1;width:100%;padding:1.5% 0 0;gap:5% 2.5%;box-sizing:border-box;grid-auto-rows:minmax(0,1fr)}
.battle-options.moves button{--move-color:#8b8c79;display:flex;flex-direction:column;justify-content:center;border-left:3px solid var(--move-color);padding:2% 4%;background:#f0f0dc;gap:3%;overflow:hidden}
.move-title{font:bold 2.65cqw/1.2 var(--mono);white-space:nowrap;letter-spacing:-.04em}.move-meta{display:flex;justify-content:space-between;align-items:center;gap:3%;margin-top:2%;font:1.8cqw var(--mono)}.move-meta b{font:bold 1.6cqw var(--mono);text-transform:uppercase;color:var(--move-color)}.move-pp{white-space:nowrap;color:#63735c}.move-pp.pp-low{color:#a66c39}
.battle-options.moves button small{font:1.4cqw var(--mono);margin:1% 0 0;color:#78836a}.battle-options button:disabled{opacity:.45;filter:grayscale(.6);cursor:default;box-shadow:none}.struggle-move{grid-column:1 / -1}
.battle-narration{box-sizing:border-box;padding:6% 7%;font:3.1cqw/1.65 var(--mono);gap:4%;animation:narration-in .13s ease-out}.battle-narration span{flex:1}.battle-narration i{align-self:flex-end;font-style:normal;font-size:2.4cqw;color:#8b9c74}
.battle-panel{border:1px solid #3e5949!important;outline:3px double #6d8065;outline-offset:-6px;border-radius:4px;background:#f7f3df!important;box-shadow:0 5px 0 #344c3b40;animation:panel-rise .16s ease-out}
.battle-panel .panel-head{background:#e7eacb;border-bottom:1px solid #c3c9aa;padding:4% 5%}.battle-panel .panel-head h3{font-size:3.1cqw}.battle-panel .panel-body{padding:4%}.battle-panel .panel-foot{font-size:2cqw;background:#ececd3;border-top:1px solid #d2d6b9;line-height:1.5}.battle-panel .panel-head button{font-size:4cqw;width:7cqw;height:7cqw}
.battle-team-card{width:100%;display:flex;align-items:center;text-align:left;gap:3%;border:1px solid #bac4a2;border-bottom:2px solid #9aa986;border-radius:3px;background:#f0f1da;color:#36513f;padding:3%;margin-bottom:3%;font-family:var(--mono)}
.battle-team-card img{width:13cqw;height:13cqw;object-fit:contain;image-rendering:pixelated}.team-slot{font-size:1.9cqw;color:#8a9779}.team-card-info{flex:1;min-width:0}.team-card-info strong{font-size:2.9cqw}.team-card-info small{display:block;font:2cqw/1.5 var(--mono);color:#748565}.team-card-info .hpbar{margin:4% 0 2%;height:1.4cqw}.team-card-arrow{font-size:4cqw;color:#8a9e70}.battle-team-card.is-active{background:#e3e7c1}.battle-team-card:disabled{cursor:default}.battle-team-card.is-fainted{opacity:.5}.battle-team-card:focus-visible,.battle-team-card:not(:disabled):hover,.battle-item-card:not(:disabled):hover,.battle-item-card:focus-visible{outline:2px solid #829b64;outline-offset:-3px;background:#e7eccb}
.battle-panel-note{font:2.2cqw/1.5 var(--mono);color:#7b876b;margin:0 0 4%}.battle-item-card{display:flex;align-items:center;width:100%;gap:4%;padding:4%;margin:0 0 3%;border:1px solid #b6c09e;border-bottom:2px solid #9aa986;border-radius:3px;background:#f1f0db;color:#38513f;text-align:left;font-family:var(--mono)}.battle-item-card>span:nth-child(2){flex:1}.battle-item-card strong{font-size:3cqw}.battle-item-card small{font:2.1cqw/1.5 var(--mono);display:block;margin-top:3%;color:#728265}.item-quantity{font-size:3cqw;color:#798b64;white-space:nowrap}.battle-item-icon{display:grid;place-items:center;background:#dde5bc;width:10cqw;height:10cqw;flex-shrink:0;border:1px solid #b6c69a;border-radius:3px;font:bold 6cqw var(--mono);color:#6e8860}.battle-item-icon.item-ball{color:#b28653;background:#f0e2bb}.battle-item-card:disabled{opacity:.45;cursor:default}
/* Persistent, pointer-transparent effect layer; only its small particle group changes. */
.battle-fx{position:absolute;inset:0;z-index:4;pointer-events:none;--fx:#f5df88;--target-x:74%;--target-y:33%;--origin-x:21%;--origin-y:76%}
.battle-fx.toward-ally{--target-x:21%;--target-y:76%;--origin-x:74%;--origin-y:33%}
.battle-fx i,.fx-ring,.fx-orb{position:absolute;left:var(--target-x);top:var(--target-y);display:block;box-sizing:border-box}
.battle-fx i{width:2.7cqw;height:2.7cqw;background:var(--fx);border:1px solid #fff9;box-shadow:1px 1px 0 #304a4130;animation:particle-burst calc(.29s * var(--beat)) ease-out both;animation-delay:calc(var(--i) * .009s * var(--beat))}
.fx-ring{width:15cqw;height:15cqw;margin:-7.5cqw;border:2px solid var(--fx);border-radius:50%;animation:impact-ring calc(.36s * var(--beat)) ease-out both;box-shadow:0 0 0 2px #fff5}
.fx-orb{display:none;width:5cqw;height:5cqw;margin:-2.5cqw;background:var(--fx);border:2px solid #fff9;border-radius:50%;box-shadow:0 0 0 2px #6b7f4a25}
.phase-travel .fx-orb{display:block;animation:projectile calc(.19s * var(--beat)) ease-in both}.phase-travel i,.phase-travel .fx-ring{display:none}
.fx-electric{--fx:#eac84f}.fx-electric i{clip-path:polygon(55% 0,100% 0,60% 40%,100% 40%,15% 100%,35% 55%,0 55%);width:5cqw;height:9cqw}.fx-electric .fx-orb{border-radius:0;transform:rotate(45deg)}
.fx-water{--fx:#81bed0}.fx-water i{border-radius:50%;background:#9dd2da;box-shadow:inset 1px 1px #eef6e3,0 1px 0 #5b99a0;width:4cqw;height:4cqw}
.fx-fire{--fx:#e9a458}.fx-fire i{border-radius:60% 10% 55% 45%;background:linear-gradient(30deg,#efd782,#d9844d);width:4cqw;height:6cqw}
.fx-leaf{--fx:#8cb267}.fx-leaf i{border-radius:0 80%;width:3.5cqw;height:6cqw;border-color:#b9d18a}
.fx-ice{--fx:#addbce}.fx-ice i{transform:rotate(45deg);border-radius:0;width:3cqw;height:5cqw}
.fx-psychic{--fx:#b6a0ca}.fx-psychic .fx-ring{border:3px double #b6a0ca}.fx-psychic i,.fx-poison i{border-radius:50%}.fx-poison{--fx:#aa8bb2}
.fx-earth{--fx:#b6a276}.fx-earth i{border-radius:15%;width:5cqw;height:4cqw}.fx-earth .fx-ring{border-style:dashed}
.fx-wind{--fx:#b7ccae}.fx-wind i{width:8cqw;height:1cqw;border:0;background:#f0f5da}
.fx-strike{--fx:#f8edbb}.fx-strike .fx-ring{border-radius:5%;transform:rotate(45deg);border-width:3px}
.fx-heal{--fx:#8cbd91}.fx-heal i{clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%);width:4cqw;height:4cqw}.fx-heal .fx-ring,.fx-aura .fx-ring,.fx-summon .fx-ring{border-width:1px;background:#ecf6cc22}.fx-aura{--fx:#c3cf9b}.fx-summon{--fx:#f5e2a2}
.battle-intro{position:absolute;inset:0;z-index:7;background:linear-gradient(135deg,#d2dcb4,#f1e9c5);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4%;animation:intro-sweep calc(.22s * var(--beat)) ease-out both}
.battle-intro img{width:28%;height:47%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(2px 3px 0 #536c4f30)}.intro-eyebrow{font:bold 1.9cqw var(--mono);letter-spacing:.18em;color:#748263}.battle-intro b{font:bold 4.4cqw var(--mono);text-transform:uppercase}.intro-rule{height:2px;background:#9cab7a;width:35%}
.capture-ball{top:40%;right:19%;width:6cqw;height:6cqw;aspect-ratio:1;z-index:5;animation:none;transform-origin:50% 100%}.capture-ball .brandball{display:block;width:6cqw;height:6cqw;border-width:2px;box-sizing:border-box;box-shadow:0 2px 0 #435b3433}.capture-ball.throwing{animation:ball-throw calc(.32s * var(--beat)) ease-out both}.capture-ball.shaking{animation:ball-wobble calc(.36s * var(--beat)) ease-in-out 3}.capture-ball.caught .brandball{filter:sepia(.5);box-shadow:0 0 0 1px #a88f49}.capture-stars{display:none}.caught .capture-stars{display:block;position:absolute;inset:-10cqw -5cqw;color:#b6933c;text-shadow:9cqw 2cqw #b6933c,-4cqw 3cqw #b6933c;text-align:center;font-size:4cqw;animation:caught-stars calc(.4s * var(--beat)) ease-out both}
@keyframes battle-breathe{50%{transform:translateY(-1px)}}
@keyframes lunge-ally{45%{transform:translate(12px,-6px)}100%{transform:none}}@keyframes lunge-enemy{45%{transform:translate(-10px,6px)}100%{transform:none}}
@keyframes impact-recoil{0%{transform:none}25%{transform:translate(3px,-2px);filter:brightness(1.35)}50%{transform:translate(-2px,1px)}100%{transform:none}}
@keyframes mon-summon{0%{opacity:0;transform:scale(.15);filter:brightness(2)}50%{opacity:1;filter:brightness(1.4)}100%{opacity:1;transform:scale(1)}}@keyframes mon-recall{to{opacity:0;transform:scale(.05);filter:brightness(2)}}@keyframes mon-faint{to{transform:translateY(40px) scaleY(.65);opacity:0}}@keyframes mon-aura{50%{filter:brightness(1.25);transform:translateY(-2px)}}
@keyframes projectile{from{left:var(--origin-x);top:var(--origin-y);opacity:.5;transform:scale(.4)}to{left:var(--target-x);top:var(--target-y);opacity:1;transform:scale(1)}}
@keyframes particle-burst{from{opacity:1;translate:-50% -50%;scale:.4}to{opacity:0;translate:calc(-50% + var(--dx)) calc(-50% + var(--dy));rotate:60deg;scale:1.1}}
@keyframes impact-ring{from{opacity:.9;scale:.25}to{opacity:0;scale:1.4}}@keyframes narration-in{from{opacity:0;translate:0 2px}to{opacity:1;translate:0 0}}@keyframes panel-rise{from{opacity:.5;translate:0 4px}to{opacity:1;translate:0 0}}@keyframes intro-sweep{from{translate:100% 0}to{translate:0 0}}
@keyframes ball-throw{0%{translate:-44cqw 23cqw;rotate:-200deg}55%{translate:-18cqw -13cqw}100%{translate:0 0;rotate:0deg}}@keyframes ball-wobble{0%,15%,85%,100%{rotate:0deg}35%{rotate:-15deg}65%{rotate:12deg}}@keyframes caught-stars{from{opacity:1;translate:0 3cqw;scale:.5}to{opacity:0;translate:0 -3cqw;scale:1.2}}
/* Keep essential state visible when motion is disabled. */
@media(prefers-reduced-motion:reduce){#battle *,#panel.battle-panel{animation:none!important;transition:none!important}.battle-mon.summon{opacity:1;transform:none}.battle-mon.recall,.battle-mon.fainted,.battle-mon.waiting{opacity:0}.battle-fx{opacity:.65}.battle-fx i{display:none}.battle-fx .fx-ring{opacity:.6;scale:.7}.capture-stars{animation:none!important}.battle-intro{translate:0 0}}
.battle-stats .level{flex-shrink:0}.capture-ball .brandball:after{width:2cqw;height:2cqw;left:50%;top:50%;transform:translate(-50%,-50%);border-width:1px}
@media(max-width:520px){
 .battle-scene{height:59%}.battle-bottom{height:39%}
 .battle-prompt{font-size:3.1cqw;padding:6% 3%}.battle-prompt b{font-size:3.5cqw}.battle-prompt small{font-size:1.75cqw}
 .command-grid button{font-size:3.2cqw;gap:6%}.command-grid button i{font-size:4.4cqw}.command-grid button small{display:none}
 .move-title{font-size:3.05cqw}.move-meta{font-size:2.25cqw}.move-meta b{font-size:1.95cqw}.battle-options.moves button small{font-size:1.7cqw}
 .move-picker-head{font-size:2.1cqw}.move-picker-head small{display:none}#back-moves{font-size:2.4cqw}
 .battle-narration{font-size:3.5cqw}.battle-stats .stat-top{font-size:3.1cqw}.battle-stats .level,.hp-value{font-size:2.5cqw}
 .battle-team-card{padding:4%;margin-bottom:4%}.team-card-info strong{font-size:3.5cqw}.team-card-info small{font-size:2.5cqw}
 .battle-item-card strong{font-size:3.6cqw}.battle-item-card small{font-size:2.6cqw}.battle-panel .panel-head h3{font-size:3.6cqw}.battle-panel .panel-foot{font-size:2.5cqw}.battle-panel-note{font-size:2.6cqw}
}
/* Six party slots share the available panel height, including on narrow screens. */
#panel.team-panel{min-height:0}
#panel.team-panel .panel-head{flex:0 0 auto;padding:2cqw 3cqw;min-height:9cqw}
#panel.team-panel .panel-head h3{font-size:2.8cqw;line-height:1.25}
#panel.team-panel .panel-head button{width:6cqw;height:6cqw;flex-shrink:0}
#panel.team-panel .panel-foot{flex:0 0 auto;padding:1.5cqw 3cqw;font:2cqw/1.4 var(--mono)}
#panel.team-panel .panel-body{flex:1;min-height:0;padding:2cqw;overflow:hidden}
.team-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:1.5cqw;height:100%;min-height:0}
.team-roster .battle-team-card,.team-roster .pokemon-row{position:relative;display:grid;grid-template-columns:8cqw minmax(0,1fr);align-items:center;gap:1.2cqw;width:100%;height:100%;min-height:0;min-width:0;margin:0;padding:1.5cqw;border-radius:3px;overflow:hidden}
.team-roster .battle-team-card img,.team-roster .pokemon-row img{width:8cqw;height:8cqw;object-fit:contain;image-rendering:pixelated}
.team-roster .team-card-info,.team-roster .mon-info{min-width:0}
.team-roster .team-card-info strong,.team-roster .mon-info strong{display:block;font:bold 2.7cqw/1.25 var(--mono);overflow-wrap:anywhere}
.team-roster .team-card-info small,.team-roster .mon-info small{display:block;margin:1cqw 0 0;font:2cqw/1.25 var(--mono);color:#6b7e60}
.team-roster .hpbar,.team-roster .team-card-info .hpbar{height:1.3cqw;margin:1.2cqw 0 0}
.team-roster .team-slot,.team-roster .team-card-arrow{display:none}
.team-roster .pokemon-row .level{position:absolute;left:1.5cqw;bottom:1.5cqw;font:2cqw var(--mono)}
.battle-scene.flower-gym{background:radial-gradient(ellipse at 70% 5%,#f0e8bf 0,transparent 58%),linear-gradient(#a8c191,#dfdfb8)}
.battle-scene.poison-gym{background:repeating-linear-gradient(90deg,transparent 0 19%,#73617e16 20% 21%),linear-gradient(#c7bed0,#e5e0ce)}
.battle-scene.tower{background:linear-gradient(#aaa6bd,#dad7d9 70%,#b9b7ca)}.battle-scene.safari{background:linear-gradient(#a9bd91,#e1e8c2 62%,#bdce9e)}
.safari-battle .battle-shadow.ally{display:none}.lift-floor,.fly-city{display:block;width:100%;margin-bottom:3%}
.slot-machine{text-align:center;padding:5% 0}.slot-machine>small{font:2cqw var(--mono);letter-spacing:.12em;color:#83916d}#slot-reels{display:flex;gap:3%;justify-content:center;margin:8% 0}#slot-reels b{display:grid;place-items:center;width:20cqw;height:24cqw;border:2px solid #6e825d;border-bottom-width:4px;border-radius:3px;background:#f9efcb;font:bold 11cqw var(--mono);color:#a18144}.slot-machine p{font:2.7cqw/1.6 var(--mono)}#slot-reels.rolling b{animation:reel-bob .13s ease-in-out 4 alternate}@keyframes reel-bob{to{translate:0 -2px;opacity:.5}}@media(prefers-reduced-motion:reduce){#slot-reels.rolling b{animation:none}}
.battle-options.moves button:focus{background:#e0e8ba;box-shadow:inset 0 0 0 1px #5e7d4f;outline:0}
.command-grid button:focus{box-shadow:inset 0 0 0 2px #5e7d4f;outline:0}
.caught-badge{display:inline-flex;align-items:center;gap:.8cqw;margin-top:1.4cqw;padding:.5cqw 1.1cqw;border:1px solid #bac5a0;border-radius:2px;background:#e7edce;color:#4d7151;font:bold 2cqw/1.2 var(--mono);white-space:nowrap}.caught-pokeball{position:relative;display:inline-block;width:2.5cqw;height:2.5cqw;flex-shrink:0;border:1px solid #4d7151;border-radius:50%;background:linear-gradient(#c5ae60 0 43%,#4d7151 43% 57%,#f5f4db 57%)}.caught-pokeball:after{content:'';position:absolute;width:.9cqw;height:.9cqw;top:50%;left:50%;translate:-50% -50%;border:1px solid #4d7151;border-radius:50%;background:#f5f4db}@media(max-width:520px){.caught-badge{font-size:2.35cqw}}
.floor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw}.floor-grid .pixel-btn{min-height:9cqw}.battle-scene.psychic-gym{background:radial-gradient(ellipse at 70% 20%,#e7c9ed,#b5a1c4 60%,#e3d9d0)}.battle-scene.fire-gym{background:radial-gradient(ellipse at 65% 20%,#f7d38b,#d9976d 60%,#e8c3a0)}.battle-scene.earth-gym{background:linear-gradient(#b9b18b,#e6d5a5 65%,#c6b88c)}.battle-scene.silph{background:repeating-linear-gradient(90deg,transparent 0 24%,#839fac22 25% 26%),linear-gradient(#afc4c9,#e1e6d5)}
/* The first rendered frame already contains the opponent presentation. */
#battle.introducing .battle-scene{height:100%}
#battle.introducing .battle-bottom{display:none}
#battle.introducing .battle-stats,#battle.introducing .battle-mon,#battle.introducing .battle-shadow,#battle.introducing .battle-label{visibility:hidden}
#battle.introducing .battle-intro{animation:none}
