.map-nav{color:#c9df9b!important}.map-nav .map-nav-icon{background:none!important;color:var(--green)!important;font-size:15px!important;padding:0!important;margin-right:3px!important}.current-route-card{margin-top:25px;padding:20px 15px;border:1px solid var(--line);border-radius:10px;background:radial-gradient(circle at 80% 10%,color-mix(in srgb,var(--route-glow,#e0cf54) 22%,transparent) 0,transparent 38%),#101f18;text-align:center}.current-route-icon{width:52px;height:52px;margin:0 auto 13px;border-radius:14px;background:var(--route-glow,#e0cf54);color:#09120e;display:grid;place-items:center;font-size:22px;box-shadow:0 0 25px color-mix(in srgb,var(--route-glow) 30%,transparent)}.current-route-card>small{font:500 7px DM Mono;color:#73877b;letter-spacing:1px}.current-route-card h3{font-size:15px;text-transform:capitalize;margin:6px 0 3px}.current-route-card>p{font-size:9px;color:var(--muted);margin:0}.route-preview{display:flex;justify-content:center;margin-top:15px}.route-preview img{width:42px;height:42px;object-fit:contain;background:#0a1510;border:1px solid var(--line);border-radius:50%;margin-left:-5px}.route-preview img:first-child{margin-left:0}.open-map-button{width:100%;margin-top:10px;padding:12px;border:1px solid #8fc65b55;background:linear-gradient(135deg,#233b29,#17271d);color:#e6f1e9;border-radius:8px;display:grid;grid-template-columns:35px 1fr;grid-template-rows:1fr 1fr;text-align:left;cursor:pointer}.open-map-button>span{grid-row:1/3;width:30px;height:30px;display:grid;place-items:center;color:var(--green);font-size:18px}.open-map-button b{font-size:10px}.open-map-button small{font-size:8px;color:#81948a}.route-tip{display:flex;gap:8px;margin-top:17px;color:#64786d}.route-tip>span{flex:0 0 18px;height:18px;border:1px solid #385044;border-radius:50%;display:grid;place-items:center;font:500 8px DM Mono}.route-tip p{font-size:8px;line-height:1.55;margin:0}.city-view{grid-template-columns:minmax(0,1fr) 340px;min-height:calc(100vh - 70px);background:#0b1712}.city-scene{position:relative;min-height:calc(100vh - 70px);overflow:hidden;background:linear-gradient(#446c6c 0 28%,#849c72 29% 58%,#526b48 59%);border-right:1px solid var(--line)}.city-sky{position:absolute;inset:0 0 60%;background:radial-gradient(circle at 74% 30%,#ede5a5 0 3%,transparent 3.5%),linear-gradient(#263f44,#648180);opacity:.9}.city-hills{position:absolute;left:-5%;right:-5%;top:19%;height:30%;background:#354e3b;clip-path:polygon(0 100%,0 67%,8% 44%,18% 78%,29% 30%,40% 70%,50% 42%,62% 78%,74% 24%,84% 66%,94% 38%,100% 60%,100% 100%)}.city-river{position:absolute;left:0;right:0;bottom:0;height:28%;background:linear-gradient(110deg,#314b43 0 23%,#577e78 24% 56%,#2c4438 57%);clip-path:polygon(0 32%,26% 7%,55% 42%,100% 0,100% 100%,0 100%)}.city-road{position:absolute;left:23%;top:35%;width:55%;height:75%;background:#b0a273;clip-path:polygon(44% 0,58% 0,100% 100%,0 100%);opacity:.7}.city-building{position:absolute;background:#d6c79b;border:5px solid #233b30;box-shadow:0 16px 25px #13201966;display:grid;place-items:center;color:#1b3127;text-align:center}.city-building:before{content:"";position:absolute;left:-12%;right:-12%;top:-27px;height:28px;background:#a84f43;border:5px solid #233b30;clip-path:polygon(12% 100%,0 100%,17% 0,83% 0,100% 100%)}.city-building b{font:800 9px Manrope;letter-spacing:.5px}.building-sign{font-size:22px;color:#b74c45}.center-building{width:145px;height:100px;left:43%;top:29%}.shop-building{width:100px;height:75px;left:18%;top:45%}.market-building{width:115px;height:80px;right:13%;top:47%}.city-tree{position:absolute;width:35px;height:48px;background:#26472e;border-radius:50% 50% 35% 35%;box-shadow:-12px 8px 0 #315a38,10px 10px 0 #203e2a}.city-tree:after{content:"";position:absolute;width:7px;height:25px;background:#5a4932;left:14px;bottom:-17px}.tree-a{left:8%;top:38%}.tree-b{left:31%;top:62%;transform:scale(.8)}.tree-c{right:30%;top:60%;transform:scale(1.15)}.tree-d{right:6%;top:30%;transform:scale(.8)}.player-marker{position:absolute;left:49%;top:58%;display:grid;justify-items:center;z-index:3}.player-marker>span{width:35px;height:35px;border-radius:50%;background:#a9e776;color:#102018;border:4px solid #f0f8e9;display:grid;place-items:center;font-weight:800;box-shadow:0 5px 15px #0007}.player-marker small{font:600 7px DM Mono;margin-top:5px;background:#0a150f;color:#d9e8dd;padding:3px 6px;border-radius:3px}.city-welcome{position:absolute;left:28px;top:27px;background:#0b1712dd;border:1px solid #466053;border-radius:10px;padding:17px 20px;backdrop-filter:blur(8px)}.city-welcome h1{font-size:26px;margin:0}.city-welcome p{font-size:9px;color:#9aac9f;margin:5px 0 0}.city-map-button{position:absolute;left:50%;bottom:27px;transform:translateX(-50%);min-width:300px;display:grid;grid-template-columns:42px 1fr 25px;align-items:center;text-align:left;padding:11px;border:1px solid #b6e67b66;border-radius:9px;background:#102219ee;color:#f2f6f3;box-shadow:0 15px 30px #07100b99;cursor:pointer;z-index:5}.city-map-button:hover{border-color:var(--green);transform:translateX(-50%) translateY(-2px)}.compass-icon{width:36px;height:36px;border-radius:50%;background:#9ee16e;color:#132219;display:grid;place-items:center;font-size:20px}.city-map-button small{display:block;font:500 7px DM Mono;color:#8da181}.city-map-button b{display:block;font-size:12px;margin-top:2px}.city-map-button em{font-style:normal;color:var(--green);font-size:18px}.city-sidebar{background:#0d1a14;padding:27px 20px}.city-sidebar-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.online{font:500 7px DM Mono;color:#769083}.online i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.city-actions{display:grid;gap:7px}.city-actions button{display:grid;grid-template-columns:37px 1fr auto;gap:10px;align-items:center;text-align:left;padding:11px;border:1px solid var(--line);border-radius:8px;background:#101f18;color:#e7eee9;cursor:pointer}.city-actions button>span{width:34px;height:34px;border-radius:7px;background:#1d3325;color:var(--green);display:grid;place-items:center;font-size:17px}.city-actions b{display:block;font-size:10px}.city-actions small{font-size:8px;color:#718379}.city-actions em{font:500 6px DM Mono;color:#85998d;font-style:normal}.city-chat{margin-top:20px;border:1px solid var(--line);border-radius:8px;background:#0a1610;padding:12px}.city-chat>div{display:flex;justify-content:space-between;font-size:9px;margin-bottom:12px}.city-chat>div span{font:500 6px DM Mono;color:#6ca474}.city-chat p{font-size:8px;color:#778b80}.city-chat strong{color:#a8c7af}.city-chat label{height:31px;border:1px solid var(--line);display:flex;margin-top:12px;border-radius:5px}.city-chat input{min-width:0;flex:1;border:0;background:none;padding:8px;color:#72857a;font-size:8px}.city-chat button{width:30px;border:0;background:#1c3023;color:var(--green)}.map-route-nodes{position:absolute;inset:0;z-index:4}
@media(max-width:900px){.city-view{grid-template-columns:1fr}.city-sidebar{display:none}}
@media(max-width:720px){.city-view{display:block!important;padding-bottom:55px}.city-scene{min-height:calc(100vh - 115px)}.city-welcome{left:14px;right:14px}.city-building{transform:scale(.75)}}

/* Mapa jogável: terreno e outfits extraídos diretamente do cliente Poketibia. */
.environment{display:block;position:relative;overflow:hidden;background:#050907!important}.environment:before{display:none}
.route-pixi-host{position:absolute;inset:0;z-index:1;overflow:hidden;background:#030605;pointer-events:none}
.route-pixi-mount{position:absolute;inset:0}
.route-pixi-canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.route-map-world{position:absolute;left:50%;top:50%;z-index:2;width:2960px;height:auto;aspect-ratio:var(--route-map-ratio,11/9);transform-origin:0 0;will-change:transform;background:#030605}
.route-map-image{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;image-rendering:pixelated}
.route-map-world.renderer-pixi{left:0;top:0;background:transparent;aspect-ratio:auto}
.route-map-world.renderer-pixi .route-map-image{display:none}
.route-map-world[class*=" zone-"]::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:screen}
.route-map-world.zone-supreme-threshold::after{background:radial-gradient(circle at 50% 45%,#f0d08018,transparent 34%),linear-gradient(135deg,#7148a012,transparent 48%)}
.route-map-world.zone-ashen-spire .route-pixi-host,.route-map-world.zone-ashen-spire .route-map-image{filter:sepia(.45) saturate(1.35) hue-rotate(330deg) brightness(.78)}.route-map-world.zone-ashen-spire::after{background:radial-gradient(circle at 25% 30%,#ff5e251d,transparent 24%),linear-gradient(20deg,#6f160d40,transparent 55%)}
.route-map-world.zone-obsidian-court .route-pixi-host,.route-map-world.zone-obsidian-court .route-map-image{filter:grayscale(.52) contrast(1.2) brightness(.68)}.route-map-world.zone-obsidian-court::after{background:repeating-linear-gradient(115deg,#c8bde10b 0 3px,transparent 3px 70px),linear-gradient(#1a152833,#05040844)}
.route-map-world.zone-eclipse-rift .route-pixi-host,.route-map-world.zone-eclipse-rift .route-map-image{filter:hue-rotate(50deg) saturate(1.4) brightness(.6)}.route-map-world.zone-eclipse-rift::after{background:radial-gradient(circle at 50% 45%,#b14cff29 0 4%,#06010855 7% 15%,transparent 32%),linear-gradient(145deg,#17082144,#02010522)}
.route-map-world.zone-final-horizon .route-pixi-host,.route-map-world.zone-final-horizon .route-map-image{filter:hue-rotate(170deg) saturate(1.25) brightness(.7) contrast(1.18)}.route-map-world.zone-final-horizon::after{background:linear-gradient(140deg,transparent 44%,#ffd36b22 45%,transparent 46%),radial-gradient(circle at 55% 35%,#ffd36b1c,transparent 25%)}
.route-entity-layer{position:absolute;inset:0;z-index:3}
.route-fx-layer{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:visible}
.route-partner{left:50%;top:84%;z-index:5}
.route-trainer{left:50%;top:87%;z-index:4}
.route-map-world .route-trainer img{width:128px;height:128px;object-fit:contain;image-rendering:pixelated}
.route-trainer small{display:block;background:#18110ded;color:#f5dd8b;border:1px solid #6d5735}
.route-map-world .route-partner img,.city-map-world .city-partner img{width:100px;height:100px;object-fit:contain;image-rendering:pixelated;transform:scale(var(--pokemon-sprite-scale,1));transform-origin:50% 100%}
.wild-actor{position:absolute;z-index:4;transform:translate(-50%,-75%);display:grid;justify-items:center;filter:drop-shadow(0 3px 2px #000c);transition:filter .15s}
.wild-actor.hit{filter:brightness(2) drop-shadow(0 0 8px #fff)}
.wild-actor img{width:100px;height:100px;object-fit:contain;image-rendering:pixelated;transform:scale(var(--pokemon-sprite-scale,1));transform-origin:50% 100%}
.wild-label{min-width:66px;margin-top:-4px;padding:3px 5px;border:1px solid #33463b;border-radius:4px;background:#07100de8;text-align:center;color:#edf4ef;font:600 7px DM Mono}
.wild-label span{display:block;color:var(--route-glow);font-size:6px;margin-top:1px}
.wild-hp{height:3px;margin-top:2px;background:#17241d}
.wild-hp i{display:block;width:100%;height:100%;background:#83d16b}
.wild-hp i,.hp-bar i{transition:width .2s}
.route-combat-hud,.route-partner-hud{position:absolute;top:14px;z-index:8;width:205px;padding:8px 10px;border:1px solid #405448;background:#07100de6;border-radius:6px;font:600 9px DM Mono}
.route-combat-hud{right:14px}.route-partner-hud{left:14px}
.route-combat-hud span,.route-partner-hud span,.route-partner-hud small{color:var(--route-glow)}
.route-partner-hud small{display:block;margin-top:2px;font-size:7px}
.route-partner-hud em{display:block;margin-top:4px;color:#93a69b;font:500 7px DM Mono;font-style:normal}
.battle-status{background:#07100ddd;border:1px solid #34483c;border-radius:6px;padding:7px 10px}
.damage-number{z-index:10!important}
.world-actor.attacking{animation:worldAttack .3s ease}
.route-map-world.route-fire{--route-map-ratio:71/57}
.route-map-world.route-electric{--route-map-ratio:11/9}
@keyframes worldAttack{50%{transform:translate(-50%,-76%) scale(1.16)}}

/* Efeitos de golpe no mapa */
.combat-fx{position:absolute;left:0;top:0;transform:translate(-50%,-70%);pointer-events:none;z-index:7;--fx:#e9cf59}
.combat-sprite-fx,.combat-missile-fx{
  width:auto;height:auto;background:none;box-shadow:none;border:0;
  transform:translate(-50%,-70%);
  z-index:8;
}
.combat-sprite-fx img,.combat-missile-fx img{
  display:block;width:78px;height:78px;object-fit:contain;image-rendering:pixelated;
  filter:drop-shadow(0 0 8px #000c) drop-shadow(0 0 12px color-mix(in srgb,var(--fx,#e9cf59) 55%,transparent));
}
.combat-missile-fx{transform:translate(-50%,-70%) rotate(var(--rot,0deg));z-index:9}
.combat-missile-fx.fly{animation:combatMissileFly .36s linear forwards}
.combat-missile-fx img{width:56px;height:56px}
@keyframes combatMissileFly{
  0%{opacity:1;filter:brightness(1.15)}
  100%{left:var(--to-x);top:var(--to-y);opacity:.9;filter:brightness(1.35)}
}

/* Captura: arremesso com o ícone real da bola + trail/glow por tipo. */
.capture-attempt-fx{
  --ball-accent:#e3350d;
  --ball-glow:#ff8a65;
  --throw-angle:-45deg;
  position:absolute;inset:0;z-index:12;pointer-events:none;
}
.capture-attempt-target,
.capture-attempt-throw,
.capture-attempt-impact,
.capture-attempt-spark,
.capture-attempt-result{
  position:absolute;left:var(--capture-to-x);top:var(--capture-to-y);
}
.capture-attempt-target{
  width:96px;height:96px;display:grid;place-items:center;
  transform:translate(-50%,-78%);transform-origin:50% 80%;
  filter:grayscale(.28) brightness(.86) drop-shadow(0 3px 2px #000c);
  transition:opacity .22s ease,transform .28s cubic-bezier(.55,.06,.68,.19),filter .22s ease;
}
.capture-attempt-target img{
  width:96px;height:96px;object-fit:contain;image-rendering:pixelated;
  transform:scale(var(--pokemon-sprite-scale,1));transform-origin:50% 100%;
}
.capture-attempt-throw{
  left:var(--capture-from-x);top:var(--capture-from-y);
  width:52px;height:52px;z-index:3;
  transform:translate(-50%,-50%);
  animation:captureThrowArc .48s cubic-bezier(.18,.72,.28,1) forwards;
}
.capture-attempt-ball{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;image-rendering:pixelated;
  filter:drop-shadow(0 3px 2px #000b) drop-shadow(0 0 6px color-mix(in srgb,var(--ball-accent) 55%,transparent));
  animation:captureBallSpin .48s linear forwards;
}
.capture-attempt-streak{
  position:absolute;left:50%;top:50%;width:22px;height:3px;margin-top:-1.5px;border-radius:99px;
  background:linear-gradient(90deg,var(--ball-accent),transparent);
  opacity:0;transform-origin:0 50%;pointer-events:none;
  box-shadow:0 0 6px color-mix(in srgb,var(--ball-glow) 70%,transparent);
}
.capture-attempt-streak:nth-child(1){animation:captureStreak .48s ease-out forwards;--streak-bias:-12deg;--streak-len:1.2}
.capture-attempt-streak:nth-child(2){animation:captureStreak .48s ease-out .04s forwards;--streak-bias:0deg;--streak-len:1.55}
.capture-attempt-streak:nth-child(3){animation:captureStreak .48s ease-out .08s forwards;--streak-bias:12deg;--streak-len:1.1}
.capture-attempt-impact{
  width:34px;height:34px;border:3px solid var(--ball-accent);border-radius:50%;opacity:0;
  transform:translate(-50%,-50%) scale(.25);
  box-shadow:0 0 14px color-mix(in srgb,var(--ball-glow) 80%,#fff),0 0 28px color-mix(in srgb,var(--ball-accent) 55%,transparent);
}
.capture-attempt-spark{
  width:10px;height:10px;border-radius:50%;opacity:0;z-index:4;
  background:radial-gradient(circle,color-mix(in srgb,var(--ball-glow) 90%,#fff) 0 35%,transparent 70%);
  box-shadow:0 0 12px var(--ball-accent);transform:translate(-50%,-50%) scale(.4);
}
.capture-attempt-result{
  z-index:5;opacity:0;transform:translate(-50%,-90%);
  padding:3px 7px;border:2px solid #2b2317;border-radius:4px;
  background:#f4ecd2;color:#2b2317;box-shadow:0 3px 0 #2b2317,0 5px 12px #0009;
  font:600 9px var(--font-display);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
}
.capture-attempt-fx.impact .capture-attempt-target{
  opacity:0;filter:brightness(2.1) saturate(1.5) drop-shadow(0 0 10px var(--ball-glow));
  transform:translate(-50%,-78%) scale(.08);
}
.capture-attempt-fx.impact .capture-attempt-throw{
  left:var(--capture-to-x);top:var(--capture-to-y);
  animation:captureBallCheck .86s ease-in-out both;
}
.capture-attempt-fx.impact .capture-attempt-ball{animation:none;filter:drop-shadow(0 2px 2px #000a) drop-shadow(0 0 8px color-mix(in srgb,var(--ball-accent) 65%,transparent))}
.capture-attempt-fx.impact .capture-attempt-streak{opacity:0;animation:none}
.capture-attempt-fx.impact .capture-attempt-impact{animation:captureBallImpact .4s ease-out forwards}
.capture-attempt-fx.impact .capture-attempt-spark{animation:captureSparkPop .45s ease-out forwards}
.capture-attempt-fx.caught .capture-attempt-throw{animation:captureBallCaught .55s ease-out forwards}
.capture-attempt-fx.caught .capture-attempt-ball{filter:drop-shadow(0 0 8px #84df6c) drop-shadow(0 0 14px var(--ball-accent))}
.capture-attempt-fx.escaped .capture-attempt-throw{animation:captureBallEscaped .55s ease-out forwards}
.capture-attempt-fx.caught .capture-attempt-result,
.capture-attempt-fx.escaped .capture-attempt-result{animation:captureResultPop .58s cubic-bezier(.2,.8,.3,1.2) forwards}
.capture-attempt-fx.caught .capture-attempt-result{color:#18421b;border-color:#244c23;background:#bff0a6;box-shadow:0 3px 0 #244c23,0 0 16px #76d86699}
.capture-attempt-fx.escaped .capture-attempt-result{color:#642217;border-color:#642217;background:#f5aa8f;box-shadow:0 3px 0 #642217,0 0 16px #ec6f4999}
.capture-attempt-fx.ball-masterball.caught .capture-attempt-ball{
  filter:drop-shadow(0 0 10px #f472b6) drop-shadow(0 0 18px #a855f7);
}
@keyframes captureThrowArc{
  0%{left:var(--capture-from-x);top:var(--capture-from-y);opacity:0;transform:translate(-50%,-50%) scale(.55)}
  12%{opacity:1}
  55%{top:calc(var(--capture-to-y) - 7%);transform:translate(-50%,-50%) scale(1.12)}
  100%{left:var(--capture-to-x);top:var(--capture-to-y);opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes captureBallSpin{
  0%{transform:rotate(0)}
  100%{transform:rotate(720deg)}
}
@keyframes captureStreak{
  0%{opacity:0;transform:rotate(calc(var(--throw-angle) + 180deg + var(--streak-bias))) scaleX(.25)}
  28%{opacity:.9;transform:rotate(calc(var(--throw-angle) + 180deg + var(--streak-bias))) scaleX(var(--streak-len))}
  100%{opacity:0;transform:rotate(calc(var(--throw-angle) + 180deg + var(--streak-bias))) scaleX(calc(var(--streak-len) * 1.4)) translateX(6px)}
}
@keyframes captureBallImpact{0%{opacity:.95;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.8)}}
@keyframes captureSparkPop{0%{opacity:.9;transform:translate(-50%,-50%) scale(.3)}100%{opacity:0;transform:translate(-50%,-50%) scale(3.4)}}
@keyframes captureBallCheck{
  0%,100%{transform:translate(-50%,-50%) rotate(0)}
  18%{transform:translate(-64%,-50%) rotate(-22deg)}
  38%{transform:translate(-36%,-50%) rotate(22deg)}
  58%{transform:translate(-60%,-50%) rotate(-16deg)}
  78%{transform:translate(-42%,-50%) rotate(12deg)}
}
@keyframes captureBallCaught{
  0%{transform:translate(-50%,-50%) scale(1)}
  35%{transform:translate(-50%,-50%) scale(1.28)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(.45)}
}
@keyframes captureBallEscaped{
  0%{transform:translate(-50%,-50%) scale(1)}
  35%{transform:translate(-50%,-62%) scale(1.22) rotate(-28deg)}
  100%{opacity:0;transform:translate(-50%,-118%) scale(.62) rotate(48deg)}
}
@keyframes captureResultPop{
  0%{opacity:0;transform:translate(-50%,-70%) scale(.7)}
  28%,72%{opacity:1;transform:translate(-50%,-145%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-190%) scale(.92)}
}
@media(prefers-reduced-motion:reduce){
  .capture-attempt-throw,.capture-attempt-ball,.capture-attempt-streak,.capture-attempt-impact,.capture-attempt-spark,.capture-attempt-result{animation:none!important}
  .capture-attempt-fx.impact .capture-attempt-target{display:none}
  .capture-attempt-fx.impact .capture-attempt-throw{left:var(--capture-to-x);top:var(--capture-to-y);transform:translate(-50%,-50%)}
  .capture-attempt-fx.caught .capture-attempt-result,.capture-attempt-fx.escaped .capture-attempt-result{opacity:1;transform:translate(-50%,-145%)}
}
@media(max-width:720px){
  .capture-attempt-throw{width:44px;height:44px}
  .capture-attempt-impact{width:28px;height:28px}
}
.combat-burst,.combat-slash,.combat-status{
  width:52px;height:52px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--fx) 90%,#fff) 0 16%,color-mix(in srgb,var(--fx) 60%,transparent) 40%,transparent 72%);
  box-shadow:0 0 28px var(--fx),0 0 48px color-mix(in srgb,var(--fx) 45%,transparent);
  animation:combatBurst .58s ease-out forwards;
  z-index:8;
}
.combat-burst.area,.combat-slash.area,.combat-status.area{width:78px;height:78px}
.combat-slash{
  background:conic-gradient(from 210deg,transparent 0 48%,color-mix(in srgb,var(--fx) 90%,#fff) 54% 70%,transparent 76% 100%);
  box-shadow:0 0 22px var(--fx),0 0 40px color-mix(in srgb,var(--fx) 40%,transparent);
  animation:combatSlash .5s ease-out forwards;
}
.combat-status{
  background:radial-gradient(circle,color-mix(in srgb,var(--fx) 55%,#fff) 0 14%,transparent 58%);
  animation:combatStatus .65s ease-out forwards;
}
.combat-burst>i,.combat-slash>i,.combat-status>i{
  position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3px;border-radius:50%;
  background:color-mix(in srgb,var(--fx) 70%,#fff);box-shadow:0 0 10px var(--fx);
  animation:combatSpark .55s ease-out forwards;
  transform:rotate(var(--a)) translateY(calc(var(--d) * -1));
}
.combat-ring{
  width:34px;height:34px;border:3px solid var(--fx);border-radius:50%;
  box-shadow:0 0 16px var(--fx),0 0 28px color-mix(in srgb,var(--fx) 40%,transparent);
  animation:combatRing .55s ease-out forwards;z-index:7;
}
.combat-ring.area{width:58px;height:58px;border-width:4px}
.combat-dmg{
  z-index:12;
  display:grid;justify-items:center;gap:1px;
  font:800 30px/1 var(--font-num,'DM Mono',monospace);color:#fff;
  text-shadow:
    0 0 10px var(--fx),
    0 3px 0 #000d,
    2px 2px 0 #000,
    -1px -1px 0 #0008;
  animation:combatDmg .95s cubic-bezier(.18,.85,.35,1.05) forwards;
  white-space:nowrap;
  filter:drop-shadow(0 4px 6px #000a);
}
.combat-dmg b{font:inherit;letter-spacing:.02em}
.combat-dmg small{
  display:block;margin-top:1px;
  font:700 11px var(--font-display,sans-serif);
  letter-spacing:.06em;text-transform:uppercase;
  color:#ffe28a;
  text-shadow:0 1px 0 #000c,0 0 8px #ffcb0588;
}
.combat-dmg-move{
  display:block;margin-bottom:2px;
  font:700 10px var(--font-display,sans-serif);
  letter-spacing:.05em;text-transform:uppercase;
  color:color-mix(in srgb,var(--fx) 75%,#fff);
  text-shadow:0 1px 0 #000c,0 0 8px var(--fx);
  font-style:normal;
}
.combat-dmg.super{
  color:#ffe566;font-size:36px;
  text-shadow:0 0 14px #ffcb05,0 0 24px #e3350d88,0 3px 0 #000d,2px 2px 0 #000;
  animation-name:combatDmgSuper;
}
.combat-dmg.super small{color:#ffd76a;font-size:12px}
.combat-dmg.resist{color:#c8d2e0;font-size:26px}
.combat-dmg.resist small{color:#aeb8c8}
.combat-dmg.status{
  color:var(--fx);font-size:18px;
}
.combat-dmg.status em{
  font:700 16px/1.1 var(--font-display,sans-serif);
  font-style:normal;letter-spacing:.04em;text-transform:uppercase;
  text-shadow:0 0 10px var(--fx),0 2px 0 #000c;
}
.combat-dmg.miss{color:#b7c0b8;font-size:24px}
.combat-dmg.miss small{color:#9aa3a0;font-size:10px}
@keyframes combatBurst{0%{opacity:1;transform:translate(-50%,-70%) scale(.3)}55%{opacity:1;transform:translate(-50%,-70%) scale(1.25)}100%{opacity:0;transform:translate(-50%,-70%) scale(1.55)}}
@keyframes combatSlash{0%{opacity:1;transform:translate(-50%,-70%) scale(.15) rotate(-28deg)}100%{opacity:0;transform:translate(-50%,-70%) scale(1.55) rotate(32deg)}}
@keyframes combatStatus{0%{opacity:.95;transform:translate(-50%,-70%) scale(.35)}100%{opacity:0;transform:translate(-50%,-70%) scale(1.8)}}
@keyframes combatSpark{0%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--d) * -2.4)) scale(.35)}}
@keyframes combatRing{0%{opacity:1;transform:translate(-50%,-70%) scale(.35)}100%{opacity:0;transform:translate(-50%,-70%) scale(2.6)}}
@keyframes combatDmg{
  0%{opacity:0;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(8px) scale(.55)}
  18%{opacity:1;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(-6px) scale(1.18)}
  55%{opacity:1;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(-22px) scale(1)}
  100%{opacity:0;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(-48px) scale(.92)}
}
@keyframes combatDmgSuper{
  0%{opacity:0;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(10px) scale(.4)}
  16%{opacity:1;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(-8px) scale(1.32)}
  50%{opacity:1;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(-26px) scale(1.05)}
  100%{opacity:0;transform:translate(calc(-50% + var(--dmg-x,0px)),-70%) translateY(-56px) scale(.95)}
}
@media(max-width:720px){
  .route-map-world{width:2220px}
  .route-combat-hud{right:7px;top:7px;width:155px}
  .wild-actor img,.route-map-world .route-partner img,.city-map-world .city-partner img{width:100px;height:100px}
  .route-map-world .route-trainer img{width:108px;height:108px}
  .combat-sprite-fx img{width:60px;height:60px}
  .combat-missile-fx img{width:44px;height:44px}
  .combat-dmg{font-size:24px}
  .combat-dmg.super{font-size:28px}
}
.drop-bag-card{margin-top:10px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#101f18}
.drop-bag-heading{display:flex;justify-content:space-between;align-items:center}
.drop-bag-heading small{font:500 7px DM Mono;color:#73877b;letter-spacing:1px}
.drop-bag-heading span{font:500 9px DM Mono;color:#8da096}
.drop-bag-heading b{color:#f4cd56;font-weight:500}
.drop-bag{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:10px}
.drop-bag-item{position:relative;display:grid;place-items:center;height:40px;background:#0a1510;border:1px solid #29382f;border-radius:5px}
.drop-bag-item em{position:absolute;right:2px;bottom:2px;font:600 8px DM Mono;font-style:normal;color:#dce8df;background:#09130fd9;padding:1px 4px;border-radius:3px}
.drop-bag-empty{grid-column:1/-1;font-size:8px;line-height:1.55;color:#64786d;border:1px dashed #2b4034;border-radius:5px;padding:10px;text-align:center}
.drop-bag-tip{display:block;margin-top:9px;font-size:7px;color:#64786d}
