/* Paint the first in-between before replacing the original combat model. */
.combatant.defeating{z-index:4;filter:none!important}
.combatant.defeating .combatant-art,.combatant.defeating.knocked-out .combatant-art{animation:none!important;transform:none!important}
.combatant.defeating .pose-shell{visibility:hidden;animation:none!important}
.combatant.defeating .body-zone{display:none}
.combatant.defeating .fighter-label{opacity:.25;transition:opacity 1.4s}
.defeat-rig{position:absolute;left:50%;bottom:var(--ko-bottom);width:var(--ko-size);height:var(--ko-size);transform:translateX(-50%);z-index:3;pointer-events:none;opacity:1}
.defeat-mirror,.defeat-effects{position:absolute;inset:0}
.defeat-mirror{transform:scaleX(var(--face))}
.defeat-canvas{position:absolute;left:-40%;top:-15%;width:180%;height:130%;transform:translateX(calc(var(--ko-shift)*var(--face)));opacity:1;filter:drop-shadow(0 2px 2px #0004)}
.defeat-mouth-stain{position:absolute;width:max(5px,1.6%);height:max(2.8px,.9%);background:linear-gradient(160deg,#d14c4a,#8e1424 65%,#5e101b);border-radius:45% 55% 65% 35%;transform:translate(-50%,-50%);box-shadow:0 .5px 1px #310910a6;pointer-events:none}
.defeat-mouth-stain::after{content:'';position:absolute;left:45%;top:45%;width:2.4px;height:var(--mouth-drip,0px);opacity:var(--drip-opacity,0);border-radius:20% 35% 50% 50%;background:linear-gradient(90deg,#7a1021,#c93e43 55%,#8e1424);transform-origin:top;pointer-events:none}
.defeat-effects{z-index:4;pointer-events:none}
.blood-particle{position:absolute;border-radius:45% 45% 55% 55%;background:radial-gradient(ellipse at 35% 28%,#e16c60 0%,#bb303b 30%,#791324 85%);box-shadow:0 .6px .8px #330a16b3;pointer-events:none;opacity:1}
.blood-particle[data-phase=ground]{background:radial-gradient(ellipse at 40% 38%,#bc3b40,#811622 65%,#5b0f1b);box-shadow:0 1px 1.5px #35091080;border-radius:60% 40% 65% 35%;opacity:.95}
.defeat-contact{position:absolute;left:calc(50% + var(--ko-shift));bottom:4%;width:calc(var(--ko-size)*.9);height:11px;z-index:1;pointer-events:none;transform:translateX(-50%) scaleX(.32);border-radius:50%;background:radial-gradient(ellipse,#0008 0%,#0004 40%,transparent 73%);filter:blur(3px);opacity:.6}
.defeat-dust{position:absolute;left:calc(50% + var(--ko-shift));bottom:4%;width:calc(var(--ko-size)*.86);height:17px;transform:translateX(-50%);background:radial-gradient(ellipse,#c6ab7970,transparent 70%);filter:blur(4px);z-index:4;pointer-events:none;opacity:0}
.battle-stage.finishing{box-shadow:inset 0 0 100px #080a0d65}
.finishing .victory-pose{transition:filter 1.5s;filter:brightness(.83)}
.finishing .versus-mark{opacity:0;transition:opacity .5s}
.animation-lab-actions{display:flex;flex-direction:column;gap:10px;min-width:220px}
@media(max-width:850px){.animation-lab-actions{width:100%}}
@media(max-width:560px){.defeat-contact{height:8px}.defeat-dust{height:12px}}
.reduced .defeat-dust{display:none}
@media(prefers-reduced-motion:reduce){.defeat-dust{display:none}}

.vega-ground-impact{animation:vega-floor-contact 260ms ease-out}
@keyframes vega-floor-contact{0%,100%{transform:translateY(0)}28%{transform:translateY(2px)}58%{transform:translateY(-1px)}}
.reduced .vega-ground-impact{animation:none}
@media(prefers-reduced-motion:reduce){.vega-ground-impact{animation:none}}

/* A lightweight, inspectable 2D sequence for every member of the roster. */
.defeat-intro{margin:0 0 24px;background:linear-gradient(110deg,#292120,#191a1e);border-color:#6e4e3c}
.defeat-intro h2{font-size:32px;letter-spacing:-.8px}.defeat-intro p{max-width:610px;line-height:1.8}
.defeat-beats{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:18px;color:#d0ac8f;font-size:10px;letter-spacing:.5px}
.defeat-timeline{grid-column:1/-1;width:100%;border-top:1px solid #ffffff12;padding-top:18px}
.defeat-timeline>label{display:flex;justify-content:space-between;font-size:12px;color:#bbb3af}
.defeat-timeline output{font-variant-numeric:tabular-nums;color:#edab71}
.defeat-timeline input{width:100%;accent-color:#edab71;margin:14px 0}
.defeat-timeline>div{display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:space-between}
.defeat-timeline .text-btn{font-size:11px;padding:8px 0}
.defeat-roster-section{margin:30px 0}.defeat-roster-section>.section-label{margin-bottom:14px}
.defeat-roster{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.defeat-roster-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:0 13px 13px;text-align:left;background:#191a1e;border:1px solid #ffffff12;border-radius:8px;color:#ddd8d2;cursor:pointer;overflow:hidden;transition:border-color .18s,background .18s}
.defeat-roster-card:hover,.defeat-roster-card:focus-visible{border-color:#d9a275;background:#292220;outline:none}
.defeat-roster-art{position:relative;display:block;align-self:stretch;height:116px;margin:0 -13px 12px;background:radial-gradient(ellipse at 50% 70%,#60453555,transparent 75%);overflow:hidden}
.defeat-roster-art .sprite{position:absolute;width:140px;height:210px;max-width:none;left:50%;top:2px;transform:translateX(-50%)}
.defeat-roster-name{font-size:16px;font-weight:600;letter-spacing:.2px}
.defeat-roster-card>small{display:block;min-height:30px;margin:5px 0 10px;font-size:10px;line-height:1.5;color:#99939c}
.defeat-roster-play{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:10px;color:#e7b181}
.defeat-switcher{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;width:100%;border-top:1px solid #ffffff12;padding-top:20px}
.defeat-switcher label{display:flex;flex-direction:column;gap:8px;flex:1;max-width:340px;min-width:180px;font-size:11px;color:#b4aca7}
.defeat-switcher select{width:100%;padding:12px;background:#111216;color:#e8dfd6;border:1px solid #ffffff1a;border-radius:5px;font:inherit;font-size:12px}
.defeat-switcher>span{margin-left:auto;padding:13px 0;font-size:10px;color:#9b9290;white-space:nowrap}
@media(max-width:1000px){.defeat-roster{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.defeat-roster{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.defeat-roster-card{padding:0 9px 11px}.defeat-roster-art{height:94px;margin:0 -9px 10px}.defeat-roster-art .sprite{width:120px;height:180px}.defeat-roster-name{font-size:14px}.defeat-roster-card>small{font-size:9px;min-height:28px}.defeat-switcher label{max-width:none}.defeat-switcher .btn{flex:1;white-space:nowrap}.defeat-switcher>span{padding:0}}
