/* Showdown particles, composited locally over Bruma's responsive battlefield. */
@import url('./battle-trainer-motion.css?v=1');
.battle-effects{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none;contain:layout style;isolation:isolate}
.battle-fx-particle{position:absolute;left:0;top:0;display:block;background-position:center;background-size:contain;background-repeat:no-repeat;filter:drop-shadow(0 0 5px var(--fx-color));will-change:transform,opacity}
.battle-fx-ring{position:absolute;left:0;top:0;display:block;border:3px solid var(--fx-color);border-radius:50%;box-shadow:0 0 12px var(--fx-color),inset 0 0 10px var(--fx-color);will-change:transform,opacity}
.battle-fx-ring.vertical{border-width:5px;clip-path:ellipse(30% 50% at 50% 50%)}
.battle-fx-beam{position:absolute;display:block;transform-origin:0 50%;border-radius:100%;background:linear-gradient(180deg,transparent,var(--fx-color) 20%,#fff 50%,var(--fx-color) 80%,transparent);box-shadow:0 0 14px var(--fx-color);will-change:transform,opacity}
.battle-fx-beam.electric{border-radius:0;background:#fff9ba;filter:drop-shadow(0 0 5px var(--fx-color));clip-path:polygon(0 45%,14% 35%,23% 0,34% 40%,48% 25%,57% 60%,70% 10%,80% 45%,100% 50%,79% 77%,70% 40%,57% 100%,47% 55%,32% 70%,23% 25%,15% 65%)}
.battle-fx-tint{position:absolute;inset:0;display:block}
.battle-fx-shield{position:absolute;width:115px;height:132px;border:3px solid #d5fcff;border-radius:45% 45% 50% 50%;background:radial-gradient(ellipse at 40% 25%,#fff9,#83e8ed18 60%,#9bfbffb8);box-shadow:0 0 20px #a1f3ff,inset 0 0 20px #c6faff;clip-path:polygon(50% 0,100% 22%,92% 73%,50% 100%,8% 73%,0 22%)}
.battle-move-callout{position:absolute;top:5px;left:50%;z-index:7;max-width:70%;padding:5px 14px;border:1px solid color-mix(in srgb,var(--fx-color),transparent 25%);border-radius:20px;background:#203043e8;box-shadow:0 3px 16px #152b3c30;color:#fff;font-size:11px;line-height:1.3;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;pointer-events:none}
.battle-playing .j-fighter-hud{z-index:5}
.battle-playing .bc-controls button:disabled,.battle-playing .bc-party button:disabled{cursor:wait}
.battle-cinematic-ball{--ball-size:24px;position:absolute;left:0;top:0;width:var(--ball-size);height:var(--ball-size);filter:drop-shadow(1px 3px 2px #0d223943);transform-origin:50% 100%;will-change:transform,opacity;z-index:3}
.battle-ball-body{position:absolute;inset:0;display:block;perspective:220px;transform-origin:50% 50%;will-change:transform}
.battle-ball-canvas{position:absolute;left:-50%;top:-50%;display:block;width:200%;height:200%;image-rendering:auto;pointer-events:none;z-index:3}
.battle-ball-rendered>.battle-ball-body{visibility:hidden}
.battle-ball-rendered>.battle-ball-gloss{display:none}
.battle-ball-top,.battle-ball-bottom{position:absolute;left:0;width:100%;height:50%;display:block;background-image:url('./assets/battle-fx/pokeball-hq.svg');background-size:100% 200%;background-repeat:no-repeat;backface-visibility:visible;will-change:transform;z-index:2}
.battle-ball-top{top:0;background-position:top;transform-origin:50% 100% calc(var(--ball-size)*-.5)}.battle-ball-bottom{bottom:0;background-position:bottom;transform-origin:50% 0}
.battle-ball-button{position:absolute;left:34%;top:34%;width:32%;height:32%;display:block;box-sizing:border-box;border:calc(var(--ball-size)*.056) solid #142237;border-radius:50%;background:radial-gradient(circle at 35% 26%,#fff 0 25%,#d4e0eb 65%,#829caf);box-shadow:0 1px 2px #07132380,inset 0 0 0 1px #f3fbff;z-index:4}
.battle-ball-button:before{content:'';position:absolute;inset:20%;border:1px solid #93aabd;border-radius:50%;background:linear-gradient(130deg,#fff,#c4d8e7)}
.battle-ball-lamp{position:absolute;inset:8%;display:block;border-radius:50%;opacity:0;background:#fff1b5;box-shadow:0 0 3px #fff,0 0 10px 3px #ffa846;z-index:2}
.battle-cinematic-ball.locked .battle-ball-lamp{background:#d4ffe7;box-shadow:0 0 3px #fff,0 0 9px 3px #6affba}
.battle-ball-gloss{position:absolute;inset:3%;display:block;border-radius:50%;background:radial-gradient(circle at 25% 20%,#ffffff30,transparent 37%);pointer-events:none;z-index:5}
.battle-ball-core{position:absolute;inset:19%;display:block;border-radius:50%;background:radial-gradient(circle,#fff 5%,#fff5fb 25%,#ffb7e1 45%,#e55aa788 65%,transparent 72%);box-shadow:0 0 15px #ff9dd3;opacity:0;z-index:1}
.battle-ball-aura{position:absolute;inset:-35%;display:block;border-radius:50%;background:radial-gradient(circle,#ffe7f966,transparent 65%);opacity:0;z-index:0}
.battle-cinematic-ball.locked .battle-ball-aura{background:radial-gradient(circle,#ffe3a566,transparent 65%)}
.battle-ball-shadow{position:absolute;height:9px;display:block;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#11283ddb,#11283d80 40%,transparent 72%);opacity:0;filter:blur(2px);z-index:1;will-change:transform,opacity,filter,left}
.battle-capture-focus{position:absolute;inset:0;display:block;z-index:0;pointer-events:none}
.battle-capture-stream{position:absolute;height:58px;display:block;transform-origin:0 50%;background:url('./assets/battle-fx/capture-stream.svg') center/100% 100% no-repeat;filter:drop-shadow(0 0 4px #ff9dd3);z-index:2;will-change:opacity,clip-path}
.battle-capture-mote{position:absolute;left:0;top:0;width:8px;height:8px;display:block;border-radius:50%;background:#fff4fc;box-shadow:0 0 6px 3px #ffb1df;z-index:2;will-change:transform,opacity}
.battle-capture-glint{position:absolute;width:15px;height:21px;display:block;background:linear-gradient(130deg,#fff9d2,#ffcf65);clip-path:polygon(50% 0,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0 50%,38% 37%);filter:drop-shadow(0 0 3px #fff0b6);z-index:4;will-change:transform,opacity}
.battle-release-halo{position:absolute;width:84px;height:84px;display:block;border-radius:50%;background:radial-gradient(circle,#fff 0 6%,#d7f6ffbb 14%,#83d4ef66 32%,transparent 65%);z-index:2;will-change:opacity,transform}
.battle-release-flow{position:absolute;height:20px;display:block;transform-origin:0 50%;background:linear-gradient(180deg,transparent,#b6ecff80 25%,#fff 50%,#b6ecff80 75%,transparent);clip-path:polygon(0 38%,100% 0,100% 100%,0 62%);filter:drop-shadow(0 0 3px #95dfff);z-index:2}
.battle-release-ground{position:absolute;width:100px;height:20px;display:block;border-radius:50%;border:1px solid #d3f5ff;background:radial-gradient(ellipse,transparent 55%,#b6eaff66 75%,transparent 80%);box-shadow:0 0 8px #bbecff55;z-index:1}
.battle-release-spark{position:absolute;display:block;width:2px;height:10px;border-radius:50%;background:linear-gradient(180deg,transparent,#effcff,#b1e9ff);box-shadow:0 0 3px #c2ecff;z-index:2}
.battle-cinematic-ball[data-energy="release"] .battle-ball-core{background:radial-gradient(circle,#fff 5%,#eafaff 25%,#a6e4ff 45%,#62bae788 65%,transparent 72%);box-shadow:0 0 12px #b2e8ff}
.battle-cinematic-ball[data-energy="release"] .battle-ball-aura{background:radial-gradient(circle,#c9f3ff66,transparent 65%)}
.battle-cinematic-trainer{position:absolute;display:grid;place-items:center;z-index:2;transform-origin:50% 80%;will-change:transform,opacity}
.battle-cinematic-trainer>img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 4px 0 #284a4a30)}
.battle-trainer-throw{display:block;width:100%;height:100%;background-image:url('./assets/protagonist-v1/throw.png');background-size:100% 600%;background-position:0 0;image-rendering:pixelated;filter:drop-shadow(0 3px 0 #284a4a30)}
@media(max-width:600px){.battle-move-callout{top:7px;font-size:10px;padding:5px 11px}.battle-fx-shield{width:90px;height:105px}}
@media(prefers-reduced-motion:reduce){.battle-effects{display:none}}
