#battle-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:7000;display:flex;flex-direction:column;justify-content:flex-end;opacity:0;pointer-events:none;transition:opacity .3s ease}#battle-modal:not(.battle-hidden){opacity:1}#battle-modal.battle-hidden{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .25s ease,visibility .25s}#battle-modal:before{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;z-index:0;pointer-events:none;background:linear-gradient(to top,#000000b8,#000000a8 18%,#00000080 40%,#00000047 65%,#0000001a 85%,#0000)}.battle-content{position:relative;z-index:7001;width:100%;pointer-events:none}.map-pokemon-label .label-shiny-star{height:1.25em;width:auto;margin-right:5px;vertical-align:-.2em;image-rendering:pixelated}.map-pokemon-label{background:#00000052;padding:8px 20px;border-radius:20px;font-family:LCD40x2,monospace;font-size:12px;color:#fff;text-align:center;white-space:nowrap;pointer-events:none}.battle-hud{position:fixed;top:70vh;top:70dvh;left:0;right:0;z-index:7001;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.battle-side{display:flex;flex-direction:column;gap:34px;pointer-events:auto;flex:0 0 auto}.battle-side-left{align-items:flex-start}.battle-side-right{align-items:flex-end}.battle-btn{position:relative;background:none;border:none;cursor:pointer;padding:0;width:clamp(56px,22vw,80px);display:block;touch-action:manipulation;transition:transform .15s ease;-webkit-tap-highlight-color:transparent;user-select:none}.battle-side-left .battle-btn{transform:translate(-24%)}.battle-side-right .battle-btn{transform:translate(24%)}.battle-side .battle-btn:active,.battle-side .battle-btn.bw-held{transform:translate(0)}.battle-btn img{display:block;width:100%;height:auto;image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45));transition:filter .2s ease}.battle-btn:disabled{pointer-events:none}.battle-btn:disabled img{filter:grayscale(1) drop-shadow(0 2px 4px rgba(0,0,0,.45))}.battle-btn:disabled .battle-btn-label{opacity:.45}.battle-btn[data-action=bag] img,.battle-btn[data-action=run] img{transform:scaleX(-1)}.battle-hud.battle-locked .battle-btn{pointer-events:none}.battle-hud.battle-locked .battle-btn img{filter:grayscale(1) drop-shadow(0 2px 4px rgba(0,0,0,.45))}.battle-hud.battle-locked .battle-btn-label{opacity:.45}.battle-btn-label{position:absolute;top:50%;transform:translateY(-50%);font-family:LCD40x2,monospace;font-size:9px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 6px rgba(0,0,0,.75);white-space:nowrap;pointer-events:none}.battle-side-left .battle-btn-label{left:calc(100% + 8px)}.battle-side-right .battle-btn-label{right:calc(100% + 8px)}#battle-result{flex:1 1 auto;min-width:0;margin:0 6px;z-index:7002;font-family:LCD40x2,monospace;box-sizing:border-box;padding:12px 14px;background:#00000073;border-radius:18px;font-size:.92rem;line-height:1.35;color:#fff;text-align:center;word-break:break-word;pointer-events:none;transition:opacity .3s ease}#battle-result.battle-result-hidden{opacity:0}#battle-result:not(.battle-result-hidden){opacity:1}#ball-wheel{--bw-size: clamp(200px, 58vw, 280px);position:fixed;z-index:7100;width:var(--bw-size);height:var(--bw-size);transform:translate(-50%,-50%) scale(.5);opacity:0;pointer-events:none;transition:opacity .18s ease-out,transform .18s cubic-bezier(.175,.885,.32,1.275)}#ball-wheel.active{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}#ball-wheel svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 14px rgba(0,0,0,.55))}.ball-wheel-seg{fill:#f0f0f0e6;stroke:#0000001a;stroke-width:1;transition:fill .15s}.ball-wheel-seg.selected{fill:#fff;stroke:#64b4f0d9;stroke-width:3}.ball-wheel-seg.empty{fill:#a0a0a08c}.ball-wheel-icon{position:absolute;width:19.5%;display:flex;flex-direction:column;align-items:center;gap:calc(var(--bw-size) * .021);transform:translate(-50%,-50%);transition:transform .1s;pointer-events:none}.ball-wheel-icon.selected{transform:translate(-50%,-50%) scale(1.3)}.ball-wheel-icon img{width:65%;height:auto;image-rendering:pixelated}.ball-wheel-icon.empty img{filter:grayscale(1);opacity:.4}.ball-wheel-qty{font-family:LCD40x2,monospace;font-size:calc(var(--bw-size) * .034);color:#2b2b2b}.ball-wheel-icon.empty .ball-wheel-qty{color:#777}#ball-wheel-label{position:absolute;top:calc(var(--bw-size) * -.12);right:50%;background:#0000008c;color:#fff;padding:4px 12px;border-radius:20px;font-family:LCD40x2,monospace;font-size:calc(var(--bw-size) * .042);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s ease}#ball-wheel-label.visible{opacity:1}#xp-dialog{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20000;display:flex;align-items:center;justify-content:center;visibility:hidden;transition:opacity .2s ease,visibility .2s}#xp-dialog.xp-dialog-hidden{opacity:0;pointer-events:none;visibility:hidden}#xp-dialog:not(.xp-dialog-hidden){visibility:visible;opacity:1}.xp-dialog-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0009}.xp-dialog-content{position:relative;z-index:20001;background:#ffffffd1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);border-radius:20px;padding:24px 22px 18px;width:min(320px,84vw);font-family:Lato Medium,sans-serif;box-shadow:0 16px 44px #0006;transform:scale(.92) translateY(10px);transition:transform .22s cubic-bezier(.175,.885,.32,1.275)}#xp-dialog:not(.xp-dialog-hidden) .xp-dialog-content{transform:scale(1) translateY(0)}.xp-dialog-rows{display:flex;flex-direction:column;gap:10px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid rgba(0,0,0,.14)}.xp-dialog-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:15px;color:#23232a}.xp-dialog-footer{width:100%}.xp-dialog-total{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-bottom:14px;font-size:21px;color:#16161c}.xp-dialog-row-xp{color:#e4396b;white-space:nowrap}.xp-dialog-buttons{display:flex;gap:10px}.xp-dialog-btn{flex:1 1 0;min-width:0;padding:11px 16px;border:none;border-radius:999px;font-family:Lato Medium,sans-serif;font-size:15px;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s,filter .15s,background .15s}.xp-dialog-btn:active{transform:scale(.97)}.xp-dialog-ok{background:linear-gradient(90deg,#9bd390,#21c5a9);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)}.xp-dialog-ok:hover{filter:brightness(1.15)}.xp-dialog-more{background:#fff9;box-shadow:inset 0 0 0 1px #00000024;color:#23232a}.xp-dialog-more:hover{background:#ffffffe6}#masterball-dialog{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20000;display:flex;align-items:center;justify-content:center;visibility:hidden;transition:opacity .2s ease,visibility .2s}#masterball-dialog.mb-dialog-hidden{opacity:0;pointer-events:none;visibility:hidden}#masterball-dialog:not(.mb-dialog-hidden){visibility:visible;opacity:1}.mb-dialog-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0009}.mb-dialog-content{position:relative;z-index:20001;background:#19191ef7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:24px 22px 20px;width:min(300px,80vw);text-align:center;font-family:Lato Medium,sans-serif;transform:scale(.92) translateY(10px);transition:transform .22s cubic-bezier(.175,.885,.32,1.275)}#masterball-dialog:not(.mb-dialog-hidden) .mb-dialog-content{transform:scale(1) translateY(0)}.mb-dialog-ball{width:44px;height:44px;image-rendering:pixelated;margin-bottom:10px}.mb-dialog-title{font-family:Lato Medium,sans-serif;font-size:17px;color:#fff;line-height:1.4;margin-bottom:22px}.mb-dialog-buttons{display:flex;gap:16px;justify-content:center}.mb-btn-yes,.mb-btn-no{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:12px;font-family:Lato Medium,sans-serif;font-size:14px;text-transform:lowercase;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s,filter .15s}.mb-btn-yes{background:#2e7d32}.mb-btn-no{background:#c62828}.mb-btn-yes:hover,.mb-btn-no:hover{filter:brightness(1.15)}.mb-btn-yes:active,.mb-btn-no:active{transform:scale(.93)}.mb-btn-yes img,.mb-btn-no img{width:24px;height:24px;image-rendering:pixelated;object-fit:contain}.mood-item{position:absolute;left:50%;bottom:0;width:var(--catch-ball);height:var(--catch-ball);margin-left:calc(var(--catch-ball) / -2);background-repeat:no-repeat;background-size:contain;background-position:center;image-rendering:pixelated;transform-origin:50% 85%;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));animation:catchThrow .72s ease-in forwards}.mood-item.mood-item-hit{animation:moodHit .16s ease-out forwards}@keyframes moodHit{0%{transform:translateY(calc(var(--catch-lift) * -1)) scale(1);opacity:1}to{transform:translateY(calc(var(--catch-lift) * -1)) scale(1.5);opacity:0}}.mood-angry{position:absolute;left:50%;bottom:var(--mood-head);width:calc(var(--catch-ball) * .85);height:calc(var(--catch-ball) * .85);margin-left:calc(var(--catch-ball) * -.425);background-repeat:no-repeat;background-size:contain;background-position:center;image-rendering:pixelated;opacity:0;animation:moodAngry .32s ease-out 2}@keyframes moodAngry{0%{transform:translateY(6px) scale(.6);opacity:0}35%{transform:translateY(0) scale(1.1);opacity:1}75%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-4px) scale(.95);opacity:0}}.battle-emotion{position:absolute;left:50%;bottom:var(--mood-head);width:var(--catch-ball);height:var(--catch-ball);margin-left:calc(var(--catch-ball) / -2);background-repeat:no-repeat;background-size:200% 100%;background-position:0 0;image-rendering:pixelated;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));animation:emotionPop .26s ease-out forwards}@keyframes emotionPop{0%{transform:translateY(30%) scale(.4);opacity:0}35%{transform:translateY(-46%) scale(1.18);opacity:1}62%{transform:translateY(-10%) scale(.96);opacity:1}to{transform:translateY(-22%) scale(1);opacity:1}}.battle-emotion.battle-emotion-out{animation:emotionOut .18s ease-in forwards}@keyframes emotionOut{0%{transform:translateY(-22%) scale(1);opacity:1}to{transform:translateY(-52%) scale(.9);opacity:0}}.pokemon-sprite.mood-blink{animation:moodBlink .34s steps(1,end) 2 forwards}@keyframes moodBlink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.pokemon-sprite.mood-hop{animation:moodHop .36s ease-out 2 forwards}@keyframes moodHop{0%{transform:translateY(0) scaleY(1);opacity:1}20%{transform:translateY(0) scaleY(.88);opacity:1}55%{transform:translateY(-22%) scaleY(1.06);opacity:1}85%{transform:translateY(0) scaleY(.94);opacity:1}to{transform:translateY(0) scaleY(1);opacity:1}}.marker-zoom-wrap.catch-active{position:relative}.catch-stage{position:absolute;inset:0;pointer-events:none}.catch-ball{position:absolute;left:50%;bottom:0;width:var(--catch-ball);height:var(--catch-ball);margin-left:calc(var(--catch-ball) / -2);image-rendering:pixelated;transform-origin:50% 85%;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));background-repeat:no-repeat;background-size:contain;background-position:center}.catch-ball.catch-ball-sheet{background-size:100% 300%;background-position:0 0}.catch-ball-throw{animation:catchThrow .72s ease-in forwards}@keyframes catchThrow{0%{transform:translate(64px,calc(var(--catch-lift) * -1 - 108px)) scale(2.4) rotate(-260deg);opacity:0}22%{opacity:1}to{transform:translateY(calc(var(--catch-lift) * -1)) scale(1) rotate(0);opacity:1}}.catch-ball-hold{animation:catchHold .52s ease-out forwards}@keyframes catchHold{0%{transform:translateY(calc(var(--catch-lift) * -1)) scale(1)}45%{transform:translateY(calc(var(--catch-lift) * -1)) scale(1.12)}to{transform:translateY(calc(var(--catch-lift) * -1)) scale(1)}}.catch-ball-drop{animation:catchDrop .55s ease-in forwards}@keyframes catchDrop{0%{transform:translateY(calc(var(--catch-lift) * -1))}55%{transform:translate(0)}72%{transform:translateY(-22%) rotate(4deg)}to{transform:translate(0) rotate(0)}}.catch-ball-shake{animation:catchShake .9s ease-in-out forwards}@keyframes catchShake{0%{transform:translate(0) rotate(0)}15%{transform:translateY(-10%) rotate(-26deg)}32%{transform:translate(0) rotate(-19deg)}52%{transform:translateY(-10%) rotate(26deg)}70%{transform:translate(0) rotate(19deg)}86%{transform:translate(0) rotate(-7deg)}to{transform:translate(0) rotate(0)}}.catch-ball-seal{animation:catchSeal .8s ease-out forwards}@keyframes catchSeal{0%{transform:translate(0) scale(1)}30%{transform:translate(0) scale(1.2,.82)}60%{transform:translate(0) scale(.94,1.08)}to{transform:translate(0) scale(1)}}.catch-ball-burst{animation:catchBurst .52s ease-out forwards}@keyframes catchBurst{0%{transform:translate(0) scale(1);opacity:1}25%{transform:translateY(-12%) scale(1.14) rotate(-6deg);opacity:1}55%{transform:translate(0) scale(1.04) rotate(3deg);opacity:.85}to{transform:translate(0) scale(1);opacity:0}}.catch-flash{position:absolute;left:50%;bottom:0;width:calc(var(--catch-ball) * 2.4);height:calc(var(--catch-ball) * 2.4);margin-left:calc(var(--catch-ball) * -1.2);margin-bottom:calc(var(--catch-ball) * -1.2);border-radius:50%;background:radial-gradient(circle,#fffffff2,#fff0b48c 45%,#fff0 70%);opacity:0}.catch-flash-high{animation:catchFlashHigh .55s ease-out forwards}@keyframes catchFlashHigh{0%{transform:translateY(calc(var(--catch-lift) * -1 - var(--catch-ball) * .5)) scale(.25);opacity:.95}to{transform:translateY(calc(var(--catch-lift) * -1 - var(--catch-ball) * .5)) scale(1.6);opacity:0}}.catch-flash-low{animation:catchFlashLow .65s ease-out forwards}@keyframes catchFlashLow{0%{transform:translateY(calc(var(--catch-ball) * -.5)) scale(.25);opacity:.9}to{transform:translateY(calc(var(--catch-ball) * -.5)) scale(1.5);opacity:0}}.catch-stars{position:absolute;inset:0}.catch-star{position:absolute;left:50%;bottom:var(--catch-ball);font-size:calc(var(--catch-ball) * .5);line-height:1;color:#ffe680;text-shadow:0 0 6px rgba(255,214,64,.9);opacity:0;animation:catchStar 1.2s ease-out forwards}.catch-star:nth-child(1){--star-dx: -1;animation-delay:.03s}.catch-star:nth-child(2){--star-dx: 0;animation-delay:.16s}.catch-star:nth-child(3){--star-dx: 1;animation-delay:.29s}@keyframes catchStar{0%{transform:translate(-50%) scale(.2);opacity:0}35%{transform:translate(calc(-50% + var(--star-dx) * 14px),-14px) scale(1.1);opacity:1}to{transform:translate(calc(-50% + var(--star-dx) * 22px),-30px) scale(.5);opacity:0}}.marker-zoom-wrap.shiny-active{position:relative}.shiny-burst{position:absolute;inset:0;pointer-events:none}.shiny-star{position:absolute;background-repeat:no-repeat;background-size:contain;background-position:center;image-rendering:pixelated;transform:translate(-50%,50%) scale(.2);opacity:0;animation:shinyStar .9s ease-out forwards}@keyframes shinyStar{0%{opacity:0;transform:translate(-50%,50%) scale(.2) rotate(-45deg)}30%{opacity:1;transform:translate(-50%,50%) scale(1.15) rotate(0)}65%{opacity:1;transform:translate(-50%,50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,50%) scale(.75) rotate(30deg)}}.pokemon-sprite.catch-suck{animation:catchSuck .52s ease-in forwards}@keyframes catchSuck{0%{transform:scale(1);opacity:1;filter:none}25%{transform:scale(1.06);opacity:1;filter:brightness(3) saturate(.15)}to{transform:scale(.04);opacity:0;filter:brightness(3) saturate(.15)}}.pokemon-sprite.catch-release{animation:catchRelease .68s ease-out forwards}@keyframes catchRelease{0%{transform:scale(.04);opacity:0;filter:brightness(3) saturate(.15)}45%{transform:scale(1.14);opacity:1;filter:brightness(2) saturate(.5)}to{transform:scale(1);opacity:1;filter:none}}
