:root{
  --bg:#0f1226;
  --bg2:#1a1040;
  --panel:#1e2142;
  --panel2:#262a52;
  --text:#ffffff;
  --muted:#c7c9e8;
  --yellow:#ffd21f;
  --yellow2:#ffb800;
  --red:#ff4757;
  --pink:#ff6b81;
  --green:#2ed573;
  --cyan:#00d2ff;
  --ring:#ffffff;
  
  --vvh:100dvh;
  --vvoff:0px;
  
  --beat-ms:652ms;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:"M PLUS Rounded 1c",system-ui,-apple-system,sans-serif;overscroll-behavior:none}
body{height:var(--vvh,100dvh);min-height:0;overflow:hidden;display:flex;justify-content:center;background:radial-gradient(800px 500px at 50% -10%, #3b2a8a 0%, transparent 60%), linear-gradient(180deg,#171738 0%, #0f1226 55%, #0a0c1e 100%)}
button{font-family:inherit}
.app{width:100%;max-width:480px;height:var(--vvh,100dvh);margin-top:var(--vvoff,0px);display:flex;flex-direction:column;position:relative;overflow:hidden}

.fit-wrap{flex:0 0 auto;width:100%;display:flex;flex-direction:column;transform-origin:top center}

.ad-slot{flex:none;height:50px;background:rgba(255,255,255,.045);border-bottom:1px solid rgba(255,255,255,.07)}
.app.fit-measure{height:auto}
.app.fit-measure .fit-wrap{flex:0 0 auto}
.app.fit-measure .arena{flex:0 0 auto}

.spot{position:absolute;inset:0;pointer-events:none;opacity:.55;background:
  conic-gradient(from 180deg at 18% -10%, transparent 0deg, rgba(255,210,31,.18) 18deg, transparent 36deg),
  conic-gradient(from 180deg at 82% -10%, transparent 0deg, rgba(0,210,255,.16) 18deg, transparent 36deg)}

.hud{position:relative;z-index:3;padding:calc(6px + env(safe-area-inset-top)) 6px 4px}
.hud-bar{display:flex;align-items:center;gap:8px}
.hud-side{flex:1;display:flex;align-items:center;gap:8px;min-width:0}
.hud-side.rival{justify-content:flex-end}
.face-icon{flex:0 0 46px;width:46px;height:46px;border-radius:12px;border:2.5px solid rgba(255,255,255,.9);box-shadow:0 3px 0 rgba(0,0,0,.35);overflow:hidden;position:relative;background:#87b7ff}
.face-icon svg{display:block;width:100%;height:100%}
.hud-main{flex:1;min-width:0}
.hud-name{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:1px;font-weight:900;font-size:13px;letter-spacing:.1em;margin-bottom:4px;white-space:nowrap;height:32px}
.hud-name .hp-num{font-size:11px;color:var(--muted);letter-spacing:.02em;font-weight:800}
.hud-side.rival .hud-name{align-items:flex-end}
.hpbar{height:15px;background:rgba(0,0,0,.55);border:2px solid rgba(255,255,255,.85);border-radius:5px;overflow:hidden;transform:skewX(-14deg);display:flex}
.hpbar .hp-fill{height:100%;transition:width .25s ease}
.you-bar .hp-fill{background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 2px),rgba(10,20,60,.5) calc(20% - 2px) 20%),linear-gradient(180deg,#6fd3ff,#1e7bff)}
.rival-bar{justify-content:flex-end}
.rival-bar .hp-fill{background:linear-gradient(180deg,#ff9ec4,#ff5f9e)}
.rival-bar .hp-fill.low{background:linear-gradient(180deg,#ff5f7a,#e01e4f)}
.round-plate{flex:0 0 102px;background:#fff;clip-path:polygon(14% 0,86% 0,100% 50%,86% 100%,14% 100%,0 50%);padding:2.5px;filter:drop-shadow(0 3px 0 rgba(0,0,0,.35))}
.round-plate-in{background:#14142b;clip-path:polygon(14% 0,86% 0,100% 50%,86% 100%,14% 100%,0 50%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px 8px 6px}
.round-label{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:800}
.round-timer{font-size:20px;font-weight:900;line-height:1.05}
.hud-sub{margin-top:6px;display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:nowrap}

.hud-sub .bpm-chip{display:none}

.hud-sub .scorebox{display:none}
.label{font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--muted);text-transform:uppercase}
.scorebox{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.score-row{display:flex;align-items:baseline;gap:8px}
.score{font-size:22px;font-weight:900;line-height:1}
.purse{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.03em;white-space:nowrap}
.purse b{color:var(--yellow);font-weight:900}
.wallet-line{display:flex;justify-content:space-between;align-items:center;background:#f3f4ff;border:1.5px solid #e2e4ff;border-radius:14px;padding:10px 14px;margin-top:16px;font-weight:800;font-size:14px;color:#14142b}
.wallet-line b{font-size:20px;font-weight:900}
.wallet-line>span{flex:none}
.wallet-line>b{min-width:0;text-align:right;overflow-wrap:anywhere}
.combo{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:#fff;color:#111;padding:3px 14px 4px;border-radius:14px;font-weight:900;flex:none;height:40px;min-width:58px}
.combo-num{font-size:17px;line-height:1.05;font-weight:900}
.combo-label{font-size:9.5px;line-height:1.15;letter-spacing:.16em;font-weight:900}
.hud-sub .hype-row{flex:1 1 auto;min-width:0;margin-top:0}
.combo.hot{background:var(--yellow);color:#1a1400;box-shadow:0 0 0 4px rgba(255,210,31,.25)}
.bpm-chip{color:#fff;background:rgba(255,255,255,.12);padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}

.hype-row{display:flex;align-items:center;gap:8px;margin-top:8px}
.hype-label{font-size:11px;font-weight:900;letter-spacing:.06em;color:var(--muted);white-space:nowrap}
.hype-bar{position:relative;flex:1;height:10px;border-radius:99px;background:rgba(255,255,255,.13);border:1.5px solid rgba(255,255,255,.35);overflow:hidden}
.hype-bar::after{content:"";position:absolute;left:60%;top:0;bottom:0;width:2px;background:rgba(255,255,255,.65)}
.hype-fill{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,#ff9f43,#ff6b43);transition:width .25s ease}
.hype-row.hot .hype-bar{border-color:var(--yellow);box-shadow:0 0 10px rgba(255,170,0,.55)}
.hype-row.hot .hype-fill{background:linear-gradient(90deg,#ffd21f,#ff7b00,#ff4757)}
.hype-state{font-size:11px;font-weight:900;color:var(--yellow);white-space:nowrap}


.feint-row{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;height:18px;flex-wrap:nowrap;overflow:hidden;visibility:hidden;opacity:0}
.feint-row.show{visibility:visible;opacity:1}
.feint-row .feint-label,.feint-row .feint-stock{flex:none}
.feint-row .chance-state,.feint-row .shaken-state{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.feint-label{font-size:11px;font-weight:900;letter-spacing:.06em;color:var(--muted);white-space:nowrap}
.feint-stock{font-size:12px;font-weight:900;color:#9fd8ff;letter-spacing:.14em;white-space:nowrap}
.feint-stock.armed{color:var(--yellow);text-shadow:0 0 8px rgba(255,210,31,.8)}
.feint-row.armed .feint-stock{animation:stockPulse .7s ease-in-out infinite alternate}
@keyframes stockPulse{from{transform:scale(1)}to{transform:scale(1.09)}}
.chance-state{font-size:11px;font-weight:900;color:var(--yellow);white-space:nowrap}
.shaken-state{font-size:11px;font-weight:900;color:#ffb3c2;white-space:nowrap}

.chance-banner{position:absolute;top:150px;left:50%;transform:translateX(-50%) scale(.6);z-index:9;background:linear-gradient(180deg,#ffe45e,#ffb800);color:#231a00;font-weight:900;font-size:17px;letter-spacing:.04em;padding:6px 16px;border-radius:999px;border:2.5px solid #14142b;box-shadow:0 0 18px rgba(255,190,0,.75),0 4px 10px rgba(0,0,0,.4);opacity:0;pointer-events:none;white-space:nowrap}
.chance-banner.show{animation:tagPop .3s ease forwards}

.rush-panel{position:absolute;top:150px;left:50%;transform:translateX(-50%);z-index:10;background:linear-gradient(180deg,#ffe45e,#ffb800);color:#231a00;border:2.5px solid #14142b;border-radius:16px;padding:8px 18px 10px;text-align:center;box-shadow:0 0 22px rgba(255,190,0,.8),0 4px 10px rgba(0,0,0,.4);opacity:0;pointer-events:none;min-width:236px}
.rush-panel.show{opacity:1}
.rush-title{font-weight:900;font-size:18px;letter-spacing:.03em;white-space:nowrap}
.rush-sub{font-weight:900;font-size:13px;margin-top:2px;white-space:nowrap}
.rush-bar{height:8px;border-radius:99px;background:rgba(20,20,43,.25);margin-top:6px;overflow:hidden}
.rush-bar-fill{height:100%;width:100%;background:#d92f3e;border-radius:99px}
.fighter.rush-frozen{animation:none}

.serious-banner{position:absolute;top:196px;left:50%;transform:translateX(-50%) scale(.6);z-index:9;background:linear-gradient(180deg,#ff7043,#c62828);color:#fff;font-weight:900;font-size:17px;letter-spacing:.04em;padding:6px 16px;border-radius:999px;border:2.5px solid #14142b;box-shadow:0 0 20px rgba(255,60,30,.8),0 4px 10px rgba(0,0,0,.4);opacity:0;pointer-events:none;white-space:nowrap}
.serious-banner.show{animation:tagPop .3s ease forwards}

.beast-banner{position:absolute;top:196px;left:50%;transform:translateX(-50%) scale(.6);z-index:9;background:linear-gradient(180deg,#ffb03a,#e65100);color:#fff;font-weight:900;font-size:17px;letter-spacing:.04em;padding:6px 16px;border-radius:999px;border:2.5px solid #14142b;box-shadow:0 0 20px rgba(255,140,0,.8),0 4px 10px rgba(0,0,0,.4);opacity:0;pointer-events:none;white-space:nowrap}
.beast-banner.show{animation:tagPop .3s ease forwards}

.mode-banner{position:absolute;top:242px;left:50%;transform:translateX(-50%) scale(.6);z-index:9;background:linear-gradient(180deg,#ffe45e,#c07f04);color:#231a00;font-weight:900;font-size:16px;letter-spacing:.03em;padding:6px 16px;border-radius:999px;border:2.5px solid #14142b;box-shadow:0 0 20px rgba(255,190,0,.7),0 4px 10px rgba(0,0,0,.4);opacity:0;pointer-events:none;white-space:nowrap;max-width:94%}
.mode-banner.show{animation:tagPop .3s ease forwards}

.ougi-banner{position:absolute;top:100px;left:50%;transform:translateX(-50%);z-index:12;display:flex;align-items:center;gap:13px;background:linear-gradient(155deg,#262640 0%,#12121f 58%,#0a0a13 100%);color:#fff;padding:11px 26px 12px 15px;border:2.5px solid var(--ougi-c,#ffd21f);border-radius:10px;box-shadow:0 0 0 2px rgba(10,10,20,.85),0 0 26px var(--ougi-c,#ffd21f),0 10px 22px rgba(0,0,0,.55);opacity:0;pointer-events:none;max-width:94%;text-align:left}
.ougi-banner.show{animation:ougiSlam .38s cubic-bezier(.2,1.5,.35,1) forwards}
@keyframes ougiSlam{0%{opacity:0;transform:translateX(-50%) scale(1.7) rotate(-2deg)}55%{opacity:1;transform:translateX(-50%) scale(.96) rotate(.6deg)}100%{opacity:1;transform:translateX(-50%) scale(1) rotate(0deg)}}
@media (prefers-reduced-motion: reduce){.ougi-banner.show{animation:none;opacity:1}}
.ougi-icon{flex:none;width:44px;height:44px;border-radius:9px;background:linear-gradient(160deg,var(--ougi-c2,#ffe45e),var(--ougi-c,#ffb800));transform:rotate(45deg);display:grid;place-items:center;box-shadow:0 0 14px var(--ougi-c,#ffd21f),inset 0 0 0 2px rgba(20,20,43,.28)}
.ougi-icon-in{transform:rotate(-45deg);font-size:22px;line-height:1}
.ougi-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.ougi-kicker{font-size:11px;font-weight:900;letter-spacing:.34em;color:var(--ougi-c2,#ffe45e);white-space:nowrap}
.ougi-name{font-weight:900;font-size:23px;line-height:1.25;letter-spacing:.02em;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.4),0 0 14px var(--ougi-c,#ffd21f);white-space:nowrap}

.ougi-banner.og-gou{--ougi-c:#ff7043;--ougi-c2:#ffb03a}
.ougi-banner.og-hayate{--ougi-c:#35d0e8;--ougi-c2:#a5ecff}
.ougi-banner.og-jin{--ougi-c:#2ed3a6;--ougi-c2:#9df0d8}
.ougi-banner.og-ganji{--ougi-c:#c98d4b;--ougi-c2:#e8cba0}
.ougi-banner.og-ganzou{--ougi-c:#c9973f;--ougi-c2:#ecd096}
.ougi-banner.og-raiga{--ougi-c:#5eb2ff;--ougi-c2:#cfe8ff}
.ougi-banner.og-raijin{--ougi-c:#9d7bff;--ougi-c2:#d5c2ff}
.ougi-banner.og-kaiser{--ougi-c:#ffd21f;--ougi-c2:#ffef9e}
.ougi-banner.og-kaiserex{--ougi-c:#ff5252;--ougi-c2:#ffd21f}
.ougi-banner.og-zeus{--ougi-c:#ffeeb0;--ougi-c2:#ffffff}

.fighter.ougi-strike{filter:drop-shadow(0 0 20px var(--ougi-c,#ffd21f)) saturate(1.25)}

.bolt-fx{position:absolute;top:2px;left:50%;transform:translateX(-50%);font-size:58px;line-height:1;z-index:8;opacity:0;pointer-events:none;text-shadow:0 0 18px rgba(160,200,255,.95),0 0 34px rgba(90,140,255,.7)}
.bolt-fx.show{animation:boltFlicker .48s steps(2) infinite}
@keyframes boltFlicker{0%,100%{opacity:.15;transform:translateX(-50%) scale(.92)}50%{opacity:1;transform:translateX(-54%) scale(1.06)}}
@media (prefers-reduced-motion: reduce){.bolt-fx.show{animation:none;opacity:.9}}

.afterimage{position:absolute;width:150px;height:330px;z-index:2;pointer-events:none;border-radius:70px 70px 26px 26px;background:radial-gradient(circle at 50% 13%,rgba(190,200,255,.5) 0 30px,rgba(190,200,255,0) 31px),linear-gradient(180deg,rgba(170,180,240,.42),rgba(120,130,220,.15));animation:afterFade .6s ease-out forwards}

.crowd-req{display:none;position:absolute;top:288px;left:50%;transform:translateX(-50%);z-index:9;background:linear-gradient(180deg,#bfe6ff,#5aa7e8);color:#0d2c52;font-weight:900;font-size:14px;letter-spacing:.02em;padding:5px 14px;border-radius:999px;border:2.5px solid #14142b;box-shadow:0 0 16px rgba(90,167,232,.65),0 4px 10px rgba(0,0,0,.35);opacity:0;pointer-events:none;white-space:nowrap;max-width:94%;transition:opacity .25s}
.crowd-req.show{opacity:1}

#fighter.gou-fire{filter:drop-shadow(0 0 15px rgba(255,84,40,.85)) drop-shadow(0 0 5px rgba(255,170,60,.8))}

#fighter.clone-swap{transform:translateX(var(--clone-x,30px));transition:transform .16s ease}
#fighter.clone-real .eye .iris{background:#fff8d0;box-shadow:0 0 9px 4px rgba(255,244,170,.95)}
.afterimage.hayate-clone{opacity:.5}

.arena.final-round{box-shadow:inset 0 0 74px rgba(255,64,26,.38)}
.arena.final-round .crowd{filter:none}
.arena.final-round .person{box-shadow:inset 0 0 0 30px rgba(255,240,200,.13)} 
.arena.final-round .spot{opacity:.5}
.arena.final-round .ring-floor{filter:brightness(.92) sepia(.35) hue-rotate(-14deg)}
body.light-mode #fighter.gou-fire{filter:none}
body.light-mode .crowd-req{box-shadow:0 4px 10px rgba(0,0,0,.35)}
@keyframes afterFade{from{opacity:.85}to{opacity:0;transform:translateX(var(--ai-x,18px))}}
@media (prefers-reduced-motion: reduce){.afterimage{animation:none;opacity:0}}

.hirameki-banner{position:absolute;top:100px;left:50%;transform:translateX(-50%);z-index:11;display:flex;align-items:center;gap:13px;background:linear-gradient(155deg,#262640 0%,#12121f 58%,#0a0a13 100%);color:#fff;padding:11px 34px 12px 15px;border:2px solid var(--rar,#ffd21f);border-radius:10px;box-shadow:0 0 0 2px rgba(10,10,20,.85),0 0 20px color-mix(in srgb,var(--rar,#ffd21f) 55%,transparent),0 10px 22px rgba(0,0,0,.5);opacity:0;pointer-events:none;max-width:min(356px,94vw);overflow:hidden;text-align:left}
.hb-emblem{flex:none;width:42px;height:42px;border-radius:9px;background:linear-gradient(160deg,var(--rar-l,#ffe45e),var(--rar,#ffb800));transform:rotate(45deg);display:grid;place-items:center;box-shadow:0 0 14px color-mix(in srgb,var(--rar,#ffd21f) 75%,transparent),inset 0 0 0 2px rgba(20,20,43,.28)}
.hb-emblem-in{transform:rotate(-45deg);font-size:21px;line-height:1;filter:hue-rotate(var(--hue,0deg))}
.hb-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.hb-kicker{font-family:"Cinzel",serif;font-weight:700;font-size:10px;letter-spacing:.3em;color:var(--rar,#ffd21f);white-space:nowrap}
.hb-rarity{font-size:11px;font-weight:900;letter-spacing:.18em;color:var(--rar-l,#ffe45e);white-space:nowrap}
.hb-name{font-weight:900;font-size:21px;line-height:1.25;letter-spacing:.02em;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.4);white-space:normal;overflow-wrap:anywhere}
.hb-stripes{position:absolute;top:0;right:0;bottom:0;width:20px;background:repeating-linear-gradient(135deg,var(--rar,#ffd21f) 0 6px,transparent 6px 12px);opacity:.45;pointer-events:none}

.rar-1{--rar:#ffd94d;--rar-l:#fff0a0;--hue:0deg}
.rar-2{--rar:#3ddc74;--rar-l:#a9f2c2;--hue:58deg}
.rar-3{--rar:#3fa9f5;--rar-l:#a8dcff;--hue:140deg}
.rar-4{--rar:#c77dff;--rar-l:#ecd4ff;--hue:222deg}
.rar-5{--rar:#ffb800;--rar-l:#ffe45e;--hue:-6deg}

.hirameki-bulb{position:absolute;top:70px;left:50%;transform:translateX(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:5px;opacity:0;pointer-events:none}
.hirameki-bulb .hb2-bulb{font-size:68px;line-height:1;filter:hue-rotate(var(--hue,0deg)) saturate(1.15) drop-shadow(0 0 16px var(--rar,#ffd21f)) drop-shadow(0 4px 6px rgba(0,0,0,.35))}
.hirameki-bulb.rar-5 .hb2-bulb{filter:hue-rotate(var(--hue,0deg)) saturate(1.3) drop-shadow(0 0 26px var(--rar,#ffb800)) drop-shadow(0 0 7px rgba(255,255,255,.55)) drop-shadow(0 4px 6px rgba(0,0,0,.35))}
.hirameki-bulb .hb2-rarity{font-weight:900;font-size:13px;letter-spacing:.16em;color:#14142b;background:linear-gradient(160deg,var(--rar-l,#ffe45e),var(--rar,#ffb800));padding:3px 13px;border-radius:999px;border:2px solid rgba(10,10,20,.8);box-shadow:0 3px 8px rgba(0,0,0,.4);white-space:nowrap}
.hirameki-bulb.show{animation:bulbStage .85s ease forwards}
.hirameki-bulb.show .hb2-bulb{animation:bulbPop .85s cubic-bezier(.2,1.4,.4,1) forwards}
.hirameki-bulb.show .hb2-rarity{animation:bulbChip .85s ease forwards}
@keyframes bulbStage{0%{opacity:0}9%,84%{opacity:1}100%{opacity:0}}
@keyframes bulbPop{0%{transform:scale(.25) rotate(-14deg)}22%{transform:scale(1.3) rotate(5deg)}40%{transform:scale(.94) rotate(-2deg)}58%{transform:scale(1.07) rotate(0deg)}76%,100%{transform:scale(1) rotate(0deg)}}
@keyframes bulbChip{0%{opacity:0;transform:translateY(6px) scale(.7)}24%{opacity:1;transform:translateY(0) scale(1.08)}42%,100%{opacity:1;transform:translateY(0) scale(1)}}
@media (prefers-reduced-motion: reduce){
 .hirameki-bulb.show{animation:bulbStage .85s ease forwards}
 .hirameki-bulb.show .hb2-bulb,.hirameki-bulb.show .hb2-rarity{animation:none}
}

.hirameki-banner::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.55) 48%,rgba(255,255,255,.18) 56%,transparent 72%);transform:translateX(-140%);pointer-events:none}
.hirameki-banner.show{animation:hiramekiSlide 3s cubic-bezier(.25,.9,.3,1) forwards}
.hirameki-banner.show::after{animation:hiramekiShine 3s ease forwards}
.hirameki-banner.show .hb-emblem{animation:hbEmblemPop .55s cubic-bezier(.2,1.6,.4,1) .3s both}
@keyframes hiramekiSlide{
 0%{opacity:0;transform:translateX(110vw) rotate(1.6deg)}
 7%{opacity:1}
 11%{transform:translateX(calc(-50% - 16px)) rotate(-.7deg)}
 16%{transform:translateX(-50%) rotate(0deg)}
 20%{transform:translateX(calc(-50% + 4px)) rotate(0deg)}
 26%,84%{opacity:1;transform:translateX(-50%) rotate(0deg)}
 100%{opacity:0;transform:translateX(-50%) translateY(-12px) rotate(0deg)}
}
@keyframes hbEmblemPop{0%{transform:rotate(45deg) scale(.35)}55%{transform:rotate(45deg) scale(1.28)}100%{transform:rotate(45deg) scale(1)}}
@keyframes hiramekiShine{0%,6%{transform:translateX(-140%)}26%{transform:translateX(140%)}52%{transform:translateX(-140%)}72%,100%{transform:translateX(140%)}}
@media (prefers-reduced-motion: reduce){
 .hirameki-banner.show{animation:hiramekiFade 3s ease forwards}
 .hirameki-banner.show::after{animation:none}
 .hirameki-banner.show .hb-emblem{animation:none}
}
@keyframes hiramekiFade{0%{opacity:0}10%,84%{opacity:1}100%{opacity:0}}

.tech-list{display:flex;flex-direction:column;gap:14px;margin:14px 0 4px}

.tech-card{position:relative;border:2.5px solid var(--rar,#d8dbef);border-radius:16px;background:linear-gradient(165deg,#ffffff 0%,#eef0ff 100%);color:#14142b;overflow:hidden;box-shadow:0 0 0 2px rgba(20,20,43,.14),0 7px 16px rgba(20,20,60,.22);text-align:left}
.tech-card.rar-5{box-shadow:0 0 0 2px rgba(20,20,43,.2),0 0 18px rgba(255,184,0,.55),0 7px 16px rgba(20,20,60,.25)}
.tc-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 12px;background:linear-gradient(90deg,var(--rar-l,#e3e6f5),var(--rar,#c9cdea));border-bottom:2px solid rgba(20,20,43,.55)}
.tc-no{font-family:"Cinzel",serif;font-weight:700;font-size:11px;letter-spacing:.16em;color:#14142b;white-space:nowrap}
.tc-rarity{font-size:11px;font-weight:900;letter-spacing:.1em;color:#14142b;white-space:nowrap}
.tc-hits{font-size:11px;font-weight:900;color:#fff;background:#14142b;padding:2.5px 9px;border-radius:999px;white-space:nowrap}
.tc-art{background:radial-gradient(120px 70px at 50% 30%,#2b1030 0%,#0a0616 72%);border-bottom:2px solid rgba(20,20,43,.55);line-height:0}
.tc-art svg{display:block;width:100%;height:auto}
.tc-body{padding:10px 13px 12px}
.tc-name{font-size:19px;font-weight:900;letter-spacing:.02em;line-height:1.3}
.tc-desc{font-size:13px;line-height:1.55;margin:5px 0 0;color:#3c3f5e}
.tc-seq{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:9px}
.tc-chip{font-size:11.5px;font-weight:900;color:#1c56c4;background:#e3ecff;border:1.5px solid #b9cdf5;padding:2.5px 8px;border-radius:999px;white-space:nowrap}
.tc-arrow{font-size:11px;font-weight:900;color:#9aa0c5}
.tc-foot{margin-top:9px;padding-top:8px;border-top:1.5px dashed #c6c9e6;font-size:11px;font-weight:800;letter-spacing:.05em;color:#7a7fa3}

.tc-replay{margin-top:10px;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;border:2px solid #14142b;background:linear-gradient(160deg,var(--rar-l,#ffe45e),var(--rar,#ffd21f));color:#14142b;font-family:inherit;font-weight:900;font-size:13px;letter-spacing:.04em;cursor:pointer;box-shadow:0 3px 8px rgba(20,20,60,.25)}
.tc-replay:active{transform:scale(.97)}

.tc-sound{margin-top:10px;margin-left:8px;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:2px solid #ffd94d;background:#14142b;color:#ffd94d;font-family:inherit;font-weight:900;font-size:13px;letter-spacing:.04em;cursor:pointer;box-shadow:0 3px 8px rgba(20,20,60,.25)}
.tc-sound:active{transform:scale(.97)}

.tc-preview{margin-top:10px;margin-left:8px;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;border:2px solid #14142b;background:linear-gradient(160deg,#7ce7ff,#19b6e0);color:#08222e;font-family:inherit;font-weight:900;font-size:13px;letter-spacing:.04em;cursor:pointer;box-shadow:0 3px 8px rgba(20,20,60,.25)}
.tc-preview:active{transform:scale(.97)}

.tech-preview{position:absolute;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;padding:calc(14px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(8,8,24,.97),rgba(12,10,34,.99));overflow-y:auto}
.tech-preview[hidden]{display:none}
.tp-head{width:100%;max-width:420px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tp-title{min-width:0}
.tp-kicker{font-size:11px;font-weight:900;letter-spacing:.22em;color:#7ce7ff}
.tp-name{font-size:23px;font-weight:900;line-height:1.3;margin-top:2px;overflow-wrap:anywhere}
.tp-close{flex:none;padding:9px 15px;border-radius:999px;border:2px solid rgba(255,255,255,.65);background:rgba(255,255,255,.08);color:#fff;font-family:inherit;font-weight:900;font-size:13px;cursor:pointer}
.tp-close:active{transform:scale(.96)}
.tp-stagebox{flex:none;margin-top:12px;border-radius:16px;overflow:hidden;position:relative;background:radial-gradient(300px 210px at 50% 28%,rgba(120,140,255,.22),transparent 70%),linear-gradient(180deg,#171738 0 56%,#4a5f96 56.5%,#26355c 100%);box-shadow:0 0 0 2px rgba(255,255,255,.14),0 14px 30px rgba(0,0,0,.5)}
.tp-note{margin:12px 0 0;font-size:12.5px;font-weight:700;color:var(--muted);text-align:center;line-height:1.6;max-width:420px}
.tp-again{margin-top:12px;padding:11px 22px;border-radius:999px;border:2px solid #14142b;background:linear-gradient(160deg,#7ce7ff,#19b6e0);color:#08222e;font-family:inherit;font-weight:900;font-size:14px;letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.35)}
.tp-again:active{transform:scale(.97)}

.tech-filters{display:flex;flex-direction:column;gap:6px;margin:12px 0 2px}
.tf-row{display:flex;flex-wrap:wrap;gap:5px}
.tf-btn{font-size:11px;font-weight:800;letter-spacing:.02em;color:#3c3f5e;background:#eef0ff;border:1.5px solid #c6c9e6;border-radius:999px;padding:5px 10px;cursor:pointer;white-space:nowrap}
.tf-btn.on{background:#14142b;color:#ffd94d;border-color:#14142b}
.tf-btn:active{transform:scale(.96)}
.tech-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.tech-card.mini{border-width:1.5px;border-radius:10px;cursor:pointer;box-shadow:0 0 0 1.5px rgba(20,20,43,.12),0 3px 7px rgba(20,20,60,.18)}
.tech-card.mini.rar-5{box-shadow:0 0 0 1.5px rgba(20,20,43,.18),0 0 9px rgba(255,184,0,.55),0 3px 7px rgba(20,20,60,.2)}
.tech-card.mini.sel{outline:3px solid #ffb800;outline-offset:1px}
.tech-card.mini .tc-head{padding:3px 5px;gap:3px;border-bottom-width:1px}
.tech-card.mini .tc-no{font-size:7.5px;letter-spacing:.05em}
.tech-card.mini .tc-hits{font-size:7.5px;padding:1px 5px}
.tech-card.mini .tc-rarity{font-size:7.5px;letter-spacing:0}
.tech-card.mini .tc-art{border-bottom-width:1px}
.tech-card.mini .tc-fx{font-size:7.5px;padding:1px 5px;top:4px;right:4px;letter-spacing:.04em}
.tech-card.mini .tc-body{padding:5px 5px 6px}
.tech-card.mini .tc-name{font-size:10px;line-height:1.3;min-height:26px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tech-card.mini .tc-mini-meta{margin-top:2px;line-height:1.2}
.tech-card.mini .tc-meta{margin-top:3px}
.tech-card.mini .tc-cat{font-size:7.5px;padding:1px 5px;letter-spacing:.02em}
.tech-detail{margin-top:12px}
.tech-detail-hint{margin:0;padding:10px 12px;border:1.5px dashed #c6c9e6;border-radius:12px;background:#f4f5fd;color:#7a7fa3;font-size:12px;font-weight:700;line-height:1.55}
.tech-empty{margin:6px 0 0;padding:14px 12px;border-radius:12px;background:#eef0ff;color:#3c3f5e;font-size:13px;font-weight:800;text-align:center}

.tech-cat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 2px 0;padding:9px 14px;border-radius:12px;color:#fff;background:linear-gradient(90deg,var(--catbg,#39415e),rgba(20,20,43,.12) 125%);border-left:6px solid var(--catc,#8a90b8);box-shadow:0 4px 10px rgba(20,20,60,.25)}
.tech-cat-head:first-child{margin-top:2px}
.tch-name{font-size:17px;font-weight:900;letter-spacing:.06em}
.tch-count{font-size:12px;font-weight:900;background:rgba(0,0,0,.38);padding:3px 10px;border-radius:999px;white-space:nowrap}
.tech-synergy{margin:10px 2px 2px;padding:10px 14px;border-radius:12px;background:rgba(255,210,31,.10);border:1.5px solid rgba(217,164,22,.55);font-weight:800;font-size:13.5px;line-height:1.6}
.tsyn-grand{font-weight:900;color:#b8860b}
.tsyn-note{font-weight:900;color:#1a7f37}
.tch-master{display:inline-block;font-size:12px;font-weight:900;background:linear-gradient(160deg,#191c33,#0a0c1a);color:#fdf6df;padding:3px 10px;border:1.5px solid #c39a35;border-radius:3px;clip-path:polygon(5px 0,calc(100% - 5px) 0,100% 5px,100% calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,0 calc(100% - 5px),0 5px);margin-left:8px;white-space:nowrap;vertical-align:2px}
.tech-cat-head.mastered{box-shadow:0 0 0 2px rgba(255,200,40,.8),0 4px 10px rgba(20,20,60,.25)}
.cat-basic{--catc:#7d8aa5;--catbg:#39415e}
.cat-body{--catc:#e07b39;--catbg:#6e3410}
.cat-fire{--catc:#ff5a1f;--catbg:#7a1e05}
.cat-gold{--catc:#f2b01e;--catbg:#7a5a06}
.cat-fusion{--catc:#ff8a3c;--catbg:#6e2a10}
.cat-final{--catc:#ffd94d;--catbg:#14142b}
.cat-secret{--catc:#e0345b;--catbg:#3d0a1c}
.tc-cat{font-size:10.5px;font-weight:900;letter-spacing:.08em;color:#fff;background:var(--catc,#7d8aa5);padding:2.5px 9px;border-radius:999px;white-space:nowrap}
.tc-meta{margin-top:6px}
.tc-art{position:relative}
.tc-fx{position:absolute;top:8px;right:8px;z-index:2;font-size:11px;font-weight:900;letter-spacing:.1em;color:#fff;padding:3px 10px;border-radius:999px;background:rgba(10,8,20,.72);border:1.5px solid rgba(255,255,255,.5)}
.tc-fx.fx-fire{background:linear-gradient(120deg,#a81e02,#ff5a1f)}
.tc-fx.fx-gold{background:linear-gradient(120deg,#8a5c00,#f2b01e);color:#241a00}
.tc-fx.fx-fusion{background:linear-gradient(120deg,#a81e02,#ff5a1f 45%,#f2b01e)}
.tech-card.catcard-body{border-color:#e07b39}
.tech-card.catcard-fire{border-color:#ff7a3c}
.tech-card.catcard-gold{border-color:#e8ae1e}
.tech-card.catcard-fusion{border-color:#ff8a3c}
.tech-card.catcard-final{border-color:#14142b;box-shadow:0 0 0 2px rgba(255,210,31,.65),0 7px 16px rgba(20,20,60,.3)}
.tech-card.catcard-secret{border-color:#14142b;box-shadow:0 0 0 2px rgba(224,52,91,.6),0 7px 16px rgba(20,20,60,.3)}
.tech-card.locked .tc-art{filter:saturate(.35) brightness(.72)}
.hirameki-replay-layer{position:fixed;inset:0;z-index:400;pointer-events:none}
.tech-card.locked{border-color:#c3c7dd;background:linear-gradient(165deg,#eceef7 0%,#dde0ef 100%);box-shadow:0 0 0 2px rgba(20,20,43,.08),0 5px 12px rgba(20,20,60,.14)}
.tech-card.locked .tc-head{background:linear-gradient(90deg,#c9cde0,#a9adc4)}
.tech-card.locked .tc-name,.tech-card.locked .tc-desc{color:#8a8fa8}
.tech-card.locked .tc-chip{color:#8a8fa8;background:#e6e8f2;border-color:#c9cde0}

.fighter.chance-time{filter:drop-shadow(0 0 13px rgba(255,200,20,.9))}

.fighter.shaken .head{animation:shakenHead .26s linear infinite}
@keyframes shakenHead{0%,100%{translate:0 0}25%{translate:calc(var(--shake-amp,2)*-1px) 0}75%{translate:calc(var(--shake-amp,2)*1px) 0}}
.fighter.shaken .iris{transform:translate(-68%,-50%)}

.fighter.chance-stagger{animation:staggerWob .9s ease}
@keyframes staggerWob{0%{transform:translate(0,0)}22%{transform:translate(-3px,1px)}48%{transform:translate(2px,0)}72%{transform:translate(-1px,0)}100%{transform:translate(0,0)}}

.fighter.power-stagger{animation:powerStag .72s ease}
@keyframes powerStag{0%{transform:translate(0,0) rotate(0deg)}18%{transform:translate(calc(var(--stag,1)*-4px),2px) rotate(calc(var(--stag,1)*-.7deg))}42%{transform:translate(calc(var(--stag,1)*3px),1px) rotate(calc(var(--stag,1)*.5deg))}64%{transform:translate(calc(var(--stag,1)*-2px),1px) rotate(calc(var(--stag,1)*-.3deg))}100%{transform:translate(0,0) rotate(0deg)}}
@media (prefers-reduced-motion: reduce){.fighter.power-stagger{animation:none}}

.arena{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 6px 4px;touch-action:none;user-select:none;cursor:pointer;overflow:hidden;background:radial-gradient(430px 300px at 50% 36%, rgba(120,140,255,.15), transparent 70%)}


.ring-floor{position:absolute;left:50%;top:calc(42% + 62px);bottom:-40px;transform:translateX(-50%);width:158%;background:linear-gradient(180deg,#4a5f96 0%,#35497a 45%,#26355c 100%);clip-path:polygon(1.5% 0,98.5% 0,100% 100%,0 100%);pointer-events:none;z-index:1}
.ring-floor::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 46% 34% at 50% 43%, rgba(255,255,255,.20), transparent 70%)}
.ring-floor::after{content:"";position:absolute;left:50%;top:25%;transform:translateX(-50%);width:120px;height:44px;border:3px solid rgba(255,255,255,.20);border-radius:50%}

.crowd{position:absolute;top:0;left:0;right:0;height:132px;z-index:0;overflow:hidden;pointer-events:none;background:linear-gradient(180deg, rgba(5,6,18,.55), rgba(5,6,18,0) 85%);-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent 98%);mask-image:linear-gradient(180deg,#000 62%,transparent 98%)}
.crowd-row{display:flex;justify-content:space-between;padding:0 6px;margin-top:15px}
.crowd-row:first-child{margin-top:16px}
.person{position:relative;flex:0 0 auto;width:21px;height:27px;border-radius:9px 9px 4px 4px;animation:crowdSway 2.8s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
.person::before{content:"";position:absolute;top:-9px;left:50%;transform:translateX(-50%);width:12px;height:12px;border-radius:50%;background:var(--skin,#f2c79b)}
.person .arm{position:absolute;top:9px;width:5px;height:15px;border-radius:3px;background:inherit;opacity:0;transition:opacity .25s ease,transform .25s ease}
.person .arm.l{left:-4px;transform:rotate(24deg)}
.person .arm.r{right:-4px;transform:rotate(-24deg)}
@keyframes crowdSway{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-2px) rotate(1deg)}}
@keyframes crowdBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes crowdJump{0%,100%{transform:translateY(0)}35%{transform:translateY(-12px)}65%{transform:translateY(-4px)}}
.arena[data-crowd="1"] .person{animation:crowdBounce .5s ease-in-out infinite;animation-delay:var(--d,0s)}
.arena[data-crowd="2"] .person{animation:crowdJump .42s ease-in-out infinite;animation-delay:var(--d,0s)}
.arena[data-crowd="3"] .person{animation:crowdJump .3s ease-in-out infinite;animation-delay:var(--d,0s)}
.arena[data-crowd="2"] .person .arm,.arena[data-crowd="3"] .person .arm{opacity:1}
.arena[data-crowd="2"] .person .arm.l,.arena[data-crowd="3"] .person .arm.l{transform:rotate(158deg)}
.arena[data-crowd="2"] .person .arm.r,.arena[data-crowd="3"] .person .arm.r{transform:rotate(-158deg)}
.cheer{position:absolute;z-index:7;background:#fff;color:#14142b;font-weight:900;font-size:12px;padding:5px 11px;border-radius:999px;box-shadow:0 4px 10px rgba(0,0,0,.35);pointer-events:none;white-space:nowrap;animation:cheerUp 1.15s ease-out forwards}
.cheer.sad{background:#3a3f5e;color:#cfd3f5}
@keyframes cheerUp{0%{opacity:0;transform:translateY(8px) scale(.8)}18%{opacity:1;transform:translateY(0) scale(1.05)}30%{transform:scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(-16px)}}


.ropes{position:absolute;left:2px;right:2px;top:68px;height:calc(42% - 6px);z-index:2;pointer-events:none}
.post{position:absolute;top:0;width:13px;height:100%;border-radius:7px;box-shadow:0 0 0 2px rgba(0,0,0,.25)}
.post.left{left:0;background:linear-gradient(90deg,#e0483e,#a5221a)}
.post.right{right:0;background:linear-gradient(90deg,#3f6fd8,#274b9e)}
.post::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:19px;height:19px;border-radius:50%;background:#d8dbe8;border:2px solid rgba(0,0,0,.3)}
.rope{position:absolute;left:12px;right:12px;height:7px;border-radius:99px;box-shadow:0 2px 4px rgba(0,0,0,.45)}
.rope::before,.rope::after{content:"";position:absolute;top:-3px;width:9px;height:13px;background:#9aa0b5;border-radius:2px}
.rope::before{left:-4px}.rope::after{right:-4px}
.rope.r1{top:8px;background:linear-gradient(180deg,#ff6a5e,#d63a30)}
.rope.r2{top:78px;background:linear-gradient(180deg,#ffffff,#cfd2e0)}
.rope.r3{top:148px;background:linear-gradient(180deg,#5b86e8,#3560bd)}

.stage{position:relative;width:352px;height:468px;--hxl:0px;--hxr:0px;--hyl:0px;--hyr:0px}


.board-lanes{position:absolute;top:0;bottom:0;left:50%;width:calc(min(100vw,480px)*1.3);transform:translateX(-50%);z-index:2;pointer-events:none;opacity:0;transition:opacity .18s ease}
.board-lanes.active{opacity:1}
.lane{position:absolute;top:0;height:76%;width:50%;background:linear-gradient(180deg, rgba(8,12,34,.30) 0, rgba(8,12,34,0) 42%, rgba(255,255,255,.10) 100%),linear-gradient(90deg, rgba(255,255,255,.38) 0, rgba(255,255,255,.38) 2px, rgba(255,255,255,.10) 2px, rgba(255,255,255,.17) 50%, rgba(255,255,255,.10) calc(100% - 2px), rgba(255,255,255,.38) calc(100% - 2px));transition:opacity .18s ease}
.lane-l{left:0;clip-path:polygon(76.9% 0,89.2% 0,95.4% 35%,98.5% 70%,100% 100%,0 100%,13.8% 70%,38.5% 35%)}
.lane-r{right:0;clip-path:polygon(10.8% 0,23.1% 0,61.5% 35%,86.2% 70%,100% 100%,0 100%,1.5% 70%,4.6% 35%)}

.lane-c{left:25%;display:none;clip-path:polygon(43.85% 0,56.15% 0,78.45% 35%,92.35% 70%,100% 100%,0 100%,7.65% 70%,21.55% 35%)}
.board-lanes[data-side="L"] .lane-r,.board-lanes[data-side="R"] .lane-l{opacity:.38}
.lz{position:absolute;left:0;width:100%}
.lz-dodge-e,.lz-dodge-l{background:rgba(34,211,238,.5)}
.lz-counter-e,.lz-counter-l{background:rgba(255,110,180,.55)}
.lz-critical{background:linear-gradient(180deg,#ffedb0,#ffc81f);box-shadow:0 0 18px rgba(255,200,31,.9),0 0 36px rgba(255,170,0,.45)}
.lane-hit{position:absolute;left:0;width:100%;height:3px;background:#fff;box-shadow:0 0 10px rgba(255,255,255,.9);transform:translateY(-50%)}

.lane-bar{position:absolute;left:0;top:0;width:100%;height:10px;border-radius:99px;background:linear-gradient(180deg,#fff6c8 0%,#ffe97a 34%,#ffd21f 68%,#f0a500 100%);box-shadow:0 0 14px rgba(255,210,31,.85),0 0 34px rgba(255,170,0,.45),inset 0 1px 0 rgba(255,255,255,.85);opacity:0;will-change:transform;transform-origin:0 0}
.board-lanes[data-side="L"] .lane-l .lane-bar,.board-lanes[data-side="R"] .lane-r .lane-bar{opacity:1}
.lane-bar.feint{background:linear-gradient(180deg,#ffd3e8 0%,#ff7ac0 34%,#ff2e7e 68%,#d6006d 100%);box-shadow:0 0 16px rgba(255,46,126,.9),0 0 36px rgba(255,46,126,.5),inset 0 1px 0 rgba(255,255,255,.7)}


.board-lanes.ougi-combo .lane-l,.board-lanes.ougi-combo .lane-r{display:none}
.board-lanes.ougi-combo .lane-c{display:block;opacity:1}
.board-lanes.ougi-combo .lane-c .lane-bar{opacity:1}

.lane-bar.next-hit{filter:brightness(1.42) saturate(1.3)}
.lb-no{position:absolute;left:0;top:0;z-index:3;display:none;background:#14142b;color:#ffe97a;font-size:11px;font-weight:900;line-height:1;padding:3px 7px;border-radius:999px;border:1.5px solid rgba(255,233,122,.9);white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.45);will-change:transform}
.lane-bar.next-hit ~ .lb-no{display:block}
.lane-queue{position:absolute;inset:0;pointer-events:none}
.lane-qbar{position:absolute;height:4px;border-radius:99px;background:linear-gradient(180deg,rgba(255,240,180,.75),rgba(255,200,31,.55));opacity:.65;box-shadow:0 0 10px rgba(255,200,31,.6),0 0 24px rgba(255,170,0,.32)}
.lane-qbar .qb-no{position:absolute;left:50%;bottom:calc(100% + 2px);transform:translateX(-50%);font-size:9px;font-weight:900;line-height:1.3;color:rgba(255,240,190,.95);background:rgba(10,12,30,.55);padding:1px 5px;border-radius:999px;white-space:nowrap}

.board-lanes.ougi-combo .lz-dodge-e,.board-lanes.ougi-combo .lz-counter-e,.board-lanes.ougi-combo .lz-counter-l,.board-lanes.ougi-combo .lz-dodge-l{background:transparent;box-shadow:none}


.app.flurry-live .spot{opacity:.3}
.arena.flurry-live .crowd{opacity:0}
.arena.flurry-live .ropes{opacity:0}
.arena.flurry-live .ring-floor{opacity:0}
.arena.flurry-live .dust,.arena.flurry-live .fg-blur{opacity:.25}
.arena.flurry-live .second,.arena.flurry-live .second-bubble{opacity:.35}
.arena.flurry-live .venue-sign{opacity:.35}
.arena.flurry-live .cheer{opacity:0}
.app.flurry-live .weak-memo-pop{opacity:0}

.arena.flurry-live .fighter .head,
.arena.flurry-live .fighter .neck,
.arena.flurry-live .fighter .body,
.arena.flurry-live .fighter .trunks,
.arena.flurry-live .fighter .legs,
.arena.flurry-live .fighter .cape,
.arena.flurry-live .fighter .hook-streak{opacity:.35}
.arena.flurry-live .player{opacity:.35}

.arena.flurry-live .fighter.pt-jab .glove.right,
.arena.flurry-live .fighter.pt-straight .glove.left,
.arena.flurry-live .fighter.pt-hook-l .glove.right,
.arena.flurry-live .fighter.pt-hook-r .glove.left,
.arena.flurry-live .fighter.pt-upper-l .glove.right,
.arena.flurry-live .fighter.pt-upper-r .glove.left,
.arena.flurry-live .fighter.pt-smash-l .glove.right,
.arena.flurry-live .fighter.pt-smash-r .glove.left,
.arena.flurry-live .fighter.pt-chop-r .glove.right{opacity:.35}



.fighter.flurry-drive{transition:none !important}
.fighter.flurry-drive .glove{transition:none !important}
.fighter.flurry-drive.strike.pt-hook-l .glove.left,
.fighter.flurry-drive.strike.pt-hook-r .glove.right{animation:none !important}
.fighter.flurry-drive.strike.pt-hook-l .glove.left::before,
.fighter.flurry-drive.strike.pt-hook-r .glove.right::before,
.fighter.flurry-drive.strike.pt-hook-l .glove.left::after,
.fighter.flurry-drive.strike.pt-hook-r .glove.right::after{animation-duration:calc(.32s * var(--flurry-inv,1))}

.arena.flurry-live .player .p-glove .glove-svg,
.arena.flurry-live .player .p-glove .elem-fx .fl,
.arena.flurry-live #fighter .gspark i,
.arena.flurry-live .person,
.arena.flurry-live .dust i,
.arena.flurry-live .second,
.arena.flurry-live .cheer,
.arena.flurry-live #fighter.opp-ganji.is-ganji.serious .bindi{animation-play-state:paused}

.arena.q-fx2 .player .p-glove .glove-svg,
.arena.q-fx2 .player .p-glove .elem-fx .fl,
.arena.q-fx2 #fighter .gspark i,
.arena.q-fx3 .player .p-glove .glove-svg,
.arena.q-fx3 .player .p-glove .elem-fx .fl,
.arena.q-fx3 #fighter .gspark i{animation-play-state:paused}

.arena.q-fx1 .dust i{animation-play-state:paused}
.arena.q-fx2 .person{animation-play-state:paused}
.arena.q-fx2 .fg-blur{display:none}
.arena.q-fx3 #fighter .glove{filter:none}
.arena.q-fx3 .player.fx-fire .p-glove.left .glove-svg,.arena.q-fx3 .player.fx-fire .p-glove.right .glove-svg,.arena.q-fx3 .player.fx-gold .p-glove.left .glove-svg,.arena.q-fx3 .player.fx-gold .p-glove.right .glove-svg,.arena.q-fx3 .player.fx-fusion .p-glove.left .glove-svg,.arena.q-fx3 .player.fx-fusion .p-glove.right .glove-svg{filter:none}


.fighter{position:absolute;top:6px;left:50%;margin-left:-102px;z-index:3;width:204px;height:462px;display:flex;flex-direction:column;align-items:center;transition:transform .16s cubic-bezier(.25,.9,.3,1);animation:bob calc(var(--beat-ms)*2) ease-in-out infinite alternate;will-change:transform}
.f-shadow{position:absolute;left:50%;bottom:-2px;width:150px;height:212px;transform:translateX(-50%) scaleY(.62);transform-origin:50% 100%;z-index:-1;pointer-events:none;color:rgba(6,9,20,.40)}
.f-shadow svg{position:absolute;inset:0;width:100%;height:100%}
.f-shadow .fsh-fall{display:none}
.fighter.down .f-shadow{width:264px;height:96px;transform:translateX(-50%) scaleY(.82);color:rgba(6,9,20,.34)}
.fighter.down .f-shadow .fsh-stand{display:none}
.fighter.down .f-shadow .fsh-fall{display:block}
.fighter.down.deep .f-shadow{width:286px}
@keyframes bob{from{transform:translateY(0) rotate(-1.4deg) scale(1)}to{transform:translateY(-7px) rotate(1.4deg) scale(1.012)}}

.fighter.attacking{animation:none}
.fighter.wind{transform:translateY(-12px) translateX(10px) rotate(5deg) scale(.94);transition:transform .45s cubic-bezier(.3,.6,.3,1)}
.fighter.strike{transform:translateY(30px) translateX(-8px) rotate(-4deg) scale(1.19);transition:transform .07s cubic-bezier(.55,.06,.68,.19)}
.fighter .glove{transition:transform .13s cubic-bezier(.3,1.3,.4,1)}

.fighter.guard-down .glove{transform:translateY(13px);transition:transform .3s ease}

.fighter.guard-belly:not(.down):not(.wind):not(.strike):not(.whiff) .glove{transition:transform .3s ease}
.fighter.guard-belly:not(.down):not(.wind):not(.strike):not(.whiff) .glove.left{transform:translate(30px,48px) rotate(-6deg) scale(.96)}
.fighter.guard-belly:not(.down):not(.wind):not(.strike):not(.whiff) .glove.right{transform:translate(-30px,48px) rotate(6deg) scale(.96)}
.fighter.wind .glove.left{transform:translate(-18px,-14px) rotate(-22deg) scale(.9)}
.fighter.wind .glove.right{transform:translate(9px,-6px) rotate(10deg)}
.fighter.strike .glove.left{transform:translate(66px,108px) scale(2.75) rotate(10deg);filter:drop-shadow(0 10px 0 rgba(0,0,0,.25))}
.fighter.strike .glove.right{transform:translate(8px,6px) scale(.9)}

.fighter.whiff{transform:translateY(40px) translateX(-18px) rotate(-7deg) scale(1.21);transition:transform .34s cubic-bezier(.3,.7,.3,1)}
.fighter.whiff .glove.left{transform:translate(88px,150px) scale(3) rotate(16deg);filter:drop-shadow(0 10px 0 rgba(0,0,0,.25));transition:transform .34s cubic-bezier(.3,.7,.3,1)}
.fighter.whiff .glove.right{transform:translate(10px,12px) scale(.92)}
.fighter.recover{transition:transform .32s ease}
.fighter.recover .glove{transition:transform .32s ease}

.fighter.strike .glove{transition:transform .06s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-hook-l .glove,.fighter.strike.pt-hook-r .glove{transition-duration:.12s}
.fighter.strike.pt-smash-l .glove,.fighter.strike.pt-smash-r .glove{transition-duration:.38s}
.fighter.strike.pt-chop-r .glove{transition-duration:.16s}
.fighter.wind.pt-jab{transition-duration:.26s}
.fighter.wind.pt-upper-l,.fighter.wind.pt-upper-r{transition-duration:.5s}
.fighter.wind.pt-smash-l,.fighter.wind.pt-smash-r{transition-duration:.68s}

.fighter.wind.pt-jab{animation:tellJab .42s ease-out}
@keyframes tellJab{0%{translate:0 0;rotate:0deg}22%{translate:2px -1px;rotate:.7deg}45%{translate:-2px 0;rotate:-.5deg}68%{translate:1px 0;rotate:.3deg}100%{translate:0 0;rotate:0deg}}
.fighter.wind.pt-straight{animation:tellStraight .5s ease-out}
@keyframes tellStraight{0%{translate:0 0;rotate:0deg}38%{translate:5px -3px;rotate:1.8deg}72%{translate:4px -2px;rotate:1.4deg}100%{translate:0 0;rotate:0deg}}
.fighter.wind.pt-hook-l{animation:tellHookL .55s ease-out}
@keyframes tellHookL{0%{translate:0 0;rotate:0deg}42%{translate:-3px 9px;rotate:-2.1deg}100%{translate:0 0;rotate:0deg}}
.fighter.wind.pt-hook-r{animation:tellHookR .55s ease-out}
@keyframes tellHookR{0%{translate:0 0;rotate:0deg}42%{translate:3px 9px;rotate:2.1deg}100%{translate:0 0;rotate:0deg}}
.fighter.wind.pt-upper-l,.fighter.wind.pt-upper-r{animation:tellUpper .6s ease-out}
@keyframes tellUpper{0%{translate:0 0;scale:1 1}38%{translate:0 22px;scale:1.05 .87}72%{translate:0 19px;scale:1.045 .885}100%{translate:0 0;scale:1 1}}
.fighter.wind.pt-smash-l{animation:tellSmashL .85s ease-out}
@keyframes tellSmashL{0%{translate:0 0;rotate:0deg}40%{translate:-5px 10px;rotate:-3.4deg}70%{translate:-4px 8px;rotate:-2.8deg}100%{translate:0 0;rotate:0deg}}
.fighter.wind.pt-smash-r{animation:tellSmashR .85s ease-out}
@keyframes tellSmashR{0%{translate:0 0;rotate:0deg}40%{translate:5px 10px;rotate:3.4deg}70%{translate:4px 8px;rotate:2.8deg}100%{translate:0 0;rotate:0deg}}
.fighter.wind.pt-smash-l .glove.left,.fighter.wind.pt-smash-r .glove.right,.fighter.wind.pt-chop-r .glove.left{animation:tellGlow .85s ease-in-out}
.fighter.wind.pt-chop-r{animation:tellChopR .55s ease-out}
@keyframes tellChopR{0%{translate:0 0;rotate:0deg}40%{translate:-7px -14px;rotate:-2.6deg}100%{translate:0 0;rotate:0deg}}
@keyframes tellGlow{0%,100%{filter:none}50%{filter:drop-shadow(0 0 9px rgba(255,170,0,.95)) drop-shadow(0 0 3px rgba(255,120,0,.8))}}

.fighter.feint-back{transform:translateY(-4px) translateX(2px);transition:transform .15s ease-out}

.fighter.feinting .iris{transform:translate(-82%,-50%)}
.fighter.feinting.pt-jab .glove.left,
.fighter.feinting.pt-straight .glove.right,
.fighter.feinting.pt-hook-l .glove.left,
.fighter.feinting.pt-hook-r .glove.right,
.fighter.feinting.pt-upper-l .glove.left,
.fighter.feinting.pt-upper-r .glove.right,
.fighter.feinting.pt-smash-l .glove.left,
.fighter.feinting.pt-smash-r .glove.right,
.fighter.feinting.pt-chop-r .glove.left{animation:feintTremble .17s linear infinite}
@keyframes feintTremble{0%,100%{translate:0 0}25%{translate:1.1px -.8px}50%{translate:-.5px .6px}75%{translate:-1.1px -.4px}}

.fighter.wind.pt-jab{transform:translateY(-8px) translateX(-8px) rotate(-4deg) scale(.96)}
.fighter.wind.pt-jab .glove.left{transform:translate(-12px,-9px) rotate(20deg) scale(.93)}
.fighter.wind.pt-jab .glove.right{transform:translate(5px,-3px) rotate(6deg)}
.fighter.strike.pt-jab{transform:translateY(22px) translateX(4px) rotate(3deg) scale(1.14);transition:transform .05s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-jab .glove.left{transform:translate(58px,92px) scale(2.9) rotate(0deg)}
.fighter.strike.pt-jab .glove.right{transform:translate(4px,4px) scale(.92)}
.fighter.whiff.pt-jab{transform:translateY(30px) translateX(10px) rotate(5deg) scale(1.16)}
.fighter.whiff.pt-jab .glove.left{transform:translate(76px,132px) scale(3.1) rotate(0deg)}

.fighter.wind.pt-straight{transform:translateY(-14px) translateX(9px) rotate(6deg) scale(.93)}
.fighter.wind.pt-straight .glove.right{transform:translate(18px,-14px) rotate(20deg) scale(.88)}
.fighter.wind.pt-straight .glove.left{transform:translate(-3px,-4px) rotate(-5deg) scale(.95)}
.fighter.strike.pt-straight{transform:translateY(32px) translateX(-6px) rotate(-5deg) scale(1.2);transition:transform .06s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-straight .glove.right{transform:translate(-66px,100px) scale(3) rotate(0deg)}
.fighter.strike.pt-straight .glove.left{transform:translate(-2px,4px) scale(.92)}
.fighter.whiff.pt-straight{transform:translateY(42px) translateX(-10px) rotate(-7deg) scale(1.22)}
.fighter.whiff.pt-straight .glove.right{transform:translate(-90px,146px) scale(3.25) rotate(0deg)}
.fighter.whiff.pt-straight .glove.left{transform:translate(0px,8px) scale(.92)}

.fighter.wind.pt-hook-l{transform:translateY(-8px) translateX(-12px) rotate(-8deg) scale(.95)}
.fighter.wind.pt-hook-l .glove.left{transform:translate(-64px,-8px) rotate(-42deg) scale(.95)}
.fighter.wind.pt-hook-l .glove.right{transform:translate(6px,-3px) rotate(8deg)}
.fighter.strike.pt-hook-l{transform:translateY(2px) translateX(10px) rotate(10deg) scale(1.17);transition:transform .12s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-hook-l .glove.left{transform:translate(124px,-12px) rotate(62deg) scale(2.95);animation:hookLArc .32s linear}
.fighter.strike.pt-hook-l .glove.right{transform:translate(6px,6px) scale(.9)}
@keyframes hookLArc{
  0%{transform:translate(-64px,-8px) rotate(-42deg) scale(.95)}
  34%{transform:translate(-104px,-15px) rotate(-65deg) scale(1.22)}
  60%{transform:translate(-50px,-25px) rotate(-16deg) scale(1.67)}
  82%{transform:translate(40px,-21px) rotate(35deg) scale(2.31)}
  100%{transform:translate(124px,-12px) rotate(62deg) scale(2.95)}
}

.fighter.strike.pt-hook-l .glove.left::before{animation:hookLFore .32s linear}
@keyframes hookLFore{
  0%{transform:rotate(-32deg) scaleY(1)}
  34%{transform:rotate(-2deg) scaleY(1)}
  60%{transform:rotate(66deg) scaleY(.88)}
  82%{transform:rotate(30deg) scaleY(.85)}
  100%{transform:rotate(8deg) scaleY(.85)}
}
.fighter.strike.pt-hook-l .glove.left::after{animation:hookLElbow .32s linear}
@keyframes hookLElbow{
  0%{transform:translate(45px,3px) rotate(25deg)}
  34%{transform:translate(3px,16px) rotate(10deg)}
  60%{transform:translate(-68px,-38px) rotate(-20deg)}
  82%{transform:translate(-36px,-6px) rotate(-10deg)}
  100%{transform:translate(-10px,3px) rotate(-3deg) scaleY(.88)}
}
.fighter.whiff.pt-hook-l{transform:translateY(6px) translateX(16px) rotate(13deg) scale(1.19)}
.fighter.whiff.pt-hook-l .glove.left{transform:translate(160px,-6px) rotate(82deg) scale(3.1)}
.fighter.whiff.pt-hook-l .glove.right{transform:translate(8px,10px) scale(.9)}

.fighter.wind.pt-hook-r{transform:translateY(-8px) translateX(12px) rotate(8deg) scale(.95)}
.fighter.wind.pt-hook-r .glove.right{transform:translate(64px,-8px) rotate(42deg) scale(.95)}
.fighter.wind.pt-hook-r .glove.left{transform:translate(-6px,-3px) rotate(-8deg)}
.fighter.strike.pt-hook-r{transform:translateY(2px) translateX(-10px) rotate(-10deg) scale(1.17);transition:transform .12s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-hook-r .glove.right{transform:translate(-124px,-12px) rotate(-62deg) scale(2.95);animation:hookRArc .32s linear}
.fighter.strike.pt-hook-r .glove.left{transform:translate(-6px,6px) scale(.9)}
@keyframes hookRArc{
  0%{transform:translate(64px,-8px) rotate(42deg) scale(.95)}
  34%{transform:translate(104px,-15px) rotate(65deg) scale(1.22)}
  60%{transform:translate(50px,-25px) rotate(16deg) scale(1.67)}
  82%{transform:translate(-40px,-21px) rotate(-35deg) scale(2.31)}
  100%{transform:translate(-124px,-12px) rotate(-62deg) scale(2.95)}
}

.fighter.strike.pt-hook-r .glove.right::before{animation:hookRFore .32s linear}
@keyframes hookRFore{
  0%{transform:rotate(32deg) scaleY(1)}
  34%{transform:rotate(2deg) scaleY(1)}
  60%{transform:rotate(-66deg) scaleY(.88)}
  82%{transform:rotate(-30deg) scaleY(.85)}
  100%{transform:rotate(-8deg) scaleY(.85)}
}
.fighter.strike.pt-hook-r .glove.right::after{animation:hookRElbow .32s linear}
@keyframes hookRElbow{
  0%{transform:translate(-45px,3px) rotate(-25deg)}
  34%{transform:translate(-3px,16px) rotate(-10deg)}
  60%{transform:translate(68px,-38px) rotate(20deg)}
  82%{transform:translate(36px,-6px) rotate(10deg)}
  100%{transform:translate(10px,3px) rotate(3deg) scaleY(.88)}
}
.fighter.whiff.pt-hook-r{transform:translateY(6px) translateX(-16px) rotate(-13deg) scale(1.19)}
.fighter.whiff.pt-hook-r .glove.right{transform:translate(-160px,-6px) rotate(-82deg) scale(3.1)}
.fighter.whiff.pt-hook-r .glove.left{transform:translate(-8px,10px) scale(.9)}

.fighter.wind.pt-upper-l{transform:translateY(18px) scale(1.04,.88)}
.fighter.wind.pt-upper-l .glove.left{transform:translate(40px,58px) rotate(0deg) scale(.92)}
.fighter.wind.pt-upper-l .glove.right{transform:translate(4px,20px) rotate(6deg) scale(.94)}
.fighter.strike.pt-upper-l{transform:translateY(0px) scale(1.19);transition:transform .08s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-upper-l .glove.left{transform:translate(40px,4px) scale(2.95) rotate(0deg)}
.fighter.strike.pt-upper-l .glove.right{transform:translate(2px,6px) scale(.9)}
.fighter.whiff.pt-upper-l{transform:translateY(-4px) scale(1.21)}
.fighter.whiff.pt-upper-l .glove.left{transform:translate(40px,-38px) scale(3.1) rotate(0deg)}
.fighter.whiff.pt-upper-l .glove.right{transform:translate(4px,10px) scale(.9)}

.fighter.wind.pt-upper-r{transform:translateY(18px) scale(1.04,.88)}
.fighter.wind.pt-upper-r .glove.right{transform:translate(-40px,58px) rotate(0deg) scale(.92)}
.fighter.wind.pt-upper-r .glove.left{transform:translate(-4px,20px) rotate(-6deg) scale(.94)}
.fighter.strike.pt-upper-r{transform:translateY(0px) scale(1.19);transition:transform .08s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-upper-r .glove.right{transform:translate(-40px,4px) scale(2.95) rotate(0deg)}
.fighter.strike.pt-upper-r .glove.left{transform:translate(-2px,6px) scale(.9)}
.fighter.whiff.pt-upper-r{transform:translateY(-4px) scale(1.21)}
.fighter.whiff.pt-upper-r .glove.right{transform:translate(-40px,-38px) scale(3.1) rotate(0deg)}
.fighter.whiff.pt-upper-r .glove.left{transform:translate(-4px,10px) scale(.9)}

.fighter.wind.pt-smash-l{transform:translateY(27px) translateX(12px) rotate(-14deg) scale(.9)}
.fighter.wind.pt-smash-l .glove.left{transform:translate(-64px,118px) rotate(-52deg) scale(.82)}
.fighter.wind.pt-smash-l .glove.right{transform:translate(6px,16px) rotate(6deg) scale(.95)}
.fighter.strike.pt-smash-l{transform:translateY(-26px) rotate(20deg) scale(1.33);transition:transform .38s cubic-bezier(.65,.02,.8,.25)}
.fighter.strike.pt-smash-l .glove.left{transform:translate(126px,-118px) scale(4.65) rotate(73deg);filter:drop-shadow(0 14px 0 rgba(0,0,0,.3))}
.fighter.strike.pt-smash-l .glove.right{transform:translate(4px,8px) scale(.92)}
.fighter.whiff.pt-smash-l{transform:translateY(-18px) rotate(24deg) scale(1.35)}
.fighter.whiff.pt-smash-l .glove.left{transform:translate(172px,-168px) scale(4.95) rotate(83deg)}
.fighter.whiff.pt-smash-l .glove.right{transform:translate(2px,12px) scale(.92)}

.fighter.wind.pt-smash-r{transform:translateY(27px) translateX(-12px) rotate(14deg) scale(.9)}
.fighter.wind.pt-smash-r .glove.right{transform:translate(64px,118px) rotate(52deg) scale(.82)}
.fighter.wind.pt-smash-r .glove.left{transform:translate(-6px,16px) rotate(-6deg) scale(.95)}
.fighter.strike.pt-smash-r{transform:translateY(-26px) rotate(-20deg) scale(1.33);transition:transform .38s cubic-bezier(.65,.02,.8,.25)}
.fighter.strike.pt-smash-r .glove.right{transform:translate(-126px,-118px) scale(4.65) rotate(-73deg);filter:drop-shadow(0 14px 0 rgba(0,0,0,.3))}
.fighter.strike.pt-smash-r .glove.left{transform:translate(-4px,8px) scale(.92)}
.fighter.whiff.pt-smash-r{transform:translateY(-18px) rotate(-24deg) scale(1.35)}
.fighter.whiff.pt-smash-r .glove.right{transform:translate(-172px,-168px) scale(4.95) rotate(-83deg)}
.fighter.whiff.pt-smash-r .glove.left{transform:translate(-2px,12px) scale(.92)}

.fighter.wind.pt-chop-r{transform:translateY(-20px) translateX(-16px) rotate(-9deg) scale(.96)}
.fighter.wind.pt-chop-r .glove.left{transform:translate(-100px,-112px) rotate(-16deg) scale(.92)}
.fighter.wind.pt-chop-r .glove.right{transform:translate(4px,-2px) rotate(6deg) scale(.95)}
.fighter.strike.pt-chop-r{transform:translateY(28px) translateX(12px) rotate(8deg) scale(1.2);transition:transform .16s cubic-bezier(.55,.06,.68,.19)}
.fighter.strike.pt-chop-r .glove.left{transform:translate(98px,116px) scale(3.15) rotate(56deg);filter:drop-shadow(0 10px 0 rgba(0,0,0,.25))}
.fighter.strike.pt-chop-r .glove.right{transform:translate(2px,6px) scale(.92)}
.fighter.whiff.pt-chop-r{transform:translateY(38px) translateX(20px) rotate(11deg) scale(1.22)}
.fighter.whiff.pt-chop-r .glove.left{transform:translate(152px,176px) scale(3.35) rotate(74deg)}
.fighter.whiff.pt-chop-r .glove.right{transform:translate(0px,10px) scale(.92)}

.glove .glove-front{display:none}
.fighter.strike.pt-jab .glove.left .glove-side,
.fighter.whiff.pt-jab .glove.left .glove-side,
.fighter.strike.pt-straight .glove.right .glove-side,
.fighter.whiff.pt-straight .glove.right .glove-side{display:none}
.fighter.strike.pt-jab .glove.left .glove-front,
.fighter.whiff.pt-jab .glove.left .glove-front,
.fighter.strike.pt-straight .glove.right .glove-front,
.fighter.whiff.pt-straight .glove.right .glove-front{display:block}
.fighter.strike.pt-jab .glove.left::before,
.fighter.whiff.pt-jab .glove.left::before,
.fighter.strike.pt-straight .glove.right::before,
.fighter.whiff.pt-straight .glove.right::before{opacity:0}

.fighter.strike.pt-jab .glove.left,
.fighter.strike.pt-straight .glove.right{filter:drop-shadow(0 10px 0 rgba(0,0,0,.25))}

/* THUMB RULE （親指の向き・2026-11-04 棚卸しで固定): for EVERY
   punch, hand and phase, the thumb sits on the fist's INNER side
   (toward the body's centre) — the artwork draws it on the left,
   so the screen-left glove is mirrored (its .flip class) and the
   screen-right glove is not. The uppercut overrides below used
   to REVERSE that (scaleX(1) on the left / -1 on the right),
   which put the thumb on the outer side in the wind / strike /
   whiff of both enemy uppers and all four player uppers — the
   values are now the hand's own correct orientation, stated
   explicitly per punch instead of borrowed from the mirror. */
.fighter.wind.pt-upper-l .glove.left .glove-svg,
.fighter.strike.pt-upper-l .glove.left .glove-svg,
.fighter.whiff.pt-upper-l .glove.left .glove-svg{transform:scaleX(-1)}
.fighter.wind.pt-upper-r .glove.right .glove-svg,
.fighter.strike.pt-upper-r .glove.right .glove-svg,
.fighter.whiff.pt-upper-r .glove.right .glove-svg{transform:scaleX(1)}

.p-glove .p-front{display:none}
.player.pp-upper-l .p-glove.left .p-side,
.player.pp-upper-r .p-glove.right .p-side{display:none}
.player.pp-upper-l .p-glove.left .p-front,
.player.pp-upper-r .p-glove.right .p-front{display:block}
.player.pp-upper-l .p-glove.left .p-front{transform:scaleX(-1)}
.player.pp-upper-r .p-glove.right .p-front{transform:scaleX(1)}

.player.pp-body-upper-l .p-glove.left .p-side,
.player.pp-body-upper-r .p-glove.right .p-side{display:none}
.player.pp-body-upper-l .p-glove.left .p-front,
.player.pp-body-upper-r .p-glove.right .p-front{display:block}
.player.pp-body-upper-l .p-glove.left .p-front{transform:scaleX(-1)}
.player.pp-body-upper-r .p-glove.right .p-front{transform:scaleX(1)}

.enemy-bubble{position:absolute;top:2px;right:0;z-index:9;background:rgba(255,255,255,.7);color:#e01e37;font-weight:900;font-size:16px;letter-spacing:.03em;line-height:1.25;padding:6px 12px;border-radius:14px;border:2.5px solid #14142b;box-shadow:0 4px 10px rgba(0,0,0,.35);white-space:nowrap;pointer-events:none;opacity:0;transform:scale(.55);transform-origin:16px 100%;transition:opacity .15s ease,transform .18s cubic-bezier(.3,1.45,.4,1)}
.enemy-bubble::before{content:"";position:absolute;left:15px;bottom:-11px;border:6px solid transparent;border-bottom:0;border-top:11px solid #14142b}
.enemy-bubble::after{content:"";position:absolute;left:17.5px;bottom:-6px;border:4.5px solid transparent;border-bottom:0;border-top:8px solid rgba(255,255,255,.7)}
.enemy-bubble.heavy{color:#b3001b;font-size:19px}
.enemy-bubble.show{opacity:1;transform:scale(1)}
@keyframes tagPop{0%{opacity:0;transform:translateX(-50%) scale(.6) translateY(6px)}60%{opacity:1;transform:translateX(-50%) scale(1.12)}100%{opacity:1;transform:translateX(-50%) scale(1)}}

.my-tag{position:absolute;bottom:8px;left:50%;transform:translateX(-50%) scale(.6);z-index:9;background:#fff;color:#1c56c4;border:2px solid #2f7bff;font-weight:900;font-size:17px;letter-spacing:.04em;padding:5px 14px;border-radius:999px;opacity:0;pointer-events:none;white-space:nowrap;box-shadow:0 4px 10px rgba(0,0,0,.4)}
.my-tag.show{animation:tagPop .3s ease forwards}

.my-tag.combo{background:linear-gradient(165deg,#fffbe8 0%,#ffffff 70%);border:3px solid #ffb800;color:#14142b;border-radius:16px;padding:6px 18px 8px;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.25;box-shadow:0 0 0 2px rgba(20,20,43,.55),0 0 16px rgba(255,184,0,.6),0 5px 12px rgba(0,0,0,.45)}
.my-tag .mt-kicker{font-size:9px;font-weight:900;letter-spacing:.34em;color:#b8860b}
.my-tag .mt-tech{font-size:19px;font-weight:900;letter-spacing:.03em;color:#14142b;white-space:nowrap}
.my-tag .mt-step{font-size:12px;font-weight:900;letter-spacing:.05em;color:#1c56c4;white-space:nowrap}

.second{position:absolute;top:42%;margin-top:-2px;left:12px;width:54px;height:64px;z-index:2;pointer-events:none;animation:secondBob 2.4s ease-in-out infinite alternate}
@keyframes secondBob{from{transform:translateY(0)}to{transform:translateY(-2px)}}
.second.cheering{animation:secondJump .45s ease}
@keyframes secondJump{0%{transform:translateY(0)}35%{transform:translateY(-7px)}70%{transform:translateY(0)}100%{transform:translateY(-3px)}}
.second svg{display:block;width:100%;height:100%;position:relative;z-index:1}
.second .mouth-open{display:none}
.second.cheering .mouth-open{display:block}
.second.cheering .mouth-smile{display:none}

.second .s-arm{transform-box:fill-box;transform-origin:50% 6%}
.second .s-palm{transform-box:fill-box;transform-origin:50% 0%}
.second.slapping{animation:slapLean .21s ease-in-out 5}
@keyframes slapLean{0%{transform:translateY(0) rotate(0deg)}30%{transform:translateY(-1.5px) rotate(-.5deg)}56%,76%{transform:translateY(3px) rotate(.7deg)}100%{transform:translateY(0) rotate(0deg)}}
.second.slapping .s-arm-l{animation:slapArmL .21s ease-in-out 5}
.second.slapping .s-arm-r{animation:slapArmR .21s ease-in-out 5}
@keyframes slapArmL{0%{transform:rotate(0deg)}30%{transform:rotate(17deg) translateY(-1px)}56%,76%{transform:rotate(-2deg) translateY(3.5px)}100%{transform:rotate(0deg)}}
@keyframes slapArmR{0%{transform:rotate(0deg)}30%{transform:rotate(-17deg) translateY(-1px)}56%,76%{transform:rotate(2deg) translateY(3.5px)}100%{transform:rotate(0deg)}}
.second.slapping .s-palm{animation:slapPalm .21s ease-in-out 5}
@keyframes slapPalm{0%{transform:rotate(0deg)}30%{transform:rotate(-17deg)}56%,76%{transform:rotate(2deg)}100%{transform:rotate(0deg)}}

.slap-fx{position:absolute;width:22px;height:9px;border:2.5px solid #fff;border-radius:50%;box-shadow:0 0 0 2px rgba(255,210,31,.55);opacity:0;pointer-events:none;z-index:2;transform:translate(-50%,-50%)}
.slap-fx.fx-l{left:12px;top:66px}
.slap-fx.fx-r{left:42px;top:66px}
.second.slapping .slap-fx{animation:slapFx .21s linear 5}
@keyframes slapFx{0%,46%{opacity:0;transform:translate(-50%,-50%) scale(.35)}57%{opacity:1;transform:translate(-50%,-50%) scale(.62)}82%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.35)}}
.slap-pop{position:absolute;left:50%;bottom:-3px;transform:translateX(-50%) rotate(-8deg) scale(.6);z-index:3;font-weight:900;font-size:14px;letter-spacing:.02em;color:var(--yellow);-webkit-text-stroke:1.2px #14142b;text-shadow:2px 2px 0 #14142b;opacity:0;pointer-events:none;white-space:nowrap}
.second.slapping .slap-pop{animation:slapPop 1.05s linear 1}
@keyframes slapPop{0%,8%{opacity:0;transform:translateX(-50%) rotate(-8deg) scale(.7)}11.5%{opacity:1;transform:translateX(-50%) rotate(-8deg) scale(1.15)}16%,28%{opacity:0;transform:translateX(-50%) rotate(-8deg) scale(.9)}31.5%{opacity:1;transform:translateX(-50%) rotate(-8deg) scale(1.15)}36%,48%{opacity:0;transform:translateX(-50%) rotate(-8deg) scale(.9)}51.5%{opacity:1;transform:translateX(-50%) rotate(-8deg) scale(1.15)}56%,68%{opacity:0;transform:translateX(-50%) rotate(-8deg) scale(.9)}71.5%{opacity:1;transform:translateX(-50%) rotate(-8deg) scale(1.15)}76%,88%{opacity:0;transform:translateX(-50%) rotate(-8deg) scale(.9)}91.5%{opacity:1;transform:translateX(-50%) rotate(-8deg) scale(1.15)}96%,100%{opacity:0;transform:translateX(-50%) rotate(-8deg) scale(.9)}}

.second-bubble{position:absolute;left:62px;top:calc(42% - 14px);z-index:9;background:rgba(255,255,255,.7);color:#14142b;font-weight:900;font-size:14px;line-height:1.25;padding:7px 12px;border-radius:14px;border:2.5px solid #14142b;box-shadow:0 4px 10px rgba(0,0,0,.35);white-space:nowrap;pointer-events:none;opacity:0;transform:scale(.55);transform-origin:10px 100%;transition:opacity .15s ease,transform .15s ease}
.second-bubble::before{content:"";position:absolute;left:16px;bottom:-11px;border:6px solid transparent;border-bottom:0;border-top:11px solid #14142b}
.second-bubble::after{content:"";position:absolute;left:18.5px;bottom:-6px;border:4.5px solid transparent;border-bottom:0;border-top:8px solid rgba(255,255,255,.7)}
.second-bubble.show{opacity:1;transform:scale(1)}


.fighter.hurt{--hx:11;--hr:4;--hhx:6;--hhy:-9;--hhr:3;--hry:0;--hrx:-7;--hsx:.99;--hsy:1.03;--hstop:40;--hret:460;animation:hurtBody .38s cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
@keyframes hurtBody{0%{transform:translate(0,0) rotate(0deg)}16%{transform:translate(calc(var(--hx)*1px),2px) rotate(calc(var(--hr)*1deg)) scale(1.03,.95)}42%{transform:translate(calc(var(--hx)*-.35px),0) rotate(calc(var(--hr)*-.4deg)) scale(.99,1.01)}68%{transform:translate(calc(var(--hx)*.18px),0) rotate(calc(var(--hr)*.2deg))}100%{transform:translate(0,0) rotate(0deg)}}
.fighter.hurt .head{transform-origin:50% 88%;animation:hurtHead calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
/* HEAD-TURN TIMING （顔の横向きタイミング・2026-11-04): the twist
   no longer snaps to full at 16% — a shallow build stop (9% /
   12%) keeps the turn near zero just after impact, then it
   ACCELERATES into the peak (26% / 32%), so the head starts
   turning with the blow and builds like a real neck, instead of
   jerking sideways ahead of the glove. Same vars, same delay
   (--hstop), same total clock (--hret): shape only. */
@keyframes hurtHead{
 0%{transform:translate(0,0) rotate(0deg) rotateY(0deg) rotateX(0deg) scale(1,1)}
 9%{transform:translate(calc(var(--hhx)*.18px),calc(var(--hhy)*.18px)) rotate(calc(var(--hhr)*.18deg)) rotateY(calc(var(--hry)*.18deg)) rotateX(calc(var(--hrx)*.18deg)) scale(1,1)}
 26%{transform:translate(calc(var(--hhx)*1px),calc(var(--hhy)*1px)) rotate(calc(var(--hhr)*1deg)) rotateY(calc(var(--hry)*1deg)) rotateX(calc(var(--hrx)*1deg)) scale(var(--hsx),var(--hsy))}
 58%{transform:translate(calc(var(--hhx)*.3px),calc(var(--hhy)*.3px)) rotate(calc(var(--hhr)*.3deg)) rotateY(calc(var(--hry)*.3deg)) rotateX(calc(var(--hrx)*.3deg)) scale(1,1)}
 100%{transform:translate(0,0) rotate(0deg) rotateY(0deg) rotateX(0deg) scale(1,1)}
}

.fighter.hurt.rush-face .head{transform-origin:50% 88%;animation:rushHead calc(var(--hret)*1ms) cubic-bezier(.35,.6,.3,1);animation-delay:calc(var(--hstop)*1ms)}
@keyframes rushHead{
 0%{transform:translate(0,0) rotate(0deg) rotateY(0deg) rotateX(0deg) scale(1,1)}
 12%{transform:translate(calc(var(--hhx)*.22px),calc(var(--hhy)*.22px)) rotate(calc(var(--hhr)*.22deg)) rotateY(calc(var(--hry)*.22deg)) rotateX(calc(var(--hrx)*.22deg)) scale(1,1)}
 32%{transform:translate(calc(var(--hhx)*1px),calc(var(--hhy)*1px)) rotate(calc(var(--hhr)*1deg)) rotateY(calc(var(--hry)*1deg)) rotateX(calc(var(--hrx)*1deg)) scale(var(--hsx),var(--hsy))}
 55%{transform:translate(calc(var(--hhx)*.34px),calc(var(--hhy)*.34px)) rotate(calc(var(--hhr)*.34deg)) rotateY(calc(var(--hry)*.34deg)) rotateX(calc(var(--hrx)*.34deg)) scale(1,1)}
 76%{transform:translate(calc(var(--hhx)*.5px),calc(var(--hhy)*.55px)) rotate(calc(var(--hhr)*.5deg)) rotateY(calc(var(--hry)*.5deg)) rotateX(calc(var(--hrx)*.5deg)) scale(1,1.01)}
 100%{transform:translate(0,0) rotate(0deg) rotateY(0deg) rotateX(0deg) scale(1,1)}
}
@media (prefers-reduced-motion: reduce){.fighter.hurt .head,.fighter.hurt.rush-face .head{animation:hurtHead .46s cubic-bezier(.2,.7,.3,1);animation-delay:0ms}}

.fighter.sway{animation:swayDodge .6s cubic-bezier(.3,.7,.3,1)}
@keyframes swayDodge{0%,14%{transform:translate(0,0) rotate(0deg)}42%,72%{transform:translate(calc(var(--sway,24)*1px),6px) rotate(calc(var(--sway,24)*.21deg)) scale(.98)}100%{transform:translate(0,0) rotate(0deg)}}

.fighter.sway .head{rotate:calc(var(--sway,24)*-.15deg);translate:calc(var(--sway,24)*.24px) 3px}

.fighter.dodge-duck{animation:duckDodge .62s cubic-bezier(.3,.7,.3,1);transform-origin:50% 100%}
@keyframes duckDodge{0%,12%{transform:translate(0,0) scaleY(1)}38%,70%{transform:translate(calc(var(--sway,24)*.42px),46px) scaleY(.84)}100%{transform:translate(0,0) scaleY(1)}}
.fighter.dodge-duck .head{animation:duckHead .62s cubic-bezier(.3,.7,.3,1)}
@keyframes duckHead{0%,12%{transform:translateY(0) rotate(0deg)}38%,70%{transform:translateY(26px) rotate(calc(var(--sway,24)*.15deg))}100%{transform:translateY(0) rotate(0deg)}}

.fighter.dodge-duck .torso{transform:rotate(calc(var(--sway,24)*.1deg)) translateY(5px)}

.fighter.dodge-swayback{animation:swayBackDodge .6s cubic-bezier(.3,.7,.3,1);transform-origin:50% 100%}
@keyframes swayBackDodge{0%,12%{transform:translate(0,0) rotate(0deg) scale(1)}40%,70%{transform:translate(calc(var(--sway,24)*.3px),-12px) rotate(calc(var(--sway,24)*-.24deg)) scale(.93)}100%{transform:translate(0,0) rotate(0deg) scale(1)}}
.fighter.dodge-swayback .head{rotate:calc(var(--sway,24)*-.22deg);translate:0 -4px}
.fighter.dodge-swayback .torso{transform:rotate(calc(var(--sway,24)*-.12deg))}
.fighter.dodge-step{animation:stepDodge .58s cubic-bezier(.3,.7,.3,1);transform-origin:50% 100%}
@keyframes stepDodge{0%,14%{transform:translate(0,0) scale(1)}40%,68%{transform:translate(calc(var(--sway,24)*-.3px),-8px) scale(.9)}100%{transform:translate(0,0) scale(1)}}

.fighter.hurt.body-hurt .body{transform-origin:50% 100%;animation:hurtTorso calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
@keyframes hurtTorso{
 0%{transform:translate(0,0) rotate(0deg) scale(1,1)}
 16%{transform:translate(calc(var(--bx,0)*1px),calc(var(--by,5)*1px)) rotate(calc(var(--br,0)*1deg)) scale(var(--bsx,1.02),var(--bsy,.94))}
 58%{transform:translate(calc(var(--bx,0)*.3px),calc(var(--by,5)*.3px)) rotate(calc(var(--br,0)*.3deg)) scale(1,1)}
 100%{transform:translate(0,0) rotate(0deg) scale(1,1)}
}
.fighter.hurt.body-hurt.body-upper .body{animation-name:hurtTorsoUpper}
@keyframes hurtTorsoUpper{
 0%{transform:translate(0,0) rotate(0deg) scale(1,1)}
 13%{transform:translate(0,calc(var(--bpop,7)*-1px)) rotate(0deg) scale(1.01,1.03)}
 38%{transform:translate(calc(var(--bx,0)*1px),calc(var(--by,6)*1px)) rotate(calc(var(--br,0)*1deg)) scale(var(--bsx,1.02),var(--bsy,.93))}
 66%{transform:translate(calc(var(--bx,0)*.35px),calc(var(--by,6)*.4px)) rotate(calc(var(--br,0)*.35deg)) scale(1,.99)}
 100%{transform:translate(0,0) rotate(0deg) scale(1,1)}
}
@media (prefers-reduced-motion: reduce){.fighter.hurt.body-hurt .body{animation-duration:.46s;animation-delay:0ms}}


@keyframes impactFlash1{0%,100%{filter:brightness(1.45) saturate(.15) contrast(1.02)}}
@keyframes impactFlash2{0%,100%{filter:brightness(2.05) saturate(0) contrast(.8)}}
@keyframes impactFlash3{0%,100%{filter:brightness(0) invert(1)}}
.fighter.hurt.stagger{animation:hurtBodyStagger calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
@keyframes hurtBodyStagger{
 0%{transform:translate(0,0) rotate(0deg)}
 16%{transform:translate(calc((var(--hx) + var(--stx,0))*1px),2px) rotate(calc(var(--hr)*1deg)) scale(1.03,.95)}
 46%{transform:translate(calc((var(--hx)*.45 + var(--stx,0)*.8)*1px),1px) rotate(calc(var(--hr)*.5deg)) scale(1,.98)}
 74%{transform:translate(calc(var(--stx,0)*.35px),0) rotate(calc(var(--hr)*.18deg))}
 100%{transform:translate(0,0) rotate(0deg)}
}
.fighter.hurt.stagger .legs{animation:staggerLegs calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
@keyframes staggerLegs{
 0%{transform:translate(0,0)}
 20%{transform:translate(calc(var(--stx,0)*.55px),0)}
 38%{transform:translate(calc(var(--stx,0)*1px),0)}
 68%{transform:translate(calc(var(--stx,0)*.5px),0)}
 100%{transform:translate(0,0)}
}
.fighter.hurt.stagger .leg{transform-origin:50% 100%;animation:staggerStep calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
.fighter.hurt.stagger .leg:last-child{animation-name:staggerStepFar}
@keyframes staggerStep{
 0%{transform:rotate(0deg)}
 20%{transform:rotate(calc(var(--stx,0)*-.22deg))}
 40%{transform:rotate(calc(var(--stx,0)*-.38deg)) translateX(calc(var(--stx,0)*.3px))}
 70%{transform:rotate(calc(var(--stx,0)*-.16deg)) translateX(calc(var(--stx,0)*.14px))}
 100%{transform:rotate(0deg)}
}
@keyframes staggerStepFar{
 0%{transform:rotate(0deg)}
 22%{transform:rotate(calc(var(--stx,0)*.3deg)) translateX(calc(var(--stx,0)*.34px))}
 44%{transform:rotate(calc(var(--stx,0)*.5deg)) translateX(calc(var(--stx,0)*.55px))}
 72%{transform:rotate(calc(var(--stx,0)*.2deg)) translateX(calc(var(--stx,0)*.22px))}
 100%{transform:rotate(0deg)}
}
.fighter.hurt.mslow .head{animation-name:hurtHeadSlow}
@keyframes hurtHeadSlow{
 0%{transform:translate(0,0) rotate(0deg) rotateY(0deg) rotateX(0deg) scale(1,1)}
 15%{transform:translate(calc(var(--hhx)*.14px),calc(var(--hhy)*.14px)) rotate(calc(var(--hhr)*.14deg)) rotateY(calc(var(--hry)*.14deg)) rotateX(calc(var(--hrx)*.14deg)) scale(1,1)}
 28%{transform:translate(calc(var(--hhx)*1px),calc(var(--hhy)*1px)) rotate(calc(var(--hhr)*1deg)) rotateY(calc(var(--hry)*1deg)) rotateX(calc(var(--hrx)*1deg)) scale(var(--hsx),var(--hsy))}
 64%{transform:translate(calc(var(--hhx)*.3px),calc(var(--hhy)*.3px)) rotate(calc(var(--hhr)*.3deg)) rotateY(calc(var(--hry)*.3deg)) rotateX(calc(var(--hrx)*.3deg)) scale(1,1)}
 100%{transform:translate(0,0) rotate(0deg) rotateY(0deg) rotateX(0deg) scale(1,1)}
}
.fighter.hurt.mslow:not(.down) .neck{animation-name:hurtNeckSlow}
@keyframes hurtNeckSlow{0%,100%{transform:scaleY(1)}15%{transform:scaleY(max(1,calc(1 - var(--hhy,-9)*.007)))}28%{transform:scaleY(max(1,calc(1 - var(--hhy,-9)*.05)))}64%{transform:scaleY(max(1,calc(1 - var(--hhy,-9)*.018)))}}
.fighter.hurt.stagger.mslow{animation-name:hurtBodyStaggerSlow}
@keyframes hurtBodyStaggerSlow{
 0%{transform:translate(0,0) rotate(0deg)}
 15%{transform:translate(calc((var(--hx) + var(--stx,0))*.14px),0) rotate(calc(var(--hr)*.14deg))}
 30%{transform:translate(calc((var(--hx) + var(--stx,0))*1px),2px) rotate(calc(var(--hr)*1deg)) scale(1.03,.95)}
 58%{transform:translate(calc((var(--hx)*.45 + var(--stx,0)*.8)*1px),1px) rotate(calc(var(--hr)*.5deg)) scale(1,.98)}
 80%{transform:translate(calc(var(--stx,0)*.35px),0) rotate(calc(var(--hr)*.18deg))}
 100%{transform:translate(0,0) rotate(0deg)}
}
.fighter.hurt.stagger.mslow .legs{animation-name:staggerLegsSlow}
.fighter.hurt.stagger.mslow .leg{animation-name:staggerStepSlow}
.fighter.hurt.stagger.mslow .leg:last-child{animation-name:staggerStepFarSlow}
@keyframes staggerLegsSlow{
 0%{transform:translate(0,0)}
 15%{transform:translate(calc(var(--stx,0)*.1px),0)}
 32%{transform:translate(calc(var(--stx,0)*1px),0)}
 66%{transform:translate(calc(var(--stx,0)*.5px),0)}
 100%{transform:translate(0,0)}
}
@keyframes staggerStepSlow{
 0%{transform:rotate(0deg)}
 15%{transform:rotate(calc(var(--stx,0)*-.05deg))}
 34%{transform:rotate(calc(var(--stx,0)*-.38deg)) translateX(calc(var(--stx,0)*.3px))}
 68%{transform:rotate(calc(var(--stx,0)*-.16deg)) translateX(calc(var(--stx,0)*.14px))}
 100%{transform:rotate(0deg)}
}
@keyframes staggerStepFarSlow{
 0%{transform:rotate(0deg)}
 16%{transform:rotate(calc(var(--stx,0)*.07deg)) translateX(calc(var(--stx,0)*.08px))}
 36%{transform:rotate(calc(var(--stx,0)*.5deg)) translateX(calc(var(--stx,0)*.55px))}
 70%{transform:rotate(calc(var(--stx,0)*.2deg)) translateX(calc(var(--stx,0)*.22px))}
 100%{transform:rotate(0deg)}
}
.fighter.hurt.body-hurt.mslow .body{animation-name:hurtTorsoSlow}
.fighter.hurt.body-hurt.body-upper.mslow .body{animation-name:hurtTorsoUpperSlow}
@keyframes hurtTorsoSlow{
 0%{transform:translate(0,0) rotate(0deg) scale(1,1)}
 15%{transform:translate(calc(var(--bx,0)*.14px),calc(var(--by,5)*.14px)) rotate(calc(var(--br,0)*.14deg)) scale(1,1)}
 28%{transform:translate(calc(var(--bx,0)*1px),calc(var(--by,5)*1px)) rotate(calc(var(--br,0)*1deg)) scale(var(--bsx,1.02),var(--bsy,.94))}
 64%{transform:translate(calc(var(--bx,0)*.3px),calc(var(--by,5)*.3px)) rotate(calc(var(--br,0)*.3deg)) scale(1,1)}
 100%{transform:translate(0,0) rotate(0deg) scale(1,1)}
}
@keyframes hurtTorsoUpperSlow{
 0%{transform:translate(0,0) rotate(0deg) scale(1,1)}
 14%{transform:translate(0,calc(var(--bpop,7)*-.3px)) rotate(0deg) scale(1,1.01)}
 27%{transform:translate(0,calc(var(--bpop,7)*-1px)) rotate(0deg) scale(1.01,1.03)}
 46%{transform:translate(calc(var(--bx,0)*1px),calc(var(--by,6)*1px)) rotate(calc(var(--br,0)*1deg)) scale(var(--bsx,1.02),var(--bsy,.93))}
 72%{transform:translate(calc(var(--bx,0)*.35px),calc(var(--by,6)*.4px)) rotate(calc(var(--br,0)*.35deg)) scale(1,.99)}
 100%{transform:translate(0,0) rotate(0deg) scale(1,1)}
}

.fighter.hurt.iflash-1{animation:hurtBody .38s cubic-bezier(.2,.7,.3,1),impactFlash1 46ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.iflash-2{animation:hurtBody .38s cubic-bezier(.2,.7,.3,1),impactFlash2 60ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.iflash-3{animation:hurtBody .38s cubic-bezier(.2,.7,.3,1),impactFlash3 76ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.stagger.iflash-1{animation:hurtBodyStagger calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1),impactFlash1 46ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.stagger.iflash-2{animation:hurtBodyStagger calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1),impactFlash2 60ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.stagger.iflash-3{animation:hurtBodyStagger calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1),impactFlash3 76ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.stagger.mslow.iflash-1{animation:hurtBodyStaggerSlow calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1),impactFlash1 46ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.stagger.mslow.iflash-2{animation:hurtBodyStaggerSlow calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1),impactFlash2 60ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
.fighter.hurt.stagger.mslow.iflash-3{animation:hurtBodyStaggerSlow calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1),impactFlash3 76ms steps(1,end);animation-delay:calc(var(--hstop)*1ms),0ms}
@media (prefers-reduced-motion: reduce){
 
 .fighter.hurt.iflash-1,.fighter.hurt.iflash-2,.fighter.hurt.iflash-3{animation:hurtBody .38s cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
 .fighter.hurt.stagger.iflash-1,.fighter.hurt.stagger.iflash-2,.fighter.hurt.stagger.iflash-3{animation:hurtBodyStagger calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
 .fighter.hurt.stagger.mslow.iflash-1,.fighter.hurt.stagger.mslow.iflash-2,.fighter.hurt.stagger.mslow.iflash-3{animation:hurtBodyStaggerSlow calc(var(--hret)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop)*1ms)}
 .fighter.hurt.stagger .legs,.fighter.hurt.stagger .leg{animation:none}
 .fighter.hurt.mslow .head{animation-name:hurtHead}
 .fighter.hurt.mslow:not(.down) .neck{animation-name:hurtNeck}
 .fighter.hurt.body-hurt.mslow .body{animation-name:hurtTorso}
 .fighter.hurt.body-hurt.body-upper.mslow .body{animation-name:hurtTorsoUpper}
}

.fighter.belly-clutch:not(.down) .torso{animation:none;transform:rotate(7deg) translateY(6px) scaleY(.96)}
.fighter.belly-clutch:not(.down) .head{translate:0 10px;rotate:5deg}
.fighter.belly-clutch:not(.down):not(.wind):not(.strike):not(.whiff) .glove.left{transform:translate(72px,70px) rotate(-10deg) scale(.94)}
.fighter.belly-clutch.belly-deep:not(.down) .torso{transform:rotate(11deg) translateY(10px) scaleY(.93)}
.fighter.belly-clutch.belly-deep:not(.down) .head{translate:0 16px;rotate:8deg}
.fighter.belly-clutch.belly-deep:not(.down):not(.wind):not(.strike):not(.whiff) .glove.right{transform:translate(-72px,70px) rotate(10deg) scale(.94)}
/* BELLY-CLUTCH ARM CHAIN （腹押さえの腕のつながり・2026-11-04): the
   clutch used to move ONLY the glove — its forearm pivot ended up
   ~83px sideways of the upper arm's elbow, so the hand floated
   off the arm. Now the whole chain travels together: the upper
   arm rotates inward and lengthens (scaleY from its shoulder
   origin) until its elbow meets the moved glove's forearm, and
   the forearm segments re-angle to continue the line across the
   belly. Numbers (fighter-local px): shoulder pivot (28,186),
   upper arm 66×1.15 rotated -38° → elbow (75,246); glove at
   translate(72,70) → forearm pivot (93,256) — 21px apart, inside
   the two segments' combined half-widths (≈42px), so they
   overlap through the whole pose. The right side mirrors it in
   .belly-deep, where the right glove moves too (in stage 1 it
   keeps its guard, chain untouched). The gloves' transition is
   stretched to .38s so they travel WITH the .45s upper arms —
   entry and exit stay connected too. Same guards as the glove
   rules above (:not down / wind / strike / whiff), so attack
   poses and the down pose's hidden forearms are untouched. */
.fighter.belly-clutch:not(.down):not(.wind):not(.strike):not(.whiff) .glove{transition:transform .38s cubic-bezier(.3,.8,.3,1)}
.fighter.belly-clutch:not(.down):not(.wind):not(.strike):not(.whiff) .upper-arm-l{transform:rotate(-38deg) scaleY(1.15)}
.fighter.belly-clutch:not(.down):not(.wind):not(.strike):not(.whiff) .glove.left::before{transform:rotate(-16deg) scaleY(.8)}
.fighter.belly-clutch:not(.down):not(.wind):not(.strike):not(.whiff) .glove.left::after{transform:translate(-10px,-14px) rotate(-14deg)}
.fighter.belly-clutch.belly-deep:not(.down):not(.wind):not(.strike):not(.whiff) .upper-arm-r{transform:rotate(38deg) scaleY(1.15)}
.fighter.belly-clutch.belly-deep:not(.down):not(.wind):not(.strike):not(.whiff) .glove.right::before{transform:rotate(16deg) scaleY(.8)}
.fighter.belly-clutch.belly-deep:not(.down):not(.wind):not(.strike):not(.whiff) .glove.right::after{transform:translate(10px,-14px) rotate(14deg)}
/* BELLY-CLUTCH DEPTH （腹押さえの前後）: the upper arms sit at
   z-index 1 inside the torso, UNDER the chest (z 2) and trunks
   (z 4) — so mid-clutch the arm dove behind the body and the hand
   looked detached, as if the arm had gone around the back. While
   clutching, the working arm is lifted over the torso front so
   the whole chain (shoulder → upper arm → elbow → forearm →
   hand on the belly) reads in front, connected, start to finish.
   The idle arm keeps its depth; geometry and timing untouched. */
.fighter.belly-clutch:not(.down):not(.wind):not(.strike):not(.whiff) .upper-arm-l{z-index:6}
.fighter.belly-clutch.belly-deep:not(.down):not(.wind):not(.strike):not(.whiff) .upper-arm-r{z-index:6}

.fighter.down{--kneesink:24px;--sink:40px;--tilt:5deg;--pitch:10deg;--headdip:14px;transform-origin:50% 92%;animation:downBody 2.6s cubic-bezier(.3,.6,.4,1) forwards}
.fighter.down.deep{--kneesink:33px;--sink:57px;--tilt:8deg;--pitch:15deg;--headdip:22px}
.fighter.down.hold,.fighter.down.hold *{animation-play-state:paused}
@keyframes downBody{
  0%{transform:translateY(0) rotate(0deg) scale(1);opacity:1;filter:none}
  10%{transform:translateY(-7px) rotate(-2.5deg) scale(1.02)}
  28%{transform:translateY(var(--kneesink)) rotate(var(--tilt)) scale(1,.97)}
  52%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.35)) scale(1,.93)}
  62%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.55)) scale(1,.93)}
  72%{transform:translateY(calc(var(--sink) - 5px)) rotate(-2deg) scale(1,.95)}
  100%{transform:perspective(680px) rotateX(-63deg) translateY(14px) scale(.97);opacity:.45;filter:grayscale(.65)}
}

.fighter.down .head{animation:downHead 2.6s ease forwards}
@keyframes downHead{
  0%{transform:translate(0,0) rotate(0deg)}
  10%{transform:translate(2px,-3px) rotate(-3deg)}
  28%{transform:translate(4px,4px) rotate(5deg)}
  52%,62%{transform:translate(8px,var(--headdip)) rotate(calc(var(--pitch)*1.4))}
  72%{transform:translate(7px,11px) rotate(26deg) scale(.88)}
  100%{transform:translate(13px,15px) rotate(63deg) scale(.74)}
}

.fighter.down .body{transform-origin:50% 100%;animation:downTorso 2.6s ease forwards}
@keyframes downTorso{
  0%{transform:rotate(0deg) scaleY(1)}
  28%{transform:rotate(calc(var(--pitch)*.35)) scaleY(.98)}
  52%,62%{transform:rotate(var(--pitch)) scaleY(.94)}
  72%{transform:rotate(calc(var(--pitch)*.7)) scale(.96,.96)}
  100%{transform:rotate(var(--pitch)) scale(.90,.94)}
}

.fighter.down .leg:last-child{animation:downKneeLeg 2.6s ease forwards}
@keyframes downKneeLeg{
  0%,10%{transform:rotate(-3deg) scaleY(1)}
  28%,62%{transform:rotate(20deg) scaleY(.68)}
  72%{transform:rotate(8deg) scaleY(.9)}
  100%{transform:rotate(-4deg) scaleY(1.05)}
}
.fighter.down .leg:first-child{animation:downStandLeg 2.6s ease forwards}
@keyframes downStandLeg{
  0%{transform:rotate(3deg) scaleY(1)}
  28%,62%{transform:rotate(-5deg) scaleY(.84)}
  72%{transform:rotate(-2deg) scaleY(.95)}
  100%{transform:rotate(4deg) scaleY(1.05)}
}

.fighter.down .glove.left{animation:downGloveL 2.6s ease forwards}
@keyframes downGloveL{
  0%{transform:rotate(0deg)}
  10%{transform:translate(4px,-8px) rotate(-8deg)}
  28%{transform:translate(-8px,44px) rotate(-16deg)}
  52%,62%{transform:translate(-26px,124px) rotate(-34deg)}
  72%{transform:translate(-40px,94px) rotate(-52deg) scale(.93)}
  100%{transform:translate(-62px,26px) rotate(-96deg) scale(.84)}
}
.fighter.down .glove.right{animation:downGloveR 2.6s ease forwards}
@keyframes downGloveR{
  0%{transform:rotate(8deg)}
  10%{transform:translate(-4px,-8px) rotate(16deg)}
  28%{transform:translate(8px,44px) rotate(24deg)}
  52%,62%{transform:translate(26px,124px) rotate(42deg)}
  72%{transform:translate(40px,94px) rotate(60deg) scale(.93)}
  100%{transform:translate(62px,26px) rotate(104deg) scale(.84)}
}

.fighter.down .legs{animation:downLegsTaper 2.6s ease forwards}
@keyframes downLegsTaper{
  0%,62%{transform:scale(1)}
  72%{transform:scale(1.03)}
  100%{transform:scale(1.07)}
}
.fighter.down .trunks{animation:downTrunksTaper 2.6s ease forwards}
@keyframes downTrunksTaper{
  0%,62%{transform:scale(1)}
  72%{transform:scale(.97)}
  100%{transform:scale(.95)}
}
.fighter.down .neck{animation:downNeckTaper 2.6s ease forwards}
@keyframes downNeckTaper{
  0%,62%{transform:scale(1)}
  72%{transform:scale(.90)}
  100%{transform:scale(.82)}
}

.fighter.down.pat-launch{animation:downBodyLaunch 2.6s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes downBodyLaunch{
  0%{transform:translateY(0) rotate(0deg) scale(1);opacity:1;filter:none}
  10%{transform:translateY(-7px) rotate(-2.5deg) scale(1.02)}
  28%{transform:translateY(var(--kneesink)) rotate(var(--tilt)) scale(1,.97)}
  52%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.35)) scale(1,.93)}
  62%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.55)) scale(1,.93)}
  72%{transform:translateY(calc(var(--sink) - 64px)) rotate(-10deg) scale(1.05,1.02);opacity:1;filter:none}
  86%{transform:perspective(680px) rotateX(-52deg) translateY(30px) scale(.93);opacity:.62;filter:grayscale(.4)}
  100%{transform:perspective(680px) rotateX(-64deg) translateY(18px) scale(.91);opacity:.45;filter:grayscale(.65)}
}
.fighter.down.pat-launch .head{animation:downHeadLaunch 2.6s ease forwards}
@keyframes downHeadLaunch{
  0%{transform:translate(0,0) rotate(0deg)}
  10%{transform:translate(2px,-3px) rotate(-3deg)}
  28%{transform:translate(4px,4px) rotate(5deg)}
  52%,62%{transform:translate(8px,var(--headdip)) rotate(calc(var(--pitch)*1.4))}
  72%{transform:translate(4px,-6px) rotate(-14deg) scale(.90)}
  100%{transform:translate(10px,21px) rotate(74deg) scale(.70)}
}
.fighter.down.pat-launch .glove.left{animation:downGloveLaunchL 2.6s ease forwards}
@keyframes downGloveLaunchL{
  0%{transform:rotate(0deg)}
  10%{transform:translate(4px,-8px) rotate(-8deg)}
  28%{transform:translate(-8px,44px) rotate(-16deg)}
  52%,62%{transform:translate(-26px,124px) rotate(-34deg)}
  72%{transform:translate(-58px,60px) rotate(-70deg) scale(.90)}
  100%{transform:translate(-96px,10px) rotate(-118deg) scale(.82)}
}
.fighter.down.pat-launch .glove.right{animation:downGloveLaunchR 2.6s ease forwards}
@keyframes downGloveLaunchR{
  0%{transform:rotate(8deg)}
  10%{transform:translate(-4px,-8px) rotate(16deg)}
  28%{transform:translate(8px,44px) rotate(24deg)}
  52%,62%{transform:translate(26px,124px) rotate(42deg)}
  72%{transform:translate(58px,60px) rotate(78deg) scale(.90)}
  100%{transform:translate(96px,10px) rotate(126deg) scale(.82)}
}

.fighter.down.pat-side{animation:downBodySide 2.6s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes downBodySide{
  0%{transform:translateY(0) rotate(0deg) scale(1);opacity:1;filter:none}
  10%{transform:translateY(-7px) rotate(-2.5deg) scale(1.02)}
  28%{transform:translateY(var(--kneesink)) rotate(var(--tilt)) scale(1,.97)}
  52%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.35)) scale(1,.93)}
  62%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.55)) scale(1,.93)}
  72%{transform:translate(16px,var(--sink)) rotate(14deg) scale(1,.94)}
  100%{transform:perspective(680px) rotate(-72deg) rotateX(-34deg) translate(34px,6px) scale(.93);opacity:.5;filter:grayscale(.6)}
}
.fighter.down.pat-side .head{animation:downHeadSide 2.6s ease forwards}
@keyframes downHeadSide{
  0%{transform:translate(0,0) rotate(0deg)}
  10%{transform:translate(2px,-3px) rotate(-3deg)}
  28%{transform:translate(4px,4px) rotate(5deg)}
  52%,62%{transform:translate(8px,var(--headdip)) rotate(calc(var(--pitch)*1.4))}
  72%{transform:translate(9px,12px) rotate(38deg) scale(.87)}
  100%{transform:translate(14px,20px) rotate(86deg) scale(.73)}
}

.fighter.down.pat-face{animation:downBodyFace 2.6s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes downBodyFace{
  0%{transform:translateY(0) rotate(0deg) scale(1);opacity:1;filter:none}
  10%{transform:translateY(-7px) rotate(-2.5deg) scale(1.02)}
  28%{transform:translateY(var(--kneesink)) rotate(var(--tilt)) scale(1,.97)}
  52%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.35)) scale(1,.93)}
  62%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.55)) scale(1,.93)}
  72%{transform:translateY(calc(var(--sink) - 2px)) rotate(2deg) scale(1,.95)}
  100%{transform:perspective(680px) rotateX(48deg) translateY(26px) scale(.94);opacity:.5;filter:grayscale(.55)}
}
.fighter.down.pat-face .body{animation:downTorsoFace 2.6s ease forwards}
@keyframes downTorsoFace{
  0%{transform:rotate(0deg) scaleY(1)}
  28%{transform:rotate(calc(var(--pitch)*.35)) scaleY(.98)}
  52%,62%{transform:rotate(var(--pitch)) scaleY(.94)}
  72%{transform:rotate(calc(var(--pitch)*1.2)) scale(.94,.92)}
  100%{transform:rotate(calc(var(--pitch)*1.6)) scale(.89,.90)}
}
.fighter.down.pat-face .head{animation:downHeadFace 2.6s ease forwards}
@keyframes downHeadFace{
  0%{transform:translate(0,0) rotate(0deg)}
  10%{transform:translate(2px,-3px) rotate(-3deg)}
  28%{transform:translate(4px,4px) rotate(5deg)}
  52%,62%{transform:translate(8px,var(--headdip)) rotate(calc(var(--pitch)*1.4))}
  72%{transform:translate(6px,16px) rotate(10deg) scale(.88)}
  100%{transform:translate(3px,27px) rotate(-16deg) scale(.76)}
}
.fighter.down.pat-face .glove.left{animation:downGloveFaceL 2.6s ease forwards}
@keyframes downGloveFaceL{
  0%{transform:rotate(0deg)}
  10%{transform:translate(4px,-8px) rotate(-8deg)}
  28%{transform:translate(-8px,44px) rotate(-16deg)}
  52%,62%{transform:translate(-26px,124px) rotate(-34deg)}
  72%{transform:translate(-30px,120px) rotate(-30deg) scale(.95)}
  100%{transform:translate(-34px,132px) rotate(-38deg) scale(.86)}
}
.fighter.down.pat-face .glove.right{animation:downGloveFaceR 2.6s ease forwards}
@keyframes downGloveFaceR{
  0%{transform:rotate(8deg)}
  10%{transform:translate(-4px,-8px) rotate(16deg)}
  28%{transform:translate(8px,44px) rotate(24deg)}
  52%,62%{transform:translate(26px,124px) rotate(42deg)}
  72%{transform:translate(30px,120px) rotate(38deg) scale(.95)}
  100%{transform:translate(34px,132px) rotate(46deg) scale(.86)}
}

.fighter.down.pat-sit{animation:downBodySit 2.6s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes downBodySit{
  0%{transform:translateY(0) rotate(0deg) scale(1);opacity:1;filter:none}
  10%{transform:translateY(-7px) rotate(-2.5deg) scale(1.02)}
  28%{transform:translateY(var(--kneesink)) rotate(var(--tilt)) scale(1,.97)}
  52%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.35)) scale(1,.93)}
  62%{transform:translateY(var(--sink)) rotate(calc(var(--tilt)*.55)) scale(1,.93)}
  72%{transform:translateY(calc(var(--sink) + 8px)) rotate(2deg) scale(1,.92)}
  100%{transform:translateY(calc(var(--sink) + 20px)) rotate(4deg) scale(1.02,.90);opacity:.78;filter:grayscale(.35)}
}
.fighter.down.pat-sit .head{animation:downHeadSit 2.6s ease forwards}
@keyframes downHeadSit{
  0%{transform:translate(0,0) rotate(0deg)}
  10%{transform:translate(2px,-3px) rotate(-3deg)}
  28%{transform:translate(4px,4px) rotate(5deg)}
  52%,62%{transform:translate(8px,var(--headdip)) rotate(calc(var(--pitch)*1.4))}
  72%{transform:translate(8px,15px) rotate(20deg) scale(.93)}
  100%{transform:translate(10px,23px) rotate(36deg) scale(.85)}
}
.fighter.down.pat-sit .leg:first-child{animation:downSitLegL 2.6s ease forwards}
@keyframes downSitLegL{
  0%{transform:rotate(3deg) scaleY(1)}
  28%,62%{transform:rotate(-5deg) scaleY(.84)}
  72%{transform:rotate(-9deg) scaleY(.78)}
  100%{transform:rotate(-15deg) scaleY(.70)}
}
.fighter.down.pat-sit .leg:last-child{animation:downSitLegR 2.6s ease forwards}
@keyframes downSitLegR{
  0%,10%{transform:rotate(-3deg) scaleY(1)}
  28%,62%{transform:rotate(20deg) scaleY(.68)}
  72%{transform:rotate(23deg) scaleY(.65)}
  100%{transform:rotate(27deg) scaleY(.60)}
}

.fighter.rising{--kneesink:24px;--sink:40px;--tilt:5deg;--pitch:10deg;--headdip:14px;--wobble:1;transform-origin:50% 92%;animation:riseBody 1.4s cubic-bezier(.3,.6,.35,1) forwards}
.fighter.rising.deep{--kneesink:33px;--sink:57px;--tilt:8deg;--pitch:15deg;--headdip:22px}
@keyframes riseBody{
  0%{transform:translate(0,var(--sink)) rotate(calc(var(--tilt)*.45)) scale(1,.93);opacity:.68;filter:grayscale(.37)}
  12%{transform:translate(0,calc(var(--sink) + 3px)) rotate(calc(var(--tilt)*.52)) scale(1,.924);opacity:.70;filter:grayscale(.35)}
  30%{transform:translate(0,calc(var(--sink)*.86)) rotate(calc(var(--tilt)*.40)) scale(1,.94);opacity:.78;filter:grayscale(.28)}
  44%{transform:translate(0,calc(var(--sink)*.92)) rotate(calc(var(--tilt)*.47)) scale(1,.932);opacity:.80;filter:grayscale(.26)}
  62%{transform:translate(0,calc(var(--kneesink)*.55)) rotate(calc(var(--tilt)*.15)) scale(1,.975);opacity:.92;filter:grayscale(.13)}
  76%{transform:translate(calc(var(--wobble)*-7px),1px) rotate(calc(var(--wobble)*-2.6deg)) scale(1,1.002);opacity:1;filter:none}
  86%{transform:translate(calc(var(--wobble)*5px),-1px) rotate(calc(var(--wobble)*1.9deg)) scale(1)}
  94%{transform:translate(calc(var(--wobble)*-2px),0) rotate(calc(var(--wobble)*-.8deg)) scale(1)}
  100%{transform:translate(0,0) rotate(0deg) scale(1);opacity:1;filter:none}
}
.fighter.rising .head{transform-origin:50% 88%;animation:riseHead 1.48s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseHead{
  0%{transform:translate(8px,var(--headdip)) rotate(calc(var(--pitch)*1.4))}
  14%{transform:translate(9px,calc(var(--headdip)*1.07)) rotate(calc(var(--pitch)*1.47))}
  34%{transform:translate(8px,calc(var(--headdip)*.95)) rotate(calc(var(--pitch)*1.3))}
  48%{transform:translate(8px,var(--headdip)) rotate(calc(var(--pitch)*1.38))}
  68%{transform:translate(4px,calc(var(--headdip)*.4)) rotate(calc(var(--pitch)*.55))}
  82%{transform:translate(2px,-1px) rotate(calc(var(--wobble)*-2.8deg))}
  91%{transform:translate(0,-1px) rotate(calc(var(--wobble)*1.9deg))}
  100%{transform:translate(0,0) rotate(0deg)}
}
.fighter.rising .body{transform-origin:50% 100%;animation:riseTorso 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseTorso{
  0%{transform:rotate(var(--pitch)) scaleY(.94)}
  12%{transform:rotate(calc(var(--pitch)*1.05)) scaleY(.934)}
  30%{transform:rotate(calc(var(--pitch)*.88)) scaleY(.95)}
  44%{transform:rotate(calc(var(--pitch)*.97)) scaleY(.943)}
  62%{transform:rotate(calc(var(--pitch)*.4)) scaleY(.982)}
  80%{transform:rotate(-1.6deg) scaleY(1.004)}
  100%{transform:rotate(0deg) scaleY(1)}
}
.fighter.rising .leg:last-child{animation:riseKneeLeg 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseKneeLeg{
  0%,30%{transform:rotate(20deg) scaleY(.68)}
  46%{transform:rotate(17deg) scaleY(.74)}
  62%{transform:rotate(6deg) scaleY(.9)}
  76%{transform:rotate(-1deg) scaleY(1.005)}
  88%{transform:rotate(-3.5deg) scaleY(1)}
  100%{transform:rotate(-3deg) scaleY(1)}
}
.fighter.rising .leg:first-child{animation:riseStandLeg 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseStandLeg{
  0%{transform:rotate(-5deg) scaleY(.84)}
  12%,30%{transform:rotate(-6deg) scaleY(.815)}
  62%{transform:rotate(-3deg) scaleY(.93)}
  82%{transform:rotate(1deg) scaleY(1.005)}
  100%{transform:rotate(3deg) scaleY(1)}
}
.fighter.rising .glove.left{animation:riseGloveL 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseGloveL{
  0%{transform:translate(-26px,124px) rotate(-34deg)}
  12%{transform:translate(-27px,129px) rotate(-35deg)}
  30%{transform:translate(-26px,127px) rotate(-34deg)}
  44%{transform:translate(-26px,128px) rotate(-34deg)}
  62%{transform:translate(-22px,96px) rotate(-27deg)}
  76%{transform:translate(-18px,36px) rotate(-14deg)}
  88%{transform:translate(-4px,10px) rotate(-5deg)}
  100%{transform:translate(0,0) rotate(0deg)}
}
.fighter.rising .glove.right{animation:riseGloveR 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseGloveR{
  0%{transform:translate(26px,124px) rotate(42deg)}
  12%{transform:translate(27px,130px) rotate(43deg)}
  34%{transform:translate(26px,128px) rotate(42deg)}
  52%{transform:translate(25px,124px) rotate(40deg)}
  68%{transform:translate(21px,96px) rotate(33deg)}
  84%{transform:translate(7px,20px) rotate(12deg)}
  100%{transform:translate(0,0) rotate(8deg)}
}

.head{width:116px;height:164px;flex:none;zoom:.88;background:#ffcf9e;border:4px solid #111;border-radius:47% 47% 36% 36%/34% 34% 52% 52%;position:relative;display:grid;place-items:center;box-shadow:inset 0 -16px 0 rgba(190,110,50,.13),inset -9px 0 0 rgba(190,110,50,.06),inset 9px 0 0 rgba(255,255,255,.10);transition:background .3s ease,border-radius .3s ease}
.head::before,.head::after{display:none}

.eye{position:absolute;top:60px;width:19px;height:24px;background:#fff;border:2.5px solid #14142b;border-radius:50%;z-index:3;overflow:hidden;transition:transform .3s ease}
.eye-l{left:24px}.eye-r{right:24px}
.eye .iris{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);width:11px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 28%, #fff 0 2.4px, rgba(255,255,255,0) 3px),radial-gradient(circle, #6b4423 0 52%, #160f08 57%)}
.brow{position:absolute;top:48px;width:23px;height:6px;background:#2b2019;border-radius:99px;z-index:3}
.brow-l{left:22px;transform:rotate(-7deg)}
.brow-r{right:22px;transform:rotate(7deg)}

.mouth{position:absolute;left:50%;top:120px;translate:-50% 0;width:36px;height:13px;border-bottom:5px solid #b83a5e;border-radius:999px;z-index:2;transition:all .3s ease}

.hair{position:absolute;top:-9px;left:50%;transform:translateX(-50%);width:102px;height:46px;background:linear-gradient(180deg,#4b382a 0%,#2c2019 55%,#241a14 100%);border-radius:999px 999px 10px 10px;z-index:4}
.hair::before,.hair::after{content:"";position:absolute;top:30px;width:21px;height:44px;background:linear-gradient(180deg,#2c2019,#241a14);border-radius:11px;z-index:-1}
.hair::before{left:-13px}
.hair::after{right:-13px}
.band{position:absolute;top:21px;left:6px;right:6px;height:19px;background:var(--pink);border-radius:999px;border:2px solid #111;z-index:5;transition:transform .3s ease}
.blush{position:absolute;top:112px;width:20px;height:13px;border-radius:50%;background:rgba(255,110,150,.30);z-index:2;filter:blur(1px)}
.blush-l{left:15px}
.blush-r{right:15px}

.cheek{position:absolute;top:108px;width:40px;height:36px;border-radius:50%;z-index:1;pointer-events:none;filter:blur(.7px);background:radial-gradient(ellipse 60% 55% at 50% 34%,rgba(255,236,205,.92) 0%,rgba(255,210,155,.55) 46%,rgba(244,172,105,0) 76%),radial-gradient(ellipse 62% 50% at 50% 92%,rgba(196,110,52,.20) 0%,rgba(196,110,52,0) 68%)}
.cheek-l{left:5px;transform:rotate(-7deg)}
.cheek-r{right:5px;transform:rotate(7deg)}
.mouth-line{position:absolute;top:106px;width:15px;height:25px;border-radius:50%;z-index:2;pointer-events:none;filter:blur(.5px);opacity:.55}
.mouth-line-l{left:31px;border-left:2.5px solid rgba(168,95,44,.38);transform:rotate(16deg)}
.mouth-line-r{right:31px;border-right:2.5px solid rgba(168,95,44,.38);transform:rotate(-16deg)}

.swell,.browswell,.blackeye,.sweat,.blood-nose,.blood-mouth{position:absolute;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease}
.swell,.browswell{border-radius:50%;filter:blur(1.1px);z-index:3}

.swell-l{left:2px;top:88px;width:52px;height:40px;background:radial-gradient(ellipse 62% 56% at 46% 36%,rgba(255,216,182,.95) 0%,rgba(250,160,128,.72) 44%,rgba(228,94,98,.36) 70%,rgba(228,94,98,0) 80%)}
.swell-r{right:2px;top:88px;width:52px;height:40px;background:radial-gradient(ellipse 62% 56% at 54% 36%,rgba(255,216,182,.95) 0%,rgba(246,152,128,.7) 44%,rgba(198,86,112,.36) 70%,rgba(198,86,112,0) 80%)}

.browswell-l{left:8px;top:40px;width:48px;height:30px;background:radial-gradient(ellipse 62% 58% at 46% 62%,rgba(255,216,182,.95) 0%,rgba(250,158,126,.72) 46%,rgba(228,94,98,.34) 72%,rgba(228,94,98,0) 82%)}
.browswell-r{right:8px;top:40px;width:48px;height:30px;background:radial-gradient(ellipse 62% 58% at 54% 62%,rgba(255,216,182,.95) 0%,rgba(246,150,126,.7) 46%,rgba(198,86,112,.34) 72%,rgba(198,86,112,0) 82%)}
.blackeye{right:4px;top:42px;width:54px;height:48px;background:radial-gradient(ellipse 58% 54% at 50% 52%,rgba(86,42,126,.6) 0%,rgba(108,56,140,.4) 54%,rgba(108,56,140,0) 78%);border-radius:50%;filter:blur(3px);z-index:2}
.blackeye-l{left:4px;right:auto}
.sweat{font-size:20px;z-index:6;line-height:1}
.sweat-1{right:-6px;top:48px}
.sweat-2{left:-6px;top:64px}
.blood-nose{left:50%;margin-left:-2px;top:104px;width:4px;height:0;background:#c8102e;border-radius:0 0 999px 999px;z-index:6;transition:height .3s ease,opacity .3s ease}
.blood-mouth{right:20px;top:146px;width:5px;height:0;background:#c8102e;border-radius:0 0 999px 999px;z-index:6;transform:rotate(6deg);transition:height .3s ease,opacity .3s ease}
.fighter[data-dmg="1"] .sweat-1{opacity:1}
.fighter[data-dmg="2"] .head{background:#ffc79b}
.fighter[data-dmg="2"] .sweat-1{opacity:1}
.fighter[data-dmg="3"] .head{background:#ffbfa0;border-radius:46% 54% 38% 34%/36% 34% 54% 50%}
.fighter[data-dmg="3"] .blood-nose{opacity:1;height:20px}
.fighter[data-dmg="3"] .sweat-1,.fighter[data-dmg="3"] .sweat-2{opacity:1}
.fighter[data-dmg="3"] .mouth{width:22px;height:16px;border:3px solid #111;border-bottom-width:3px;border-radius:50%}
.fighter[data-dmg="4"] .head{background:#ffb09b;border-radius:44% 56% 36% 32%/34% 32% 52% 50%}
.fighter[data-dmg="4"] .blood-nose{opacity:1;height:31px;width:5px}
.fighter[data-dmg="4"] .blood-mouth{opacity:1;height:14px}
.fighter[data-dmg="4"] .sweat-1,.fighter[data-dmg="4"] .sweat-2{opacity:1}
.fighter[data-dmg="4"] .band{transform:rotate(-7deg) translateY(-2px)}
.fighter[data-dmg="4"] .mouth{width:19px;height:19px;border:3px solid #111;border-radius:50%;background:#7a1f1f}
.fighter[data-dmg="5"] .head{background:#ffa894;border-radius:42% 58% 34% 30%/32% 30% 54% 48%}
.fighter[data-dmg="5"] .blood-nose{opacity:1;height:42px;width:6px}
.fighter[data-dmg="5"] .blood-mouth{opacity:1;height:25px;width:6px}
.fighter[data-dmg="5"] .sweat-1,.fighter[data-dmg="5"] .sweat-2{opacity:1}
.fighter[data-dmg="5"] .band{transform:rotate(-12deg) translateY(-3px)}
.fighter[data-dmg="5"] .mouth{width:22px;height:22px;border:3px solid #111;border-radius:50%;background:#7a1f1f}

.fighter[data-swl="1"] .swell-l,.fighter[data-swl="1"] .browswell-l{opacity:.3;transform:scale(.55)}
.fighter[data-swl="2"] .swell-l,.fighter[data-swl="2"] .browswell-l{opacity:.48;transform:scale(.68)}
.fighter[data-swl="3"] .swell-l,.fighter[data-swl="3"] .browswell-l{opacity:.64;transform:scale(.82)}
.fighter[data-swl="4"] .swell-l,.fighter[data-swl="4"] .browswell-l{opacity:.79;transform:scale(.96)}
.fighter[data-swl="5"] .swell-l,.fighter[data-swl="5"] .browswell-l{opacity:.9;transform:scale(1.1)}
.fighter[data-swl="6"] .swell-l,.fighter[data-swl="6"] .browswell-l{opacity:1;transform:scale(1.26)}
.fighter[data-swr="1"] .swell-r,.fighter[data-swr="1"] .browswell-r{opacity:.3;transform:scale(.55)}
.fighter[data-swr="2"] .swell-r,.fighter[data-swr="2"] .browswell-r{opacity:.48;transform:scale(.68)}
.fighter[data-swr="3"] .swell-r,.fighter[data-swr="3"] .browswell-r{opacity:.64;transform:scale(.82)}
.fighter[data-swr="4"] .swell-r,.fighter[data-swr="4"] .browswell-r{opacity:.79;transform:scale(.96)}
.fighter[data-swr="5"] .swell-r,.fighter[data-swr="5"] .browswell-r{opacity:.9;transform:scale(1.1)}
.fighter[data-swr="6"] .swell-r,.fighter[data-swr="6"] .browswell-r{opacity:1;transform:scale(1.26)}

.fighter[data-swl="2"] .blackeye-l{opacity:.3}
.fighter[data-swl="3"] .blackeye-l{opacity:.5;transform:scale(1.04)}
.fighter[data-swl="4"] .blackeye-l{opacity:.68;transform:scale(1.08)}
.fighter[data-swl="5"] .blackeye-l{opacity:.85;transform:scale(1.12)}
.fighter[data-swl="6"] .blackeye-l{opacity:1;transform:scale(1.16)}
.fighter[data-swr="2"] .blackeye{opacity:.3}
.fighter[data-swr="3"] .blackeye{opacity:.5;transform:scale(1.04)}
.fighter[data-swr="4"] .blackeye{opacity:.68;transform:scale(1.08)}
.fighter[data-swr="5"] .blackeye{opacity:.85;transform:scale(1.12)}
.fighter[data-swr="6"] .blackeye{opacity:1;transform:scale(1.16)}

.brow{transition:transform .18s ease}
.fighter.expr-smirk .mouth{width:34px;height:11px;transform:translateX(4px) rotate(-7deg);border-bottom-width:6px}
.fighter.expr-smirk .eye-r{transform:scaleY(.55)}
.fighter.expr-smirk .brow-r{transform:rotate(0deg) translateY(-4px)}
.fighter.expr-open .mouth{width:26px;height:20px;background:#7a1f1f;border:3px solid #14142b;border-radius:50%}
.fighter.expr-open .mouth::after{content:"";position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:12px;height:6px;background:#e56a7e;border-radius:50%}
.fighter.expr-open .brow-l{transform:rotate(-12deg) translateY(-3px)}
.fighter.expr-open .brow-r{transform:rotate(12deg) translateY(-3px)}
.fighter.expr-grin .mouth{width:44px;height:17px;background:repeating-linear-gradient(90deg,#fff 0 6px,#d8d8e2 6px 7px);border:3px solid #14142b;border-radius:7px 7px 15px 15px}
.fighter.expr-fierce .mouth{width:31px;height:25px;background:#6d1616;border:3px solid #14142b;border-radius:46% 46% 50% 50%}
.fighter.expr-fierce .mouth::after{content:"";position:absolute;left:50%;bottom:3px;transform:translateX(-50%);width:15px;height:7px;background:#e56a7e;border-radius:50%}
.fighter.expr-fierce .brow-l{transform:rotate(17deg) translateY(3px)}
.fighter.expr-fierce .brow-r{transform:rotate(-17deg) translateY(3px)}
.fighter.expr-fierce .eye{transform:scaleY(.82)}
.fighter.expr-pained .mouth{width:30px;height:12px;background:none;border:0;border-top:5px solid #b83a5e;border-radius:999px;transform:translateY(4px)}

.fighter.expr-pained{--pchev:31deg;--peye:.9;--pbrow:28deg;--pbrowy:4px;--pbrowx:1px}
.fighter.expr-pained.pain-2{--pchev:36deg;--peye:.84;--pbrow:35deg;--pbrowy:6px;--pbrowx:2px}
.fighter.expr-pained.pain-3{--pchev:43deg;--peye:.76;--pbrow:43deg;--pbrowy:8px;--pbrowx:3px}
.fighter.expr-pained.pain-4{--pchev:51deg;--peye:.67;--pbrow:53deg;--pbrowy:11px;--pbrowx:4px}
.fighter.expr-pained .eye{background:transparent;border-color:transparent;overflow:visible;transform:scale(var(--peye))}
.fighter.expr-pained .eye .iris{opacity:0}
.fighter.expr-pained .eye::before,.fighter.expr-pained .eye::after{content:"";position:absolute;width:18px;height:5.5px;background:#14142b;border-radius:99px;z-index:4}
.fighter.expr-pained .eye-l::before{left:2px;top:3px;transform-origin:0 50%;transform:rotate(var(--pchev))}
.fighter.expr-pained .eye-l::after{left:2px;bottom:3px;transform-origin:0 50%;transform:rotate(calc(var(--pchev)*-1))}
.fighter.expr-pained .eye-r::before{right:2px;top:3px;transform-origin:100% 50%;transform:rotate(calc(var(--pchev)*-1))}
.fighter.expr-pained .eye-r::after{right:2px;bottom:3px;transform-origin:100% 50%;transform:rotate(var(--pchev))}
.fighter.expr-pained .brow-l{transform:rotate(var(--pbrow)) translate(var(--pbrowx),var(--pbrowy))}
.fighter.expr-pained .brow-r{transform:rotate(calc(var(--pbrow)*-1)) translate(calc(var(--pbrowx)*-1),var(--pbrowy))}
.fighter.expr-pained.pain-1 .mouth,.fighter.expr-pained.pain-2 .mouth{background:repeating-linear-gradient(90deg,#fff 0 6px,#d8d8e2 6px 7px);border:3px solid #14142b;border-radius:6px 6px 9px 9px;transform:translateY(3px)}
.fighter.expr-pained.pain-1 .mouth{width:38px;height:16px}
.fighter.expr-pained.pain-2 .mouth{width:43px;height:20px}
.fighter.expr-pained.pain-3 .mouth,.fighter.expr-pained.pain-4 .mouth{background:linear-gradient(180deg,#fff 0 7px,#d8d8e2 7px 9px,#6d1616 9px);border:3px solid #14142b;transform:translateY(3px)}
.fighter.expr-pained.pain-3 .mouth{width:34px;height:29px;border-radius:10px 10px 14px 14px}
.fighter.expr-pained.pain-4 .mouth{width:40px;height:36px;border-radius:11px 11px 17px 17px}
.fighter.expr-pained.pain-3 .mouth::after,.fighter.expr-pained.pain-4 .mouth::after{content:"";position:absolute;left:50%;bottom:2px;transform:translateX(-50%);background:#e56a7e;border-radius:50%}
.fighter.expr-pained.pain-3 .mouth::after{width:16px;height:8px}
.fighter.expr-pained.pain-4 .mouth::after{width:20px;height:10px}

.fighter.expr-pained.pain-2 .sweat-1{opacity:1}
.fighter.expr-pained.pain-3 .sweat-1,.fighter.expr-pained.pain-3 .sweat-2{opacity:1}
.fighter.expr-pained.pain-4 .sweat-1,.fighter.expr-pained.pain-4 .sweat-2{opacity:1}
.fighter.expr-pained.pain-4 .sweat-1{transform:translate(12px,-9px) scale(1.4)}
.fighter.expr-pained.pain-4 .sweat-2{transform:translate(-12px,-7px) scale(1.35)}
.fighter.expr-pained.pain-4 .sweat-1::after,.fighter.expr-pained.pain-4 .sweat-2::after{content:"💧";position:absolute;font-size:13px;line-height:1}
.fighter.expr-pained.pain-4 .sweat-1::after{right:-17px;top:-11px}
.fighter.expr-pained.pain-4 .sweat-2::after{left:-17px;top:-9px}

.cheek-l{--cr:-7deg}
.cheek-r{--cr:7deg}
.fighter.sq-l .cheek-l,.fighter.sq-r .cheek-r{--tilt:calc((var(--hr,0) + var(--hhr,0))*1deg);animation:cheekSquash calc(var(--hret)*1ms) ease-out;animation-delay:calc(var(--hstop)*1ms)}
@keyframes cheekSquash{0%{transform:rotate(var(--cr,0deg)) scale(1,1)}16%{transform:rotate(calc(var(--cr,0deg) - var(--tilt,0deg))) scale(var(--sqx,1.4),var(--sqy,.6))}42%{transform:rotate(calc(var(--cr,0deg) - var(--tilt,0deg)*.57)) scale(.9,1.1)}100%{transform:rotate(var(--cr,0deg)) scale(1,1)}}

.fighter.expr-pained.pain-3 .eye .iris{animation:eyeSwim .82s linear}
.fighter.expr-pained.pain-4 .eye .iris{animation:eyeSwim .9s linear}
.fighter.expr-pained.pain-3 .eye::before,.fighter.expr-pained.pain-3 .eye::after{animation:chevSwim .82s linear}
.fighter.expr-pained.pain-4 .eye::before,.fighter.expr-pained.pain-4 .eye::after{animation:chevSwim .9s linear}
@keyframes eyeSwim{0%,28%{opacity:0;transform:translate(-50%,-50%)}38%{opacity:1;transform:translate(-80%,-64%)}52%{opacity:1;transform:translate(-22%,-36%)}66%{opacity:1;transform:translate(-66%,-32%)}80%{opacity:1;transform:translate(-36%,-58%)}92%,100%{opacity:0;transform:translate(-50%,-50%)}}
@keyframes chevSwim{0%,28%{opacity:1}38%,80%{opacity:.12}92%,100%{opacity:1}}
@media (prefers-reduced-motion: reduce){.fighter.sq-l .cheek-l,.fighter.sq-r .cheek-r,.fighter.expr-pained.pain-3 .eye .iris,.fighter.expr-pained.pain-4 .eye .iris,.fighter.expr-pained.pain-3 .eye::before,.fighter.expr-pained.pain-3 .eye::after,.fighter.expr-pained.pain-4 .eye::before,.fighter.expr-pained.pain-4 .eye::after{animation:none}}

.fighter.expr-pained.bpain .mouth{background:linear-gradient(180deg,#fff 0 5px,#d8d8e2 5px 7px,#6d1616 7px);border:3px solid #14142b;border-radius:9px 9px 13px 13px;width:29px;height:21px;transform:translateY(3px)}
.fighter.expr-pained.bpain .mouth::after{content:"";position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:13px;height:6px;background:#e56a7e;border-radius:50%}
.fighter.expr-pained.bpain.pain-1 .mouth{width:31px;height:24px}
.fighter.expr-pained.bpain.pain-2 .mouth{width:35px;height:29px;border-radius:10px 10px 14px 14px}
.fighter.expr-pained.bpain.pain-2 .mouth::after{width:16px;height:8px}
.fighter.expr-pained.bpain.pain-3 .mouth{width:38px;height:33px;border-radius:11px 11px 16px 16px}
.fighter.expr-pained.bpain.pain-3 .mouth::after{width:18px;height:9px}
.fighter.expr-pained.bpain .eye .iris,.fighter.expr-pained.bpain .eye::before,.fighter.expr-pained.bpain .eye::after{animation:none}

#fighter.rush-shock .eye{transform:scale(1.16)}
#fighter.rush-shock .eye .iris{transform:translate(-50%,-60%) scale(.68)}
#fighter.rush-shock .brow-l{transform:rotate(-6deg) translateY(-7px)}
#fighter.rush-shock .brow-r{transform:rotate(6deg) translateY(-7px)}
#fighter.rush-shock .mouth{width:23px;height:25px;background:#7a1f1f;border:3px solid #14142b;border-radius:50%}
#fighter.rush-shock .mouth::after{content:"";position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:11px;height:6px;background:#e56a7e;border-radius:50%}
#fighter.rush-shock .sweat-1,#fighter.rush-shock .sweat-2{opacity:1}


.head{border-radius:45% 45% 36% 36%/32% 32% 50% 50%;scale:1.05 .86;transform-origin:50% 100%}
.fighter.down .head{transform-origin:50% 50%}
.band{display:none}
.hair{top:-27px;width:122px;height:64px;background:linear-gradient(155deg,#4c4c5e 0%,#1b1b22 42%,#0a0a0e 100%);border-radius:0;clip-path:polygon(50% 0%,57% 16%,72% 1%,73% 19%,90% 4%,87% 24%,100% 16%,93% 36%,101% 48%,90% 53%,94% 70%,99% 112%,84% 82%,79% 97%,67% 74%,59% 88%,50% 75%,41% 88%,33% 74%,21% 97%,16% 82%,1% 112%,6% 70%,10% 53%,0% 48%,7% 36%,0% 16%,13% 24%,10% 4%,27% 19%,28% 1%,43% 16%)}
.hair::before,.hair::after{display:none}
.eye{top:60px;width:21px;height:26px;border-width:3px;border-top-width:6px;border-radius:46% 46% 48% 48%/74% 74% 30% 30%}
.eye-l{left:22px}
.eye-r{right:22px}
.eye .iris{width:12px;height:15px;background:radial-gradient(circle at 35% 26%, #fff 0 2.6px, rgba(255,255,255,0) 3.2px),radial-gradient(circle, #3a2413 0 52%, #0a0603 58%)}
.brow{top:48px;width:27px;height:9px;background:#17110c;border-radius:4px}
.brow-l{left:20px;transform:rotate(9deg)}
.brow-r{right:20px;transform:rotate(-9deg)}
.nose{top:94px;width:10px;height:13px;border:none;border-right:3.5px solid rgba(17,17,17,.9);border-bottom:3.5px solid rgba(17,17,17,.9);border-radius:0 0 4px 0;transform:translateX(-50%) skewX(-6deg)}
.mouth{width:30px}
.neck{width:52px}
.body{width:180px}
.shoulder{width:56px;height:44px}
.upper-arm{width:40px}
.chest{width:150px;height:54px}
.chest::before,.chest::after{height:20px;bottom:5px;border-bottom-color:rgba(120,60,20,.58)}
.waist{width:112px;background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 10px,rgba(130,66,24,.45) 10px 12.5px,rgba(255,255,255,0) 12.5px 22px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1.5px),rgba(130,66,24,.5) calc(50% - 1.5px) calc(50% + 1.5px),rgba(255,255,255,0) calc(50% + 1.5px)),linear-gradient(180deg,#f8bd83,#f0a967)}
.trunks-in{background:linear-gradient(180deg,#2b4bd8 0 9px,#1d358f 9px 12px,rgba(255,255,255,0) 12px),linear-gradient(90deg,rgba(0,0,0,.16) 0 7px,rgba(255,255,255,0) 7px calc(100% - 7px),rgba(0,0,0,.16) calc(100% - 7px)),linear-gradient(180deg,#ff9026,#f26d0d);font-size:16px;letter-spacing:0;padding-bottom:11px}
.thigh{width:38px;height:38px;left:0}
.boxing-shoe{background:linear-gradient(180deg,var(--shoe-dark) 0 5px,var(--shoe-main) 5px 14px,#f5f6fa 14px)}

.fighter.attacking.wind{animation:tellFlash .15s steps(2,end) infinite}
@keyframes tellFlash{0%{filter:none}50%{filter:brightness(1.55) saturate(1.7) hue-rotate(-16deg)}100%{filter:none}}


.ear{position:absolute;top:78px;width:22px;height:30px;background:#f9c184;border:3px solid #111;border-radius:50%;z-index:0}
.ear-l{left:-12px;clip-path:inset(-6px 10px -6px -6px)}
.ear-r{right:-12px;clip-path:inset(-6px -6px -6px 10px)}
.nose{position:absolute;left:50%;top:94px;transform:translateX(-50%);width:14px;height:11px;border-bottom:3px solid rgba(17,17,17,.85);border-radius:50%;z-index:3}

.neck{width:48px;height:22px;margin-top:-7px;background:linear-gradient(180deg,#eaa96f,#f2b57e);border-left:3px solid #111;border-right:3px solid #111;position:relative;z-index:2;flex:none}
.body{margin-top:-5px;width:190px;height:100px;flex:none;position:relative;display:flex;flex-direction:column;align-items:center;isolation:isolate}

.shoulder{position:absolute;top:0;width:62px;height:40px;background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.38),rgba(255,255,255,0) 68%),linear-gradient(180deg,#ffc286,#f4ad68);border:3px solid #111;border-bottom:none;border-radius:56% 44% 50% 50%/92% 88% 16% 14%;z-index:1;box-shadow:inset 0 -4px 0 rgba(166,91,38,.10)}

.shoulder-l{left:1px;transform:rotate(-13deg);border-right:none}
.shoulder-r{right:1px;transform:rotate(13deg);border-left:none}

.upper-arm{position:absolute;top:32px;width:38px;height:66px;background:linear-gradient(90deg,#efa763,#ffc286 48%,#f0a967);border:3px solid #111;border-radius:18px;z-index:1;box-shadow:inset -5px 0 0 rgba(166,91,38,.13);transform-origin:50% 0;transition:transform .45s cubic-bezier(.34,.8,.3,1)}
.upper-arm-l{left:2px;transform:rotate(16deg)}
.upper-arm-r{right:2px;transform:rotate(-16deg)}
.fighter.strike .upper-arm{transition-duration:.18s}
.chest{width:160px;height:58px;flex:none;position:relative;z-index:2;overflow:hidden;background:radial-gradient(ellipse 34% 48% at 29% 28%,rgba(255,255,255,.34),rgba(255,255,255,0) 66%),radial-gradient(ellipse 34% 48% at 71% 28%,rgba(255,255,255,.34),rgba(255,255,255,0) 66%),linear-gradient(180deg,#ffc286,#f7b878);border:3px solid #111;border-radius:48px 48px 18px 18px;box-shadow:inset 0 -9px 0 rgba(166,91,38,.14)}
.chest::before,.chest::after{content:"";position:absolute;bottom:6px;width:48px;height:18px;border-bottom:3px solid rgba(146,79,35,.42);border-radius:50%}
.chest::before{left:13px}
.chest::after{right:13px}
.sternum{position:absolute;left:50%;top:12px;transform:translateX(-50%);width:3px;height:28px;background:rgba(146,79,35,.34);border-radius:2px}
.waist{width:118px;height:46px;margin-top:-4px;flex:none;position:relative;z-index:2;overflow:hidden;background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 11px,rgba(146,79,35,.25) 11px 13px,rgba(255,255,255,0) 13px 24px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1px),rgba(146,79,35,.30) calc(50% - 1px) calc(50% + 1px),rgba(255,255,255,0) calc(50% + 1px)),linear-gradient(180deg,#f8bd83,#f0a967);border:3px solid #111;border-top:none;border-radius:6px 6px 16px 16px;box-shadow:inset 0 -8px 0 rgba(166,91,38,.13)}
.navel{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);width:5px;height:7px;background:rgba(146,79,35,.48);border-radius:50%}

.trunks{margin-top:-18px;width:170px;height:65px;flex:none;position:relative;z-index:4;background:#14142b;clip-path:polygon(9% 0,91% 0,100% 100%,59% 100%,50% 68%,41% 100%,0 100%)}

.trunks-in{position:absolute;inset:3px;background:linear-gradient(180deg,#f5f6fa 0 8px,rgba(255,255,255,0) 8px),linear-gradient(90deg,#e83e55 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e83e55 calc(100% - 8px)),linear-gradient(180deg,#33356e,#23234d);clip-path:polygon(8% 0,92% 0,100% 100%,59.5% 100%,50% 64%,40.5% 100%,0 100%);display:flex;align-items:flex-end;justify-content:center;color:#fff;font-weight:900;letter-spacing:.14em;font-size:12px;padding-bottom:13px;box-shadow:inset 0 -7px 0 rgba(0,0,0,.18)}
.legs{display:flex;gap:58px;margin-top:-4px;flex:none;height:94px;position:relative;z-index:0;transform-origin:50% 0;transition:transform .28s ease,filter .28s ease}
.leg{width:40px;height:94px;position:relative;transform-origin:50% 0;transition:transform .3s ease,filter .3s ease}
.leg:first-child{transform:rotate(3deg)}
.leg:last-child{transform:rotate(-3deg)}

.fighter.attacking.pt-jab .leg:first-child{transform:translate(-1px,2px) rotate(7deg)}
.fighter.attacking.pt-jab .leg:last-child{transform:translate(4px,2px) rotate(-8deg);filter:brightness(.94)}
.fighter.attacking.pt-straight .leg:first-child{transform:translate(-3px,2px) rotate(6deg);filter:brightness(.94)}
.fighter.attacking.pt-straight .leg:last-child{transform:translate(1px,2px) rotate(-7deg)}
.fighter.attacking.pt-hook-l .leg:first-child{transform:translate(-1px,2px) rotate(8deg)}
.fighter.attacking.pt-hook-l .leg:last-child{transform:translate(5px,2px) rotate(-6deg);filter:brightness(.93)}
.fighter.attacking.pt-hook-r .leg:first-child{transform:translate(-5px,2px) rotate(6deg);filter:brightness(.93)}
.fighter.attacking.pt-hook-r .leg:last-child{transform:translate(1px,2px) rotate(-8deg)}
.fighter.attacking.pt-upper-l .leg:first-child,.fighter.attacking.pt-upper-r .leg:first-child{transform:translate(-4px,1px) rotate(6deg)}
.fighter.attacking.pt-upper-l .leg:last-child,.fighter.attacking.pt-upper-r .leg:last-child{transform:translate(4px,1px) rotate(-6deg);filter:brightness(.96)}
.fighter.attacking.pt-smash-l .leg:first-child{transform:translate(-2px,2px) rotate(10deg)}
.fighter.attacking.pt-smash-l .leg:last-child{transform:translate(5px,3px) rotate(-5deg);filter:brightness(.93)}
.fighter.attacking.pt-smash-r .leg:first-child{transform:translate(-5px,3px) rotate(5deg);filter:brightness(.93)}
.fighter.attacking.pt-smash-r .leg:last-child{transform:translate(2px,2px) rotate(-10deg)}

.fighter.attacking.pt-chop-r .leg:first-child{transform:translate(-2px,1px) rotate(10deg)}
.fighter.attacking.pt-chop-r .leg:last-child{transform:translate(5px,2px) rotate(-5deg);filter:brightness(.93)}

.fighter.attacking .legs{transform:translateY(-3px) scaleY(.88) scaleX(.97);filter:brightness(.94)}
.fighter.strike .legs,.fighter.whiff .legs{transform:translateY(-6px) scaleY(.78) scaleX(.95);filter:brightness(.9);-webkit-mask-image:linear-gradient(180deg,#000 55%,rgba(0,0,0,.45) 86%,transparent 100%);mask-image:linear-gradient(180deg,#000 55%,rgba(0,0,0,.45) 86%,transparent 100%)}

.fighter:not(.attacking):not(.down):not(.hurt) .leg:first-child{animation:legStepL calc(var(--beat-ms)*2) ease-in-out infinite}
.fighter:not(.attacking):not(.down):not(.hurt) .leg:last-child{animation:legStepR calc(var(--beat-ms)*2) ease-in-out infinite;animation-delay:calc(var(--beat-ms)*-1)}
@keyframes legStepL{0%,100%{transform:rotate(3deg) translateY(0)}16%{transform:rotate(5deg) translateY(-6px) scaleY(.94)}34%,88%{transform:rotate(3deg) translateY(0)}}
@keyframes legStepR{0%,100%{transform:rotate(-3deg) translateY(0)}16%{transform:rotate(-5deg) translateY(-6px) scaleY(.94)}34%,88%{transform:rotate(-3deg) translateY(0)}}

.thigh{position:absolute;top:0;left:1px;width:38px;height:44px;background:linear-gradient(90deg,#eda963,#ffc286 48%,#f4ad68);border:3px solid #111;border-bottom:none;border-radius:9px 9px 13px 13px;z-index:1}
.knee{position:absolute;top:37px;left:6px;width:26px;height:14px;background:radial-gradient(ellipse 60% 55% at 42% 30%,rgba(255,255,255,.40),rgba(255,255,255,0) 70%),linear-gradient(180deg,#ffc894,#f6b678);border:none;border-radius:50%;z-index:2}
.lower-leg{position:absolute;top:7px;left:6px;width:26px;height:33px;background:linear-gradient(90deg,#e99f5c,#f8ba7d 50%,#efa763);border:3px solid #111;border-top:none;border-radius:5px 5px 10px 10px;z-index:1}
.boxing-shoe{position:absolute;top:34px;left:-4px;width:46px;height:20px;background:linear-gradient(180deg,var(--shoe-dark) 0 5px,var(--shoe-main) 5px 14px,#f5f6fa 14px);border:3px solid #111;border-radius:9px 12px 6px 6px;z-index:4;box-shadow:inset 0 -3px 0 rgba(0,0,0,.16)}
.boxing-shoe::after{content:"";position:absolute;top:6px;left:9px;width:25px;height:3px;background:none;border-radius:99px} 

.torso{position:relative;width:100%;flex:none;display:flex;flex-direction:column;align-items:center;transform-origin:50% 100%;transition:transform .48s cubic-bezier(.34,.8,.3,1) .02s}
.fighter.strike .torso{transition:transform .17s cubic-bezier(.3,1.35,.4,1)}
.fighter.recover .torso{transition:transform .42s cubic-bezier(.3,.7,.3,1)}
.fighter.wind .torso{transform:rotate(2deg)}
.fighter.wind.pt-jab .torso{transform:rotate(-2deg)}
.fighter.strike.pt-jab .torso{transform:rotate(1.5deg)}
.fighter.whiff.pt-jab .torso{transform:rotate(2.5deg)}
.fighter.wind.pt-straight .torso{transform:rotate(4.5deg)}
.fighter.strike.pt-straight .torso{transform:rotate(-3.5deg)}
.fighter.whiff.pt-straight .torso{transform:rotate(-5deg)}
.fighter.wind.pt-hook-l .torso{transform:rotate(-6deg)}
.fighter.strike.pt-hook-l .torso{transform:rotate(6deg)}
.fighter.whiff.pt-hook-l .torso{transform:rotate(8.5deg)}
.fighter.wind.pt-hook-r .torso{transform:rotate(6deg)}
.fighter.strike.pt-hook-r .torso{transform:rotate(-6deg)}
.fighter.whiff.pt-hook-r .torso{transform:rotate(-8.5deg)}
.fighter.wind.pt-upper-l .torso{transform:rotate(-2deg) scaleY(.94)}
.fighter.wind.pt-upper-r .torso{transform:rotate(2deg) scaleY(.94)}
.fighter.strike.pt-upper-l .torso{transform:rotate(1.5deg) scaleY(1.05)}
.fighter.strike.pt-upper-r .torso{transform:rotate(-1.5deg) scaleY(1.05)}
.fighter.whiff.pt-upper-l .torso{transform:rotate(2deg) scaleY(1.06)}
.fighter.whiff.pt-upper-r .torso{transform:rotate(-2deg) scaleY(1.06)}
.fighter.wind.pt-smash-l .torso{transform:rotate(-8deg) scaleY(.93)}
.fighter.wind.pt-smash-r .torso{transform:rotate(8deg) scaleY(.93)}
.fighter.strike.pt-smash-l .torso{transform:rotate(8deg) scaleY(1.02)}
.fighter.strike.pt-smash-r .torso{transform:rotate(-8deg) scaleY(1.02)}
.fighter.whiff.pt-smash-l .torso{transform:rotate(10.5deg)}
.fighter.whiff.pt-smash-r .torso{transform:rotate(-10.5deg)}

.fighter.wind.pt-chop-r .torso{transform:rotate(-9.5deg) scaleY(1.02)}
.fighter.strike.pt-chop-r .torso{transform:rotate(6deg) scaleY(.99)}
.fighter.whiff.pt-chop-r .torso{transform:rotate(8.5deg)}
.fighter.feint-back .torso{transform:rotate(-1.6deg)} 
.fighter.sway .torso{transform:rotate(calc(var(--sway,24)*-.17deg)) translateY(2px)}

.fighter.wind.pt-jab .upper-arm-l{transform:rotate(24deg)}
.fighter.wind.pt-jab .upper-arm-r{transform:rotate(-11deg)}
.fighter.wind.pt-straight .upper-arm-r{transform:rotate(-24deg)}
.fighter.wind.pt-straight .upper-arm-l{transform:rotate(11deg)}
.fighter.wind.pt-hook-l .upper-arm-l{transform:rotate(28deg)}
.fighter.wind.pt-hook-l .upper-arm-r{transform:rotate(-10deg)}
.fighter.wind.pt-hook-r .upper-arm-r{transform:rotate(-28deg)}
.fighter.wind.pt-hook-r .upper-arm-l{transform:rotate(10deg)}
.fighter.wind.pt-upper-l .upper-arm-l{transform:rotate(24deg)}
.fighter.wind.pt-upper-l .upper-arm-r{transform:rotate(-11deg)}
.fighter.wind.pt-upper-r .upper-arm-r{transform:rotate(-24deg)}
.fighter.wind.pt-upper-r .upper-arm-l{transform:rotate(11deg)}
.fighter.wind.pt-smash-l .upper-arm-l{transform:rotate(31deg)}
.fighter.wind.pt-smash-l .upper-arm-r{transform:rotate(-10deg)}
.fighter.wind.pt-smash-r .upper-arm-r{transform:rotate(-31deg)}
.fighter.wind.pt-smash-r .upper-arm-l{transform:rotate(10deg)}

.fighter.wind.pt-chop-r .upper-arm-l{transform:rotate(131deg) scaleY(1.29)}
.fighter.wind.pt-chop-r .upper-arm-r{transform:rotate(-10deg)}

.fighter.down .torso{animation:downTorsoFold 2.6s ease forwards}

@keyframes downTorsoFold{0%{transform:rotate(0deg)}28%{transform:rotate(4deg)}52%,62%{transform:rotate(9deg)}72%{transform:rotate(6deg) scale(.97)}100%{transform:rotate(9deg) scale(.94)}}
.fighter.rising .torso{animation:riseTorsoFold 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseTorsoFold{0%{transform:rotate(9deg)}12%{transform:rotate(9.6deg)}30%{transform:rotate(7.9deg)}44%{transform:rotate(8.7deg)}62%{transform:rotate(3.6deg)}82%{transform:rotate(-1.2deg)}100%{transform:rotate(0deg)}}

.fighter:not(.attacking):not(.down):not(.hurt):not(.rising):not(.sway):not(.dodge-duck):not(.dodge-step):not(.dodge-swayback) .torso{animation:torsoSway calc(var(--beat-ms)*2) ease-in-out infinite alternate}
@keyframes torsoSway{from{transform:rotate(-1.1deg)}to{transform:rotate(1.1deg)}}

.torso::before{content:"";position:absolute;top:-9px;left:50%;transform:translateX(-50%);width:158px;height:30px;background:linear-gradient(180deg,#f8ba7d,#f0a967);clip-path:polygon(37% 0,63% 0,100% 100%,0 100%);z-index:0}

.trunks{transition:transform .38s cubic-bezier(.3,.7,.3,1) .01s;transform-origin:50% 14%}
.fighter.strike .trunks{transition-duration:.2s}
.fighter.wind.pt-jab .trunks{transform:rotate(1deg)}
.fighter.wind.pt-straight .trunks{transform:rotate(-2deg)}
.fighter.strike.pt-straight .trunks{transform:rotate(1.5deg)}
.fighter.wind.pt-hook-l .trunks{transform:rotate(2.5deg)}
.fighter.strike.pt-hook-l .trunks{transform:rotate(-2.5deg)}
.fighter.whiff.pt-hook-l .trunks{transform:rotate(-3.5deg)}
.fighter.wind.pt-hook-r .trunks{transform:rotate(-2.5deg)}
.fighter.strike.pt-hook-r .trunks{transform:rotate(2.5deg)}
.fighter.whiff.pt-hook-r .trunks{transform:rotate(3.5deg)}
.fighter.wind.pt-upper-l .trunks{transform:rotate(1deg) scaleY(.97)}
.fighter.wind.pt-upper-r .trunks{transform:rotate(-1deg) scaleY(.97)}
.fighter.wind.pt-smash-l .trunks{transform:rotate(3.5deg)}
.fighter.strike.pt-smash-l .trunks{transform:rotate(-3deg)}
.fighter.wind.pt-smash-r .trunks{transform:rotate(-3.5deg)}
.fighter.strike.pt-smash-r .trunks{transform:rotate(3deg)}
.fighter.wind.pt-chop-r .trunks{transform:rotate(3deg)}
.fighter.strike.pt-chop-r .trunks{transform:rotate(-2.5deg)}

.head{transition:background .3s ease,border-radius .3s ease,rotate .4s cubic-bezier(.3,.7,.3,1) .03s,translate .4s cubic-bezier(.3,.7,.3,1) .03s}
.fighter.strike .head{transition:background .3s ease,border-radius .3s ease,rotate .22s cubic-bezier(.3,1.2,.4,1) .01s,translate .22s cubic-bezier(.3,1.2,.4,1) .01s}
.fighter.wind.pt-jab .head{rotate:-1.5deg}
.fighter.strike.pt-jab .head{translate:0 2px}
.fighter.wind.pt-straight .head{rotate:2.5deg}
.fighter.strike.pt-straight .head{rotate:-1.5deg;translate:0 2px}
.fighter.wind.pt-hook-l .head{rotate:-3.5deg;translate:-2px 1px}
.fighter.strike.pt-hook-l .head{rotate:2deg;translate:0 2px}
.fighter.whiff.pt-hook-l .head{rotate:3deg;translate:1px 2px}
.fighter.wind.pt-hook-r .head{rotate:3.5deg;translate:2px 1px}
.fighter.strike.pt-hook-r .head{rotate:-2deg;translate:0 2px}
.fighter.whiff.pt-hook-r .head{rotate:-3deg;translate:-1px 2px}
.fighter.wind.pt-upper-l .head,.fighter.wind.pt-upper-r .head{translate:0 3px}
.fighter.strike.pt-upper-l .head{rotate:1deg;translate:0 -1px}
.fighter.strike.pt-upper-r .head{rotate:-1deg;translate:0 -1px}
.fighter.wind.pt-smash-l .head{rotate:-4deg;translate:-2px 3px}
.fighter.wind.pt-smash-r .head{rotate:4deg;translate:2px 3px}
.fighter.strike.pt-smash-l .head{rotate:2.5deg}
.fighter.strike.pt-smash-r .head{rotate:-2.5deg}
.fighter.wind.pt-chop-r .head{rotate:-5deg;translate:-3px 0px}
.fighter.strike.pt-chop-r .head{rotate:1.5deg;translate:0 3px}
.fighter.whiff.pt-chop-r .head{rotate:2.5deg;translate:1px 3px}

.glove::after{content:"";position:absolute;top:104px;left:50%;margin-left:-21px;width:42px;height:36px;background:linear-gradient(180deg,#eda25e,#e08d4c);border:3px solid #111;border-top:none;border-bottom:none;border-radius:10px 10px 19px 19px;z-index:-2;transform-origin:50% 5px;transition:transform .42s cubic-bezier(.3,1.12,.4,1),opacity .12s ease;box-shadow:inset 0 -4px 0 rgba(166,91,38,.18)}
.glove.left::after{transform:rotate(-7deg)}
.glove.right::after{transform:rotate(7deg)}
.fighter.wind.pt-jab .glove.left::after{transform:translate(9px,14px) rotate(8deg)}
.fighter.wind.pt-straight .glove.right::after{transform:translate(-31px,10px) rotate(-17deg)}
.fighter.wind.pt-hook-l .glove.left::after{transform:translate(-16px,14px) rotate(11deg)}
.fighter.wind.pt-hook-r .glove.right::after{transform:translate(16px,14px) rotate(-11deg)}
.fighter.wind.pt-upper-l .glove.left::after{transform:translate(-13px,15px) rotate(-19deg)}
.fighter.wind.pt-upper-r .glove.right::after{transform:translate(13px,15px) rotate(19deg)}
.fighter.wind.pt-smash-l .glove.left::after{transform:translate(52px,-2px) rotate(29deg)}
.fighter.wind.pt-smash-r .glove.right::after{transform:translate(-52px,-2px) rotate(-29deg)}

.fighter.wind.pt-chop-r .glove.left::after{transform:translate(0px,7px) rotate(-19.5deg)}
.fighter.strike .glove::after{transition:transform .3s cubic-bezier(.3,1.12,.4,1),opacity .12s ease}
.fighter.strike.pt-jab .glove.right::after{transform:translate(13px,15px) rotate(10deg)}
.fighter.strike.pt-straight .glove.left::after{transform:translate(-13px,15px) rotate(-10deg)}
.fighter.strike.pt-hook-l .glove.left::after{transform:translate(-10px,3px) rotate(-3deg) scaleY(.88)}
.fighter.strike.pt-hook-r .glove.right::after{transform:translate(10px,3px) rotate(3deg) scaleY(.88)}
.fighter.strike.pt-upper-l .glove.left::after{transform:translate(-8px,-54px) rotate(2deg) scaleY(.38)}
.fighter.strike.pt-upper-r .glove.right::after{transform:translate(8px,-54px) rotate(-2deg) scaleY(.38)}
.fighter.strike.pt-smash-l .glove.left::after{transform:translate(3px,-8px) rotate(30deg) scaleY(.85)}
.fighter.strike.pt-smash-r .glove.right::after{transform:translate(-3px,-8px) rotate(-30deg) scaleY(.85)}

.fighter.strike.pt-chop-r .glove.left::after{transform:translate(-52px,-72px) rotate(26deg) scaleY(.66)}
.fighter.whiff .glove::after{transition:transform .38s cubic-bezier(.3,.7,.3,1),opacity .12s ease}
.fighter.whiff.pt-hook-l .glove.left::after{transform:rotate(7deg)}
.fighter.whiff.pt-hook-r .glove.right::after{transform:rotate(-7deg)}
.fighter.whiff.pt-upper-l .glove.left::after{transform:translate(-9px,-62px) rotate(-3deg) scaleY(.57)}
.fighter.whiff.pt-upper-r .glove.right::after{transform:translate(9px,-62px) rotate(3deg) scaleY(.57)}
.fighter.whiff.pt-smash-l .glove.left::after{transform:translate(9px,7px) rotate(37deg)}
.fighter.whiff.pt-smash-r .glove.right::after{transform:translate(-9px,7px) rotate(-37deg)}
.fighter.whiff.pt-chop-r .glove.left::after{transform:translate(-44px,-52px) rotate(22deg) scaleY(.6)}
.fighter.strike.pt-jab .glove.left::after,.fighter.whiff.pt-jab .glove.left::after,.fighter.strike.pt-straight .glove.right::after,.fighter.whiff.pt-straight .glove.right::after{opacity:0}
.fighter.recover .glove::before{transition:transform .36s ease}
.fighter.recover .glove::after{transition:transform .46s cubic-bezier(.3,.8,.3,1),opacity .2s ease}

.glove::after{top:98px;height:42px}
.glove.left::after{transform:translate(-6px,-7px) rotate(-7deg)}
.glove.right::after{transform:translate(6px,-7px) rotate(7deg)}
.fighter.wind.pt-jab .glove.left::after{transform:translate(40px,6px) rotate(-8deg)} 
.fighter.wind.pt-straight .upper-arm-r{transform:rotate(-12deg)}
.fighter.wind.pt-straight .glove.right::after{transform:translate(49px,14px) rotate(17deg);top:88px;height:52px} 
.fighter.wind.pt-upper-l .upper-arm-l{transform:rotate(-11deg) scaleY(1.92)}
.fighter.wind.pt-upper-r .upper-arm-r{transform:rotate(11deg) scaleY(1.92)}
.fighter.wind.pt-upper-l .glove.left::after{transform:translate(-23px,5px) rotate(-19deg);top:64px;height:76px}
.fighter.wind.pt-upper-r .glove.right::after{transform:translate(23px,5px) rotate(19deg);top:64px;height:76px}
.fighter.wind.pt-upper-l .glove.right::after{transform:translate(10px,-19px) rotate(7deg)}
.fighter.wind.pt-upper-r .glove.left::after{transform:translate(-10px,-19px) rotate(-7deg)}
.fighter.wind.pt-smash-l .upper-arm-l{transform:rotate(4deg) scaleY(1.8)}
.fighter.wind.pt-smash-r .upper-arm-r{transform:rotate(-4deg) scaleY(1.8)}
.fighter.wind.pt-smash-l .glove.right::after{transform:translate(2px,-23px) rotate(7deg)}
.fighter.wind.pt-smash-r .glove.left::after{transform:translate(-2px,-23px) rotate(-7deg)}
.fighter.wind.pt-hook-l .glove.right::after{transform:translate(6px,-6px) rotate(7deg)}
.fighter.wind.pt-hook-r .glove.left::after{transform:translate(-6px,-6px) rotate(-7deg)}
.fighter.wind.pt-chop-r .glove.right::after{transform:translate(6px,-10px) rotate(7deg)}

.glove::after{width:46px;margin-left:-23px;top:92px;height:48px;background:linear-gradient(180deg,#f0ac68,#e08d4c)}

.shin{position:absolute;top:40px;left:0;width:40px;height:54px;z-index:1;transform-origin:50% 5px;transition:transform .34s cubic-bezier(.3,.7,.3,1)}
.fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child .shin{animation:shinStepL calc(var(--beat-ms)*2) ease-in-out infinite}
.fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:last-child .shin{animation:shinStepR calc(var(--beat-ms)*2) ease-in-out infinite;animation-delay:calc(var(--beat-ms)*-1)}
@keyframes shinStepL{0%,100%{transform:rotate(0deg)}16%{transform:rotate(-7deg)}32%{transform:rotate(1.5deg)}88%{transform:rotate(0deg)}}
@keyframes shinStepR{0%,100%{transform:rotate(0deg)}16%{transform:rotate(7deg)}32%{transform:rotate(-1.5deg)}88%{transform:rotate(0deg)}}
.fighter.attacking.pt-jab .leg:first-child .shin{transform:rotate(-3deg)}
.fighter.attacking.pt-jab .leg:last-child .shin{transform:rotate(4deg)}
.fighter.attacking.pt-straight .leg:first-child .shin{transform:rotate(4deg)}
.fighter.attacking.pt-straight .leg:last-child .shin{transform:rotate(-3deg)}
.fighter.attacking.pt-hook-l .leg:first-child .shin{transform:rotate(-6deg)}
.fighter.attacking.pt-hook-l .leg:last-child .shin{transform:rotate(4deg)}
.fighter.attacking.pt-hook-r .leg:first-child .shin{transform:rotate(4deg)}
.fighter.attacking.pt-hook-r .leg:last-child .shin{transform:rotate(-6deg)}
.fighter.attacking.pt-upper-l .leg:first-child .shin,.fighter.attacking.pt-upper-r .leg:first-child .shin{transform:rotate(-7deg)}
.fighter.attacking.pt-upper-l .leg:last-child .shin,.fighter.attacking.pt-upper-r .leg:last-child .shin{transform:rotate(7deg)}
.fighter.attacking.pt-smash-l .leg:first-child .shin{transform:rotate(-10deg)}
.fighter.attacking.pt-smash-l .leg:last-child .shin{transform:rotate(6deg)}
.fighter.attacking.pt-smash-r .leg:first-child .shin{transform:rotate(6deg)}
.fighter.attacking.pt-smash-r .leg:last-child .shin{transform:rotate(-10deg)}
.fighter.attacking.pt-chop-r .leg:first-child .shin{transform:rotate(-8deg)}
.fighter.attacking.pt-chop-r .leg:last-child .shin{transform:rotate(5deg)}
.fighter.down .leg:last-child .shin{animation:downShinFold 2.6s ease forwards}
@keyframes downShinFold{0%,10%{transform:rotate(0deg)}28%,62%{transform:rotate(34deg)}72%{transform:rotate(10deg)}100%{transform:rotate(-2deg)}}
.fighter.down .leg:first-child .shin{animation:downShinPlant 2.6s ease forwards}
@keyframes downShinPlant{0%{transform:rotate(0deg)}28%,62%{transform:rotate(-9deg)}72%{transform:rotate(-4deg)}100%{transform:rotate(0deg)}}
.fighter.rising .leg:last-child .shin{animation:riseShinFold 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseShinFold{0%,32%{transform:rotate(34deg)}54%{transform:rotate(15deg)}72%{transform:rotate(-2deg)}100%{transform:rotate(0deg)}}
.fighter.rising .leg:first-child .shin{animation:riseShinPlant 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseShinPlant{0%{transform:rotate(-9deg)}12%,30%{transform:rotate(-11deg)}62%{transform:rotate(-4deg)}100%{transform:rotate(0deg)}}

.upper-arm{border-bottom:none;border-radius:19px 19px 15px 15px;background:radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(90deg,#efa763,#ffc286 48%,#f0a967)}
.chest{box-shadow:inset 0 -9px 0 rgba(166,91,38,.14),inset 11px 0 9px -5px rgba(166,91,38,.18),inset -11px 0 9px -5px rgba(166,91,38,.18)}
.waist{box-shadow:inset 9px 0 7px -3px rgba(146,79,35,.22),inset -9px 0 7px -3px rgba(146,79,35,.22),inset 0 -8px 0 rgba(166,91,38,.13)}
.thigh{background:radial-gradient(ellipse 55% 38% at 42% 24%,rgba(255,255,255,.30),rgba(255,255,255,0) 70%),linear-gradient(90deg,#eda963,#ffc286 48%,#f4ad68)}
.lower-leg{background:radial-gradient(ellipse 75% 32% at 50% 15%,rgba(255,255,255,.30),rgba(255,255,255,0) 72%),linear-gradient(90deg,#e99f5c,#f8ba7d 50%,#efa763);border-radius:7px 7px 10px 10px}

.legs{gap:6px;margin-top:-32px;height:188px}
.leg{width:80px;height:188px}
.thigh{left:2px;width:76px;height:104px;border-radius:18px 18px 26px 26px} 
.knee{top:86px;left:22px;width:36px;height:18px} 
.shin{top:80px;width:80px;height:108px;transform-origin:50% 15px}
.lower-leg{top:14px;left:14px;width:52px;height:66px;border-radius:10px 10px 20px 20px}
.boxing-shoe{top:68px;left:-6px;width:92px;height:30px;background:linear-gradient(180deg,var(--shoe-dark) 0 8px,var(--shoe-main) 8px 21px,#f5f6fa 21px);border-radius:12px 16px 8px 8px}
.boxing-shoe::after{top:11px;left:16px;width:52px;height:5px;background:none}

.legs{gap:6px}
.boxing-shoe{top:47px;height:51px;background:linear-gradient(180deg,var(--shoe-dark) 0 10px,var(--shoe-mid) 10px 28px,var(--shoe-main) 28px 42px,#f5f6fa 42px);border-radius:12px 16px 8px 8px}
.boxing-shoe::after{top:16px}

.neck{border-left:none;border-right:none;background:linear-gradient(90deg,rgba(166,91,38,.30),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(166,91,38,.30)),linear-gradient(180deg,#eaa96f,#f2b57e);box-shadow:inset 0 7px 6px -4px rgba(120,60,20,.38),inset 5px 0 6px -3px rgba(166,91,38,.30),inset -5px 0 6px -3px rgba(166,91,38,.30)}
.torso::before{width:176px;height:34px;top:-12px;background:linear-gradient(180deg,#f8ba7d,#f2af6e)}
.shoulder{top:-3px;width:64px;height:42px;border:none;box-shadow:none;z-index:1;background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 68%),linear-gradient(180deg,#ffc286,#f7b878)}
.shoulder-l{left:-2px}
.shoulder-r{right:-2px}
.chest{width:168px;height:64px;border-top:none;z-index:3;background:radial-gradient(ellipse 40% 52% at 27% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 40% 52% at 73% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(166,91,38,.16),rgba(255,255,255,0) 72%),linear-gradient(180deg,#ffc286,#f7b878);box-shadow:inset 0 -11px 0 rgba(166,91,38,.16),inset 12px 0 10px -5px rgba(166,91,38,.20),inset -12px 0 10px -5px rgba(166,91,38,.20)}
.chest::before,.chest::after{width:62px;height:24px;bottom:4px;border-bottom:4px solid rgba(146,79,35,.55);background:radial-gradient(ellipse 72% 62% at 50% 26%,rgba(255,255,255,.20),rgba(255,255,255,0) 72%)}
.chest::before{left:10px}
.chest::after{right:10px}
.sternum{top:10px;width:4px;height:36px;background:rgba(146,79,35,.40)}
.gloves{position:absolute;top:150px;left:50%;transform:translateX(-50%);width:238px;display:flex;justify-content:space-between;z-index:4}
.glove{width:76px;height:76px;filter:drop-shadow(0 6px 0 rgba(0,0,0,.22));position:relative;z-index:0}

.glove::before{content:"";position:absolute;top:36px;left:50%;margin-left:-23px;width:46px;height:84px;background:linear-gradient(180deg,#f9c184,#eda25e);border:3px solid #111;border-bottom:none;border-radius:23px;z-index:-1;transform-origin:50% 0;transition:transform .3s ease}
.glove.left::before{transform:rotate(9deg)}
.glove.right::before{transform:rotate(-9deg)}


.fighter.wind.pt-jab .glove.left::before{transform:rotate(8deg)}

.fighter.wind.pt-jab .glove.left::before{transform:rotate(0deg)}
.fighter.wind.pt-jab .glove.left::after{transform:translate(28px,7px) rotate(2deg)}
.fighter.wind.pt-hook-l .glove.left::before{transform:rotate(11deg)}
.fighter.wind.pt-hook-r .glove.right::before{transform:rotate(-11deg)}

.fighter.wind.pt-straight .glove.right::before{transform:rotate(-22deg)}
.fighter.wind.pt-smash-l .glove.left::before{transform:rotate(-38deg)}
.fighter.wind.pt-smash-r .glove.right::before{transform:rotate(38deg)}

.fighter.wind.pt-chop-r .glove.left::before{transform:rotate(0deg)}

.fighter.strike.pt-hook-l .glove.left::before{transform:rotate(8deg) scaleY(.85)}
.fighter.whiff.pt-hook-l .glove.left::before{transform:rotate(0deg) scaleY(.97)}
.fighter.strike.pt-hook-r .glove.right::before{transform:rotate(-8deg) scaleY(.85)}
.fighter.whiff.pt-hook-r .glove.right::before{transform:rotate(0deg) scaleY(.97)}

.fighter.strike.pt-upper-l .glove.left::before{transform:rotate(20deg) scaleY(.30)}
.fighter.whiff.pt-upper-l .glove.left::before{transform:rotate(17deg) scaleY(.32)}
.fighter.strike.pt-upper-r .glove.right::before{transform:rotate(-20deg) scaleY(.30)}
.fighter.whiff.pt-upper-r .glove.right::before{transform:rotate(-17deg) scaleY(.32)}
.fighter.strike.pt-smash-l .glove.left::before{transform:rotate(-6deg) scaleY(.82)}
.fighter.whiff.pt-smash-l .glove.left::before{transform:rotate(-8deg) scaleY(.97)}
.fighter.strike.pt-smash-r .glove.right::before{transform:rotate(6deg) scaleY(.82)}
.fighter.whiff.pt-smash-r .glove.right::before{transform:rotate(8deg) scaleY(.97)}

.fighter.wind.pt-smash-l .glove.left::before{transform:rotate(0deg)}
.fighter.wind.pt-smash-r .glove.right::before{transform:rotate(0deg)}
.fighter.strike.pt-smash-l .glove.left::before{transform:rotate(0deg) scaleY(.82)}
.fighter.strike.pt-smash-r .glove.right::before{transform:rotate(0deg) scaleY(.82)}
.fighter.whiff.pt-smash-l .glove.left::before{transform:rotate(0deg) scaleY(.97)}
.fighter.whiff.pt-smash-r .glove.right::before{transform:rotate(0deg) scaleY(.97)}
.fighter.wind.pt-smash-l .glove.left::after{transform:translate(104px,16px) rotate(29deg)}
.fighter.wind.pt-smash-r .glove.right::after{transform:translate(-104px,16px) rotate(-29deg)}
.fighter.strike.pt-smash-l .glove.left::after{transform:translate(10px,-8px) rotate(30deg) scaleY(.85)}
.fighter.strike.pt-smash-r .glove.right::after{transform:translate(-10px,-8px) rotate(-30deg) scaleY(.85)}
.fighter.whiff.pt-smash-l .glove.left::after{transform:translate(20px,8px) rotate(37deg)}
.fighter.whiff.pt-smash-r .glove.right::after{transform:translate(-20px,8px) rotate(-37deg)}

.fighter.strike.pt-smash-l .glove.left{transform:translate(126px,-118px) scale(5.35) rotate(35deg)}
.fighter.strike.pt-smash-r .glove.right{transform:translate(-126px,-118px) scale(5.35) rotate(-35deg)}
.fighter.strike.pt-smash-l .glove.left::before{transform:rotate(0deg) scaleY(.82)}
.fighter.strike.pt-smash-r .glove.right::before{transform:rotate(0deg) scaleY(.82)}
.fighter.strike.pt-smash-l .glove.left::after{transform:translate(10px,-8px) rotate(30deg) scaleY(.85)}
.fighter.strike.pt-smash-r .glove.right::after{transform:translate(-10px,-8px) rotate(-30deg) scaleY(.85)}

.fighter.strike.pt-chop-r .glove.left::before{transform:rotate(88deg) scaleY(.62)}
.fighter.whiff.pt-chop-r .glove.left::before{transform:rotate(64deg) scaleY(.58)}

.fighter.strike.pt-hook-l .glove.left::before,.fighter.whiff.pt-hook-l .glove.left::before,
.fighter.strike.pt-hook-r .glove.right::before,.fighter.whiff.pt-hook-r .glove.right::before,
.fighter.strike.pt-upper-l .glove.left::before,.fighter.whiff.pt-upper-l .glove.left::before,
.fighter.strike.pt-upper-r .glove.right::before,.fighter.whiff.pt-upper-r .glove.right::before,
.fighter.strike.pt-smash-l .glove.left::before,.fighter.whiff.pt-smash-l .glove.left::before,
.fighter.strike.pt-smash-r .glove.right::before,.fighter.whiff.pt-smash-r .glove.right::before,
.fighter.strike.pt-chop-r .glove.left::before,.fighter.whiff.pt-chop-r .glove.left::before{
  border:none;border-radius:3px;background-color:transparent;background-repeat:no-repeat;background-size:100% 100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 84' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f9c184'/%3E%3Cstop offset='1' stop-color='%23eda25e'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpolygon points='1.5,0 44.5,0 38,84 8,84' fill='url(%23g)'/%3E%3Cpath d='M1.5,0 L8,84' stroke='%23111111' stroke-width='3' fill='none'/%3E%3Cpath d='M44.5,0 L38,84' stroke='%23111111' stroke-width='3' fill='none'/%3E%3C/svg%3E")}
.fighter.strike.pt-hook-l .glove.left::after,.fighter.whiff.pt-hook-l .glove.left::after,
.fighter.strike.pt-hook-r .glove.right::after,.fighter.whiff.pt-hook-r .glove.right::after,
.fighter.strike.pt-upper-l .glove.left::after,.fighter.whiff.pt-upper-l .glove.left::after,
.fighter.strike.pt-upper-r .glove.right::after,.fighter.whiff.pt-upper-r .glove.right::after,
.fighter.strike.pt-smash-l .glove.left::after,.fighter.whiff.pt-smash-l .glove.left::after,
.fighter.strike.pt-smash-r .glove.right::after,.fighter.whiff.pt-smash-r .glove.right::after,
.fighter.strike.pt-chop-r .glove.left::after,.fighter.whiff.pt-chop-r .glove.left::after{
  border:none;box-shadow:none;background-color:transparent;background-repeat:no-repeat;background-size:100% 100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 36' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23eda25e'/%3E%3Cstop offset='1' stop-color='%23e08d4c'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpolygon points='6,0 36,0 32,36 10,36' fill='url(%23g)'/%3E%3Cpath d='M6,0 L10,36' stroke='%23111111' stroke-width='3' fill='none'/%3E%3Cpath d='M36,0 L32,36' stroke='%23111111' stroke-width='3' fill='none'/%3E%3C/svg%3E")}

.hook-streak{position:absolute;inset:0;width:204px;height:462px;overflow:visible;z-index:3;pointer-events:none}
.hook-streak path{fill:none;stroke-linecap:round;opacity:0}
.hook-streak .hs-glow{stroke:rgba(190,225,255,.5);stroke-width:9}
.hook-streak .hs-core{stroke:rgba(245,252,255,.92);stroke-width:3.5}
.fighter.strike.pt-hook-l .hook-streak .hs-l{animation:hookStreak .32s linear both}
.fighter.strike.pt-hook-r .hook-streak .hs-r{animation:hookStreak .32s linear both}
@keyframes hookStreak{
  0%{stroke-dasharray:54 400;stroke-dashoffset:54;opacity:0}
  12%{opacity:.85}
  34%{stroke-dasharray:54 400;stroke-dashoffset:13;opacity:.85}
  60%{stroke-dasharray:54 400;stroke-dashoffset:-42;opacity:.9}
  82%{stroke-dasharray:54 400;stroke-dashoffset:-132;opacity:.9}
  100%{stroke-dasharray:54 400;stroke-dashoffset:-216;opacity:0}
}
.glove.hook-ghost{position:absolute;margin:0;pointer-events:none;z-index:-1}
.glove.hook-ghost::before,.glove.hook-ghost::after{display:none}
#fighter .glove.hook-ghost{animation:hookGhostFade .3s ease-out forwards !important;transition:none}
@keyframes hookGhostFade{to{opacity:0}}
@media (prefers-reduced-motion: reduce){
  .fighter.strike.pt-hook-l .hook-streak .hs-l,.fighter.strike.pt-hook-r .hook-streak .hs-r{animation:none;opacity:0}
}

.fighter.strike.pt-smash-l .glove.left::before,.fighter.whiff.pt-smash-l .glove.left::before,
.fighter.strike.pt-smash-r .glove.right::before,.fighter.whiff.pt-smash-r .glove.right::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 84' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f9c184'/%3E%3Cstop offset='1' stop-color='%23eda25e'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpolygon points='10,0 37,0 40,84 6,84' fill='url(%23g)'/%3E%3Cpath d='M10,0 L6,84' stroke='%23111111' stroke-width='3' fill='none'/%3E%3Cpath d='M37,0 L40,84' stroke='%23111111' stroke-width='3' fill='none'/%3E%3C/svg%3E")}
.fighter.strike.pt-smash-l .glove.left::after,.fighter.whiff.pt-smash-l .glove.left::after,
.fighter.strike.pt-smash-r .glove.right::after,.fighter.whiff.pt-smash-r .glove.right::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 36' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23eda25e'/%3E%3Cstop offset='1' stop-color='%23e08d4c'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpolygon points='6,0 36,0 39,36 3,36' fill='url(%23g)'/%3E%3Cpath d='M6,0 L3,36' stroke='%23111111' stroke-width='3' fill='none'/%3E%3Cpath d='M36,0 L39,36' stroke='%23111111' stroke-width='3' fill='none'/%3E%3C/svg%3E")}

.fighter.strike.pt-smash-l{transform:translateY(30px) rotate(20deg) scale(1.33)}
.fighter.strike.pt-smash-r{transform:translateY(30px) rotate(-20deg) scale(1.33)}
.fighter.strike.pt-smash-l .glove.left{transform:translate(126px,76px) scale(5.35) rotate(35deg)}
.fighter.strike.pt-smash-r .glove.right{transform:translate(-126px,76px) scale(5.35) rotate(-35deg)}
.fighter.whiff.pt-smash-l{transform:translateY(34px) rotate(24deg) scale(1.35)}
.fighter.whiff.pt-smash-r{transform:translateY(34px) rotate(-24deg) scale(1.35)}
.fighter.whiff.pt-smash-l .glove.left{transform:translate(172px,84px) scale(4.95) rotate(83deg)}
.fighter.whiff.pt-smash-r .glove.right{transform:translate(-172px,84px) scale(4.95) rotate(-83deg)}

.fighter.strike.pt-upper-l{transform:translateY(28px) scale(1.19)}
.fighter.strike.pt-upper-r{transform:translateY(28px) scale(1.19)}
.fighter.strike.pt-upper-l .glove.left{transform:translate(40px,80px) scale(2.95) rotate(0deg)}
.fighter.strike.pt-upper-r .glove.right{transform:translate(-40px,80px) scale(2.95) rotate(0deg)}
.fighter.whiff.pt-upper-l{transform:translateY(32px) scale(1.21)}
.fighter.whiff.pt-upper-r{transform:translateY(32px) scale(1.21)}
.fighter.whiff.pt-upper-l .glove.left{transform:translate(40px,110px) scale(3.1) rotate(0deg)}
.fighter.whiff.pt-upper-r .glove.right{transform:translate(-40px,110px) scale(3.1) rotate(0deg)}

.fighter.strike.pt-upper-l .glove.left{animation:upperRiseL .34s cubic-bezier(.35,.65,.3,1)}
.fighter.strike.pt-upper-r .glove.right{animation:upperRiseR .34s cubic-bezier(.35,.65,.3,1)}
@keyframes upperRiseL{
  0%{transform:translate(24px,80px) rotate(-26deg) scale(.9);animation-timing-function:cubic-bezier(.42,0,.58,1)}
  22%{transform:translate(20px,104px) rotate(-34deg) scale(.95);animation-timing-function:cubic-bezier(.45,.05,.55,1)}
  40%{transform:translate(34px,107px) rotate(-22deg) scale(1.15);animation-timing-function:cubic-bezier(.55,.06,.68,.19)}
  58%{transform:translate(43px,92px) rotate(-8deg) scale(2.05);animation-timing-function:cubic-bezier(.7,0,.84,.3)}
  76%{transform:translate(40px,80px) rotate(0deg) scale(2.95);animation-timing-function:ease-out}
  88%{transform:translate(41px,84px) rotate(1deg) scale(3.03);animation-timing-function:ease-out}
  100%{transform:translate(40px,80px) rotate(0deg) scale(2.95)}
}
@keyframes upperRiseR{
  0%{transform:translate(-24px,80px) rotate(26deg) scale(.9);animation-timing-function:cubic-bezier(.42,0,.58,1)}
  22%{transform:translate(-20px,104px) rotate(34deg) scale(.95);animation-timing-function:cubic-bezier(.45,.05,.55,1)}
  40%{transform:translate(-34px,107px) rotate(22deg) scale(1.15);animation-timing-function:cubic-bezier(.55,.06,.68,.19)}
  58%{transform:translate(-43px,92px) rotate(8deg) scale(2.05);animation-timing-function:cubic-bezier(.7,0,.84,.3)}
  76%{transform:translate(-40px,80px) rotate(0deg) scale(2.95);animation-timing-function:ease-out}
  88%{transform:translate(-41px,84px) rotate(-1deg) scale(3.03);animation-timing-function:ease-out}
  100%{transform:translate(-40px,80px) rotate(0deg) scale(2.95)}
}
.fighter.strike.pt-upper-l .glove.left::before{animation:upperForeL .34s cubic-bezier(.35,.65,.3,1)}
.fighter.strike.pt-upper-r .glove.right::before{animation:upperForeR .34s cubic-bezier(.35,.65,.3,1)}
@keyframes upperForeL{
  0%{transform:rotate(29deg) scaleY(1)}
  22%{transform:rotate(42deg) scaleY(.73)}
  40%{transform:rotate(42deg) scaleY(.56)}
  58%{transform:rotate(31deg) scaleY(.40)}
  76%{transform:rotate(20deg) scaleY(.30)}
  100%{transform:rotate(20deg) scaleY(.30)}
}
@keyframes upperForeR{
  0%{transform:rotate(-29deg) scaleY(1)}
  22%{transform:rotate(-42deg) scaleY(.73)}
  40%{transform:rotate(-42deg) scaleY(.56)}
  58%{transform:rotate(-31deg) scaleY(.40)}
  76%{transform:rotate(-20deg) scaleY(.30)}
  100%{transform:rotate(-20deg) scaleY(.30)}
}
.fighter.strike.pt-upper-l .glove.left::after{animation:upperElbowL .34s cubic-bezier(.35,.65,.3,1)}
.fighter.strike.pt-upper-r .glove.right::after{animation:upperElbowR .34s cubic-bezier(.35,.65,.3,1)}
@keyframes upperElbowL{
  0%{transform:translate(-13.5px,-13.2px) rotate(46.7deg) scaleY(.87)}
  22%{transform:translate(3px,-65px) rotate(41deg) scaleY(1.38)}
  40%{transform:translate(-9px,-75px) rotate(24deg) scaleY(1.18)}
  58%{transform:translate(-13px,-60px) rotate(10deg) scaleY(.62)}
  76%{transform:translate(-8px,-54px) rotate(2deg) scaleY(.38)}
  100%{transform:translate(-8px,-54px) rotate(2deg) scaleY(.38)}
}
@keyframes upperElbowR{
  0%{transform:translate(13.5px,-13.2px) rotate(-46.7deg) scaleY(.87)}
  22%{transform:translate(-3px,-65px) rotate(-41deg) scaleY(1.38)}
  40%{transform:translate(9px,-75px) rotate(-24deg) scaleY(1.18)}
  58%{transform:translate(13px,-60px) rotate(-10deg) scaleY(.62)}
  76%{transform:translate(8px,-54px) rotate(-2deg) scaleY(.38)}
  100%{transform:translate(8px,-54px) rotate(-2deg) scaleY(.38)}
}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-upper-l .glove.left,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-upper-r .glove.right,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-upper-l .glove.left::before,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-upper-l .glove.left::after,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-upper-r .glove.right::before,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-upper-r .glove.right::after{animation-duration:.17s}
@media (prefers-reduced-motion: reduce){
  .fighter.strike.pt-upper-l .glove.left,.fighter.strike.pt-upper-r .glove.right,.fighter.strike.pt-upper-l .glove.left::before,.fighter.strike.pt-upper-r .glove.right::before,.fighter.strike.pt-upper-l .glove.left::after,.fighter.strike.pt-upper-r .glove.right::after{animation:none}
}
.glove.right{transform:rotate(8deg)}

.glove-svg{width:100%;height:100%;display:block;overflow:visible;scale:1.2}
.glove-svg .g-main{stroke:#14142b;stroke-width:5;stroke-linejoin:round}
.glove-svg .g-thumb{stroke:#14142b;stroke-width:5}
.glove-svg .g-cuff{fill:#ffffff;stroke:#14142b;stroke-width:5}
.glove-svg .g-lace{stroke:#14142b;stroke-width:3.5;stroke-linecap:round}
.glove-svg .g-knuckle{stroke:#14142b;stroke-width:3.5;stroke-linecap:round;fill:none}
.glove-svg .g-shine{stroke:rgba(255,255,255,.4);stroke-width:7;stroke-linecap:round;fill:none}
.glove-svg.flip{transform:scaleX(-1)}
.glove-svg .g-palm{fill:#d6336c;stroke:#14142b;stroke-width:4}
.glove-svg .g-lace-x{stroke:#fff8ee;stroke-width:3.5;stroke-linecap:round;fill:none}

.glove .g-laces-down{display:none}
.fighter.down .glove .g-laces-down{display:block}

#fighter{--shoe-dark:#9c2445;--shoe-mid:#ef4066;--shoe-main:#f4527b}
#fighter.opp-hayate{--shoe-dark:#14663c;--shoe-mid:#1f9d57;--shoe-main:#25b567}
#fighter.opp-ganji{--shoe-dark:#1f3a8f;--shoe-mid:#2f4fc4;--shoe-main:#3b5bdb}
#fighter.opp-raiga{--shoe-dark:#4a2a8f;--shoe-mid:#6839c4;--shoe-main:#7b4bd6}
#fighter.opp-kaiser{--shoe-dark:#b57f0e;--shoe-mid:#eda51f;--shoe-main:#f7b731}
#fighter.opp-no1{--shoe-dark:#0c0c12;--shoe-mid:#1a1a24;--shoe-main:#23232e}
.gloves .g-main{fill:#f4527b}
.gloves .g-thumb{fill:#d6336c}

.p-glove .g-main{fill:var(--pg-main,#2f7bff)}
.p-glove .g-thumb{fill:var(--pg-thumb,#1c56c4)}

.av-fig{display:flex;align-items:center;gap:12px;margin-top:8px}
.av-fig svg{height:96px;width:auto;flex:none}
.av-fig .mini-btn{flex:1}
.result-avatar{display:flex;justify-content:center;margin-top:8px}
.result-avatar svg{height:118px;width:auto}
.result-avatar svg.orz{height:104px}

.result-avatar svg.win{height:152px;width:auto}
@keyframes winBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.win-bounce{animation:winBounce .85s ease-in-out infinite}
@keyframes winFist{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.win-fist{transform-box:fill-box;transform-origin:0% 100%;animation:winFist .85s ease-in-out infinite}
@keyframes winSpark{0%,100%{opacity:.4}50%{opacity:1}}
.win-spark{animation:winSpark 1.1s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.win-bounce,.win-fist,.win-spark{animation:none}}

.result-avatar svg.draw{height:118px;width:auto}
@keyframes drawSway{0%,100%{transform:rotate(-1.7deg)}50%{transform:rotate(1.7deg)}}
.draw-sway{transform-box:fill-box;transform-origin:50% 100%;animation:drawSway 3.8s ease-in-out infinite}
@keyframes drawSigh{0%,58%,100%{transform:translateY(0)}72%,84%{transform:translateY(2.6px)}}
.draw-sigh{animation:drawSigh 5.6s ease-in-out infinite}
@keyframes drawTap{0%,14%,30%,100%{transform:rotate(0deg)}7%,23%{transform:rotate(-6deg)}}
.draw-tap{transform-box:fill-box;transform-origin:85% 90%;animation:drawTap 1.9s ease-in-out infinite}
@keyframes drawTapMark{0%,14%,30%,100%{opacity:0}7%,23%{opacity:.55}}
.draw-tapmark{opacity:0;animation:drawTapMark 1.9s ease-in-out infinite}
@keyframes drawSweat{0%,55%,100%{opacity:0;transform:translateY(0)}68%,88%{opacity:.9}94%{opacity:0;transform:translateY(2px)}}
.draw-sweat{opacity:0;animation:drawSweat 5.6s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.draw-sway,.draw-sigh,.draw-tap,.draw-tapmark,.draw-sweat{animation:none}.draw-sweat{opacity:.85}}

.av-preview svg.orz{height:132px}
.av-preview svg.draw{height:188px}
.av-pose-switch{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.av-preview{display:flex;justify-content:center;padding:8px 0 0}
.av-preview svg{height:188px;width:auto}
.av-group{margin-top:14px;text-align:left}
.av-group-head{font-weight:900;font-size:14px;margin-bottom:7px}
.av-opts{display:flex;flex-wrap:wrap;gap:7px}
.av-swatch{width:36px;height:36px;border-radius:50%;border:2.5px solid #14142b;cursor:pointer;padding:0;flex:none}
.av-swatch.sel{box-shadow:0 0 0 3px #fff,0 0 0 6px #14142b}
.av-chip{padding:8px 13px;border-radius:999px;border:2px solid #c9cdf0;background:#fff;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit;color:#14142b}
.av-chip.sel{background:#14142b;color:#fff;border-color:#14142b}
.av-actions{display:flex;gap:8px;margin-top:16px}
.av-actions .mini-btn{flex:1}



.player{position:absolute;inset:0;z-index:7;clip-path:inset(0 0 -48px 0);transition:transform .1s cubic-bezier(.2,1.4,.4,1);pointer-events:none;will-change:transform}
.p-glove{position:absolute;bottom:2px;width:172px;height:172px;z-index:3;transition:transform .15s cubic-bezier(.3,1.35,.4,1);filter:drop-shadow(0 8px 0 rgba(0,0,0,.25));animation:gbob calc(var(--beat-ms)*2) ease-in-out infinite}

.p-glove.left{left:12px;bottom:2px;transform:rotate(12deg) scale(1.06)}
.p-glove.right{right:12px;bottom:-10px;transform:rotate(-12deg) scale(.95);animation-delay:calc(var(--beat-ms)*-1)}

@keyframes gbob{0%,100%{translate:0 0}16%{translate:0 -7px}34%,88%{translate:0 0}}

.p-glove::after{content:"";position:absolute;left:50%;bottom:-104px;transform:translateX(-50%);width:66px;height:118px;background:linear-gradient(180deg,#f9c184 0%,#f2ab6d 55%,#eda25e 100%);border:3px solid #111;border-radius:12px;z-index:-1}


.player.dodge-left{transform:translateX(-30px) translateY(8px) rotate(-2deg)}
.player.dodge-right{transform:translateX(30px) translateY(8px) rotate(2deg)}
.player.dodge-left .p-glove.left{transform:translate(-58px,26px) rotate(-28deg)}
.player.dodge-left .p-glove.right{transform:translate(-42px,-6px) rotate(-18deg)}
.player.dodge-right .p-glove.right{transform:translate(58px,26px) rotate(28deg)}
.player.dodge-right .p-glove.left{transform:translate(42px,-6px) rotate(18deg)}
.player.dodge-left.duck{transform:translateX(-26px) translateY(32px) rotate(-1.6deg)}
.player.dodge-right.duck{transform:translateX(26px) translateY(32px) rotate(1.6deg)}
.player.dodge-left.duck .p-glove.left{transform:translate(-52px,64px) rotate(-22deg)}
.player.dodge-left.duck .p-glove.right{transform:translate(-38px,38px) rotate(-14deg)}
.player.dodge-right.duck .p-glove.right{transform:translate(52px,64px) rotate(22deg)}
.player.dodge-right.duck .p-glove.left{transform:translate(38px,38px) rotate(14deg)}
.player.punch-left{transform:translateX(-4px) rotate(-1.5deg) translateY(-3px)}
.player.punch-right{transform:translateX(4px) rotate(1.5deg) translateY(-3px)}

.p-glove .trail{position:absolute;left:28%;top:54%;width:46%;height:104%;border-radius:999px;background:linear-gradient(180deg,rgba(47,123,255,.85),rgba(47,123,255,0));filter:blur(3px);opacity:0;z-index:-1;pointer-events:none}

.player.cos-trail-flame .p-glove .trail{background:linear-gradient(180deg,rgba(255,170,40,.95),rgba(255,80,0,0))}
.player.cos-trail-star .p-glove .trail{background:radial-gradient(circle at 50% 16%,#fff8d0 0 6%,transparent 7%),radial-gradient(circle at 30% 45%,#ffe066 0 5%,transparent 6%),radial-gradient(circle at 66% 64%,#ffffff 0 4%,transparent 5%),linear-gradient(180deg,rgba(255,214,64,.75),rgba(255,214,64,0))}
.player.cos-trail-rainbow .p-glove .trail{background:linear-gradient(180deg,rgba(255,80,80,.9),rgba(255,170,40,.85) 30%,rgba(255,235,90,.85) 50%,rgba(90,220,120,.8) 72%,rgba(80,140,255,0))}
.player.cos-trail-sakura .p-glove .trail{background:radial-gradient(circle at 40% 24%,#ffd7e8 0 7%,transparent 8%),radial-gradient(circle at 62% 56%,#ffc2da 0 6%,transparent 7%),linear-gradient(180deg,rgba(255,150,190,.85),rgba(255,150,190,0))}

/* PLAYER PUNCH PACE (2026-11-06): every pp-* glove / trail duration
   in this block and in the fx-* speed tables below runs x1.25 of its
   former value, matching MY_PUNCHES in game-main.js — your punches
   flew too fast to follow. Keyframes are percentage-based, so the
   trajectories are untouched; only the clock stretched. */
.player.pp-jab .p-glove.left{animation:ppJab 0.512s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-straight .p-glove.right{animation:ppStraight 0.575s cubic-bezier(.4,.08,.28,1) forwards}

.player.pp-body .p-glove.right{animation:ppBody 0.575s cubic-bezier(.4,.08,.28,1) forwards}

.player.pp-body-jab .p-glove.left{animation:ppBodyJab 0.512s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-body-straight .p-glove.right{animation:ppBody 0.575s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-body-hook-l .p-glove.left{animation:ppBodyHookL 0.65s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-body-hook-r .p-glove.right{animation:ppBodyHookR 0.65s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-body-upper-l .p-glove.left{animation:ppBodyUpperL 0.688s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-body-upper-r .p-glove.right{animation:ppBodyUpperR 0.688s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-hook-l .p-glove.left{animation:ppHookL 0.65s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-hook-r .p-glove.right{animation:ppHookR 0.65s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-upper-l .p-glove.left{animation:ppUpperL 0.688s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-upper-r .p-glove.right{animation:ppUpperR 0.688s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-smash-l .p-glove.left{animation:ppSmashL 1.05s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-smash-r .p-glove.right{animation:ppSmashR 1.05s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-chop-r .p-glove.right{animation:ppChopR 0.775s cubic-bezier(.4,.08,.28,1) forwards}
.player.pp-jab .p-glove.left .trail,.player.pp-hook-l .p-glove.left .trail,.player.pp-upper-l .p-glove.left .trail,.player.pp-smash-l .p-glove.left .trail,
.player.pp-straight .p-glove.right .trail,.player.pp-body .p-glove.right .trail,.player.pp-hook-r .p-glove.right .trail,.player.pp-upper-r .p-glove.right .trail,.player.pp-smash-r .p-glove.right .trail,.player.pp-chop-r .p-glove.right .trail{animation:trailFade 0.625s ease-out}
.player.pp-body-jab .p-glove.left .trail,.player.pp-body-hook-l .p-glove.left .trail,.player.pp-body-upper-l .p-glove.left .trail,.player.pp-body-straight .p-glove.right .trail,.player.pp-body-hook-r .p-glove.right .trail,.player.pp-body-upper-r .p-glove.right .trail{animation:trailFade 0.625s ease-out}

@keyframes ppJab{0%{transform:rotate(12deg) scale(1.06)}18%{transform:translate(-24px,89px) scale(1.06) rotate(20deg)}40%{transform:translate(calc(85px + var(--hxl)),calc(-272px + var(--hyl))) scale(.64) rotate(4deg)}56%{transform:translate(calc(80px + var(--hxl)),calc(-264px + var(--hyl))) scale(.68) rotate(3deg)}100%{transform:rotate(12deg) scale(1.06)}}
@keyframes ppStraight{0%{transform:rotate(-12deg) scale(.95)}18%{transform:translate(27px,90px) scale(1.07) rotate(-24deg)}40%{transform:translate(calc(-85px + var(--hxr)),calc(-284px + var(--hyr))) scale(.66) rotate(-5deg)}56%{transform:translate(calc(-80px + var(--hxr)),calc(-276px + var(--hyr))) scale(.7) rotate(-4deg)}100%{transform:rotate(-12deg) scale(.95)}}
@keyframes ppBody{0%{transform:rotate(-12deg) scale(.95)}18%{transform:translate(32px,90px) scale(1.07) rotate(-24deg)}40%{transform:translate(calc(-85px + var(--hxr)),calc(-143px + var(--hyr))) scale(.62) rotate(-5deg)}56%{transform:translate(calc(-80px + var(--hxr)),calc(-135px + var(--hyr))) scale(.66) rotate(-4deg)}100%{transform:rotate(-12deg) scale(.95)}}
@keyframes ppBodyJab{0%{transform:rotate(12deg) scale(1.06)}18%{transform:translate(-30px,89px) scale(1.06) rotate(20deg)}40%{transform:translate(calc(85px + var(--hxl)),calc(-131px + var(--hyl))) scale(.6) rotate(4deg)}56%{transform:translate(calc(80px + var(--hxl)),calc(-123px + var(--hyl))) scale(.64) rotate(3deg)}100%{transform:rotate(12deg) scale(1.06)}}
@keyframes ppBodyHookL{0%{transform:rotate(12deg) scale(1.06)}14%{transform:translate(-42px,68px) scale(1.06) rotate(-42deg)}27%{transform:translate(-86px,96px) scale(.9) rotate(-4deg)}37%{transform:translate(-32px,-12px) scale(.73) rotate(36deg)}44%{transform:translate(calc(78px + var(--hxl)),calc(-136px + var(--hyl))) scale(.6) rotate(68deg)}58%{transform:translate(calc(78px + var(--hxl)),calc(-128px + var(--hyl))) scale(.64) rotate(60deg)}100%{transform:rotate(12deg) scale(1.06)}}
@keyframes ppBodyHookR{0%{transform:rotate(-12deg) scale(.95)}14%{transform:translate(42px,68px) scale(1.06) rotate(42deg)}27%{transform:translate(86px,84px) scale(.9) rotate(4deg)}37%{transform:translate(32px,-24px) scale(.73) rotate(-36deg)}44%{transform:translate(calc(-78px + var(--hxr)),calc(-148px + var(--hyr))) scale(.6) rotate(-68deg)}58%{transform:translate(calc(-78px + var(--hxr)),calc(-140px + var(--hyr))) scale(.64) rotate(-60deg)}100%{transform:rotate(-12deg) scale(.95)}}
@keyframes ppBodyUpperL{0%{transform:rotate(12deg) scale(1.06)}30%{transform:translate(48px,152px) scale(1.14,.92) rotate(0deg)}42%{transform:translate(calc(86px + var(--hxl)),calc(-132px + var(--hyl))) scale(.62) rotate(0deg)}53%{transform:translate(calc(86px + var(--hxl)),calc(-139px + var(--hyl))) scale(.66) rotate(0deg)}66%{transform:translate(calc(86px + var(--hxl)),calc(-131px + var(--hyl))) scale(.64) rotate(0deg)}100%{transform:rotate(12deg) scale(1.06)}}
@keyframes ppBodyUpperR{0%{transform:rotate(-12deg) scale(.95)}30%{transform:translate(-48px,152px) scale(1.14,.92) rotate(0deg)}42%{transform:translate(calc(-86px + var(--hxr)),calc(-144px + var(--hyr))) scale(.62) rotate(0deg)}53%{transform:translate(calc(-86px + var(--hxr)),calc(-151px + var(--hyr))) scale(.66) rotate(0deg)}66%{transform:translate(calc(-86px + var(--hxr)),calc(-143px + var(--hyr))) scale(.64) rotate(0deg)}100%{transform:rotate(-12deg) scale(.95)}}
@keyframes ppHookL{0%{transform:rotate(12deg) scale(1.06)}14%{transform:translate(-42px,68px) scale(1.06) rotate(-42deg)}27%{transform:translate(-86px,-46px) scale(.9) rotate(-4deg)}37%{transform:translate(-32px,-154px) scale(.73) rotate(36deg)}44%{transform:translate(calc(77px + var(--hxl)),calc(-278px + var(--hyl))) scale(.65) rotate(68deg)}58%{transform:translate(calc(77px + var(--hxl)),calc(-270px + var(--hyl))) scale(.68) rotate(60deg)}100%{transform:rotate(12deg) scale(1.06)}}
@keyframes ppHookR{0%{transform:rotate(-12deg) scale(.95)}14%{transform:translate(42px,68px) scale(1.06) rotate(42deg)}27%{transform:translate(86px,-58px) scale(.9) rotate(4deg)}37%{transform:translate(32px,-166px) scale(.73) rotate(-36deg)}44%{transform:translate(calc(-77px + var(--hxr)),calc(-290px + var(--hyr))) scale(.65) rotate(-68deg)}58%{transform:translate(calc(-77px + var(--hxr)),calc(-282px + var(--hyr))) scale(.68) rotate(-60deg)}100%{transform:rotate(-12deg) scale(.95)}}
/* FACE-CENTRE REACH （全パンチの到達点・2026-11-05): every player
   punch's CONTACT frame (the frame the punch table's impact time
   lands on — jab / straight / body 40%, hooks 44%, uppers 42%,
   smash 46%, chop 38%) now puts the fist's centre exactly on the
   game's own hit point: the centre of his face (stage x 50%,
   y 96 — the point spawnImpact / spawnElemBurst / fxParticles
   already burst at), or the centre of his abdomen (y 238) for
   the body family. The old paths stopped short: measured on the
   default 352×468 stage, the jab / straight fist centres sat
   ~51px below the burst point and ~15px across it, the hooks
   ~46px low, the smash ~36px across it — and the uppercut was
   worst, its fist centre ~69px below the face at the 42% impact
   frame, only rising onto the jaw at 53%, after the impact FX
   had already fired. The upper's launch also slides further
   inward as it dips (30% frame), so the rise travels up the
   centre line instead of along the jaw's outer edge, and its
   53% follow-through now drives ~8px past centre, lifting
   through the chin. Because the stage SHRINKS at the
   max-height breakpoints (330×438 / 306×412 / 290×416 with a
   smaller glove) while these translates stay fixed, the contact
   frames carry the --hx* / --hy* corrections defined on .stage:
   each breakpoint's values shift the fist back onto the same
   centre point there (see the .stage rules in the max-height
   media queries below). Percentages, durations and the impact
   times themselves are unchanged — trajectories only. */
@keyframes ppUpperL{0%{transform:rotate(12deg) scale(1.06)}30%{transform:translate(64px,158px) scale(1.14,.92) rotate(0deg)}42%{transform:translate(calc(86px + var(--hxl)),calc(-274px + var(--hyl))) scale(.62) rotate(0deg)}53%{transform:translate(calc(88px + var(--hxl)),calc(-281px + var(--hyl))) scale(.66) rotate(0deg)}66%{transform:translate(calc(86px + var(--hxl)),calc(-272px + var(--hyl))) scale(.64) rotate(0deg)}100%{transform:rotate(12deg) scale(1.06)}}
@keyframes ppUpperR{0%{transform:rotate(-12deg) scale(.95)}30%{transform:translate(-64px,158px) scale(1.14,.92) rotate(0deg)}42%{transform:translate(calc(-86px + var(--hxr)),calc(-286px + var(--hyr))) scale(.62) rotate(0deg)}53%{transform:translate(calc(-88px + var(--hxr)),calc(-293px + var(--hyr))) scale(.66) rotate(0deg)}66%{transform:translate(calc(-86px + var(--hxr)),calc(-284px + var(--hyr))) scale(.64) rotate(0deg)}100%{transform:rotate(-12deg) scale(.95)}}
@keyframes ppSmashL{0%{transform:rotate(12deg) scale(1.06)}26%{transform:translate(-82px,152px) scale(1.15) rotate(-58deg)}46%{transform:translate(calc(80px + var(--hxl)),calc(-275px + var(--hyl))) scale(.6) rotate(46deg)}61%{transform:translate(calc(80px + var(--hxl)),calc(-267px + var(--hyl))) scale(.66) rotate(39deg)}100%{transform:rotate(12deg) scale(1.06)}}
@keyframes ppSmashR{0%{transform:rotate(-12deg) scale(.95)}26%{transform:translate(82px,152px) scale(1.15) rotate(58deg)}46%{transform:translate(calc(-80px + var(--hxr)),calc(-287px + var(--hyr))) scale(.6) rotate(-46deg)}61%{transform:translate(calc(-80px + var(--hxr)),calc(-279px + var(--hyr))) scale(.66) rotate(-39deg)}100%{transform:rotate(-12deg) scale(.95)}}

/* CHOP REACH （チョップの到達点・2026-11-05): the downswing
   crosses the face INSIDE the reported impact window — contact
   frame 38% (flight ≈236ms vs the punch table's 230ms) now puts
   the fist's centre on the face centre itself (see FACE-CENTRE
   REACH above; the old 38% frame left it ~80px low, at neck
   height), raking down-left across the chin by 46%. Duration
   and the impact time itself are unchanged: trajectory only. */
@keyframes ppChopR{0%{transform:rotate(-12deg) scale(.95)}12%{transform:translate(52px,26px) scale(1.02) rotate(70deg)}26%{transform:translate(118px,-66px) scale(1.2) rotate(28deg)}33%{transform:translate(36px,-188px) scale(.94) rotate(-34deg)}38%{transform:translate(calc(-75px + var(--hxr)),calc(-293px + var(--hyr))) scale(.76) rotate(-92deg)}46%{transform:translate(calc(-126px + var(--hxr)),calc(-246px + var(--hyr))) scale(.67) rotate(-126deg)}56%{transform:translate(-184px,-92px) scale(.6) rotate(-150deg)}70%{transform:translate(-172px,-16px) scale(.6) rotate(-128deg)}86%{transform:translate(-88px,40px) scale(.82) rotate(-44deg)}100%{transform:rotate(-12deg) scale(.95)}}
@keyframes trailFade{0%{opacity:0}40%{opacity:.85}100%{opacity:0}}

.player.trar-3 .p-glove .trail{width:60%}
.player.trar-4 .p-glove .trail{width:76%} 
.player.trar-5 .p-glove .trail{width:94%}
.player.hurt-p{animation:pHurt .45s ease}
.player.hurt-p .p-glove{transform:translateY(14px)}

.player.stunned .p-glove{animation:none;filter:grayscale(.5) drop-shadow(0 4px 0 rgba(0,0,0,.25))}
.player.stunned .p-glove.left{transform:translateY(30px) rotate(26deg)}
.player.stunned .p-glove.right{transform:translateY(30px) rotate(-26deg)}

.player.down-p .p-glove{animation:none}
.player.down-p .p-glove.left{transform:translateY(calc(56px - var(--getup,0)*30px)) rotate(calc(26deg - var(--getup,0)*17deg))}
.player.down-p .p-glove.right{transform:translateY(calc(56px - var(--getup,0)*30px)) rotate(calc(-26deg + var(--getup,0)*17deg))}

.player.rising-p .p-glove.left{animation:pRiseL .92s cubic-bezier(.3,.6,.35,1) forwards}
.player.rising-p .p-glove.right{animation:pRiseR .92s cubic-bezier(.3,.6,.35,1) .05s both}
@keyframes pRiseL{
  0%{transform:translate(0,calc(56px - var(--getup,0)*30px)) rotate(calc(26deg - var(--getup,0)*17deg))}
  16%{transform:translate(0,36px) rotate(19deg)}
  42%{transform:translate(-5px,15px) rotate(9deg)}
  66%{transform:translate(6px,3px) rotate(-4deg)}
  84%{transform:translate(-3px,-1px) rotate(2.5deg)}
  100%{transform:translate(0,0) rotate(0deg)}
}
@keyframes pRiseR{
  0%{transform:translate(0,calc(56px - var(--getup,0)*30px)) rotate(calc(-26deg + var(--getup,0)*17deg))}
  16%{transform:translate(0,38px) rotate(-20deg)}
  42%{transform:translate(4px,19px) rotate(-11deg)}
  66%{transform:translate(-6px,4px) rotate(4deg)}
  84%{transform:translate(3px,0) rotate(-2.5deg)}
  100%{transform:translate(0,0) rotate(0deg)}
}
.player.mash-p{transform:translateY(5px)}
@keyframes pHurt{0%{transform:translateX(0)}20%{transform:translateX(-13px) rotate(-2deg)}40%{transform:translateX(11px)}60%{transform:translateX(-8px) rotate(1.5deg)}100%{transform:translateX(0)}}

.judge{position:absolute;top:2px;left:50%;transform:translateX(-50%);z-index:9;font-weight:900;font-size:34px;letter-spacing:.04em;text-shadow:0 3px 0 rgba(0,0,0,.45);white-space:nowrap;opacity:0;pointer-events:none}

.hyaku-count{position:absolute;top:52px;left:50%;transform:translateX(-50%);z-index:12;font-weight:900;font-size:38px;letter-spacing:.03em;color:#ffd94d;-webkit-text-stroke:2px #14142b;text-shadow:3px 3px 0 #14142b;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s}
.hyaku-count.on{opacity:1}
.hyaku-count.fin{font-size:52px;color:#ff5a3c}
.judge.show{animation:pop .55s ease forwards}
@keyframes pop{0%{opacity:0;transform:translateX(-50%) scale(.7) translateY(8px)}18%{opacity:1;transform:translateX(-50%) scale(1.08)}35%{transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) translateY(-14px)}}
.judge.critical{color:var(--yellow)}
.judge.clean{color:var(--cyan)}
.judge.hit{color:#ff9f68}
.judge.miss{color:var(--red)}
.judge.early{color:#fff}
.judge.dodge{color:var(--green)}

.judge-side{position:absolute;top:16px;left:14px;z-index:10;font-weight:900;font-size:44px;letter-spacing:.03em;text-shadow:0 3px 0 rgba(0,0,0,.5),0 0 18px rgba(0,0,0,.35);white-space:nowrap;opacity:0;pointer-events:none;transform-origin:0 50%}
.judge-side.show{animation:popSide .7s ease forwards}
@keyframes popSide{0%{opacity:0;transform:scale(.6) translateY(10px)}16%{opacity:1;transform:scale(1.12) translateY(0)}32%{transform:scale(1)}78%{opacity:1}100%{opacity:0;transform:translateY(-12px)}}
.judge-side.dodge{color:var(--green)}
.judge-side.miss{color:var(--red)}

.judge-side.timing{top:14px;max-width:calc(100% - 28px);border:2px solid;border-radius:999px;padding:5px 13px 6px;font-size:clamp(15px,4.4vw,20px);letter-spacing:.03em;text-shadow:0 1px 0 rgba(0,0,0,.35);box-shadow:0 4px 12px rgba(0,0,0,.4)}

.hud-sub{position:relative}
.weak-memo-pop{position:absolute;left:0;top:calc(100% + 6px);z-index:30;max-width:min(78vw,320px);background:rgba(16,18,40,.92);border:1.5px solid rgba(255,210,63,.6);border-radius:10px;padding:7px 11px;font-size:12.5px;line-height:1.5;font-weight:700;color:#fff;text-align:left;pointer-events:none;overflow-wrap:anywhere;box-shadow:0 6px 16px rgba(0,0,0,.4);opacity:0;transform:translateY(-4px);transition:opacity .3s ease,transform .3s ease}
.weak-memo-pop.show{opacity:1;transform:translateY(0)}
.weak-memo-pop[hidden]{display:none}
.judge-side.timing.show{animation-duration:.9s}
.judge-side.t-just{background:#f5b301;border-color:#ffe27a;color:#3a2700}
.judge-side.t-nice{background:#1597c9;border-color:#8fe6ff;color:#ffffff}
.judge-side.t-ok{background:#2ea84f;border-color:#8fe6a8;color:#ffffff}
.judge-side.t-slight-early,.judge-side.t-slight-late{background:#e07f13;border-color:#ffc98a;color:#ffffff}
.judge-side.t-early,.judge-side.t-late,.judge-side.t-feint{background:#d92f3e;border-color:#ff9aa3;color:#ffffff}
.judge-side.timing.t-feint{font-size:clamp(12px,3.6vw,16px);letter-spacing:.01em;padding:5px 11px 6px}

.chance-banner,.serious-banner,.beast-banner,.mode-banner,.crowd-req,.judge,.my-tag,.down-label{max-width:94%;white-space:nowrap;text-align:center;line-height:1.3}
.ougi-banner .ougi-name{max-width:100%}
.judge-side{max-width:calc(100% - 28px);white-space:nowrap;line-height:1.15}
.judge-side.timing{white-space:nowrap;text-align:center;line-height:1.3}
.my-tag .mt-tech,.my-tag .mt-step{white-space:nowrap}
.rush-panel{max-width:94%}
.second-bubble{max-width:calc(100% - 76px);white-space:nowrap}
.effect{position:absolute;top:41px;left:50%;margin-left:-55px;width:110px;height:110px;display:grid;place-items:center;pointer-events:none;z-index:8;font-size:64px;opacity:0}
.effect.show{animation:burst .4s ease}
@keyframes burst{0%{opacity:0;transform:scale(.6)}30%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:scale(1.4)}}


.speed-lines{position:absolute;inset:-16px;z-index:5;pointer-events:none;opacity:0;background:repeating-linear-gradient(112deg,transparent 0 24px,rgba(255,255,255,.17) 24px 28px,transparent 28px 54px)}
.speed-lines.show{animation:speedSweep .28s ease-out}
@keyframes speedSweep{0%{opacity:0;transform:translateX(-16px)}22%{opacity:1}100%{opacity:0;transform:translateX(16px)}}
.speed-lines.up{background:repeating-linear-gradient(180deg,transparent 0 24px,rgba(255,255,255,.17) 24px 28px,transparent 28px 54px)}
.speed-lines.up.show{animation:speedSweepUp .28s ease-out}
@keyframes speedSweepUp{0%{opacity:0;transform:translateY(18px)}22%{opacity:1}100%{opacity:0;transform:translateY(-18px)}}



.shock{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;pointer-events:none;z-index:8;opacity:0}
.shock.ring{border:6px solid #fff;box-shadow:0 0 0 3px rgba(255,210,31,.55),inset 0 0 14px rgba(255,255,255,.85)}
.shock.ring.go{animation:shockGo .42s cubic-bezier(.12,.61,.26,1) forwards}
.shock.ring.d2{animation-delay:.07s}
.shock.ring.hurt{border-color:#ffd7de;box-shadow:0 0 0 3px rgba(255,71,87,.55),inset 0 0 14px rgba(255,255,255,.8)}
@keyframes shockGo{0%{opacity:1;transform:scale(.45)}100%{opacity:0;transform:scale(10.5)}}
.shock.core{background:repeating-conic-gradient(from 6deg,rgba(255,255,255,.95) 0deg 5deg,transparent 5deg 17deg);-webkit-mask-image:radial-gradient(circle,#000 0 26%,transparent 68%);mask-image:radial-gradient(circle,#000 0 26%,transparent 68%)}
.shock.core::after{content:"";position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,#fff 0 34%,rgba(255,224,110,.95) 62%,rgba(255,170,40,0) 78%)}
.shock.core.go{animation:coreGo .26s ease-out forwards}
@keyframes coreGo{0%{opacity:1;transform:scale(.55) rotate(0deg)}100%{opacity:0;transform:scale(4.6) rotate(26deg)}}
.flash.white{background:#fff}


.elem-burst{position:absolute;width:0;height:0;z-index:8;pointer-events:none}
.elem-burst::before{content:"";position:absolute;left:-30px;top:-30px;width:60px;height:60px;border-radius:50%;opacity:0;animation:elemFlash .3s ease-out forwards}
.elem-burst.fire::before{background:radial-gradient(circle,rgba(255,240,190,1) 0 24%,rgba(255,135,0,.92) 54%,rgba(255,60,0,.25) 72%,rgba(255,60,0,0) 82%)}
.elem-burst.gold::before{background:radial-gradient(circle,rgba(255,255,250,.99) 0 26%,rgba(255,237,176,.95) 46%,rgba(255,194,31,.88) 68%,rgba(146,102,0,0) 84%)}
.elem-burst.fusion::before{background:radial-gradient(circle,rgba(255,255,255,1) 0 20%,rgba(255,185,55,.95) 46%,rgba(255,205,64,.7) 68%,rgba(255,60,0,0) 84%)}
.elem-burst.secret::before{background:radial-gradient(circle,rgba(255,255,255,.95) 0 22%,rgba(255,77,109,.7) 52%,rgba(224,52,91,0) 78%)}
@keyframes elemFlash{0%{opacity:1;transform:scale(.5)}100%{opacity:0;transform:scale(1.9)}}
.elem-burst span{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;opacity:0;animation:elemFly .55s cubic-bezier(.12,.61,.26,1) forwards;animation-delay:var(--dl,0s)}
.elem-burst.fire span{background:radial-gradient(circle at 38% 34%,#fff3b0,#ff7d00 55%,#d92e00);box-shadow:0 0 9px rgba(255,105,0,.98)}
.elem-burst.gold span{background:radial-gradient(circle at 38% 34%,#fffef8 0 30%,#ffedb0 52%,#ffc21f 76%,#96700a 100%);box-shadow:0 0 9px rgba(255,220,90,.95),0 0 3px rgba(146,102,0,.9)}
.elem-burst.fusion span{background:radial-gradient(circle at 38% 34%,#ffffff,#ff9d00 52%,#f24800);box-shadow:0 0 9px rgba(255,140,0,.98)}
.elem-burst.secret span{background:radial-gradient(circle at 38% 34%,#ffffff,#ff8fa8 58%,#e0345b);box-shadow:0 0 8px rgba(255,77,109,.85)}
.elem-burst.fusion span:nth-child(even){background:radial-gradient(circle at 38% 34%,#ffffff,#ffe45e 58%,#ffb800);box-shadow:0 0 9px rgba(255,200,20,.95)}
.elem-burst.rainbow::before{background:radial-gradient(circle,rgba(255,255,255,1) 0 16%,rgba(255,235,130,.95) 32%,rgba(140,255,180,.8) 50%,rgba(120,180,255,.65) 66%,rgba(200,120,255,0) 84%)}
.elem-burst.rainbow span:nth-child(7n+1){background:radial-gradient(circle at 38% 34%,#ffffff,#ff8fa3 52%,#ff4757);box-shadow:0 0 9px rgba(255,71,87,.95)}
.elem-burst.rainbow span:nth-child(7n+2){background:radial-gradient(circle at 38% 34%,#ffffff,#ffc38f 52%,#ff9f43);box-shadow:0 0 9px rgba(255,159,67,.95)}
.elem-burst.rainbow span:nth-child(7n+3){background:radial-gradient(circle at 38% 34%,#ffffff,#ffe98a 52%,#f5b301);box-shadow:0 0 9px rgba(255,211,42,.95)}
.elem-burst.rainbow span:nth-child(7n+4){background:radial-gradient(circle at 38% 34%,#ffffff,#8ff5bc 52%,#2ed573);box-shadow:0 0 9px rgba(46,213,115,.95)}
.elem-burst.rainbow span:nth-child(7n+5){background:radial-gradient(circle at 38% 34%,#ffffff,#8fe8ff 52%,#17a2c6);box-shadow:0 0 9px rgba(23,192,235,.95)}
.elem-burst.rainbow span:nth-child(7n+6){background:radial-gradient(circle at 38% 34%,#ffffff,#a8c2ff 52%,#4a7dff);box-shadow:0 0 9px rgba(74,125,255,.95)}
.elem-burst.rainbow span:nth-child(7n){background:radial-gradient(circle at 38% 34%,#ffffff,#d3a6ff 52%,#a55eea);box-shadow:0 0 9px rgba(165,94,234,.95)}

@keyframes elemHaloPulse{from{transform:scale(1);opacity:.94}to{transform:scale(1.06);opacity:1}}
@keyframes elemFly{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx,0),var(--dy,0)) scale(.25)}}


.player.fx-fire:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,.player.fx-fire:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg{filter:drop-shadow(0 0 16px rgba(255,110,0,.9))}
.player.fx-gold:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,.player.fx-gold:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg{filter:brightness(1.26) drop-shadow(0 0 16px rgba(233,188,53,.85))}
.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg{filter:drop-shadow(0 0 18px rgba(255,160,0,.92))}
.player.fx-fire .p-glove .trail{background:linear-gradient(180deg,rgba(255,145,0,1),rgba(255,75,0,.88) 52%,rgba(255,60,0,0))}
.player.fx-gold .p-glove .trail{background:linear-gradient(180deg,rgba(255,254,244,.98),rgba(255,237,176,.9) 38%,rgba(255,194,31,.75) 68%,rgba(146,102,0,0))}
.player.fx-fusion .p-glove .trail{background:linear-gradient(180deg,rgba(255,175,0,1),rgba(255,130,0,.75) 55%,rgba(255,214,64,0))}


.p-glove .elem-fx{position:absolute;left:-18px;right:-18px;top:-40px;height:228px;z-index:2;pointer-events:none;opacity:0}
.player.fx-fire:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx,.player.fx-fire:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx{opacity:1;background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,115,0,.58),rgba(255,60,0,.18) 58%,rgba(255,60,0,0) 78%);animation:elemHaloPulse .38s ease-in-out infinite alternate;transform-origin:50% 44%}
.player.fx-gold:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx,.player.fx-gold:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx{opacity:1;background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,254,244,.55) 0%,rgba(255,237,176,.4) 42%,rgba(212,160,23,.28) 68%,rgba(146,102,0,0) 82%);animation:elemHaloPulse .38s ease-in-out infinite alternate;transform-origin:50% 44%}
.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx,.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx{opacity:1;background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,150,0,.5),rgba(255,190,40,.3) 55%,rgba(255,60,0,0) 78%);animation:elemHaloPulse .38s ease-in-out infinite alternate;transform-origin:50% 44%}
.p-glove .elem-fx i{position:absolute;opacity:0}

.p-glove .elem-fx .fl,.fighter .glove .elem-fx .fl{border-radius:50% 50% 50% 50%/40% 40% 60% 60%;clip-path:polygon(50% 100%,84% 66%,95% 34%,80% 8%,50% 0%,20% 8%,5% 34%,16% 66%);background:linear-gradient(180deg,#fff3a0 0%,#ffc21f 20%,#ff7d00 44%,#fb5400 68%,rgba(240,55,0,.92) 86%,rgba(220,45,0,.6) 100%);transform-origin:50% 6%}
.p-glove .elem-fx .fl::before,.fighter .glove .elem-fx .fl::before{content:"";position:absolute;left:24%;right:24%;top:5%;height:66%;clip-path:polygon(50% 100%,84% 66%,95% 34%,80% 8%,50% 0%,20% 8%,5% 34%,16% 66%);background:linear-gradient(180deg,rgba(255,254,225,1) 0%,rgba(255,205,60,.95) 52%,rgba(255,130,0,.55) 82%,rgba(255,120,0,0) 100%)}
.p-glove .elem-fx .fl:nth-child(1),.p-glove .elem-fx .fl:nth-child(5){display:none}
.p-glove .elem-fx .fl:nth-child(2){left:27%;top:14px;width:16%;height:158px}
.p-glove .elem-fx .fl:nth-child(3){left:37%;top:0px;width:26%;height:200px}
.p-glove .elem-fx .fl:nth-child(4){left:57%;top:14px;width:16%;height:158px}
.player.fx-fire:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl,.player.fx-fire:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl,.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl,.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl{animation:flameTrail .4s ease-in-out infinite alternate}
.player.fx-fire .elem-fx .fl:nth-child(2),.player.fx-fusion .elem-fx .fl:nth-child(2){animation-duration:.33s;animation-delay:-.11s}
.player.fx-fire .elem-fx .fl:nth-child(3),.player.fx-fusion .elem-fx .fl:nth-child(3){animation-duration:.46s;animation-delay:-.19s}
.player.fx-fire .elem-fx .fl:nth-child(4),.player.fx-fusion .elem-fx .fl:nth-child(4){animation-duration:.37s;animation-delay:-.05s}
@keyframes flameTrail{0%{opacity:.96;transform:rotate(-7deg) skewX(-6deg) scaleY(.88)}50%{opacity:1;transform:rotate(0deg) skewX(0deg) scaleY(1.05)}100%{opacity:.99;transform:rotate(6deg) skewX(7deg) scaleY(1.2) translateY(3px)}}

.player.fx-fire:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl:nth-child(2),.player.fx-fire:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl:nth-child(2),.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl:nth-child(2),.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl:nth-child(2){animation-name:flameSwayL}
.player.fx-fire:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl:nth-child(4),.player.fx-fire:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl:nth-child(4),.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl:nth-child(4),.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl:nth-child(4){animation-name:flameSwayR}
@keyframes flameSwayL{0%{opacity:.97;transform:rotate(13deg) skewX(10deg) scaleY(.9)}55%{opacity:1}100%{opacity:.99;transform:rotate(3deg) skewX(-6deg) scaleY(1.16) translateY(4px)}}
@keyframes flameSwayR{0%{opacity:.97;transform:rotate(-13deg) skewX(-10deg) scaleY(.9)}55%{opacity:1}100%{opacity:.99;transform:rotate(-3deg) skewX(6deg) scaleY(1.16) translateY(4px)}}

.p-glove .elem-fx .bl{display:none}

.fighter .glove .elem-fx{position:absolute;left:-8px;right:-8px;top:-18px;height:100px;z-index:2;pointer-events:none;opacity:0}
.fighter .glove .elem-fx i{position:absolute;opacity:0}
.fighter .glove .elem-fx .fl:nth-child(1),.fighter .glove .elem-fx .fl:nth-child(5){display:none}
.fighter .glove .elem-fx .fl:nth-child(2){left:27%;top:6px;width:16%;height:70px}
.fighter .glove .elem-fx .fl:nth-child(3){left:37%;top:0px;width:26%;height:88px}
.fighter .glove .elem-fx .fl:nth-child(4){left:57%;top:6px;width:16%;height:70px}
.fighter .glove .elem-fx .bl{display:none}
.arena.flurry-live .fighter:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-smash-l,.pt-chop-r) .glove.left .elem-fx,
.arena.flurry-live .fighter:is(.pt-straight,.pt-hook-r,.pt-upper-r,.pt-smash-r) .glove.right .elem-fx{opacity:1;background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,115,0,.58),rgba(255,60,0,.18) 58%,rgba(255,60,0,0) 78%);animation:elemHaloPulse .38s ease-in-out infinite alternate;transform-origin:50% 44%}
.arena.flurry-live .fighter:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-smash-l,.pt-chop-r) .glove.left .elem-fx .fl,
.arena.flurry-live .fighter:is(.pt-straight,.pt-hook-r,.pt-upper-r,.pt-smash-r) .glove.right .elem-fx .fl{animation:flameTrail .4s ease-in-out infinite alternate}
.arena.flurry-live .fighter .glove .elem-fx .fl:nth-child(2){animation-duration:.33s;animation-delay:-.11s}
.arena.flurry-live .fighter .glove .elem-fx .fl:nth-child(3){animation-duration:.46s;animation-delay:-.19s}
.arena.flurry-live .fighter .glove .elem-fx .fl:nth-child(4){animation-duration:.37s;animation-delay:-.05s}
.arena.flurry-live .fighter:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-smash-l,.pt-chop-r) .glove.left .elem-fx .fl:nth-child(2),
.arena.flurry-live .fighter:is(.pt-straight,.pt-hook-r,.pt-upper-r,.pt-smash-r) .glove.right .elem-fx .fl:nth-child(2){animation-name:flameSwayL}
.arena.flurry-live .fighter:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-smash-l,.pt-chop-r) .glove.left .elem-fx .fl:nth-child(4),
.arena.flurry-live .fighter:is(.pt-straight,.pt-hook-r,.pt-upper-r,.pt-smash-r) .glove.right .elem-fx .fl:nth-child(4){animation-name:flameSwayR}

.arena.flurry-live .fighter .glove{opacity:.7}
.arena.flurry-live .fighter .glove .elem-fx{opacity:0 !important;animation:none !important}
.arena.flurry-live .fighter .glove .elem-fx .fl{opacity:0;animation:none !important}
.arena.flurry-live #fighter.gou-fire{filter:none}
.arena.flurry-live .player.fx-fire .p-glove .elem-fx,
.arena.flame-mute .player.fx-fire .p-glove .elem-fx{opacity:0;animation:none}
.arena.flurry-live .player.fx-fire:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,
.arena.flurry-live .player.fx-fire:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg,
.arena.flame-mute .player.fx-fire:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,
.arena.flame-mute .player.fx-fire:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg{filter:none}
.arena.flurry-live .player.fx-fire .p-glove .trail,
.arena.flame-mute .player.fx-fire .p-glove .trail{background:linear-gradient(180deg,rgba(47,123,255,.85),rgba(47,123,255,0))}
.arena.flurry-live .player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx,
.arena.flurry-live .player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx,
.arena.flame-mute .player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .elem-fx,
.arena.flame-mute .player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx{background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,254,244,.55) 0%,rgba(255,237,176,.4) 42%,rgba(212,160,23,.28) 68%,rgba(146,102,0,0) 82%)}
.arena.flurry-live .player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,
.arena.flurry-live .player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg,
.arena.flame-mute .player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,
.arena.flame-mute .player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg{filter:brightness(1.26) drop-shadow(0 0 16px rgba(233,188,53,.85))}
.arena.flurry-live .player.fx-fusion .p-glove .trail,
.arena.flame-mute .player.fx-fusion .p-glove .trail{background:linear-gradient(180deg,rgba(255,254,244,.98),rgba(255,237,176,.9) 38%,rgba(255,194,31,.75) 68%,rgba(146,102,0,0))}
.arena.flurry-live .player.fx-fusion .p-glove .elem-fx .fl,
.arena.flame-mute .player.fx-fusion .p-glove .elem-fx .fl,
.arena.flurry-live .player.fx-secret .p-glove .elem-fx .fl,
.arena.flame-mute .player.fx-secret .p-glove .elem-fx .fl,
.arena.flurry-live .player.fx-secret-fin .p-glove .elem-fx .fl,
.arena.flame-mute .player.fx-secret-fin .p-glove .elem-fx .fl{display:none}
.arena.flurry-live .player.fx-secret .p-glove.left .elem-fx,
.arena.flurry-live .player.fx-secret .p-glove.right .elem-fx,
.arena.flame-mute .player.fx-secret .p-glove.left .elem-fx,
.arena.flame-mute .player.fx-secret .p-glove.right .elem-fx,
.arena.flurry-live .player.fx-secret-fin .p-glove.left .elem-fx,
.arena.flurry-live .player.fx-secret-fin .p-glove.right .elem-fx,
.arena.flame-mute .player.fx-secret-fin .p-glove.left .elem-fx,
.arena.flame-mute .player.fx-secret-fin .p-glove.right .elem-fx{background:none}

.player.fx-gold:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg .g-main,.player.fx-gold:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg .g-main,.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg .g-main,.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg .g-main{fill:url(#goldFoilGrad);stroke:#8a5c00;stroke-width:2.5}
.player.fx-gold:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg .g-thumb,.player.fx-gold:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg .g-thumb,.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg .g-thumb,.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg .g-thumb{fill:url(#goldDeepGrad);stroke:#7a5200;stroke-width:2}
.player.fx-gold:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg .g-cuff,.player.fx-gold:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg .g-cuff,.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg .g-cuff,.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg .g-cuff{fill:url(#goldCuffGrad);stroke:#8a5c00;stroke-width:1.6}
.player.fx-gold:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left::after,.player.fx-gold:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right::after,.player.fx-fusion:is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left::after,.player.fx-fusion:is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right::after{background:linear-gradient(90deg,#8a5c00 0%,#d4a017 16%,#fff6c8 50%,#d4a017 84%,#8a5c00 100%);box-shadow:0 0 14px rgba(255,220,90,.75),inset 0 0 0 2px rgba(138,92,0,.55)}


.player.fx-fire.pp-jab .p-glove.left,.player.fx-fire.pp-body-jab .p-glove.left{animation-duration:0.341s}
.player.fx-fire.pp-straight .p-glove.right,.player.fx-fire.pp-body .p-glove.right,.player.fx-fire.pp-body-straight .p-glove.right{animation-duration:0.384s}
.player.fx-fire.pp-hook-l .p-glove.left,.player.fx-fire.pp-body-hook-l .p-glove.left,.player.fx-fire.pp-hook-r .p-glove.right,.player.fx-fire.pp-body-hook-r .p-glove.right{animation-duration:0.434s}
.player.fx-fire.pp-upper-l .p-glove.left,.player.fx-fire.pp-body-upper-l .p-glove.left,.player.fx-fire.pp-upper-r .p-glove.right,.player.fx-fire.pp-body-upper-r .p-glove.right{animation-duration:0.459s}
.player.fx-fire.pp-smash-l .p-glove.left,.player.fx-fire.pp-smash-r .p-glove.right{animation-duration:0.7s}
.player.fx-fire.pp-chop-r .p-glove.right{animation-duration:0.516s}
.player.fx-fire:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-fire:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.416s}

.player.fx-gold.pp-jab .p-glove.left,.player.fx-gold.pp-body-jab .p-glove.left{animation-duration:0.256s}
.player.fx-gold.pp-straight .p-glove.right,.player.fx-gold.pp-body .p-glove.right,.player.fx-gold.pp-body-straight .p-glove.right{animation-duration:0.288s}
.player.fx-gold.pp-hook-l .p-glove.left,.player.fx-gold.pp-body-hook-l .p-glove.left,.player.fx-gold.pp-hook-r .p-glove.right,.player.fx-gold.pp-body-hook-r .p-glove.right{animation-duration:0.325s}
.player.fx-gold.pp-upper-l .p-glove.left,.player.fx-gold.pp-body-upper-l .p-glove.left,.player.fx-gold.pp-upper-r .p-glove.right,.player.fx-gold.pp-body-upper-r .p-glove.right{animation-duration:0.344s}
.player.fx-gold.pp-smash-l .p-glove.left,.player.fx-gold.pp-smash-r .p-glove.right{animation-duration:0.525s}
.player.fx-gold.pp-chop-r .p-glove.right{animation-duration:0.388s}
.player.fx-gold:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-gold:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.312s}

.player.fx-fusion.pp-jab .p-glove.left,.player.fx-fusion.pp-body-jab .p-glove.left{animation-duration:0.171s}
.player.fx-fusion.pp-straight .p-glove.right,.player.fx-fusion.pp-body .p-glove.right,.player.fx-fusion.pp-body-straight .p-glove.right{animation-duration:0.191s}
.player.fx-fusion.pp-hook-l .p-glove.left,.player.fx-fusion.pp-body-hook-l .p-glove.left,.player.fx-fusion.pp-hook-r .p-glove.right,.player.fx-fusion.pp-body-hook-r .p-glove.right{animation-duration:0.216s}
.player.fx-fusion.pp-upper-l .p-glove.left,.player.fx-fusion.pp-body-upper-l .p-glove.left,.player.fx-fusion.pp-upper-r .p-glove.right,.player.fx-fusion.pp-body-upper-r .p-glove.right{animation-duration:0.229s}
.player.fx-fusion.pp-smash-l .p-glove.left,.player.fx-fusion.pp-smash-r .p-glove.right{animation-duration:0.35s}
.player.fx-fusion.pp-chop-r .p-glove.right{animation-duration:0.259s}
.player.fx-fusion:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-fusion:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.209s}

.player.fx-fusion.fx-shuen.pp-jab .p-glove.left,.player.fx-fusion.fx-shuen.pp-body-jab .p-glove.left{animation-duration:0.205s}
.player.fx-fusion.fx-shuen.pp-straight .p-glove.right,.player.fx-fusion.fx-shuen.pp-body .p-glove.right,.player.fx-fusion.fx-shuen.pp-body-straight .p-glove.right{animation-duration:0.23s}
.player.fx-fusion.fx-shuen.pp-hook-l .p-glove.left,.player.fx-fusion.fx-shuen.pp-body-hook-l .p-glove.left,.player.fx-fusion.fx-shuen.pp-hook-r .p-glove.right,.player.fx-fusion.fx-shuen.pp-body-hook-r .p-glove.right{animation-duration:0.26s}
.player.fx-fusion.fx-shuen.pp-upper-l .p-glove.left,.player.fx-fusion.fx-shuen.pp-body-upper-l .p-glove.left,.player.fx-fusion.fx-shuen.pp-upper-r .p-glove.right,.player.fx-fusion.fx-shuen.pp-body-upper-r .p-glove.right{animation-duration:0.275s}
.player.fx-fusion.fx-shuen.pp-smash-l .p-glove.left,.player.fx-fusion.fx-shuen.pp-smash-r .p-glove.right{animation-duration:0.42s}
.player.fx-fusion.fx-shuen.pp-chop-r .p-glove.right{animation-duration:0.31s}
.player.fx-fusion.fx-shuen:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-fusion.fx-shuen:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.25s}

.player.fx-secret.pp-jab .p-glove.left,.player.fx-secret.pp-body-jab .p-glove.left{animation-duration:0.103s}
.player.fx-secret.pp-straight .p-glove.right,.player.fx-secret.pp-body .p-glove.right,.player.fx-secret.pp-body-straight .p-glove.right{animation-duration:0.115s}
.player.fx-secret.pp-hook-l .p-glove.left,.player.fx-secret.pp-body-hook-l .p-glove.left,.player.fx-secret.pp-hook-r .p-glove.right,.player.fx-secret.pp-body-hook-r .p-glove.right{animation-duration:0.13s}
.player.fx-secret.pp-upper-l .p-glove.left,.player.fx-secret.pp-body-upper-l .p-glove.left,.player.fx-secret.pp-upper-r .p-glove.right,.player.fx-secret.pp-body-upper-r .p-glove.right{animation-duration:0.138s}
.player.fx-secret.pp-smash-l .p-glove.left,.player.fx-secret.pp-smash-r .p-glove.right{animation-duration:0.21s}
.player.fx-secret.pp-chop-r .p-glove.right{animation-duration:0.155s}
.player.fx-secret:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-secret:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.125s}

.player.fx-secret-fin.pp-chop-r .p-glove.right{animation-duration:0.775s}
.player.fx-secret-fin.pp-chop-r .p-glove.right .trail{animation-duration:0.625s}

.player.fx-secret:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .elem-fx,.player.fx-secret:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx{opacity:1;background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,115,0,.58),rgba(255,60,0,.18) 58%,rgba(255,60,0,0) 78%);animation:elemHaloPulse .38s ease-in-out infinite alternate;transform-origin:50% 44%}
.player.fx-secret:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .glove-svg,.player.fx-secret:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg{filter:drop-shadow(0 0 16px rgba(255,110,0,.9))}
.player.fx-secret .p-glove .trail{background:linear-gradient(180deg,rgba(255,145,0,1),rgba(255,75,0,.88) 52%,rgba(255,60,0,0))}
.player.fx-secret:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl,.player.fx-secret:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl{animation:flameTrail .4s ease-in-out infinite alternate}
.player.fx-secret .elem-fx .fl:nth-child(2){animation-duration:.33s;animation-delay:-.11s}
.player.fx-secret .elem-fx .fl:nth-child(3){animation-duration:.46s;animation-delay:-.19s}
.player.fx-secret .elem-fx .fl:nth-child(4){animation-duration:.37s;animation-delay:-.05s}
.player.fx-secret:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl:nth-child(2),.player.fx-secret:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl:nth-child(2){animation-name:flameSwayL}
.player.fx-secret:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .elem-fx .fl:nth-child(4),.player.fx-secret:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx .fl:nth-child(4){animation-name:flameSwayR}

.player.fx-secret-fin.pp-chop-r .p-glove.right .elem-fx{opacity:1;background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,140,0,.72),rgba(255,60,0,.3) 58%,rgba(255,60,0,0) 80%);transform:scale(1.3);transform-origin:50% 44%}
.player.fx-secret-fin.pp-chop-r .p-glove.right .glove-svg{filter:drop-shadow(0 0 16px rgba(255,110,0,.9))}
.player.fx-secret-fin .p-glove .trail{background:linear-gradient(180deg,rgba(255,145,0,1),rgba(255,75,0,.88) 52%,rgba(255,60,0,0))}
.player.fx-secret-fin.pp-chop-r .p-glove.right .elem-fx .fl{animation:flameTrail .4s ease-in-out infinite alternate}
.player.fx-secret-fin .elem-fx .fl:nth-child(2){animation-duration:.33s;animation-delay:-.11s;animation-name:flameSwayL}
.player.fx-secret-fin .elem-fx .fl:nth-child(3){animation-duration:.46s;animation-delay:-.19s}
.player.fx-secret-fin .elem-fx .fl:nth-child(4){animation-duration:.37s;animation-delay:-.05s;animation-name:flameSwayR}



.player:is(.tcat-basic,.tcat-body,.tcat-fire,.tcat-gold,.tcat-fusion,.tcat-final,.tcat-secret).trar-1 .p-glove .trail{width:40%;height:94%}
.player:is(.tcat-basic,.tcat-body,.tcat-fire,.tcat-gold,.tcat-fusion,.tcat-final,.tcat-secret).trar-2 .p-glove .trail{width:46%;height:102%}
.player:is(.tcat-basic,.tcat-body,.tcat-fire,.tcat-gold,.tcat-fusion,.tcat-final,.tcat-secret).trar-3 .p-glove .trail{width:58%;height:116%}
.player:is(.tcat-basic,.tcat-body,.tcat-fire,.tcat-gold,.tcat-fusion,.tcat-final,.tcat-secret).trar-4 .p-glove .trail{width:72%;height:130%}
.player:is(.tcat-basic,.tcat-body,.tcat-fire,.tcat-gold,.tcat-fusion,.tcat-final,.tcat-secret).trar-5 .p-glove .trail{width:88%;height:146%}

.player.tcat-body.trar-3 .p-glove .trail{width:52%;height:108%}
.player.tcat-body.trar-4 .p-glove .trail{width:64%;height:120%}
.player.tcat-body.trar-5 .p-glove .trail{width:78%;height:134%}

.player.tcat-final.trar-5 .p-glove .trail{width:96%;height:156%}
.player.tcat-secret .p-glove .trail{width:94%;height:150%}

.player.tcat-basic.trar-1 .p-glove .trail{background:linear-gradient(180deg,rgba(170,205,255,.5),rgba(170,205,255,0))}
.player.tcat-basic.trar-2 .p-glove .trail{background:linear-gradient(180deg,rgba(140,190,255,.62),rgba(90,150,255,0))}
.player.tcat-basic.trar-3 .p-glove .trail{background:linear-gradient(180deg,rgba(120,215,255,.8),rgba(47,123,255,.22) 55%,rgba(47,123,255,0))}
.player.tcat-basic.trar-4 .p-glove .trail{background:radial-gradient(circle at 50% 14%,rgba(255,255,255,.85) 0 5%,transparent 6%),linear-gradient(180deg,rgba(235,250,255,.88),rgba(110,205,255,.5) 45%,rgba(47,123,255,0))}
.player.tcat-basic.trar-5 .p-glove .trail{background:radial-gradient(circle at 50% 13%,#ffffff 0 5%,transparent 6%),radial-gradient(circle at 31% 40%,rgba(255,214,90,.9) 0 4%,transparent 5%),radial-gradient(circle at 65% 58%,rgba(190,240,255,.85) 0 4%,transparent 5%),linear-gradient(180deg,rgba(240,252,255,.92),rgba(120,210,255,.55) 42%,rgba(255,200,80,.22) 72%,rgba(255,200,80,0))}

.player.tcat-body.trar-1 .p-glove .trail{background:linear-gradient(180deg,rgba(215,185,145,.42),rgba(215,185,145,0))}
.player.tcat-body.trar-2 .p-glove .trail{background:linear-gradient(180deg,rgba(220,180,120,.52),rgba(200,150,80,0))}
.player.tcat-body.trar-3 .p-glove .trail{background:linear-gradient(180deg,rgba(228,175,100,.66),rgba(190,130,60,.18) 58%,rgba(190,130,60,0))}
.player.tcat-body.trar-4 .p-glove .trail{background:radial-gradient(circle at 50% 15%,rgba(255,240,200,.8) 0 5%,transparent 6%),linear-gradient(180deg,rgba(238,190,110,.76),rgba(200,140,60,.2) 58%,rgba(200,140,60,0))}
.player.tcat-body.trar-5 .p-glove .trail{background:radial-gradient(circle at 50% 14%,#fff3cf 0 5%,transparent 6%),radial-gradient(circle at 34% 44%,rgba(255,205,110,.85) 0 4%,transparent 5%),linear-gradient(180deg,rgba(255,215,140,.86),rgba(230,160,70,.42) 55%,rgba(230,160,70,0))}

.player.tcat-final:not(.fx-fire):not(.fx-gold):not(.fx-fusion):not(.fx-secret):not(.fx-secret-fin) .p-glove .trail{background:radial-gradient(circle at 50% 12%,#ffffff 0 6%,transparent 7%),radial-gradient(circle at 30% 38%,rgba(255,220,110,.95) 0 5%,transparent 6%),radial-gradient(circle at 66% 55%,rgba(255,255,255,.9) 0 4%,transparent 5%),radial-gradient(circle at 44% 74%,rgba(255,170,80,.8) 0 4%,transparent 5%),linear-gradient(180deg,rgba(255,252,240,.95),rgba(255,214,90,.7) 38%,rgba(255,150,60,.32) 68%,rgba(255,150,60,0))}

.player.tcat-secret .p-glove .trail{background:radial-gradient(circle at 50% 12%,#fff6c8 0 5%,transparent 6%),radial-gradient(circle at 33% 38%,rgba(255,190,60,.95) 0 4%,transparent 5%),radial-gradient(circle at 63% 57%,rgba(255,240,180,.9) 0 4%,transparent 5%),linear-gradient(180deg,rgba(255,145,0,1),rgba(255,75,0,.88) 52%,rgba(255,60,0,0))}

/* ============================================================
   LEGEND SPEED + RAINBOW （レジェンド増強・2026-11-04): .fx-lgnd
   is worn by every ★★★★★ legend technique for its whole combo
   (see playerCombo). The duration tables divide the pp-* base
   durations by the SAME products playerCombo computes — plain
   ×1.5 / 炎 ×2.25 / 金 ×3 / 炎×金 ×4.5 — so the glove, the
   impact frame and the follow-up schedule can never drift apart.
   終焉インフェルノ keeps its own .fx-shuen table above (÷2.5),
   so the fusion legend table below skips it. Below the tables,
   the rainbow look: a prismatic trail and aura halo for every
   legend, plus a twin-colour glove glow for legends with no
   element (element legends keep their attribute glow and flame
   shapes — the rainbow rides the trail / aura / sparks layer).
   ============================================================ */
.player.fx-lgnd.pp-jab .p-glove.left,.player.fx-lgnd.pp-body-jab .p-glove.left{animation-duration:0.341s}
.player.fx-lgnd.pp-straight .p-glove.right,.player.fx-lgnd.pp-body .p-glove.right,.player.fx-lgnd.pp-body-straight .p-glove.right{animation-duration:0.384s}
.player.fx-lgnd.pp-hook-l .p-glove.left,.player.fx-lgnd.pp-body-hook-l .p-glove.left,.player.fx-lgnd.pp-hook-r .p-glove.right,.player.fx-lgnd.pp-body-hook-r .p-glove.right{animation-duration:0.434s}
.player.fx-lgnd.pp-upper-l .p-glove.left,.player.fx-lgnd.pp-body-upper-l .p-glove.left,.player.fx-lgnd.pp-upper-r .p-glove.right,.player.fx-lgnd.pp-body-upper-r .p-glove.right{animation-duration:0.459s}
.player.fx-lgnd.pp-smash-l .p-glove.left,.player.fx-lgnd.pp-smash-r .p-glove.right{animation-duration:0.7s}
.player.fx-lgnd.pp-chop-r .p-glove.right{animation-duration:0.516s}
.player.fx-lgnd:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-lgnd:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.416s}

.player.fx-fire.fx-lgnd.pp-jab .p-glove.left,.player.fx-fire.fx-lgnd.pp-body-jab .p-glove.left{animation-duration:0.227s}
.player.fx-fire.fx-lgnd.pp-straight .p-glove.right,.player.fx-fire.fx-lgnd.pp-body .p-glove.right,.player.fx-fire.fx-lgnd.pp-body-straight .p-glove.right{animation-duration:0.255s}
.player.fx-fire.fx-lgnd.pp-hook-l .p-glove.left,.player.fx-fire.fx-lgnd.pp-body-hook-l .p-glove.left,.player.fx-fire.fx-lgnd.pp-hook-r .p-glove.right,.player.fx-fire.fx-lgnd.pp-body-hook-r .p-glove.right{animation-duration:0.289s}
.player.fx-fire.fx-lgnd.pp-upper-l .p-glove.left,.player.fx-fire.fx-lgnd.pp-body-upper-l .p-glove.left,.player.fx-fire.fx-lgnd.pp-upper-r .p-glove.right,.player.fx-fire.fx-lgnd.pp-body-upper-r .p-glove.right{animation-duration:0.305s}
.player.fx-fire.fx-lgnd.pp-smash-l .p-glove.left,.player.fx-fire.fx-lgnd.pp-smash-r .p-glove.right{animation-duration:0.466s}
.player.fx-fire.fx-lgnd.pp-chop-r .p-glove.right{animation-duration:0.345s}
.player.fx-fire.fx-lgnd:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-fire.fx-lgnd:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.278s}

.player.fx-gold.fx-lgnd.pp-jab .p-glove.left,.player.fx-gold.fx-lgnd.pp-body-jab .p-glove.left{animation-duration:0.171s}
.player.fx-gold.fx-lgnd.pp-straight .p-glove.right,.player.fx-gold.fx-lgnd.pp-body .p-glove.right,.player.fx-gold.fx-lgnd.pp-body-straight .p-glove.right{animation-duration:0.191s}
.player.fx-gold.fx-lgnd.pp-hook-l .p-glove.left,.player.fx-gold.fx-lgnd.pp-body-hook-l .p-glove.left,.player.fx-gold.fx-lgnd.pp-hook-r .p-glove.right,.player.fx-gold.fx-lgnd.pp-body-hook-r .p-glove.right{animation-duration:0.216s}
.player.fx-gold.fx-lgnd.pp-upper-l .p-glove.left,.player.fx-gold.fx-lgnd.pp-body-upper-l .p-glove.left,.player.fx-gold.fx-lgnd.pp-upper-r .p-glove.right,.player.fx-gold.fx-lgnd.pp-body-upper-r .p-glove.right{animation-duration:0.229s}
.player.fx-gold.fx-lgnd.pp-smash-l .p-glove.left,.player.fx-gold.fx-lgnd.pp-smash-r .p-glove.right{animation-duration:0.35s}
.player.fx-gold.fx-lgnd.pp-chop-r .p-glove.right{animation-duration:0.259s}
.player.fx-gold.fx-lgnd:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-gold.fx-lgnd:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.209s}

.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-jab .p-glove.left,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-body-jab .p-glove.left{animation-duration:0.114s}
.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-straight .p-glove.right,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-body .p-glove.right,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-body-straight .p-glove.right{animation-duration:0.128s}
.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-hook-l .p-glove.left,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-body-hook-l .p-glove.left,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-hook-r .p-glove.right,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-body-hook-r .p-glove.right{animation-duration:0.145s}
.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-upper-l .p-glove.left,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-body-upper-l .p-glove.left,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-upper-r .p-glove.right,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-body-upper-r .p-glove.right{animation-duration:0.152s}
.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-smash-l .p-glove.left,.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-smash-r .p-glove.right{animation-duration:0.234s}
.player.fx-fusion.fx-lgnd:not(.fx-shuen).pp-chop-r .p-glove.right{animation-duration:0.173s}
.player.fx-fusion.fx-lgnd:not(.fx-shuen):is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .trail,.player.fx-fusion.fx-lgnd:not(.fx-shuen):is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .trail{animation-duration:0.139s}

/* Rainbow trail — every legend, whatever its element: the full
   spectrum runs down the trail with white sparkle flecks on top,
   layered over (never instead of) the attribute's own shapes. */
.player.fx-lgnd.trar-5 .p-glove .trail{background:radial-gradient(circle at 50% 12%,#ffffff 0 5%,transparent 6%),radial-gradient(circle at 31% 40%,rgba(255,255,255,.9) 0 4%,transparent 5%),radial-gradient(circle at 66% 58%,rgba(255,255,255,.85) 0 4%,transparent 5%),linear-gradient(180deg,rgba(255,71,87,.95),rgba(255,159,67,.92) 24%,rgba(255,211,42,.92) 44%,rgba(46,213,115,.9) 64%,rgba(56,150,255,.88) 82%,rgba(165,94,234,0))}
.player.tcat-final.fx-lgnd:not(.fx-fire):not(.fx-gold):not(.fx-fusion):not(.fx-secret):not(.fx-secret-fin) .p-glove .trail{background:radial-gradient(circle at 50% 12%,#ffffff 0 5%,transparent 6%),radial-gradient(circle at 31% 40%,rgba(255,255,255,.9) 0 4%,transparent 5%),radial-gradient(circle at 66% 58%,rgba(255,255,255,.85) 0 4%,transparent 5%),linear-gradient(180deg,rgba(255,71,87,.95),rgba(255,159,67,.92) 24%,rgba(255,211,42,.92) 44%,rgba(46,213,115,.9) 64%,rgba(56,150,255,.88) 82%,rgba(165,94,234,0))}

/* Rainbow aura halo around the punching glove — the element
   halo's slot, repainted as a soft spectrum wash; flame shapes
   (.fl) and the gold glove itself are untouched. */
.player.fx-lgnd:is(.pp-jab,.pp-body-jab,.pp-hook-l,.pp-body-hook-l,.pp-upper-l,.pp-body-upper-l,.pp-smash-l) .p-glove.left .elem-fx,.player.fx-lgnd:is(.pp-straight,.pp-body,.pp-body-straight,.pp-hook-r,.pp-body-hook-r,.pp-upper-r,.pp-body-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .elem-fx{opacity:1;background:radial-gradient(ellipse 90% 76% at 50% 44%,rgba(255,120,220,.34) 0%,rgba(255,190,90,.30) 30%,rgba(140,255,170,.26) 52%,rgba(110,170,255,.24) 72%,rgba(170,110,255,0) 86%);animation:elemHaloPulse .38s ease-in-out infinite alternate;transform-origin:50% 44%}

/* Twin-colour prismatic glow for legends with no element of
   their own (element legends keep their attribute glow). */
.player.fx-lgnd:not(.fx-fire):not(.fx-gold):not(.fx-fusion):is(.pp-jab,.pp-hook-l,.pp-upper-l,.pp-smash-l) .p-glove.left .glove-svg,.player.fx-lgnd:not(.fx-fire):not(.fx-gold):not(.fx-fusion):is(.pp-straight,.pp-hook-r,.pp-upper-r,.pp-smash-r,.pp-chop-r) .p-glove.right .glove-svg{filter:drop-shadow(0 0 10px rgba(255,110,220,.75)) drop-shadow(0 0 16px rgba(90,180,255,.55))}

/* The boss-flurry flame mute silences the rainbow aura too,
   exactly as it silences the element halos. */
.arena.flurry-live .player.fx-lgnd .p-glove .elem-fx,.arena.flame-mute .player.fx-lgnd .p-glove .elem-fx{opacity:0;animation:none}


.letter-btn{margin-top:8px}
.title-footer-actions{display:flex;gap:8px;margin-top:18px;padding-top:14px;border-top:1.5px solid #e8e4c8}
.title-footer-actions .footer-mini-btn{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;padding:10px 8px;border-radius:12px;border:1.5px solid #c9cdf0;background:#fff;color:#3a3d5e;font-family:inherit;font-weight:800;font-size:13.5px;line-height:1.35;cursor:pointer;white-space:normal;overflow-wrap:anywhere;text-align:center}
.title-footer-actions .footer-mini-btn:active{transform:translateY(2px);background:#f3f4ff}
html.tx-large .title-footer-actions .footer-mini-btn{font-size:15px}
.contact-field{width:100%;box-sizing:border-box;margin:4px 0 10px;padding:10px 12px;border-radius:10px;border:1.5px solid rgba(20,20,43,.3);background:#fff;color:#14142b;font-size:15px;font-family:inherit}
textarea.contact-field{resize:vertical;min-height:120px;line-height:1.6}
.contact-label{display:block;font-size:13.5px;font-weight:700;margin-top:10px}
#contactScreen .card{text-align:left}
#contactScreen h1{text-align:left}
#contactScreen .chat-state{color:#8a6d00}
#contactScreen .chat-state.ok{color:#1d7a3a}
#contactScreen .chat-state.err{color:#c22e42}
.contact-done{font-size:15.5px;line-height:1.85;font-weight:700}
.letter-unread{color:#ff4757;font-size:12px;margin-left:6px}
.letter-unread[hidden]{display:none}
#letterScreen .card{text-align:left}
#letterScreen h1{text-align:left}
.letter-body p{font-size:15px;line-height:1.85;margin:0 0 12px}


.sfx-word{position:absolute;left:50%;z-index:9;pointer-events:none;font-weight:900;letter-spacing:.02em;white-space:nowrap;color:var(--yellow);-webkit-text-stroke:2px #14142b;text-shadow:3px 3px 0 #14142b;opacity:0;transform:translate(-50%,-50%) rotate(var(--rot,-6deg)) scale(.35);animation:sfxPop .55s cubic-bezier(.2,1.6,.4,1) forwards}
.sfx-word.big{color:#ffe14d}
.sfx-word.hurt{color:#ff8fa3}
@keyframes sfxPop{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rot,-6deg)) scale(.35)}22%{opacity:1;transform:translate(-50%,-50%) rotate(var(--rot,-6deg)) scale(1.18)}45%{transform:translate(-50%,-50%) rotate(var(--rot,-6deg)) scale(1)}100%{opacity:0;transform:translate(-50%,-64%) rotate(var(--rot,-6deg)) scale(1.05)}}



.down-ui{position:absolute;inset:0;z-index:20;pointer-events:none;display:none}
.down-ui.show{display:block}
.down-label{position:absolute;top:52px;left:50%;transform:translateX(-50%);background:#14142b;color:#fff;border:2.5px solid #fff;font-weight:900;font-size:16px;padding:6px 16px;border-radius:999px;white-space:nowrap;box-shadow:0 4px 10px rgba(0,0,0,.4)}
.down-count{position:absolute;top:100px;left:50%;transform:translateX(-50%);font-size:104px;font-weight:900;line-height:1;color:var(--yellow);-webkit-text-stroke:3px #14142b;text-shadow:4px 4px 0 #14142b}
.down-count.pop{animation:countPop .32s ease}
@keyframes countPop{0%{transform:translateX(-50%) scale(1.6)}100%{transform:translateX(-50%) scale(1)}}

.getup{position:absolute;bottom:46px;left:50%;transform:translateX(-50%);width:274px;text-align:center;background:rgba(8,8,22,.62);border:1.5px solid rgba(255,255,255,.38);border-radius:14px;padding:7px 12px 9px;box-shadow:0 4px 12px rgba(0,0,0,.4)}
.getup-label{font-weight:900;font-size:15px;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.55);margin-bottom:6px;white-space:nowrap}
.getup-bar{height:17px;border:2.5px solid #fff;border-radius:99px;background:rgba(0,0,0,.55);overflow:hidden;box-shadow:0 3px 8px rgba(0,0,0,.4)}
.getup-fill{height:100%;width:0%;background:linear-gradient(90deg,#2ed573,#a3e635,#ffd21f)}




.message{position:relative;z-index:5;min-height:92px;overflow:visible;line-height:1.4;text-align:center;font-weight:800;font-size:15px;color:#fff;padding:8px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.message small{display:block;color:var(--muted);font-weight:700;font-size:12px;line-height:1.35;margin-top:2px}



.controls{position:relative;z-index:3;padding:10px 16px calc(14px + env(safe-area-inset-bottom))}
.tap-btn{width:100%;border:none;border-radius:22px;padding:20px 16px;background:linear-gradient(180deg,#ffd21f,#ffb800);color:#1a1200;font-weight:900;font-size:22px;letter-spacing:.06em;box-shadow:0 8px 0 #b77900, 0 14px 24px rgba(0,0,0,.35)}

.arena .tap-btn{margin-top:8px;flex:none;position:relative;z-index:6}
.tap-btn:active{transform:translateY(5px);box-shadow:0 3px 0 #b77900}
.tap-btn:disabled{opacity:.55;filter:grayscale(.3)}
.subrow{display:flex;gap:10px;margin-top:12px}
.ghost{flex:1;padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font-weight:800}
.ghost:active{background:rgba(255,255,255,.16)}

.rec-row{display:flex;align-items:center;gap:10px;margin-top:10px}
.rec-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:12px 16px;border-radius:14px;border:1.5px solid rgba(255,90,100,.65);background:rgba(255,71,87,.14);color:#fff;font-weight:900;font-size:14px;cursor:pointer}
.rec-btn:active{transform:translateY(2px)}
.rec-btn .rec-dot{width:11px;height:11px;border-radius:50%;background:#ff4757;flex:0 0 auto}
.rec-btn.recording{background:#ff4757;border-color:#ff8795;color:#fff}
.rec-btn.recording .rec-dot{background:#fff;animation:recBlink 1s ease-in-out infinite alternate}
.rec-btn:disabled{opacity:.55;cursor:default}
.rec-view-btn{flex:0 0 auto;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font-weight:800;font-size:13px;cursor:pointer}
.rec-view-btn[hidden]{display:none}
.rec-status{flex:1;min-width:0;font-size:11.5px;font-weight:700;line-height:1.45;color:var(--muted)}
.rec-status b{color:#fff}
@keyframes recBlink{from{opacity:1}to{opacity:.25}}
@media (prefers-reduced-motion: reduce){.rec-btn.recording .rec-dot{animation:none}}

.rec-badge{position:absolute;top:10px;left:10px;z-index:9;display:none;align-items:center;gap:7px;background:rgba(10,10,24,.78);border:1.5px solid rgba(255,90,100,.8);color:#fff;font-weight:900;font-size:13px;letter-spacing:.06em;padding:5px 11px;border-radius:999px;pointer-events:none}
.rec-badge.show{display:inline-flex}
.rec-badge .rec-dot{width:10px;height:10px;border-radius:50%;background:#ff4757;animation:recBlink 1s ease-in-out infinite alternate}
@media (prefers-reduced-motion: reduce){.rec-badge .rec-dot{animation:none}}

.rec-video{width:100%;border-radius:14px;background:#000;border:2px solid #14142b;display:block;aspect-ratio:9/16;max-height:52dvh;object-fit:contain}
.rec-meta{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-size:12px;font-weight:800;color:#6b6f8f}
.rec-meta b{color:#14142b}
.rec-actions{display:grid;gap:10px;margin-top:14px}
.rec-actions .cta{text-decoration:none;text-align:center}
.rec-actions .cta[hidden]{display:none}
.rec-video[hidden],.rec-meta[hidden]{display:none}

.auto-check{display:flex;gap:10px;align-items:flex-start;margin-top:10px;background:#fff8dc;border:1.5px solid #ecd06a;border-radius:12px;padding:11px 12px;cursor:pointer;color:#14142b}
.auto-check input{width:20px;height:20px;flex:0 0 auto;margin:1px 0 0;accent-color:#111}
.auto-check span{font-size:13px;font-weight:800;line-height:1.5}
.auto-check span small{display:block;font-size:11px;color:#6b6f8f;font-weight:700}
.auto-check-controls{display:flex;gap:9px;align-items:center;margin-top:10px;cursor:pointer;color:#fff;font-size:13px;font-weight:800;line-height:1.4}
.auto-check-controls input{width:19px;height:19px;flex:0 0 auto;accent-color:#ffd21f}
.auto-next-note{margin:12px 0 0;background:#fff6cf;border:1.5px solid #ecd06a;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:900;color:#6d5510;text-align:center;line-height:1.5}
.auto-next-note[hidden]{display:none}

.int-advice{margin-top:12px;background:#fff8dc;border:1.5px solid #ecd06a;border-radius:14px;padding:12px}
.int-advice b{font-size:14px}
.int-advice p{margin:6px 0 0;font-size:14px;line-height:1.65;font-weight:700;color:#4a3d10}
.int-hp{margin-top:14px;display:grid;gap:10px}
.int-row{display:flex;align-items:center;gap:10px}
.int-row>span{flex:0 0 52px;font-size:12px;font-weight:900;letter-spacing:.06em}
.int-row b{flex:0 0 auto;font-size:12px;white-space:nowrap}
.int-bar{flex:1;height:14px;border-radius:99px;background:#e6e8f5;overflow:hidden;border:1.5px solid #c9cdf0}
.int-fill{height:100%;transition:width .6s ease}
.int-fill.you{background:linear-gradient(90deg,#1e7bff,#6fd3ff)}
.int-fill.rival{background:linear-gradient(90deg,#e01e4f,#ff5f9e)}
.int-rec{margin:10px 0 0;font-size:12px;font-weight:800;color:#6b6f8f;line-height:1.5}
.int-count{margin:14px 0 12px;text-align:center}
.int-count>span{font-size:44px;font-weight:900;line-height:1}
.int-count small{display:block;font-size:12px;font-weight:800;color:#6b6f8f;margin-top:2px}

#intervalScreen .card{position:relative;overflow:hidden}
.int-fx{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
#intervalScreen .card>*{position:relative;z-index:1}
#intervalScreen .card>.int-fx{position:absolute;z-index:0}
.int-cheer{margin-top:12px;text-align:center;font-weight:900;font-size:17px;line-height:1.4;color:#b3001b;background:#fdeef0;border:1.5px solid #f3c2cc;border-radius:12px;padding:8px 10px}
.int-cheer.pop{animation:intCheerPop .45s ease}
@keyframes intCheerPop{0%{transform:scale(.72);opacity:0}60%{transform:scale(1.1);opacity:1}100%{transform:scale(1)}}
.int-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.int-stats span{background:#eef0ff;border:1.5px solid #c9cdf0;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:900;color:#2c3050;white-space:nowrap}
.int-fill.healed{animation:intHeal .65s ease}
@keyframes intHeal{0%{filter:brightness(2)}100%{filter:brightness(1)}}
.int-count>span.soon{color:#e01e4f;display:inline-block;animation:intSoon .5s ease-in-out infinite alternate}
@keyframes intSoon{from{transform:scale(1)}to{transform:scale(1.2)}}
@media (prefers-reduced-motion: reduce){.int-cheer.pop,.int-count>span.soon,.int-fill.healed{animation:none}}


.screen{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;justify-content:flex-start;overflow-y:auto;padding:22px 18px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(180deg, rgba(10,10,28,.72), rgba(10,10,28,.92));backdrop-filter:blur(6px)}
.screen.hidden{display:none}
.card{background:#fff;color:#14142b;border-radius:24px;padding:22px 18px 18px;box-shadow:0 20px 40px rgba(0,0,0,.4);flex:none;margin-top:auto;margin-bottom:auto;width:100%}
/* Wide-window content cap (PC・横広対応): the .screen overlays live outside
   the 480px battle column (.app), so on a wide PC window their white content
   card used to stretch the full window width and become hard to read. Cap the
   card of every vertically scrolling page screen (online, shop, how-to,
   training, etc.) at 880px and centre it. The backdrop still covers the whole
   window, and only the card is capped — no transform is added, so fixed
   toasts / pinch-zoom on the card keep working exactly as before. On phone
   widths the card is already narrower than 880px, so nothing changes there.
   The title screen is excluded (its current fit stays untouched), and the
   battle view (.app / arena) and the side panels (.bb-panel) are not .screen
   cards, so they are untouched. */
.screen:not(#titleScreen) .card{max-width:880px;margin-left:auto;margin-right:auto;align-self:center}
.kicker{display:inline-flex;background:#111;color:#fff;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.12em}
h1{margin:12px 0 6px;font-size:34px;line-height:.95;letter-spacing:-.02em;font-weight:900}
h1 span{color:#e53935}
.lead{margin:0;color:#3a3d5e;font-size:15px;line-height:1.6;font-weight:700}

.game-logo{position:relative;overflow:hidden;text-align:center;background:radial-gradient(320px 160px at 50% -10%, rgba(255,214,64,.28), transparent 70%),linear-gradient(180deg,#26264e 0%,#14142b 58%,#0c0c1e 100%);border:2.5px solid #d9a416;border-radius:18px;box-shadow:0 0 0 2px #14142b,0 0 0 4.5px rgba(255,210,31,.5),0 12px 24px rgba(10,10,30,.35),inset 0 0 0 2px rgba(255,232,150,.35);padding:20px 12px 17px;margin:2px 0 12px}
.game-logo::before,.game-logo::after{content:"";position:absolute;top:-14px;width:118px;height:158px;pointer-events:none;background:linear-gradient(180deg,rgba(255,238,170,.36),rgba(255,238,170,0) 80%);clip-path:polygon(40% 0,60% 0,100% 100%,0 100%)}
.game-logo::before{left:1%;transform:rotate(17deg);transform-origin:top center}
.game-logo::after{right:1%;transform:rotate(-17deg);transform-origin:top center}
.logo-top{display:flex;align-items:center;justify-content:center;gap:9px;position:relative;z-index:1}
.logo-glove{font-size:21px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.55))}
.logo-glove.flip{transform:scaleX(-1)}
.logo-kicker{font-family:"Cinzel",serif;font-size:11px;font-weight:700;letter-spacing:.22em;color:#ffe98a;text-shadow:0 1px 0 rgba(0,0,0,.65);white-space:nowrap}
.game-logo h1{margin:9px 0 2px;position:relative;z-index:1;font-size:clamp(33px,10.5vw,50px);line-height:1.1;letter-spacing:.02em;font-weight:900;white-space:nowrap;background:linear-gradient(180deg,#fff3b0 0%,#ffd21f 40%,#f5a800 74%,#ffe45e 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#ffd21f;filter:drop-shadow(0 2.5px 0 rgba(0,0,0,.55)) drop-shadow(0 0 15px rgba(255,190,0,.35))}
.game-logo h1 .logo-accent{background:linear-gradient(180deg,#ffffff 0%,#ffeec2 45%,#ffcf5e 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#fff3d6}
.logo-sub{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px 0 0;position:relative;z-index:1;font-size:clamp(11px,3.6vw,14.5px);font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:#f3e9c8;text-shadow:0 1px 0 rgba(0,0,0,.6);white-space:nowrap}
.logo-sub::before,.logo-sub::after{content:"";height:2px;flex:0 1 46px;min-width:14px}
.logo-sub::before{background:linear-gradient(90deg,transparent,#d9a416)}
.logo-sub::after{background:linear-gradient(270deg,transparent,#d9a416)}
.how{display:grid;gap:10px;margin:16px 0}
.how-item{display:flex;gap:12px;align-items:flex-start;background:#f3f4ff;border:1.5px solid #e2e4ff;border-radius:16px;padding:12px}
.num{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-weight:900}
.how-item b{display:block;font-size:14px}
.how-item p{margin:2px 0 0;font-size:13px;line-height:1.5;color:#4a4e6d}
.top-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:14px 0 2px}
.cta{width:100%;border:none;border-radius:18px;padding:18px;background:#111;color:#fff;font-weight:900;font-size:18px;box-shadow:0 6px 0 #000}
.cta.yellow{background:var(--yellow);color:#111;box-shadow:0 6px 0 #b77900}
.cta:active{transform:translateY(3px);box-shadow:none}
.note{margin-top:10px;text-align:center;font-size:12px;color:#6b6f8f;font-weight:700;line-height:1.5}
.se-credit{margin:10px 0 0;font-size:11px;color:#8b8ea6;text-align:center}

.face-set{margin:0 0 16px;background:#f3f4ff;border:1.5px solid #e2e4ff;border-radius:16px;padding:12px}
.face-set-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px}
.face-set-head b{font-size:14px}
.face-set-head span{font-size:11px;color:#6b6f8f;font-weight:800;white-space:normal;line-height:1.45}
.mini-btn{display:block;text-align:center;padding:11px;border-radius:12px;background:#111;color:#fff;font-weight:900;font-size:13px;border:none;cursor:pointer;font-family:inherit}
.mini-btn:active{transform:translateY(2px)}
.mini-btn.ghosty{background:#fff;color:#14142b;border:1.5px solid #c9cdf0}
.face-note{margin:10px 0 0;font-size:11px;color:#6b6f8f;font-weight:700;line-height:1.5}
.gem-dot{display:inline-block;width:.78em;height:.78em;border-radius:50%;margin:0 .35em 0 .1em;vertical-align:-.08em;box-shadow:inset 0 -2px 3px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.18)}
.gem-dot-blue{background:#2e7cf6}
.gem-dot-red{background:#e5484d}

.music-set{margin:0 0 16px;background:#fff8dc;border:1.5px solid #ecd06a;border-radius:16px;padding:12px}
.music-current{margin-top:10px;background:#fff;border:1.5px solid #e7cf72;border-radius:12px;padding:10px 12px;line-height:1.45}
.mu-rows{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.mu-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mu-row .ghost{flex:1}
.mu-note{font-size:12px;font-weight:800;color:#6b6f8f}
.music-current span{display:block;font-size:11px;color:#6b6f8f;font-weight:800}
.music-current b{display:block;font-size:13px;font-weight:900;overflow-wrap:anywhere}

.title-set .subrow{margin-top:10px}
.title-set .ghost{background:#fff;color:#14142b;border:1.5px solid #c9cdf0}
.title-set .ghost:active{background:#eceef7}
.title-set .rec-btn{color:#b3001b}
.title-set .rec-btn.recording{color:#fff}
.title-set .rec-view-btn{background:#fff;color:#14142b;border:1.5px solid #c9cdf0}
.title-set .rec-status{color:#4a4e6d}
.title-set .rec-status b{color:#14142b}

.se-test-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.se-test-btn{padding:11px 8px;border-radius:12px;border:1.5px solid #c9cdf0;background:#fff;color:#14142b;font-weight:800;font-size:13.5px;line-height:1.35;font-family:inherit;cursor:pointer;white-space:normal;height:auto;max-width:100%;overflow-wrap:break-word}
.se-test-btn:active{background:#ffe9a8}
html.tx-large .se-test-btn{font-size:15px}
.mini-btn:disabled{opacity:.45;cursor:default}
.mini-btn:disabled:active{transform:none}

.cta,.mini-btn,.bout-btn,.ghost,.tf-btn,.mode-btn,.rec-btn,.rec-view-btn,.auto-buy-btn,.fold-open{white-space:normal;height:auto;max-width:100%;overflow-wrap:break-word}
.cta{line-height:1.35}

html.tx-large .cta{font-size:21px}
html.tx-large #titleScreen .top-actions .cta{font-size:clamp(19px,5.4vw,24px)}
html.tx-large #titleScreen .menu-grid .cta{font-size:19px}
html.tx-large #titleScreen .special-grid .cta{font-size:18px}
html.tx-large .mini-btn{font-size:15px}
html.tx-large .lead{font-size:17px}
html.tx-large .note{font-size:13.5px}
html.tx-large .face-note{font-size:13.5px}
html.tx-large .face-set-head b{font-size:16px}
html.tx-large .face-set-head span{font-size:13px}
html.tx-large .bout-btn b{font-size:17px}
html.tx-large .bout-btn span{font-size:13.5px}
html.tx-large .stat b{font-size:22px}
html.tx-large .stat span{font-size:12.5px}
html.tx-large .wallet-line{font-size:15.5px}
html.tx-large .status-strip .wallet-line{font-size:13.5px}
html.tx-large .auto-check span{font-size:15px}
html.tx-large .ghost{font-size:15px}
html.tx-large .tf-btn{font-size:12.5px}
html.tx-large .hud-name{font-size:15px}
html.tx-large .message{font-size:17px}
html.tx-large .enemy-bubble{font-size:18px}
html.tx-large .second-bubble{font-size:16px}
html.tx-large .result-big{font-size:40px}
html.tx-large .auto-buy-btn{font-size:14px}
.text-size-btn.sel{background:#14142b !important;color:#fff !important;border-color:#14142b !important}

.terms{margin:16px 0 0;background:#f8f8fc;border:1.5px solid #dcdcf0;border-radius:16px;padding:12px}
.terms b{font-size:14px;display:block}
.terms ul{margin:8px 0 0;padding-left:18px;font-size:12px;color:#4a4e6d;font-weight:700;line-height:1.7}
.skip-check{display:flex;gap:10px;align-items:flex-start;margin-top:12px;background:#fff;border:1.5px solid #c9cdf0;border-radius:12px;padding:11px 12px;cursor:pointer}
.skip-check input{width:20px;height:20px;flex:0 0 auto;margin:1px 0 0;accent-color:#111}
.skip-check span{font-size:13px;font-weight:800;line-height:1.5}
.result-big{font-size:52px;line-height:.9;font-weight:900;margin:8px 0}
.enemy-final{margin:10px 0 0;color:#c21833;font-size:15px;font-weight:900;line-height:1.55}

.result-big.win{color:#e07b00}
.result-big.lose{color:#5d6a8c}
.result-big.draw{color:#14142b}
.stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:14px 0}
.stat{background:#f3f4ff;border-radius:14px;padding:10px 6px;text-align:center}
.stat b{display:block;font-size:20px}
.stat span{font-size:11px;color:#6b6f8f;font-weight:800;letter-spacing:.06em}
.flash{position:absolute;inset:0;background:#ff4757;opacity:0;pointer-events:none;z-index:7}
.flash.on{animation:flashA .22s ease}
@keyframes flashA{0%{opacity:.28}100%{opacity:0}}

.flash.hurt{background:radial-gradient(ellipse at center,rgba(255,64,64,.34) 0%,rgba(232,30,44,.55) 62%,rgba(178,8,26,.78) 100%);animation:flashHurt .48s ease-out}
@keyframes flashHurt{0%{opacity:0}10%{opacity:.85}26%{opacity:.30}44%{opacity:.55}100%{opacity:0}}

.mode-select{display:flex;gap:6px;margin:0 0 10px}
.mode-btn{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:8px 4px;border-radius:10px;border:2px solid #c9cdf0;background:#f3f4ff;color:#14142b;cursor:pointer;font-family:inherit;overflow:hidden}
.mode-btn b{font-size:13px;font-weight:900;white-space:normal;text-align:center;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.mode-btn span{display:none}
.mode-btn.sel{border-color:#111;background:#fff6cf;box-shadow:0 3px 0 #111}
.mode-btn:active{transform:translateY(2px)}

.mode-lock{flex:none;display:flex;align-items:center;gap:4px;padding:8px;border-radius:10px;border:2px solid #c9cdf0;background:#f3f4ff;color:#14142b;cursor:pointer;font-size:12px;font-weight:900;white-space:nowrap}
.mode-lock input{width:16px;height:16px;margin:0;accent-color:#14142b;cursor:pointer}
.mode-select.locked .mode-btn:not(.sel){opacity:.45}

.bout-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;margin:14px 0 8px}
.bout-head b{font-size:15px;font-weight:900;flex:1 1 auto;min-width:0}
.bout-head span{font-size:11px;font-weight:800;color:#6b6f8f;flex:1 1 190px;white-space:normal;line-height:1.5}
.bout-select{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bout-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:10px 12px;border-radius:14px;border:2px solid #c9cdf0;background:#f3f4ff;color:#14142b;cursor:pointer;min-width:0}
.bout-btn span{min-width:0;overflow-wrap:anywhere}
.bout-btn.wide{grid-column:1/-1}
.bout-btn b{font-size:15px;font-weight:900}
.bout-btn span{font-size:12px;font-weight:700;color:#4a4e6d;line-height:1.45}
.bout-btn.sel{border-color:#111;background:#fff6cf;box-shadow:0 3px 0 #111}
.bout-btn:active{transform:translateY(2px)}
.bout-btn.locked{opacity:.62;border-style:dashed;background:#eceef7;box-shadow:none;cursor:not-allowed}
.bout-btn.locked:active{transform:none}
.bout-btn.champ{border-color:#d18d06}
.bout-btn.defense{border-color:#d18d06;background:linear-gradient(160deg,#fff3b8,#ffe08a);box-shadow:0 3px 0 rgba(120,72,0,.45)}
.bout-btn.defense.locked{border-color:#c9cdf0;background:#eceef7;box-shadow:none}
.bout-btn.defense.sel{border-color:#111;background:#fff6cf;box-shadow:0 3px 0 #111}
.scout-box{margin-top:10px;background:#eef7ff;border:2px solid #9fc7f2;border-radius:14px;padding:10px 12px;color:#17345e;font-size:13px;font-weight:800;line-height:1.6;text-align:left}
.scout-box b{color:#0d2c52}
.special-panel{margin-top:14px;border:2px solid #e2e4f2;border-radius:16px;padding:12px;background:#fbfbff;text-align:left}
.special-panel> b{display:block;font-size:16px;margin-bottom:8px;color:#14142b}
.special-panel .cta{margin-top:8px}
.special-panel .cta:first-of-type{margin-top:0}

.status-strip{margin-top:14px;background:linear-gradient(180deg,#1b1b38,#12122a);border:2px solid #d9a416;border-radius:16px;padding:10px 12px 8px;box-shadow:inset 0 0 0 2px rgba(255,232,150,.25)}
.status-strip .wallet-line{margin-top:0;background:transparent;border:none;border-bottom:1px dashed rgba(255,255,255,.16);border-radius:0;padding:5px 2px;color:#e9e7ff;font-size:12px}
.status-strip .wallet-line:last-of-type{border-bottom:none}
.status-strip .wallet-line b{font-size:14px;color:#ffd21f}
.status-strip .note{color:#a9abd0;margin:6px 0 2px;text-align:left}

.auto-buy-btn{display:block;width:100%;margin-top:10px;padding:11px 12px;border-radius:12px;border:2px solid rgba(255,210,31,.4);background:rgba(255,255,255,.05);color:#c7c9e8;font-family:inherit;font-weight:900;font-size:15px;line-height:1.35;cursor:pointer}
.auto-buy-btn.on{background:linear-gradient(180deg,#ffe45e,#ffb800);color:#14142b;border-color:#ffd21f;box-shadow:0 3px 0 #b77900}
.auto-buy-btn:active{transform:translateY(2px)}
.menu-head{margin:16px 0 8px;font-size:15px;font-weight:900;color:#14142b;text-align:left}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.menu-grid .cta{margin-top:0;padding:13px 8px;font-size:14px;border-radius:14px;box-shadow:0 4px 0 #000;line-height:1.35}
.special-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.special-grid .cta{margin-top:0;padding:12px 8px;font-size:13px;border-radius:14px;box-shadow:0 4px 0 #000;line-height:1.35}
@media (max-width:380px){.menu-grid,.special-grid{grid-template-columns:1fr 1fr}}
.tourn-info{margin-top:10px;border:2px solid #e2e4f2;border-radius:12px;background:#fff;padding:9px 11px;font-size:12.5px;line-height:1.55;color:#2a2a44}
.tourn-info:empty{display:none}
.tourn-ladder{margin-top:10px;background:#14142b;color:#fff;border-radius:12px;padding:8px 10px}
.tourn-ladder[hidden]{display:none}
.tourn-ladder.on-arena{margin:6px 10px 10px}
.tl-head{font-weight:800;font-size:13px;text-align:center;margin-bottom:6px;line-height:1.4}
.tl-cells{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tl-cell{border:2px solid #3a3f5c;border-radius:10px;padding:5px 3px;text-align:center;background:#20222f;min-width:0}
.tl-cell .tl-no{display:block;font-size:10px;opacity:.75}
.tl-cell .tl-name{display:block;font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-cell.done{border-color:#25b567}
.tl-cell.done .tl-name{color:#7be495}
.tl-cell.now{border-color:#f7b731;background:#3a2f10}
.tl-cell.now .tl-name{color:#ffd94d}
.tl-cell.lost{border-color:#e03131;opacity:.85}
.tl-cell.lost .tl-name{color:#ff9c9c}
#howScreen .card,#termsScreen .card{text-align:left}
#howScreen h1,#termsScreen h1{text-align:left}

#titleScreen .lead{font-size:17.5px;line-height:1.65}

#titleScreen .top-actions .cta{font-size:clamp(17px,4.8vw,22px);padding:20px 14px}
#titleScreen .top-actions .cta{white-space:normal;min-width:0;max-width:100%;line-height:1.3;overflow-wrap:anywhere}
#titleScreen #sparringBtn{font-size:clamp(15px,4.3vw,20px);letter-spacing:.01em;padding-left:10px;padding-right:10px}
#titleScreen .status-strip .wallet-line{font-size:15px;padding:7px 2px}
#titleScreen .status-strip .wallet-line b{font-size:17px}
#titleScreen .status-strip .note{font-size:13.5px;line-height:1.6}
#titleScreen .mode-btn{padding:11px 3px}
#titleScreen .mode-btn b{font-size:clamp(13px,3.9vw,16px)}
#titleScreen .mode-lock{font-size:14px;padding:10px 8px}
#titleScreen .bout-head b{font-size:18px}
#titleScreen .bout-head span{font-size:13px}
#titleScreen .bout-btn{padding:12px 14px}
#titleScreen .bout-btn b{font-size:17px}
#titleScreen .bout-btn span{font-size:14px;line-height:1.5}
#titleScreen .scout-box{font-size:15.5px;line-height:1.65;padding:12px 14px}
#titleScreen .menu-head{font-size:18px}
#titleScreen .menu-grid .cta{font-size:17px;padding:16px 8px}
#titleScreen .special-panel> b{font-size:19px}
#titleScreen .special-grid .cta{font-size:16px;padding:15px 8px}
#titleScreen .note{font-size:13.5px;line-height:1.6}
#titleScreen .lang-select .lang-label{font-size:16px}
#titleScreen .lang-btn{font-size:16px;padding:11px 6px}
#titleScreen .light-check span{font-size:15px}
#titleScreen .light-check span small{font-size:12.5px;line-height:1.55}
#titleScreen .auto-check span{font-size:15px}
#titleScreen .auto-check span small{font-size:12.5px;line-height:1.55}
#titleScreen .face-set-head b{font-size:17px}
#titleScreen .face-set-head span{font-size:13px}
#titleScreen .face-note{font-size:13.5px;line-height:1.6}
#titleScreen .mini-btn{font-size:15px;padding:13px}
#titleScreen .music-current span{font-size:13px}
#titleScreen .music-current b{font-size:16px}
#titleScreen .name-row input{font-size:17px;padding:13px 12px}
#titleScreen .rec-status{font-size:13.5px}
#titleScreen .rec-btn{font-size:16px;padding:14px 16px}
#titleScreen .rec-view-btn{font-size:15px;padding:14px}
#titleScreen .title-set .ghost{font-size:15px;padding:13px}
#titleScreen .logo-kicker{font-size:12.5px}
#titleScreen .logo-sub{font-size:clamp(13px,4vw,16px)}
#howScreen .how-item b{font-size:16.5px}
#howScreen .how-item p{font-size:15px;line-height:1.65}
#howScreen .how-item .num{flex:0 0 36px;width:36px;height:36px;font-size:16px}
#howScreen .note{font-size:13.5px;line-height:1.65}
#howScreen .cta{font-size:20px;padding:20px}
#termsScreen .terms b{font-size:17px}
#termsScreen .terms ul{font-size:14px;line-height:1.8}
#termsScreen .skip-check span{font-size:15px}
#termsScreen .cta{font-size:19px;padding:19px}

#titleScreen .card{background:linear-gradient(180deg,#ffffff 0%,#fdfaf0 100%);border:1.5px solid rgba(217,164,22,.5)}
#titleScreen .cta{border-radius:16px;background:linear-gradient(180deg,#26264e,#14142b);color:#fff;box-shadow:0 5px 0 #05050f}
#titleScreen .cta.yellow{background:linear-gradient(180deg,#ffe45e,#ffb800);color:#14142b;box-shadow:0 6px 0 #b77900}
#titleScreen .cta:active{transform:translateY(3px)}
#titleScreen .menu-grid .cta,#titleScreen .special-grid .cta{border-radius:16px}
#titleScreen .mode-btn{border-radius:14px;border-color:#b9bde0;background:#f6f7ff}
#titleScreen .mode-btn.sel{border-color:#14142b;background:linear-gradient(180deg,#ffe98a,#ffd21f);color:#14142b;box-shadow:0 3px 0 #14142b}
#titleScreen .bout-btn{border-radius:16px;border-color:#b9bde0;background:#f6f7ff}
#titleScreen .bout-btn.sel{border-color:#14142b;background:linear-gradient(180deg,#fff3b0,#ffe45e);box-shadow:0 3px 0 #14142b}
#titleScreen .menu-head{display:flex;align-items:center;gap:10px}
#titleScreen .menu-head::after{content:"";flex:1;height:3px;border-radius:2px;background:linear-gradient(90deg,#d9a416,rgba(217,164,22,0))}
#titleScreen .bout-head{padding-bottom:7px;border-bottom:2px solid #efe3ae}
#titleScreen .special-panel{border:2px solid #d9a416;background:#fffdf4;border-radius:18px}
#titleScreen .scout-box{background:#fff8dc;border:2px solid #d9a416;color:#3a2f00;border-radius:16px}
#titleScreen .tourn-info{border-color:#e8d9a0;background:#fffef8;border-radius:14px}
#titleScreen .face-set{background:#f6f7ff;border-color:#dfe2f5;border-radius:18px}
#titleScreen .music-set{border-radius:18px}
#titleScreen .status-strip{border-radius:18px}

#titleScreen .bout-head b,#titleScreen .menu-head,#titleScreen .special-panel> b,#titleScreen .wk-head b{font-size:clamp(21px,6.4vw,24px);font-weight:900;line-height:1.3;border-left:5px solid #d9a416;padding-left:10px}
#titleScreen .face-set-head b{font-size:20px;border-left:5px solid #d9a416;padding-left:9px}
#titleScreen .bout-head span{color:#4a4e6d}
#titleScreen .wk-head span{color:#6d5510}
#titleScreen .face-set-head span{color:#4a4e6d}
#titleScreen .face-note{color:#4a4e6d}
#titleScreen .card>.note{color:#4a4e6d}
#titleScreen .bout-head{margin:24px 0 6px}
#titleScreen .menu-head{margin:26px 0 8px}
#titleScreen .special-panel{margin-top:24px}

.venue-sign{display:none;position:absolute;top:10px;right:10px;z-index:8;background:rgba(10,12,30,.82);color:#fff;border:1.5px solid rgba(255,255,255,.65);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900;letter-spacing:.04em;pointer-events:none}
.arena[data-venue="gym"] .crowd{height:88px;opacity:.62}
.arena[data-venue="gym"] .crowd-row:nth-child(3){display:none}
.arena[data-venue="gym"] .person:nth-child(n+7){display:none}
.arena[data-venue="gym"]{background:radial-gradient(360px 240px at 50% 36%, rgba(255,190,90,.10), transparent 70%)}
.arena[data-venue="hall"] .crowd{height:118px;opacity:.86}
.arena[data-venue="hall"] .person:nth-child(n+12){display:none}
.arena[data-venue="arena"] .crowd{height:150px;opacity:1}
.arena[data-venue="arena"]{background:radial-gradient(520px 330px at 50% 34%, rgba(255,220,90,.20), transparent 72%)}
.gear-list,.ach-list,.ko-list{display:flex;flex-direction:column;gap:10px;margin-top:14px;text-align:left}
.gear-item,.ach-item,.ko-item{border:2px solid #e2e4f2;border-radius:14px;padding:12px;background:#fbfbff;color:#14142b}
.gear-item{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.gear-item>div{min-width:0}
.gear-item b,.ach-item b,.ko-item b{display:block;font-size:16px}
.gear-item span,.ach-item span,.ko-item span{display:block;font-size:12px;font-weight:700;color:#4a4e6d;line-height:1.5;margin-top:2px}
.gear-item .mini-btn{flex:none;width:100%;white-space:normal}
.ach-item.earned{border-color:#d18d06;background:#fff6cf}
.ach-item.locked{opacity:.68}

.ach-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;background:linear-gradient(180deg,#2b1a0e,#1c110a 70%,#150c06);border:2px solid #0d0805;border-radius:12px;padding:12px 10px;box-shadow:inset 0 0 0 1.5px rgba(216,178,90,.35),inset 0 2px 12px rgba(0,0,0,.6)}
.ach-item{position:relative;overflow:hidden;display:flex;gap:4px;padding:5px;border-radius:5px;clip-path:polygon(13px 0,calc(100% - 13px) 0,100% 13px,100% calc(100% - 13px),calc(100% - 13px) 100%,13px 100%,0 calc(100% - 13px),0 13px);border:3px solid transparent;color:#3a2410;background:linear-gradient(160deg,#54402a,#3a2817) padding-box,linear-gradient(150deg,#8a6d25,#c39a35 55%,#77601f) border-box}
.ach-item.earned,.ach-item.locked{border-color:transparent}
.ach-item .medal-side{width:130px;flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:9px 4px 8px;background:linear-gradient(165deg,#5b4230,#3a2716 72%);box-shadow:inset 0 0 0 1.5px rgba(226,192,110,.55)}
.ach-item .medal-badge{position:relative;overflow:hidden;width:108px;height:108px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:9px;background:radial-gradient(120% 120% at 30% 22%,#4b505a 0%,#2c2f36 55%,#1c1e23 100%);box-shadow:inset 0 0 0 2px #c9ccd4,inset 0 0 0 4px #23252b,inset 0 -9px 15px rgba(0,0,0,.55)}
.ach-item .medal-side-r{width:102px;flex:none;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;padding:10px 8px;background:linear-gradient(180deg,#fdf6dc,#f6e9c4);box-shadow:inset 0 0 0 1.5px rgba(163,124,52,.6)}
.ach-item.locked .medal-side-r{background:linear-gradient(180deg,#cfc9ba,#bab3a1);box-shadow:inset 0 0 0 1.5px rgba(90,88,80,.5)}
.ach-item .medal-side-r .equip-btn{margin-top:0;width:100%;padding:6px 4px}
.ach-item .medal-side-r .equipped-tag{margin-top:0;text-align:center}
.prog-box{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center}
.prog-num{font-size:15px;font-weight:900;color:#3a2410;line-height:1.25}
.prog-bar{width:100%;height:6px;border-radius:99px;background:rgba(58,36,16,.18);overflow:hidden}
.prog-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#d99a00,#f5c542)}
.prog-box.done .prog-num{color:#0a7a3d;font-size:13.5px}
.prog-left{font-size:11.5px;font-weight:800;color:#7a5b23}
@media (max-width:430px){.ach-item .medal-side-r{width:88px;padding:8px 5px}.prog-num{font-size:13.5px}}
@media (max-width:560px){.ach-item{flex-wrap:wrap}.ach-item .medal-side-r{flex:1 1 100%;width:auto;flex-direction:row;align-items:center;justify-content:space-between;padding:8px 10px}.ach-item .medal-side-r .prog-box{flex:1;flex-direction:row;align-items:center;gap:8px;text-align:left}.ach-item .medal-side-r .prog-bar{flex:1}.ach-item .medal-side-r .equip-btn{width:auto;padding:6px 14px;flex:none}}
.ach-item .medal-badge::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 2px,transparent 2px 5px),repeating-linear-gradient(-45deg,rgba(0,0,0,.18) 0 2px,transparent 2px 5px)}
.ach-item .medal-logo{position:relative;margin:0;transform:rotate(-14deg);font-weight:900;font-style:italic;letter-spacing:.5px;line-height:1.08;text-align:center;color:#f0c95c;text-shadow:0 1px 0 rgba(255,244,205,.9),0 2px 0 rgba(0,0,0,.5),0 3px 5px rgba(0,0,0,.65)}
/* MEDAL EMBLEMS （勲章バッジの紋章）: the badge is now a crest
   over a small caption — the emblem SVG (a struck-metal crest
   in a ring: centre motif per category — crossed gloves /
   book / gem / coin / trophy / star — dressed per plate
   grade: laurel / wings + gem / crown + rays / rainbow full
   dress) carries the design, and
   the old logo lettering sits straight and small beneath it.
   The badge's brushed-metal ::before still textures over the
   top; the emblem and caption stay above it via position. */
.ach-item .medal-badge{flex-direction:column;gap:1px;padding:3px}
.ach-item .medal-emblem{position:relative;display:block;line-height:0}
.ach-item .medal-emblem svg{display:block;width:84px;height:84px}
.ach-item .medal-logo-cap{transform:none;font-style:normal;letter-spacing:.07em;line-height:1.15}
.ach-item .medal-name{display:block;margin:0;font-size:12px;font-weight:900;color:#ffffff;text-align:center;line-height:1.4;text-shadow:0 1px 3px rgba(0,0,0,.85)}
.ach-item .medal-name .ach-name{display:inline;color:#ffffff;-webkit-text-fill-color:#ffffff;font-size:12px}
.ach-item .medal-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:10px 12px;background:linear-gradient(180deg,#fdf6dc,#f6e9c4);box-shadow:inset 0 0 0 1.5px rgba(163,124,52,.6)}
.ach-item .medal-prog{display:block;margin:0;font-size:14.5px;font-weight:900;color:#4a2c10;line-height:1.45}
.ach-item .medal-prog .medal-label{color:#a35c10}
.ach-item .medal-how{display:block;margin:0;font-size:13px;font-weight:800;color:#c05f0e;line-height:1.55}
.ach-item .medal-how .medal-label{color:#5a3410;font-weight:900}
.ach-item.pt-1{background:linear-gradient(160deg,#54402a,#3a2817) padding-box,linear-gradient(150deg,#7a5a30,#9a6f3a 55%,#5f421f) border-box}
.ach-item.pt-1 .medal-logo{color:#e09a52}
.ach-item.pt-2{background:linear-gradient(160deg,#54402a,#3a2817) padding-box,linear-gradient(150deg,#96762a,#c8a544 55%,#7d5f1e) border-box}
.ach-item.pt-2 .medal-logo{color:#eef1f6;text-shadow:0 1px 0 rgba(255,255,255,.95),0 2px 0 rgba(0,0,0,.5),0 3px 5px rgba(0,0,0,.65)}
.ach-item.pt-3{background:linear-gradient(160deg,#5a4430,#3a2817) padding-box,linear-gradient(150deg,#a37e2c,#e3bc55 55%,#8a6a1e) border-box}
.ach-item.pt-3 .medal-logo{color:#ffd94d}
.ach-item.pt-4{background:linear-gradient(160deg,#5a4430,#3a2817) padding-box,linear-gradient(150deg,#b98c2e,#ffd873 55%,#9a7420) border-box}
.ach-item.pt-4 .medal-side{box-shadow:inset 0 0 0 2px rgba(255,216,115,.85)}
.ach-item.pt-4 .medal-logo{color:#aef1ff;text-shadow:0 1px 0 rgba(235,253,255,.95),0 2px 0 rgba(0,0,0,.5),0 3px 6px rgba(0,0,0,.65)}
.ach-item.pt-5{border:3px solid transparent;background:linear-gradient(160deg,#5a4430,#3a2817) padding-box,linear-gradient(120deg,#ff5f6d,#ffb03a,#f9f871,#5fe08a,#5fc9ff,#b45cff,#ff5f6d) border-box}
.ach-item.pt-5 .medal-side{box-shadow:inset 0 0 0 2px rgba(255,255,255,.5)}
.ach-item.pt-5 .medal-logo{background:linear-gradient(100deg,#ff8fa0,#ffc46b,#f9f871,#7de79a,#6fd3ff,#c99aff);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.65))}

.ach-item.pt-5.earned::after,.tsyn-grand::after,.title-plate.pt-5::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.5) 50%,transparent 68%);background-size:280% 100%;animation:plateSheen 5.5s linear infinite;pointer-events:none}
@keyframes plateSheen{0%{background-position:120% 0}100%{background-position:-120% 0}}


.ach-item.locked{opacity:1;background:linear-gradient(160deg,#3d3d44,#28282e) padding-box,linear-gradient(150deg,#4a4e5a,#33363f 55%,#26282e) border-box}
.ach-item.locked .medal-side{background:linear-gradient(165deg,#41414a,#2a2a31 72%);box-shadow:inset 0 0 0 1.5px rgba(160,166,180,.4)}
.ach-item.locked .medal-badge{filter:grayscale(1) brightness(.55)}
.ach-item.locked .medal-name{color:#c9ccd4}
.ach-item.locked .medal-name .ach-name{color:#c9ccd4;-webkit-text-fill-color:#c9ccd4}
.ach-item.locked .medal-main{background:linear-gradient(180deg,#cfc9ba,#bab3a1);box-shadow:inset 0 0 0 1.5px rgba(90,88,80,.5)}
.ach-item.locked .medal-prog{color:#5c584e}
.ach-item.locked .medal-prog .medal-label{color:#6e675a}
.ach-item.locked .medal-how{color:#7d7666}
.ach-item.locked .medal-how .medal-label{color:#55524a}

.ach-item.ach-fresh::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.8) 50%,transparent 75%);transform:translateX(-130%);animation:plateSweep 1.4s ease-out .15s 1 forwards;pointer-events:none;z-index:1}
@keyframes plateSweep{to{transform:translateX(130%)}}

#titlesTitle{flex:1 1 auto;min-width:0;text-align:right}
.title-plate{position:relative;overflow:hidden;display:inline-block;font-size:12px;font-weight:900;border-radius:3px;clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px),0 6px);padding:3px 10px;margin:2px 0 2px 4px;border:1.5px solid transparent;background:linear-gradient(160deg,#191c33,#0a0c1a) padding-box,linear-gradient(150deg,#96762a,#c8a544 55%,#7d5f1e) border-box;color:#fdf6df;vertical-align:middle;white-space:nowrap}
.title-plate::before{content:"◆";font-size:8px;color:#c8a544;margin-right:5px;vertical-align:1px}
.title-plate .ach-name{color:#fdf6df;-webkit-text-fill-color:#fdf6df}
.title-plate.pt-1{background:linear-gradient(160deg,#191c33,#0a0c1a) padding-box,linear-gradient(150deg,#6e4f24,#8a5a2a 55%,#54390f) border-box}
.title-plate.pt-1::before{color:#8a5a2a}
.title-plate.pt-3{background:linear-gradient(160deg,#191c33,#0a0c1a) padding-box,linear-gradient(150deg,#a37e2c,#e3bc55 55%,#8a6a1e) border-box;box-shadow:inset 0 0 0 2.5px #0a0c1a,inset 0 0 0 3.5px rgba(227,188,85,.6)}
.title-plate.pt-4{background:linear-gradient(160deg,#1a1e38,#0a0c1a) padding-box,linear-gradient(150deg,#b98c2e,#ffd873 55%,#9a7420) border-box;box-shadow:inset 0 0 0 2.5px #0a0c1a,inset 0 0 0 4px rgba(255,216,115,.85)}
.title-plate.pt-4::before{color:#ffd873;text-shadow:0 0 6px rgba(255,216,115,.85)}
.title-plate.pt-5{border:1.5px solid transparent;background:linear-gradient(160deg,#1a1e38,#0a0c1a) padding-box,linear-gradient(120deg,#ff5f6d,#ffb03a,#f9f871,#5fe08a,#5fc9ff,#b45cff,#ff5f6d) border-box;box-shadow:inset 0 0 0 2.5px #0a0c1a,inset 0 0 0 3.5px rgba(255,255,255,.35)}
.title-plate.pt-5::before{color:#ffe9a8;text-shadow:0 0 6px rgba(255,220,130,.9)}

.tsyn-grand{display:block;position:relative;overflow:hidden;margin-top:8px;padding:9px 12px;border-radius:4px;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px);text-align:center;color:#fdf6df;border:2px solid transparent;background:linear-gradient(160deg,#1a1e38,#070812) padding-box,linear-gradient(120deg,#ff5f6d,#ffb03a,#f9f871,#5fe08a,#5fc9ff,#b45cff,#ff5f6d) border-box;box-shadow:inset 0 0 0 3px #0b0d1e,inset 0 0 0 4px rgba(255,255,255,.30)}
.tsyn-note{display:block;position:relative;overflow:hidden;margin-top:8px;padding:9px 12px;border-radius:4px;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px);text-align:center;color:#fdf6df;border:2px solid transparent;background:linear-gradient(160deg,#191c33,#0a0c1a) padding-box,linear-gradient(150deg,#a37e2c,#e3bc55 55%,#8a6a1e) border-box;box-shadow:inset 0 0 0 3px #0b0d1e,inset 0 0 0 4px rgba(227,188,85,.55)}
.tch-master{box-shadow:inset 0 0 0 2px #0a0c1a,inset 0 0 0 3px rgba(227,188,85,.55)}
@media (prefers-reduced-motion: reduce){.ach-item.pt-5.earned::after,.tsyn-grand::after,.title-plate.pt-5::after{animation:none}.ach-item.ach-fresh::before{animation:none;opacity:0}}
.ko-video{width:100%;border-radius:14px;margin-top:12px;background:#000}
.exam-block{border:2px solid #9fc7f2;background:#eef7ff;border-radius:14px;padding:12px;margin-top:12px;text-align:left}
.exam-block .cta{margin-top:8px}

.app[data-mode="hard"] .board-lanes{display:none}

.price-row{display:flex;justify-content:space-between;align-items:center;background:#f3f4ff;border:1.5px solid #e2e4ff;border-radius:14px;padding:12px 14px;margin:16px 0}
.price-row span{font-weight:800;font-size:14px}
.price-row b{font-size:24px;font-weight:900}

@media (max-height:860px){
  .stage{width:330px;height:438px}
  .message{min-height:84px}
  .tap-btn{padding:16px 16px}
  .hud{padding-bottom:4px}
  .hud-sub{margin-top:6px}
  .hype-row{margin-top:6px}
  .controls{padding-top:6px}
  .subrow{margin-top:8px}
  .rec-row{margin-top:8px}
  .ghost{padding:10px}
  .rec-btn{padding:10px 14px}
}
@media (max-height:740px){
  .stage{width:306px;height:412px}
  .message{min-height:76px;font-size:14px}
  .tap-btn{padding:13px 16px;font-size:20px}
}
@media (max-height:700px){ .stage{width:290px;height:416px} h1{font-size:30px} .p-glove{width:138px;height:138px} .p-glove.left{bottom:0px} .p-glove.right{bottom:-8px} }

/* FACE-CENTRE corrections per stage size （到達点補正・2026-11-05):
   the pp-* contact frames are tuned on the default 352×468 stage;
   at each smaller stage the gloves' rest position moves with the
   stage box while the fighter's face stays at (50%, 96), so these
   vars shift every contact frame back onto that same point. */
@media (max-height:860px){ .stage{--hxl:-11px;--hxr:11px;--hyl:30px;--hyr:30px} }
@media (max-height:740px){ .stage{--hxl:-23px;--hxr:23px;--hyl:56px;--hyr:56px} }
@media (max-height:700px){ .stage{--hxl:-15px;--hxr:15px;--hyl:33px;--hyr:37px} }

.arena .tap-btn{margin-top:6px}
.message{width:100%;margin-top:6px;background:rgba(9,11,28,.78);border:1.5px solid rgba(255,255,255,.2);border-radius:14px;box-shadow:0 4px 12px rgba(0,0,0,.3);height:38px;min-height:38px;overflow:hidden}
@media (max-height:860px){ .message{height:38px;min-height:38px} }
@media (max-height:740px){ .message{height:38px;min-height:38px} }




.arena::before{content:"";position:absolute;left:-4%;right:-4%;top:-8px;height:158px;z-index:0;pointer-events:none;background:repeating-linear-gradient(180deg, rgba(27,31,62,.62) 0 15px, rgba(12,14,34,.68) 15px 19px),linear-gradient(180deg,#262a56,#12122e);opacity:.85; -webkit-mask-image:linear-gradient(180deg,#000 52%,transparent 97%);mask-image:linear-gradient(180deg,#000 52%,transparent 97%)}

.arena::after{content:"";position:absolute;left:0;right:0;top:104px;height:96px;z-index:1;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(165,185,255,.10) 55%,transparent)}

.app::after{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;background:radial-gradient(125% 92% at 50% 42%, transparent 56%, rgba(3,4,12,.36) 100%)}

.spot{opacity:.7;background:
  conic-gradient(from 180deg at 50% -12%, transparent 0deg, rgba(255,228,150,.20) 15deg, transparent 31deg),
  conic-gradient(from 180deg at 18% -10%, transparent 0deg, rgba(255,210,31,.18) 18deg, transparent 36deg),
  conic-gradient(from 180deg at 82% -10%, transparent 0deg, rgba(0,210,255,.16) 18deg, transparent 36deg)}

.stage::after{content:"";position:absolute;top:-34px;left:50%;transform:translateX(-50%);width:344px;height:344px;border-radius:50%;background:radial-gradient(circle,rgba(255,216,130,.20) 0%,rgba(140,160,255,.10) 46%,transparent 68%);z-index:1;pointer-events:none}

.stage::before{content:"";position:absolute;left:50%;bottom:1px;transform:translateX(-50%);width:196px;height:27px;border-radius:50%;background:none; z-index:1;pointer-events:none}

.dust{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.dust i{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,244,200,.95),rgba(255,244,200,0) 70%);opacity:0;animation:dustFloat 9s linear infinite}
.dust i:nth-child(1){left:22%;top:210px;width:5px;height:5px;animation-delay:0s}
.dust i:nth-child(2){left:38%;top:150px;width:4px;height:4px;animation-delay:1.6s;animation-duration:11s}
.dust i:nth-child(3){left:55%;top:235px;width:6px;height:6px;animation-delay:3.1s;animation-duration:8s}
.dust i:nth-child(4){left:68%;top:170px;width:4px;height:4px;animation-delay:.8s;animation-duration:10s}
.dust i:nth-child(5){left:80%;top:225px;width:5px;height:5px;animation-delay:4.4s}
.dust i:nth-child(6){left:30%;top:120px;width:3px;height:3px;animation-delay:5.6s;animation-duration:12s}
.dust i:nth-child(7){left:47%;top:265px;width:4px;height:4px;animation-delay:2.3s;animation-duration:9.5s}
.dust i:nth-child(8){left:62%;top:115px;width:3px;height:3px;animation-delay:6.5s;animation-duration:11.5s}
.dust i:nth-child(9){left:74%;top:275px;width:5px;height:5px;animation-delay:7.4s;animation-duration:8.5s}
.dust i:nth-child(10){left:16%;top:265px;width:4px;height:4px;animation-delay:5s;animation-duration:10.5s}
@keyframes dustFloat{0%{transform:translate3d(0,12px,0);opacity:0}14%{opacity:.85}55%{opacity:.45}100%{transform:translate3d(16px,-66px,0);opacity:0}}

.fg-blur{display:none;position:absolute;left:0;right:0;bottom:0;height:64px;z-index:4;pointer-events:none}
.fg-blur i{position:absolute;bottom:-28px;width:158px;height:80px;border-radius:50%;background:radial-gradient(ellipse at 50% 28%,rgba(18,20,42,.9),rgba(7,8,20,.97) 52%,rgba(7,8,20,0) 80%)} 
.fg-blur i:first-child{left:-42px}
.fg-blur i:last-child{right:-42px}

.ring-floor{background:
  radial-gradient(ellipse 62% 30% at 50% 24%, rgba(255,238,190,.30), rgba(255,238,190,0) 70%),
  repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 2px, rgba(255,255,255,0) 2px 52px),
  repeating-linear-gradient(0deg, rgba(0,0,0,.05) 0 2px, rgba(0,0,0,0) 2px 34px),
  linear-gradient(180deg,#5a6ea3 0%,#3d5484 42%,#2b3c64 78%,#212f4e 100%)}
@media (prefers-reduced-motion: reduce){.dust i{animation:none;opacity:.3}}

.crown{display:none}
#fighter.opp-kaiser .crown{display:block;position:absolute;top:-40px;left:50%;transform:translateX(-50%) rotate(-5deg);width:66px;height:36px;background:linear-gradient(180deg,#ffec8a 0%,#f7b731 55%,#c07f04 100%);clip-path:polygon(0 100%,0 26%,20% 60%,36% 4%,50% 55%,64% 4%,80% 60%,100% 26%,100% 100%);z-index:8}
#fighter.opp-kaiser .crown::after{content:"";position:absolute;left:50%;bottom:5px;transform:translateX(-50%);width:9px;height:9px;border-radius:50%;background:#e83e55}
#fighter.opp-kaiser{filter:drop-shadow(0 0 16px rgba(247,183,49,.45))}

#fighter.opp-hayate .head{background:#f6ba7f}
#fighter.opp-hayate[data-dmg="2"] .head{background:#f4ae7d}
#fighter.opp-hayate[data-dmg="3"] .head{background:#f2a37e}
#fighter.opp-hayate[data-dmg="4"] .head{background:#ef957a}
#fighter.opp-hayate[data-dmg="5"] .head{background:#eb8976}
#fighter.opp-hayate .ear{background:#f5b878}
#fighter.opp-hayate .neck{background:linear-gradient(90deg,rgba(166,91,38,.30),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(166,91,38,.30)),linear-gradient(180deg,#dd9246,#eda457)}
#fighter.opp-hayate .torso::before{background:linear-gradient(180deg,#f2ac68,#e99f52)}
#fighter.opp-hayate .shoulder{background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 68%),linear-gradient(180deg,#fabe84,#f0a55e)}
#fighter.opp-hayate .upper-arm{background:radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(90deg,#e89a48,#fabe84 48%,#e2923f)}
#fighter.opp-hayate .chest{background:radial-gradient(ellipse 40% 52% at 27% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 40% 52% at 73% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(166,91,38,.16),rgba(255,255,255,0) 72%),linear-gradient(180deg,#fabe84,#f0a55e)}
#fighter.opp-hayate .waist{background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 11px,rgba(146,79,35,.25) 11px 13px,rgba(255,255,255,0) 13px 24px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1px),rgba(146,79,35,.30) calc(50% - 1px) calc(50% + 1px),rgba(255,255,255,0) calc(50% + 1px)),linear-gradient(180deg,#f2ac68,#e89a48)}
#fighter.opp-hayate .thigh{background:radial-gradient(ellipse 55% 38% at 42% 24%,rgba(255,255,255,.30),rgba(255,255,255,0) 70%),linear-gradient(90deg,#e89a48,#fabe84 48%,#eda457)}
#fighter.opp-hayate .knee{background:radial-gradient(ellipse 60% 55% at 42% 30%,rgba(255,255,255,.40),rgba(255,255,255,0) 70%),linear-gradient(180deg,#ffc28a,#f2a55e)}
#fighter.opp-hayate .lower-leg{background:radial-gradient(ellipse 75% 32% at 50% 15%,rgba(255,255,255,.30),rgba(255,255,255,0) 72%),linear-gradient(90deg,#e2923f,#f5b878 50%,#e89a48)}
#fighter.opp-hayate .glove::before{background:linear-gradient(180deg,#f5b878,#e2923f)}
#fighter.opp-hayate .glove::after{background:linear-gradient(180deg,#e2923f,#cd7c2e)}
#fighter.opp-hayate .hair{background:linear-gradient(155deg,#ffe97a 0%,#f7c948 42%,#dd9d06 100%)}
#fighter.opp-hayate .gloves .g-main{fill:#25b567}
#fighter.opp-hayate .gloves .g-thumb{fill:#189a52}
#fighter.opp-hayate .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 8px,rgba(255,255,255,0) 8px),linear-gradient(90deg,#0d7a44 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#0d7a44 calc(100% - 8px)),linear-gradient(180deg,#1fae62,#0d7a44)}

#fighter.opp-hayate .upper-arm{width:46px}
#fighter.opp-hayate .head{border-radius:44% 44% 30% 30%/32% 32% 46% 46%}
#fighter.opp-hayate .eye{top:63px;width:30px;height:13px;border-width:2.5px;border-top-width:4px;border-radius:60% 40% 60% 40%/90% 90% 35% 35%}
#fighter.opp-hayate .eye-l{left:15px;rotate:-5deg}
#fighter.opp-hayate .eye-r{right:15px;rotate:5deg}
#fighter.opp-hayate .eye .iris{width:9px;height:9px;top:54%}
#fighter.opp-hayate .brow{top:52px;width:30px;height:3px;background:#7a5c14;border-radius:99px}
#fighter.opp-hayate .brow-l{left:16px}
#fighter.opp-hayate .brow-r{right:16px}
#fighter.opp-hayate .mouth{width:24px}

#fighter.opp-ganji .head{background:#a8703c}
#fighter.opp-ganji[data-dmg="2"] .head{background:#a4683a}
#fighter.opp-ganji[data-dmg="3"] .head{background:#a35f38}
#fighter.opp-ganji[data-dmg="4"] .head{background:#a15637}
#fighter.opp-ganji[data-dmg="5"] .head{background:#9e4e36}
#fighter.opp-ganji .ear{background:#b57e45}
#fighter.opp-ganji .neck{background:linear-gradient(90deg,rgba(90,50,16,.30),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(90,50,16,.30)),linear-gradient(180deg,#8a5527,#9c652f)}
#fighter.opp-ganji .torso::before{background:linear-gradient(180deg,#b07c42,#9c652f)}
#fighter.opp-ganji .shoulder{background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.30),rgba(255,255,255,0) 68%),linear-gradient(180deg,#bc8550,#a8703c)}
#fighter.opp-ganji .upper-arm{background:radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.30),rgba(255,255,255,0) 70%),linear-gradient(90deg,#9c652f,#bc8550 48%,#8a5527)}
#fighter.opp-ganji .chest{background:radial-gradient(ellipse 40% 52% at 27% 30%,rgba(255,255,255,.38),rgba(255,255,255,0) 68%),radial-gradient(ellipse 40% 52% at 73% 30%,rgba(255,255,255,.38),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(90,50,16,.16),rgba(255,255,255,0) 72%),linear-gradient(180deg,#bc8550,#a8703c)}
#fighter.opp-ganji .waist{background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 11px,rgba(90,50,16,.25) 11px 13px,rgba(255,255,255,0) 13px 24px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1px),rgba(90,50,16,.30) calc(50% - 1px) calc(50% + 1px),rgba(255,255,255,0) calc(50% + 1px)),linear-gradient(180deg,#b07c42,#96622f)}
#fighter.opp-ganji .thigh{background:radial-gradient(ellipse 55% 38% at 42% 24%,rgba(255,255,255,.26),rgba(255,255,255,0) 70%),linear-gradient(90deg,#96622f,#bc8550 48%,#a8703c)}
#fighter.opp-ganji .knee{background:radial-gradient(ellipse 60% 55% at 42% 30%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(180deg,#c08d55,#a8703c)}
#fighter.opp-ganji .lower-leg{background:radial-gradient(ellipse 75% 32% at 50% 15%,rgba(255,255,255,.26),rgba(255,255,255,0) 72%),linear-gradient(90deg,#8a5527,#b57e45 50%,#96622f)}
#fighter.opp-ganji .glove::before{background:linear-gradient(180deg,#b57e45,#8a5527)}
#fighter.opp-ganji .glove::after{background:linear-gradient(180deg,#8a5527,#74451f)}
#fighter.opp-ganji .hair{display:none}
#fighter.opp-ganji .gloves .g-main{fill:#3b5bdb}
#fighter.opp-ganji .gloves .g-thumb{fill:#2b44a8}
#fighter.opp-ganji .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 8px,rgba(255,255,255,0) 8px),linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#8a3324,#571d12)}

.bindi{display:none}
#fighter.opp-ganji.is-ganji .bindi{display:block;position:absolute;top:17px;left:50%;transform:translateX(-50%);width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 36% 30%,#ff9d8a 0%,#e5382a 52%,#a31212 100%);border:2px solid #6d0d0d;box-shadow:0 1px 3px rgba(0,0,0,.35),inset 0 -2px 3px rgba(0,0,0,.25);z-index:6}
#fighter.opp-ganji.is-ganji .eye{top:67px;width:26px;height:12px;background:transparent;border:none;border-bottom:5px solid #33200f;border-radius:50%}
#fighter.opp-ganji.is-ganji .eye-l{left:21px}
#fighter.opp-ganji.is-ganji .eye-r{right:21px}
#fighter.opp-ganji.is-ganji .eye .iris{display:none}
#fighter.opp-ganji.is-ganji .brow{top:51px;width:28px;height:4px;background:#5d4128;border-radius:99px}
#fighter.opp-ganji.is-ganji .brow-l{left:20px;rotate:-13deg}
#fighter.opp-ganji.is-ganji .brow-r{right:20px;rotate:13deg}
#fighter.opp-ganji.is-ganji.serious{filter:drop-shadow(0 0 16px rgba(255,64,30,.55))}
#fighter.opp-ganji.is-ganji.serious .eye{top:58px;width:23px;height:27px;background:#fff;border:3px solid #14142b;border-top-width:7px;border-radius:46% 46% 48% 48%/74% 74% 30% 30%}
#fighter.opp-ganji.is-ganji.serious .eye-l{left:21px;rotate:9deg}
#fighter.opp-ganji.is-ganji.serious .eye-r{right:21px;rotate:-9deg}
#fighter.opp-ganji.is-ganji.serious .eye .iris{display:block;width:12px;height:14px;background:radial-gradient(circle at 35% 26%, #fff 0 2.4px, rgba(255,255,255,0) 3px),radial-gradient(circle, #8f1d1d 0 52%, #1a0505 58%)}
#fighter.opp-ganji.is-ganji.serious .brow{top:47px;width:31px;height:10px;background:#1d0f06;border-radius:4px}
#fighter.opp-ganji.is-ganji.serious .brow-l{left:18px;transform:rotate(26deg) translateY(5px);rotate:0deg}
#fighter.opp-ganji.is-ganji.serious .brow-r{right:18px;transform:rotate(-26deg) translateY(5px);rotate:0deg}
#fighter.opp-ganji.is-ganji.serious .mouth{width:42px;height:19px;background:repeating-linear-gradient(90deg,#fff 0 6px,#cfcfd8 6px 7px);border:3px solid #14142b;border-radius:6px 6px 13px 13px}
#fighter.opp-ganji.is-ganji.serious .bindi{animation:bindiPulse .8s ease-in-out infinite alternate;box-shadow:0 0 14px 4px rgba(255,50,30,.75),0 1px 3px rgba(0,0,0,.35)}
@keyframes bindiPulse{from{transform:translateX(-50%) scale(1)}to{transform:translateX(-50%) scale(1.22)}}
@media (prefers-reduced-motion: reduce){#fighter.opp-ganji.is-ganji.serious .bindi{animation:none}}

#fighter.opp-raiga .head{background:#f6d3aa}
#fighter.opp-raiga[data-dmg="2"] .head{background:#f4cba4}
#fighter.opp-raiga[data-dmg="3"] .head{background:#f2bf9e}
#fighter.opp-raiga[data-dmg="4"] .head{background:#f0b096}
#fighter.opp-raiga[data-dmg="5"] .head{background:#eda28e}
#fighter.opp-raiga .ear{background:#ffcf96}
#fighter.opp-raiga .neck{background:linear-gradient(90deg,rgba(166,91,38,.30),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(166,91,38,.30)),linear-gradient(180deg,#eda670,#f6bc82)}
#fighter.opp-raiga .torso::before{background:linear-gradient(180deg,#ffd09a,#f6bc82)}
#fighter.opp-raiga .shoulder{background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 68%),linear-gradient(180deg,#ffdcae,#f9c284)}
#fighter.opp-raiga .upper-arm{background:radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(90deg,#f3af6e,#ffdcae 48%,#eda25e)}
#fighter.opp-raiga .chest{background:radial-gradient(ellipse 40% 52% at 27% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 40% 52% at 73% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(166,91,38,.16),rgba(255,255,255,0) 72%),linear-gradient(180deg,#ffdcae,#f9c284)}
#fighter.opp-raiga .waist{background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 11px,rgba(146,79,35,.25) 11px 13px,rgba(255,255,255,0) 13px 24px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1px),rgba(146,79,35,.30) calc(50% - 1px) calc(50% + 1px),rgba(255,255,255,0) calc(50% + 1px)),linear-gradient(180deg,#ffd09a,#f3af6e)}
#fighter.opp-raiga .thigh{background:radial-gradient(ellipse 55% 38% at 42% 24%,rgba(255,255,255,.30),rgba(255,255,255,0) 70%),linear-gradient(90deg,#f3af6e,#ffdcae 48%,#f9c284)}
#fighter.opp-raiga .knee{background:radial-gradient(ellipse 60% 55% at 42% 30%,rgba(255,255,255,.40),rgba(255,255,255,0) 70%),linear-gradient(180deg,#ffdda6,#f9c284)}
#fighter.opp-raiga .lower-leg{background:radial-gradient(ellipse 75% 32% at 50% 15%,rgba(255,255,255,.30),rgba(255,255,255,0) 72%),linear-gradient(90deg,#eda25e,#ffcf96 50%,#f3af6e)}
#fighter.opp-raiga .glove::before{background:linear-gradient(180deg,#ffcf96,#eda25e)}
#fighter.opp-raiga .glove::after{background:linear-gradient(180deg,#eda25e,#dd8f45)}
#fighter.opp-raiga .hair{background:linear-gradient(155deg,#fbfbff 0%,#cfcfda 42%,#9898a8 100%)}
#fighter.opp-raiga .gloves .g-main{fill:#7b4bd6}
#fighter.opp-raiga .gloves .g-thumb{fill:#5b34a8}
#fighter.opp-raiga .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 8px,rgba(255,255,255,0) 8px),linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#4b2a86,#2c1854)}

.beard{display:none}

#fighter.opp-raiga.is-raiga .beard{display:block;position:absolute;left:50%;transform:translateX(-50%);top:99px;width:104px;height:53px;background:repeating-linear-gradient(93deg,rgba(10,6,2,.38) 0 2px,rgba(10,6,2,0) 2px 5px),repeating-linear-gradient(87deg,rgba(10,6,2,.22) 0 2px,rgba(10,6,2,0) 2px 6px),linear-gradient(180deg,rgba(46,33,20,0) 0%,rgba(46,33,20,.66) 15%,#2b1f13 32%,#20160c 68%,#150e06 100%);clip-path:polygon(3% 4%,16% 0,84% 0,97% 4%,100% 30%,96% 58%,86% 80%,70% 93%,50% 99%,30% 93%,14% 80%,4% 58%,0 30%);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,#000 22%);mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,#000 22%);z-index:1}
#fighter.opp-raiga.is-raiga .hair{background:repeating-linear-gradient(97deg,rgba(24,14,2,.95) 0 7px,rgba(24,14,2,0) 7px 16px,rgba(24,14,2,.88) 16px 20px,rgba(24,14,2,0) 20px 33px),linear-gradient(155deg,#ffb03a 0%,#f68b1f 45%,#d96c06 100%)}
#fighter.opp-raiga.is-raiga .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 8px,rgba(255,255,255,0) 8px),repeating-linear-gradient(94deg,rgba(22,12,2,.92) 0 6px,rgba(22,12,2,0) 6px 14px,rgba(22,12,2,.85) 14px 18px,rgba(22,12,2,0) 18px 29px),linear-gradient(180deg,#ffa02e,#e06f00)}
#fighter.opp-raiga.is-raiga .eye{top:51px;width:27px;height:35px;border-width:3px;border-top-width:7px}
#fighter.opp-raiga.is-raiga .eye-l{left:18px}
#fighter.opp-raiga.is-raiga .eye-r{right:18px}
#fighter.opp-raiga.is-raiga .eye .iris{width:14px;height:18px}
#fighter.opp-raiga.is-raiga .brow{top:44px;width:36px;height:14px;background:linear-gradient(180deg,#ffe14d,#f7b500)}
#fighter.opp-raiga.is-raiga .brow-l{left:15px;clip-path:polygon(0 18%,68% 0,80% 24%,72% 40%,86% 55%,74% 72%,90% 86%,78% 100%,0 92%)}
#fighter.opp-raiga.is-raiga .brow-r{right:15px;clip-path:polygon(100% 18%,32% 0,20% 24%,28% 40%,14% 55%,26% 72%,10% 86%,22% 100%,100% 92%)}

.chesthair{display:none}
#fighter.opp-raiga.is-raiga .chesthair{display:block;position:absolute;left:50%;top:7px;transform:translateX(-50%);width:72px;height:52px;background:radial-gradient(ellipse 44% 42% at 50% 34%,rgba(24,15,7,.42),rgba(24,15,7,0) 72%),repeating-linear-gradient(94deg,rgba(22,13,5,.40) 0 2px,rgba(22,13,5,0) 2px 6px),repeating-linear-gradient(85deg,rgba(22,13,5,.30) 0 2px,rgba(22,13,5,0) 2px 7px);-webkit-mask-image:radial-gradient(ellipse 74% 80% at 50% 44%,#000 26%,rgba(0,0,0,.55) 60%,rgba(0,0,0,0) 88%);mask-image:radial-gradient(ellipse 74% 80% at 50% 44%,#000 26%,rgba(0,0,0,.55) 60%,rgba(0,0,0,0) 88%);opacity:.9;z-index:1;pointer-events:none}

.tiger-ear,.tstripe,.fangs{display:none}
#fighter.opp-raiga.is-raiga.beast{filter:drop-shadow(0 0 16px rgba(255,150,30,.55))}
#fighter.opp-raiga.is-raiga.beast .tiger-ear{display:block;position:absolute;top:-31px;width:31px;height:39px;background:repeating-linear-gradient(96deg,rgba(24,14,2,.92) 0 5px,rgba(24,14,2,0) 5px 12px),linear-gradient(180deg,#ffb03a,#e06f00);clip-path:polygon(50% 0,96% 62%,88% 100%,12% 100%,4% 62%);z-index:5}
#fighter.opp-raiga.is-raiga.beast .tiger-ear::before{content:'';position:absolute;left:50%;top:36%;transform:translateX(-50%);width:13px;height:19px;background:#e8906f;clip-path:polygon(50% 0,100% 100%,0 100%)}
#fighter.opp-raiga.is-raiga.beast .tiger-ear-l{left:5px;transform:rotate(-13deg)}
#fighter.opp-raiga.is-raiga.beast .tiger-ear-r{right:5px;transform:rotate(13deg)}
#fighter.opp-raiga.is-raiga.beast .hair{top:-44px;width:140px;height:86px}
#fighter.opp-raiga.is-raiga.beast .tstripe{display:block;position:absolute;z-index:3}
#fighter.opp-raiga.is-raiga.beast .tstripe-fore{top:38px;left:50%;transform:translateX(-50%);width:9px;height:17px;background:#241203;border-radius:99px;z-index:5}
#fighter.opp-raiga.is-raiga.beast .tstripe-l{top:82px;left:0;width:27px;height:27px;background:repeating-linear-gradient(97deg,rgba(28,17,5,.95) 0 5px,rgba(28,17,5,0) 5px 12px);transform:rotate(22deg)}
#fighter.opp-raiga.is-raiga.beast .tstripe-r{top:82px;right:0;width:27px;height:27px;background:repeating-linear-gradient(83deg,rgba(28,17,5,.95) 0 5px,rgba(28,17,5,0) 5px 12px);transform:rotate(-22deg)}

#fighter.opp-raiga.is-raiga.beast .eye{width:27px;height:30px;border-radius:50%}
#fighter.opp-raiga.is-raiga.beast .eye-l{left:17px}
#fighter.opp-raiga.is-raiga.beast .eye-r{right:17px}
#fighter.opp-raiga.is-raiga.beast .eye .iris{width:21px;height:24px;background:radial-gradient(circle at 34% 24%,#ffffff 0 5px,rgba(255,255,255,0) 6.5px),radial-gradient(circle at 68% 78%,rgba(255,255,255,.85) 0 2.4px,rgba(255,255,255,0) 3.6px),radial-gradient(circle,#5a3a1e 0 46%,#241203 78%,#120802 100%);box-shadow:0 0 10px 3px rgba(255,255,255,.35)}

.whiskers{display:none}
#fighter.opp-raiga.is-raiga.beast .whiskers{display:block;position:absolute;top:94px;width:54px;height:32px;z-index:4;pointer-events:none}
#fighter.opp-raiga.is-raiga.beast .whiskers-l{left:-36px}
#fighter.opp-raiga.is-raiga.beast .whiskers-r{right:-36px}
#fighter.opp-raiga.is-raiga.beast .whiskers i{position:absolute;width:54px;height:3px;border-radius:99px;background:linear-gradient(90deg,rgba(28,17,5,.95),rgba(28,17,5,.5))}
#fighter.opp-raiga.is-raiga.beast .whiskers-l i{right:0;transform-origin:100% 50%}
#fighter.opp-raiga.is-raiga.beast .whiskers-r i{left:0;transform-origin:0 50%}
#fighter.opp-raiga.is-raiga.beast .whiskers i:nth-child(1){top:5px}
#fighter.opp-raiga.is-raiga.beast .whiskers i:nth-child(2){top:13px}
#fighter.opp-raiga.is-raiga.beast .whiskers i:nth-child(3){top:21px}
#fighter.opp-raiga.is-raiga.beast .whiskers-l i:nth-child(1){transform:rotate(13deg)}
#fighter.opp-raiga.is-raiga.beast .whiskers-l i:nth-child(3){transform:rotate(-13deg)}
#fighter.opp-raiga.is-raiga.beast .whiskers-r i:nth-child(1){transform:rotate(-13deg)}
#fighter.opp-raiga.is-raiga.beast .whiskers-r i:nth-child(3){transform:rotate(13deg)}

#fighter.opp-raiga.is-raiga .blush{top:98px}

#fighter.opp-raiga.is-raiga.beast .cheek{background:radial-gradient(ellipse 60% 55% at 50% 34%,rgba(28,17,5,.88) 0%,rgba(28,17,5,.55) 46%,rgba(28,17,5,0) 76%),radial-gradient(ellipse 62% 50% at 50% 92%,rgba(28,17,5,.35) 0%,rgba(28,17,5,0) 68%)}

.claws{display:none}
#fighter.opp-raiga.is-raiga.beast .glove .claws{display:block;position:absolute;top:-14px;left:50%;transform:translateX(-50%);width:58px;height:19px;z-index:3;pointer-events:none}
#fighter.opp-raiga.is-raiga.beast .glove .claws i{position:absolute;bottom:0;width:11px;height:18px;background:linear-gradient(180deg,#fffdf4,#d9d2ba);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 0 1px rgba(20,16,8,.9))}
#fighter.opp-raiga.is-raiga.beast .glove .claws i:nth-child(1){left:3px;transform:rotate(-14deg)}
#fighter.opp-raiga.is-raiga.beast .glove .claws i:nth-child(2){left:23px;height:21px}
#fighter.opp-raiga.is-raiga.beast .glove .claws i:nth-child(3){right:3px;transform:rotate(14deg)}
#fighter.opp-raiga.is-raiga.beast .brow{height:17px;background:linear-gradient(180deg,#ffd21f,#e07b00)}
#fighter.opp-raiga.is-raiga.beast .brow-l{rotate:13deg}
#fighter.opp-raiga.is-raiga.beast .brow-r{rotate:-13deg}
#fighter.opp-raiga.is-raiga.beast .mouth{width:44px;height:18px;background:linear-gradient(180deg,#6e1810,#420b06);border:3px solid #14142b;border-radius:7px 7px 15px 15px}
#fighter.opp-raiga.is-raiga.beast .fangs{display:block;position:absolute;left:50%;transform:translateX(-50%);top:118px;width:46px;height:17px;z-index:3;pointer-events:none}
#fighter.opp-raiga.is-raiga.beast .fangs::before,#fighter.opp-raiga.is-raiga.beast .fangs::after{content:'';position:absolute;top:0;width:11px;height:17px;background:linear-gradient(180deg,#ffffff,#e8e2d2);clip-path:polygon(0 0,100% 0,50% 100%)}
#fighter.opp-raiga.is-raiga.beast .fangs::before{left:4px}
#fighter.opp-raiga.is-raiga.beast .fangs::after{right:4px}
#fighter.opp-raiga.is-raiga.beast .upper-arm{background:repeating-linear-gradient(94deg,rgba(24,14,2,.5) 0 6px,rgba(24,14,2,0) 6px 20px),radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(90deg,#f3af6e,#ffdcae 48%,#eda25e)}

.armor-plate{display:none}
#fighter.opp-kaiser.is-kaiser .armor-plate{display:block;position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,rgba(255,246,200,.6),rgba(255,246,200,0) 32%),linear-gradient(160deg,#ffe98a 0%,#f7b731 46%,#c07f04 100%)}
#fighter.opp-kaiser.is-kaiser .armor-plate::before{content:"";position:absolute;left:50%;top:7px;transform:translateX(-50%);width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#ff8fa0,#e83e55 60%,#8f1020);border:2px solid rgba(90,50,0,.55)}
#fighter.opp-kaiser.is-kaiser:not(.armor-broken) .shoulder{background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.5),rgba(255,255,255,0) 68%),linear-gradient(180deg,#ffe98a,#d18d06)}
.acrack{display:none;position:absolute;width:6px;background:#4a3205;clip-path:polygon(50% 0,100% 18%,62% 30%,100% 48%,58% 62%,92% 80%,50% 100%,8% 80%,42% 62%,0 48%,38% 30%,0 18%)}
.acrack.ac1{left:25%;top:5px;height:38px;transform:rotate(14deg)}
.acrack.ac2{right:23%;top:15px;height:31px;transform:rotate(-20deg)}
#fighter.armor-crack .acrack.ac1{display:block}
#fighter.armor-crack2 .acrack.ac1,#fighter.armor-crack2 .acrack.ac2{display:block}
#fighter.opp-kaiser.is-kaiser.armor-broken .armor-plate{display:none}
#fighter.opp-kaiser.is-kaiser.armor-broken .crown{display:none}

#fighter.opp-ganji.is-ganzou.daibutsu{filter:drop-shadow(0 0 16px rgba(255,190,40,.6))}
#fighter.opp-ganji.is-ganzou.daibutsu .bindi{display:block;position:absolute;top:17px;left:50%;transform:translateX(-50%);width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 36% 30%,#fff0a0 0%,#ffb800 52%,#a86e00 100%);border:2px solid #6d4a00;box-shadow:0 0 12px 3px rgba(255,184,0,.7);z-index:6}
#fighter.opp-ganji.is-ganzou.daibutsu .eye .iris{width:12px;height:14px;background:radial-gradient(circle at 35% 26%, #fff 0 2.4px, rgba(255,255,255,0) 3px),radial-gradient(circle, #b8860b 0 52%, #1a1000 58%)}
#fighter.opp-ganji.is-ganzou.daibutsu .brow{top:47px;width:31px;height:10px;background:#241505;border-radius:4px}
#fighter.opp-ganji.is-ganzou.daibutsu .brow-l{left:18px;transform:rotate(26deg) translateY(5px)}
#fighter.opp-ganji.is-ganzou.daibutsu .brow-r{right:18px;transform:rotate(-26deg) translateY(5px)}
#fighter.opp-ganji.is-ganzou.daibutsu .mouth{width:42px;height:19px;background:repeating-linear-gradient(90deg,#fff 0 6px,#cfcfd8 6px 7px);border:3px solid #14142b;border-radius:6px 6px 13px 13px}

#fighter.bolt-charge{filter:drop-shadow(0 0 18px rgba(160,200,255,.95)) drop-shadow(0 0 6px rgba(255,255,120,.8))}
#fighter.opp-no1.omni{filter:drop-shadow(0 0 18px rgba(140,180,255,.8))}
.arena.zeus-dark .crowd{filter:brightness(.5)}
.arena.zeus-dark .ring-floor{filter:brightness(.6)}
.arena.zeus-dark .spot{opacity:.22}

#fighter.opp-no1.is-zeus .head{background:#eec9a2}
#fighter.opp-no1.is-zeus[data-dmg="2"] .head{background:#eabd94}
#fighter.opp-no1.is-zeus[data-dmg="3"] .head{background:#e6b18c}
#fighter.opp-no1.is-zeus[data-dmg="4"] .head{background:#e2a37e}
#fighter.opp-no1.is-zeus[data-dmg="5"] .head{background:#dd9672}
#fighter.opp-no1.is-zeus .ear{background:#f2cda6}
#fighter.opp-no1.is-zeus .neck{background:linear-gradient(90deg,rgba(150,95,50,.30),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(150,95,50,.30)),linear-gradient(180deg,#e2b184,#eabd94)}
#fighter.opp-no1.is-zeus .torso::before{background:linear-gradient(180deg,#f2cda6,#eabd94);width:126px}
#fighter.opp-no1.is-zeus .shoulder{background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 68%),linear-gradient(180deg,#f5d0a4,#eabd94)}
#fighter.opp-no1.is-zeus .upper-arm{background:radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(90deg,#dfa96f,#f5d0a4 48%,#e2ab74)}
#fighter.opp-no1.is-zeus .chest{background:radial-gradient(ellipse 40% 52% at 27% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 40% 52% at 73% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(150,95,50,.14),rgba(255,255,255,0) 72%),linear-gradient(180deg,#f5d0a4,#eabd94)}
#fighter.opp-no1.is-zeus .waist{background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 11px,rgba(150,95,50,.22) 11px 13px,rgba(255,255,255,0) 13px 24px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1px),rgba(150,95,50,.26) calc(50% - 1px) calc(50% + 1px),rgba(255,255,255,0) calc(50% + 1px)),linear-gradient(180deg,#f2cda6,#dfa96f)}
#fighter.opp-no1.is-zeus .thigh{background:radial-gradient(ellipse 55% 38% at 42% 24%,rgba(255,255,255,.30),rgba(255,255,255,0) 70%),linear-gradient(90deg,#dfa96f,#f5d0a4 48%,#eabd94)}
#fighter.opp-no1.is-zeus .knee{background:radial-gradient(ellipse 60% 55% at 42% 30%,rgba(255,255,255,.40),rgba(255,255,255,0) 70%),linear-gradient(180deg,#f7d6ac,#eabd94)}
#fighter.opp-no1.is-zeus .lower-leg{background:radial-gradient(ellipse 75% 32% at 50% 15%,rgba(255,255,255,.30),rgba(255,255,255,0) 72%),linear-gradient(90deg,#e2ab74,#f2cda6 50%,#dfa96f)}
#fighter.opp-no1.is-zeus .glove::before{background:linear-gradient(180deg,#f2cda6,#dfa96f)}
#fighter.opp-no1.is-zeus .glove::after{background:linear-gradient(180deg,#dfa96f,#c98d4e)}

#fighter.opp-no1.is-zeus .hair{top:-14px;width:136px;height:196px;border-radius:0;background:repeating-linear-gradient(94deg,rgba(148,152,170,.35) 0 2px,rgba(148,152,170,0) 2px 7px),repeating-linear-gradient(87deg,rgba(255,255,255,.5) 0 3px,rgba(255,255,255,0) 3px 9px),linear-gradient(160deg,#ffffff 0%,#e9eaf2 38%,#c9ccd9 72%,#a9adbf 100%);clip-path:polygon(50% 0,63% 1%,76% 3%,87% 7%,94% 13%,98% 22%,99% 34%,98% 47%,99% 60%,100% 74%,99% 88%,96% 99%,89% 95%,86% 99%,83% 90%,84% 60%,83% 34%,80% 16%,20% 16%,17% 34%,16% 60%,17% 90%,14% 99%,11% 95%,4% 99%,1% 88%,0 74%,1% 60%,2% 47%,1% 34%,2% 22%,6% 13%,13% 7%,24% 3%,37% 1%)}

#fighter.opp-no1.is-zeus .beard{display:block;position:absolute;left:50%;transform:translateX(-50%);top:102px;width:96px;height:104px;background:repeating-linear-gradient(93deg,rgba(140,144,162,.35) 0 2px,rgba(140,144,162,0) 2px 6px),repeating-linear-gradient(88deg,rgba(255,255,255,.45) 0 3px,rgba(255,255,255,0) 3px 8px),linear-gradient(180deg,rgba(233,234,242,0) 0%,#e9eaf2 18%,#d4d7e2 55%,#b4b8c8 100%);clip-path:polygon(2% 6%,14% 0,86% 0,98% 6%,100% 26%,95% 52%,88% 74%,76% 88%,64% 96%,50% 100%,36% 96%,24% 88%,12% 74%,5% 52%,0 26%);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,#000 26%);mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,#000 26%);z-index:1}

#fighter.opp-no1.is-zeus .brow{top:46px;height:9px;background:linear-gradient(180deg,#f4f4f8,#c9ccd9);border-radius:99px}
#fighter.opp-no1.is-zeus .eye{border-top-width:9px}
#fighter.opp-no1.is-zeus .mouth-line{opacity:.95}
#fighter.opp-no1.is-zeus .mouth-line-l{border-left-color:rgba(146,95,50,.6)}
#fighter.opp-no1.is-zeus .mouth-line-r{border-right-color:rgba(146,95,50,.6)}

#fighter.opp-no1.is-zeus .neck{width:38px}
#fighter.opp-no1.is-zeus .body{width:148px}
#fighter.opp-no1.is-zeus .chest{width:116px;height:50px}
#fighter.opp-no1.is-zeus .chest::before,#fighter.opp-no1.is-zeus .chest::after{width:34px;height:13px;bottom:5px;border-bottom-color:rgba(146,95,50,.28)}
#fighter.opp-no1.is-zeus .chest::before{left:10px}
#fighter.opp-no1.is-zeus .chest::after{right:10px}
#fighter.opp-no1.is-zeus .shoulder{width:44px;height:32px}
#fighter.opp-no1.is-zeus .upper-arm{width:26px;height:60px}
#fighter.opp-no1.is-zeus .waist{width:90px}
#fighter.opp-no1.is-zeus .trunks{width:138px;height:61px} 
#fighter.opp-no1.is-zeus .legs{gap:44px}
#fighter.opp-no1.is-zeus .leg{width:30px}
#fighter.opp-no1.is-zeus .thigh{width:27px;height:104px} 
#fighter.opp-no1.is-zeus .knee{left:4px;width:19px}
#fighter.opp-no1.is-zeus .lower-leg{left:5px;width:19px}

#fighter.opp-no1.is-zeus.zform-1 .hair{top:-20px;height:104px;background:repeating-linear-gradient(97deg,rgba(0,0,0,.25) 0 3px,rgba(0,0,0,0) 3px 8px),linear-gradient(155deg,#5a4632 0%,#2e2015 45%,#17100a 100%);clip-path:polygon(50% 0,63% 1%,76% 3%,87% 7%,94% 13%,98% 22%,99% 34%,98% 47%,99% 60%,100% 74%,99% 88%,96% 99%,89% 95%,86% 99%,83% 92%,84% 68%,82% 56%,78% 52%,22% 52%,18% 56%,16% 68%,17% 92%,14% 99%,11% 95%,4% 99%,1% 88%,0 74%,1% 60%,2% 47%,1% 34%,2% 22%,6% 13%,13% 7%,24% 3%,37% 1%)}
#fighter.opp-no1.is-zeus.zform-1 .beard{display:none}
#fighter.opp-no1.is-zeus.zform-1 .head{background:#f2b57e}
#fighter.opp-no1.is-zeus.zform-1[data-dmg="2"] .head{background:#eda873}
#fighter.opp-no1.is-zeus.zform-1[data-dmg="3"] .head{background:#e79c6b}
#fighter.opp-no1.is-zeus.zform-1[data-dmg="4"] .head{background:#e18d63}
#fighter.opp-no1.is-zeus.zform-1[data-dmg="5"] .head{background:#db7f5c}
#fighter.opp-no1.is-zeus.zform-1 .brow{height:7px;background:#2b2019}
#fighter.opp-no1.is-zeus.zform-1 .eye{border-top-width:6px}
#fighter.opp-no1.is-zeus.zform-1 .mouth-line{opacity:.3}

#fighter.opp-no1.is-zeus.zform-2 .neck{width:56px}
#fighter.opp-no1.is-zeus.zform-2 .body{width:200px}
#fighter.opp-no1.is-zeus.zform-2 .torso::before{width:196px}
#fighter.opp-no1.is-zeus.zform-2 .chest{width:182px;height:68px}
#fighter.opp-no1.is-zeus.zform-2 .chest::before,#fighter.opp-no1.is-zeus.zform-2 .chest::after{width:60px;height:22px;bottom:7px;border-bottom-color:rgba(146,95,50,.4)}
#fighter.opp-no1.is-zeus.zform-2 .chest::before{left:16px}
#fighter.opp-no1.is-zeus.zform-2 .chest::after{right:16px}
#fighter.opp-no1.is-zeus.zform-2 .shoulder{width:74px;height:46px}
#fighter.opp-no1.is-zeus.zform-2 .upper-arm{width:52px;height:72px}
#fighter.opp-no1.is-zeus.zform-2 .waist{width:130px}
#fighter.opp-no1.is-zeus.zform-2 .trunks{width:198px;height:79px} 
#fighter.opp-no1.is-zeus.zform-2 .legs{gap:58px}
#fighter.opp-no1.is-zeus.zform-2 .leg{width:40px}
#fighter.opp-no1.is-zeus.zform-2 .thigh{width:38px;height:104px} 
#fighter.opp-no1.is-zeus.zform-2 .knee{left:6px;width:26px}
#fighter.opp-no1.is-zeus.zform-2 .lower-leg{left:6px;width:26px}
#fighter.opp-no1.is-zeus.zform-2 .beard{height:56px}

#fighter.opp-no1.is-zeus.zform-3{filter:drop-shadow(0 0 18px rgba(90,170,255,.85))}
#fighter.opp-no1.is-zeus.zform-3 .eye{box-shadow:0 0 12px 3px rgba(110,190,255,.85)}
#fighter.opp-no1.is-zeus.zform-3 .eye .iris{width:13px;height:16px;background:radial-gradient(circle at 35% 26%,#ffffff 0 3px,rgba(255,255,255,0) 4.2px),radial-gradient(circle,#9fdcff 0 30%,#2f9dff 58%,#0b3d91 84%)}

#fighter.opp-no1.is-zeus.reviving{filter:brightness(1.8) drop-shadow(0 0 24px rgba(255,240,180,.95))}
body.light-mode #fighter.opp-no1.is-zeus.zform-3,body.light-mode #fighter.opp-no1.is-zeus.reviving{filter:none}

#fighter.opp-kaiser .head{background:#f9be7d}
#fighter.opp-kaiser[data-dmg="2"] .head{background:#f7b17b}
#fighter.opp-kaiser[data-dmg="3"] .head{background:#f5a47a}
#fighter.opp-kaiser[data-dmg="4"] .head{background:#f39674}
#fighter.opp-kaiser[data-dmg="5"] .head{background:#f0886c}
#fighter.opp-kaiser .ear{background:#ffc284}
#fighter.opp-kaiser .neck{background:linear-gradient(90deg,rgba(166,91,38,.30),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(166,91,38,.30)),linear-gradient(180deg,#e89c4e,#f4ac60)}
#fighter.opp-kaiser .torso::before{background:linear-gradient(180deg,#ffc284,#f4ac60)}
#fighter.opp-kaiser .shoulder{background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 68%),linear-gradient(180deg,#ffc98c,#f7ae62)}
#fighter.opp-kaiser .upper-arm{background:radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(90deg,#f2a55e,#ffc98c 48%,#eda050)}
#fighter.opp-kaiser .chest{background:radial-gradient(ellipse 40% 52% at 27% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 40% 52% at 73% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(166,91,38,.16),rgba(255,255,255,0) 72%),linear-gradient(180deg,#ffc98c,#f7ae62)}
#fighter.opp-kaiser .waist{background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 11px,rgba(146,79,35,.25) 11px 13px,rgba(255,255,255,0) 13px 24px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1px),rgba(146,79,35,.30) calc(50% - 1px) calc(50% + 1px),rgba(255,255,255,0) calc(50% + 1px)),linear-gradient(180deg,#ffc284,#f2a55e)}
#fighter.opp-kaiser .thigh{background:radial-gradient(ellipse 55% 38% at 42% 24%,rgba(255,255,255,.30),rgba(255,255,255,0) 70%),linear-gradient(90deg,#f2a55e,#ffc98c 48%,#f7ae62)}
#fighter.opp-kaiser .knee{background:radial-gradient(ellipse 60% 55% at 42% 30%,rgba(255,255,255,.40),rgba(255,255,255,0) 70%),linear-gradient(180deg,#ffd096,#f7ae62)}
#fighter.opp-kaiser .lower-leg{background:radial-gradient(ellipse 75% 32% at 50% 15%,rgba(255,255,255,.30),rgba(255,255,255,0) 72%),linear-gradient(90deg,#eda050,#ffc284 50%,#f2a55e)}
#fighter.opp-kaiser .glove::before{background:linear-gradient(180deg,#ffc284,#eda050)}
#fighter.opp-kaiser .glove::after{background:linear-gradient(180deg,#eda050,#d9853a)}
#fighter.opp-kaiser .hair{background:linear-gradient(155deg,#4a3a14 0%,#17130a 42%,#050403 100%)}
#fighter.opp-kaiser .gloves .g-main{fill:#f7b731}
#fighter.opp-kaiser .gloves .g-thumb{fill:#d18d06}
#fighter.opp-kaiser .gloves .g-cuff{fill:#ffe98a}
#fighter.opp-kaiser .trunks-in{background:linear-gradient(180deg,#ffe066 0 8px,rgba(255,255,255,0) 8px),linear-gradient(90deg,#f7b731 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#f7b731 calc(100% - 8px)),linear-gradient(180deg,#23232e,#0a0a10)}

.cape{display:none}
.glasses{display:none}
#fighter.opp-kaiser.is-kaiser .cape{display:block;position:absolute;top:140px;left:50%;transform:translateX(-50%);transform-origin:50% 0;width:264px;height:254px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#ffe98a,#c07f04);clip-path:polygon(24% 0,76% 0,78.1% .2%,80% .6%,81.7% 1.4%,83.1% 2.5%,84.4% 4%,85.3% 5.7%,86.1% 7.7%,86.6% 10.1%,100% 95%,93% 100%,7% 100%,0 95%,13.4% 10.1%,13.9% 7.7%,14.7% 5.7%,15.6% 4%,16.9% 2.5%,18.3% 1.4%,20% .6%,21.9% .2%);animation:capeSway 3.6s ease-in-out infinite alternate}
#fighter.opp-kaiser.is-kaiser .cape::before{content:"";position:absolute;inset:4px;background:linear-gradient(100deg,rgba(255,255,255,.16),rgba(255,255,255,0) 30%),linear-gradient(180deg,#8e1f3f 0%,#67112c 55%,#42081c 100%);clip-path:polygon(24% 0,76% 0,78.1% .2%,80% .6%,81.7% 1.4%,83.1% 2.5%,84.4% 4%,85.3% 5.7%,86.1% 7.7%,86.6% 10.1%,100% 95%,93% 100%,7% 100%,0 95%,13.4% 10.1%,13.9% 7.7%,14.7% 5.7%,15.6% 4%,16.9% 2.5%,18.3% 1.4%,20% .6%,21.9% .2%)}
#fighter.opp-kaiser.is-kaiser .cape::after{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:128px;height:30px;border-radius:16px;border:2px solid #d9c98a;background:radial-gradient(circle 3px at 22px 10px,#3a3230 96%,rgba(0,0,0,0) 100%),radial-gradient(circle 3px at 52px 19px,#3a3230 96%,rgba(0,0,0,0) 100%),radial-gradient(circle 3px at 82px 9px,#3a3230 96%,rgba(0,0,0,0) 100%),radial-gradient(circle 3px at 106px 18px,#3a3230 96%,rgba(0,0,0,0) 100%),linear-gradient(180deg,#fdfaf0,#e9e2cd);box-shadow:0 2px 4px rgba(0,0,0,.3)}
@keyframes capeSway{from{rotate:-1.1deg}to{rotate:1.1deg}}
#fighter.opp-kaiser.is-kaiser .hair{top:-24px;width:134px;height:88px;background-image:radial-gradient(circle 13px at 11% 87%,rgba(0,0,0,0) 5px,rgba(169,138,76,.65) 6px,rgba(169,138,76,.65) 8px,rgba(255,250,235,.9) 9px,rgba(255,250,235,.9) 11px,rgba(169,138,76,.5) 12px,rgba(0,0,0,0) 13px),radial-gradient(circle 13px at 89% 87%,rgba(0,0,0,0) 5px,rgba(169,138,76,.65) 6px,rgba(169,138,76,.65) 8px,rgba(255,250,235,.9) 9px,rgba(255,250,235,.9) 11px,rgba(169,138,76,.5) 12px,rgba(0,0,0,0) 13px),repeating-linear-gradient(97deg,rgba(178,148,86,.30) 0 3px,rgba(255,255,255,0) 3px 8px),linear-gradient(100deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,0) 34%),linear-gradient(155deg,#fffdf4 0%,#f6ead0 34%,#e7d194 62%,#c9ab63 100%);background-repeat:no-repeat,no-repeat,repeat,repeat,repeat;clip-path:polygon(50% 0%,64% 1%,77% 4%,88% 10%,94% 19%,97% 31%,97% 44%,96% 58%,98% 70%,100% 80%,95% 93%,88% 99%,83% 94%,84% 80%,83% 60%,79% 44%,71% 34%,61% 29%,50% 27%,39% 29%,29% 34%,21% 44%,17% 60%,16% 80%,17% 94%,12% 99%,5% 93%,0% 80%,2% 70%,4% 58%,3% 44%,3% 31%,6% 19%,12% 10%,23% 4%,36% 1%)}
#fighter.opp-kaiser.is-kaiser .hair::before,#fighter.opp-kaiser.is-kaiser .hair::after{display:none}

#fighter.opp-kaiser.is-kaiser .glasses{display:block;position:absolute;top:54px;left:50%;transform:translateX(-50%);width:100px;height:38px;z-index:6;pointer-events:none;background:linear-gradient(180deg,#26221e,#26221e) 0 13px/8px 3px no-repeat,linear-gradient(180deg,#26221e,#26221e) 100% 13px/8px 3px no-repeat,linear-gradient(180deg,#26221e,#26221e) 50% 9px/14px 4px no-repeat}
#fighter.opp-kaiser.is-kaiser .glasses::before,#fighter.opp-kaiser.is-kaiser .glasses::after{content:"";position:absolute;top:0;width:38px;height:38px;border-radius:50%;border:3px solid #26221e;background:radial-gradient(circle at 33% 27%,rgba(255,255,255,.55) 0 5px,rgba(255,255,255,.10) 12px),linear-gradient(160deg,rgba(215,235,255,.16),rgba(215,235,255,.05) 60%);box-shadow:0 1px 3px rgba(0,0,0,.35),inset 0 0 5px rgba(255,255,255,.35)}
#fighter.opp-kaiser.is-kaiser .glasses::before{left:6px}
#fighter.opp-kaiser.is-kaiser .glasses::after{right:6px}

#fighter.opp-kaiser.is-kaiser.armor-broken .glasses::before{background:radial-gradient(circle at 64% 32%,rgba(255,255,255,.9) 0 1.5px,rgba(22,26,32,.85) 2.5px,rgba(22,26,32,0) 5px),radial-gradient(circle at 64% 32%,rgba(22,26,32,0) 7px,rgba(22,26,32,.45) 8px,rgba(22,26,32,0) 10px),linear-gradient(28deg,rgba(22,26,32,0) calc(50% - 1px),rgba(22,26,32,.8) 50%,rgba(22,26,32,0) calc(50% + 1px)),linear-gradient(96deg,rgba(22,26,32,0) calc(50% - 1px),rgba(22,26,32,.75) 50%,rgba(22,26,32,0) calc(50% + 1px)),linear-gradient(151deg,rgba(22,26,32,0) calc(50% - 1px),rgba(22,26,32,.8) 50%,rgba(22,26,32,0) calc(50% + 1px)),linear-gradient(196deg,rgba(22,26,32,0) calc(50% - .5px),rgba(22,26,32,.55) 50%,rgba(22,26,32,0) calc(50% + .5px)),radial-gradient(circle at 33% 27%,rgba(255,255,255,.55) 0 5px,rgba(255,255,255,.10) 12px),linear-gradient(160deg,rgba(215,235,255,.16),rgba(215,235,255,.05) 60%)}
#fighter.opp-kaiser.is-kaiser.armor-broken .glasses::after{background:radial-gradient(circle at 38% 30%,rgba(255,255,255,.9) 0 1.5px,rgba(22,26,32,.85) 2.5px,rgba(22,26,32,0) 5px),radial-gradient(circle at 38% 30%,rgba(22,26,32,0) 6px,rgba(22,26,32,.4) 7px,rgba(22,26,32,0) 9px),linear-gradient(64deg,rgba(22,26,32,0) calc(50% - 1px),rgba(22,26,32,.75) 50%,rgba(22,26,32,0) calc(50% + 1px)),linear-gradient(128deg,rgba(22,26,32,0) calc(50% - 1px),rgba(22,26,32,.8) 50%,rgba(22,26,32,0) calc(50% + 1px)),linear-gradient(233deg,rgba(22,26,32,0) calc(50% - .5px),rgba(22,26,32,.55) 50%,rgba(22,26,32,0) calc(50% + .5px)),radial-gradient(circle at 33% 27%,rgba(255,255,255,.55) 0 5px,rgba(255,255,255,.10) 12px),linear-gradient(160deg,rgba(215,235,255,.16),rgba(215,235,255,.05) 60%)}
#fighter.opp-kaiser.is-kaiser .brow{top:50px;height:5px;background:linear-gradient(180deg,#f2ead6,#c9b586)}
#fighter.opp-kaiser.is-kaiser .eye{top:61px;height:23px;border-top-width:7px;box-shadow:0 5px 4px -2px rgba(150,90,40,.35)}
#fighter.opp-kaiser.is-kaiser .mouth-line{opacity:.88}
#fighter.opp-kaiser.is-kaiser .mouth-line-l{border-left-color:rgba(146,79,35,.55)}
#fighter.opp-kaiser.is-kaiser .mouth-line-r{border-right-color:rgba(146,79,35,.55)}
#fighter.opp-kaiser.is-kaiser .beard{display:block;position:absolute;left:50%;transform:translateX(-50%);top:108px;width:54px;height:11px;background:repeating-linear-gradient(94deg,rgba(96,78,44,.4) 0 2px,rgba(96,78,44,0) 2px 5px),linear-gradient(180deg,#f0e7d0,#cdbd92);clip-path:polygon(0 32%,16% 6%,36% 16%,50% 40%,64% 16%,84% 6%,100% 32%,92% 74%,70% 96%,50% 80%,30% 96%,8% 74%);-webkit-mask-image:none;mask-image:none;z-index:2}
#fighter.opp-kaiser.is-kaiser .head{zoom:.96}
#fighter.opp-kaiser.is-kaiser{scale:1.06;transform-origin:50% 45%}
#fighter.opp-kaiser.is-kaiser.wind.pt-upper-l,#fighter.opp-kaiser.is-kaiser.wind.pt-upper-r{animation:tellUpperKaiser .6s ease-out}
@keyframes tellUpperKaiser{0%{translate:0 0;scale:1.06 1.06}38%{translate:0 17px;scale:1.10 .955}72%{translate:0 14px;scale:1.095 .968}100%{translate:0 0;scale:1.06 1.06}}
#fighter.opp-kaiser.is-kaiser .body{width:200px;height:110px}
#fighter.opp-kaiser.is-kaiser .chest{width:182px;height:68px;background:radial-gradient(ellipse 44% 54% at 27% 30%,rgba(255,255,255,.5),rgba(255,255,255,0) 68%),radial-gradient(ellipse 44% 54% at 73% 30%,rgba(255,255,255,.5),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(166,91,38,.16),rgba(255,255,255,0) 72%),linear-gradient(180deg,#ffc98c,#f7ae62)}
#fighter.opp-kaiser.is-kaiser .chest::before,#fighter.opp-kaiser.is-kaiser .chest::after{width:60px;height:22px;bottom:7px}
#fighter.opp-kaiser.is-kaiser .chest::before{left:16px}
#fighter.opp-kaiser.is-kaiser .chest::after{right:16px}
#fighter.opp-kaiser.is-kaiser .shoulder{width:74px;height:46px}
#fighter.opp-kaiser.is-kaiser .upper-arm{width:52px;height:72px}
#fighter.opp-kaiser.is-kaiser .waist{width:130px}
#fighter.opp-kaiser.is-kaiser .trunks{width:198px;height:79px} 
#fighter.opp-kaiser.is-kaiser .trunks-in{font-size:17px;padding-bottom:16px}
.chestscar{display:none}
#fighter.opp-kaiser.is-kaiser .chestscar{display:block;position:absolute;left:35%;top:9px;width:44px;height:46px;transform:translateX(-50%) rotate(-4deg);z-index:1;pointer-events:none}
#fighter.opp-kaiser.is-kaiser .chestscar::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%) rotate(5deg);width:6px;height:44px;border-radius:4px;background:linear-gradient(180deg,#b0503c,#8e2f1f 60%,#7c2418);box-shadow:inset 0 0 3px rgba(60,10,5,.55),1px 0 0 rgba(255,225,195,.4);clip-path:polygon(18% 0,82% 6%,64% 30%,88% 55%,70% 82%,84% 100%,16% 100%,30% 78%,12% 52%,36% 28%)}
#fighter.opp-kaiser.is-kaiser .chestscar::after{content:"";position:absolute;left:0;top:17px;width:44px;height:6px;border-radius:4px;background:linear-gradient(90deg,#b0503c,#8e2f1f 60%,#7c2418);box-shadow:inset 0 0 3px rgba(60,10,5,.55),0 1px 0 rgba(255,225,195,.4);transform:rotate(-5deg);clip-path:polygon(0 18%,26% 0,55% 30%,82% 8%,100% 40%,88% 84%,58% 66%,30% 92%,4% 70%)}
.gspark{display:none}
#fighter.opp-kaiser.is-kaiser .gspark{display:block;position:absolute;inset:0;z-index:3;pointer-events:none}
#fighter.opp-kaiser.is-kaiser .gspark i{position:absolute;background:radial-gradient(circle,#ffffff 0 26%,#ffedb0 55%,rgba(255,215,90,0) 76%);clip-path:polygon(50% 0,63% 37%,100% 50%,63% 63%,50% 100%,37% 63%,0 50%,37% 37%);filter:drop-shadow(0 0 4px rgba(255,210,80,.95));animation:gsparkTwinkle 1.25s ease-in-out infinite alternate}
#fighter.opp-kaiser.is-kaiser .gspark i:nth-child(1){top:2px;left:40px;width:17px;height:17px}
#fighter.opp-kaiser.is-kaiser .gspark i:nth-child(2){top:24px;left:4px;width:11px;height:11px;animation-delay:-.45s;animation-duration:1.05s}
#fighter.opp-kaiser.is-kaiser .gspark i:nth-child(3){top:40px;left:56px;width:12px;height:12px;animation-delay:-.8s;animation-duration:1.45s}
@keyframes gsparkTwinkle{from{opacity:.2;scale:.45;rotate:0deg}to{opacity:1;scale:1.1;rotate:22deg}}
#fighter.opp-kaiser.is-kaiser .gloves .g-shine{stroke:rgba(255,252,235,.95);stroke-width:8}
body.light-mode #fighter.opp-kaiser.is-kaiser .cape{animation:none}
body.light-mode #fighter.opp-kaiser.is-kaiser .gspark i{animation:none}
@media (prefers-reduced-motion: reduce){#fighter.opp-kaiser.is-kaiser .cape{animation:none}#fighter.opp-kaiser.is-kaiser .gspark i{animation:none;opacity:.85}}

#fighter.opp-kaiser.is-kaiser.armor-broken.wind{transition-duration:.225s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-jab{transition-duration:.13s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-upper-l,#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-upper-r{transition-duration:.25s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-smash-l,#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-smash-r{transition-duration:.34s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike{transition-duration:.035s}
#fighter.opp-kaiser.is-kaiser.armor-broken .glove{transition-duration:.065s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike .glove{transition-duration:.03s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-l .glove,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-r .glove{transition-duration:.06s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-smash-l .glove,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-smash-r .glove{transition-duration:.19s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-chop-r .glove{transition-duration:.08s}
#fighter.opp-kaiser.is-kaiser.armor-broken.whiff .glove.left{transition-duration:.17s}
#fighter.opp-kaiser.is-kaiser.armor-broken.recover .glove{transition-duration:.16s}
#fighter.opp-kaiser.is-kaiser.armor-broken .upper-arm{transition-duration:.225s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike .upper-arm{transition-duration:.09s}
#fighter.opp-kaiser.is-kaiser.armor-broken .torso{transition-duration:.24s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike .torso{transition-duration:.085s}
#fighter.opp-kaiser.is-kaiser.armor-broken.recover .torso{transition-duration:.21s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-l .glove.left,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-r .glove.right{animation-duration:.16s}
#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-l .glove.left::before,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-l .glove.left::after,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-r .glove.right::before,#fighter.opp-kaiser.is-kaiser.armor-broken.strike.pt-hook-r .glove.right::after{animation-duration:.16s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-jab{animation-duration:.21s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-straight{animation-duration:.25s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-hook-l,#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-hook-r{animation-duration:.275s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-upper-l,#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-upper-r{animation-duration:.3s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-smash-l,#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-smash-r{animation-duration:.425s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-chop-r{animation-duration:.275s}
#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-smash-l .glove.left,#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-smash-r .glove.right,#fighter.opp-kaiser.is-kaiser.armor-broken.wind.pt-chop-r .glove.left{animation-duration:.425s}

#fighter.opp-no1{filter:drop-shadow(0 0 16px rgba(255,71,87,.48))}
#fighter.opp-no1 .head{background:#e8a06a}
#fighter.opp-no1[data-dmg="2"] .head{background:#e69566}
#fighter.opp-no1[data-dmg="3"] .head{background:#e38962}
#fighter.opp-no1[data-dmg="4"] .head{background:#df7c5e}
#fighter.opp-no1[data-dmg="5"] .head{background:#da705a}
#fighter.opp-no1 .ear{background:#efa96f}
#fighter.opp-no1 .neck{background:linear-gradient(90deg,rgba(120,48,20,.30),rgba(255,255,255,0) 24%,rgba(255,255,255,0) 76%,rgba(120,48,20,.30)),linear-gradient(180deg,#cf7f42,#e09552)}
#fighter.opp-no1 .torso::before{background:linear-gradient(180deg,#efa96f,#e09552)}
#fighter.opp-no1 .shoulder{background:radial-gradient(ellipse 62% 55% at 38% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 68%),linear-gradient(180deg,#f2b47e,#e79d5b)}
#fighter.opp-no1 .upper-arm{background:radial-gradient(ellipse 60% 34% at 50% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),linear-gradient(90deg,#d9853f,#f2b47e 48%,#dd8f45)}
#fighter.opp-no1 .chest{background:radial-gradient(ellipse 40% 52% at 27% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 40% 52% at 73% 30%,rgba(255,255,255,.44),rgba(255,255,255,0) 68%),radial-gradient(ellipse 46% 40% at 50% 88%,rgba(120,48,20,.16),rgba(255,255,255,0) 72%),linear-gradient(180deg,#f2b47e,#e79d5b)}
#fighter.opp-no1 .waist{background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0 11px,rgba(120,48,20,.25) 11px 13px,rgba(255,255,255,0) 13px 24px),linear-gradient(90deg,rgba(255,255,255,0) calc(50% - 1px),rgba(120,48,20,.30) calc(50% - 1px) calc(50% + 1px),rgba(255,255,255,0) calc(50% + 1px)),linear-gradient(180deg,#efa96f,#d9853f)}
#fighter.opp-no1 .thigh{background:radial-gradient(ellipse 55% 38% at 42% 24%,rgba(255,255,255,.30),rgba(255,255,255,0) 70%),linear-gradient(90deg,#d9853f,#f2b47e 48%,#e79d5b)}
#fighter.opp-no1 .knee{background:radial-gradient(ellipse 60% 55% at 42% 30%,rgba(255,255,255,.40),rgba(255,255,255,0) 70%),linear-gradient(180deg,#f7bd83,#e79d5b)}
#fighter.opp-no1 .lower-leg{background:radial-gradient(ellipse 75% 32% at 50% 15%,rgba(255,255,255,.30),rgba(255,255,255,0) 72%),linear-gradient(90deg,#dd8f45,#efa96f 50%,#d9853f)}
#fighter.opp-no1 .glove::before{background:linear-gradient(180deg,#efa96f,#d9853f)}
#fighter.opp-no1 .glove::after{background:linear-gradient(180deg,#d9853f,#b85f27)}
#fighter.opp-no1 .hair{background:linear-gradient(155deg,#5b1116 0%,#1b0b10 48%,#050507 100%)}
#fighter.opp-no1 .gloves .g-main{fill:#23232e}
#fighter.opp-no1 .gloves .g-thumb{fill:#111118}
#fighter.opp-no1 .gloves .g-cuff{fill:#e83e55}
#fighter.opp-no1 .trunks-in{background:linear-gradient(180deg,#ffe066 0 8px,rgba(255,255,255,0) 8px),linear-gradient(90deg,#e83e55 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e83e55 calc(100% - 8px)),linear-gradient(180deg,#8f1020,#3d0710)}

.train-points{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 16px;background:#fff6cf;border:2px solid #111;border-radius:14px;padding:10px 14px;margin:12px 0 0}
.study-bubble{background:#fff6cf;border:2px solid #111;border-radius:14px;padding:10px 12px;font-weight:800;line-height:1.55;margin-top:10px;text-align:left}
.quiz-q{font-size:17px;font-weight:900;line-height:1.6;margin:14px 0 10px;text-align:left}
.quiz-choices{display:flex;flex-direction:column;gap:8px}
.quiz-choice{text-align:left;padding:12px;border-radius:14px;border:2px solid #c9cdf0;background:#f3f4ff;color:#14142b;font-size:15px;font-weight:800;cursor:pointer;line-height:1.5;font-family:inherit}
.quiz-choice.correct{border-color:#189a52;background:#e6f9ee}
.quiz-choice.wrong{border-color:#b3001b;background:#fdeef0}
.quiz-choice:disabled{cursor:default}
.quiz-exp{margin-top:10px;background:#fbfbff;border:2px solid #e2e4f2;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.65;text-align:left}
.train-points b{font-size:22px;font-weight:900}
.train-block{border:2px solid #e2e4f2;border-radius:14px;padding:12px;margin-top:12px;background:#fbfbff}
.train-block[hidden]{display:none}
/* --- Rhythm Dojo （リズム道場） --- */
#dojoTodayBtn{margin-top:10px}
.dojo-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dashed #d8daee}
.dojo-row:last-child{border-bottom:none}
.dojo-row .dojo-row-main{flex:1;min-width:0;text-align:left}
.dojo-row .dojo-row-name{font-weight:800;font-size:15px}
.dojo-row .dojo-row-sub{font-size:12px;color:#555a75;margin-top:2px}
.dojo-row .dojo-grade{font-weight:900;font-size:18px;color:#b77900;min-width:28px;text-align:center}
.dojo-row button{flex:none}
/* trapezoid lane (2026-11-06): narrow at the top (far end, 40% width), widening to full width at the bottom (near end) for depth. The clip-path insets must match DOJO_LANE_TOP_W in the game script; the slanted edge lines + centre line are drawn by the ::before SVG (stretched to the box, non-scaling stroke). Markers scale with the lane width at their height (dojoLaneWFrac) while their fall speed stays linear. Dojo lane only — battle lanes untouched. */
.dojo-lane{position:relative;height:300px;background:linear-gradient(180deg,#17172e,#0d0d1d);overflow:hidden;margin-top:10px;touch-action:manipulation;cursor:pointer;clip-path:polygon(30% 0,70% 0,100% 100%,0 100%)}
.dojo-lane::before{content:"";position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='30,0 70,0 100,100 0,100' fill='none' stroke='rgba(255,255,255,0.38)' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3Cline x1='50' y1='0' x2='50' y2='100' stroke='rgba(255,255,255,0.10)' stroke-width='1.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat}
/* judgement line: a horizontal white line at 2/3 of the lane height (see DOJO_JUST_Y in the game script); the trapezoid clip trims it to the lane's width at that height */
.dojo-lane .dojo-rope{position:absolute;left:0;right:0;top:66.67%;height:3px;margin-top:-1.5px;background:#fff;border-radius:2px;box-shadow:0 0 10px rgba(255,255,255,.9)}
/* judgement zones around the line, in the battle lane's colours: cyan GOOD band, pink ナイス band, gold JUST band (widths are set from the real windows by dojoPaintZones) */
.dojo-lane .dojo-zone{position:absolute;left:0;right:0;pointer-events:none}
.dojo-lane .dojo-zone.zone-good{background:rgba(34,211,238,.5)}
.dojo-lane .dojo-zone.zone-nice{background:rgba(255,110,180,.55)}
.dojo-lane .dojo-zone.zone-crit{background:linear-gradient(180deg,#ffedb0,#ffc81f);box-shadow:0 0 18px rgba(255,200,31,.9),0 0 36px rgba(255,170,0,.45)}
/* markers are falling bars now (the battle lane-bar's shape), coloured by drum kind as before */
.dojo-marker{position:absolute;left:30%;width:40%;height:10px;border-radius:99px;background:linear-gradient(180deg,#fff6c8 0%,#ffe97a 34%,#ffd21f 68%,#f0a500 100%);box-shadow:0 0 14px rgba(255,210,31,.85),0 0 34px rgba(255,170,0,.45),inset 0 1px 0 rgba(255,255,255,.85);box-sizing:border-box;pointer-events:none;transform:translateY(-50%)}
.dojo-marker.snare{background:linear-gradient(180deg,#e8f7ff 0%,#9fdcff 34%,#4db2f0 68%,#2a7fb8 100%);box-shadow:0 0 14px rgba(127,212,255,.85),inset 0 1px 0 rgba(255,255,255,.85)}
.dojo-marker.hat{background:linear-gradient(180deg,#f1eaff 0%,#d9c8ff 34%,#a78bfa 68%,#6a4fc0 100%);box-shadow:0 0 12px rgba(169,139,250,.8),inset 0 1px 0 rgba(255,255,255,.85);height:7px}
.dojo-marker.feint{background:transparent;border:2px dashed #ff8a8a;box-shadow:none;opacity:.85}
.dojo-marker.hit{transform:translateY(-50%) scale(1.04);opacity:0;transition:transform .18s,opacity .18s}
.dojo-count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:64px;font-weight:900;color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.6);pointer-events:none}
/* Judgement feedback is a FIXED-height two-row block: the judge
   word owns the first line, the ms detail the second, each exactly
   one line tall. Showing, changing or clearing the judgement text
   can therefore never move the lane, the strip or the TAP button
   (an over-long detail ellipsizes instead of wrapping taller). */
.dojo-feedback{display:flex;flex-direction:column;justify-content:center;height:54px;margin-top:8px;overflow:hidden}
.dojo-judge{font-size:22px;font-weight:900;line-height:30px;height:30px;white-space:nowrap;overflow:hidden}
.dojo-ms{font-size:14px;font-weight:800;color:#333a5e;line-height:24px;height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#dojoProg{min-height:1.5em}
.dojo-strip{position:relative;height:52px;border-radius:10px;background:#eef0fa;margin-top:6px;overflow:hidden}
.dojo-strip .dojo-strip-center{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#333a5e;opacity:.55}
.dojo-strip .dojo-strip-zone{position:absolute;top:0;bottom:0;left:calc(50% - 4.93%);width:9.86%;background:rgba(217,154,0,.16)}
.dojo-strip-lab{display:flex;justify-content:space-between;font-size:11px;color:#555a75;margin-top:2px}
.dojo-dot{position:absolute;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:#333a5e}
.dojo-dot.crit{background:#d99a00}.dojo-dot.good{background:#3c9a50}.dojo-dot.late{background:#c04545}.dojo-dot.early{background:#2a7fb8}
.dojo-grade-big{font-size:64px;font-weight:900;color:#b77900;line-height:1;text-align:center}
#dojoReward{white-space:pre-line}
#dojoTapBtn{touch-action:manipulation;user-select:none;-webkit-user-select:none}
.train-step-row{display:flex;gap:8px;margin-top:8px}
.train-step-row input{flex:1;min-width:0;font-size:18px;font-weight:800;padding:10px 12px;border:2px solid #c9cdf0;border-radius:12px;background:#fff;color:#14142b}
.train-warn{margin-top:8px;background:#fdeef0;border:2px solid #b3001b;color:#b3001b;border-radius:12px;padding:8px 10px;font-size:13px;font-weight:700;line-height:1.5}

.health-link-btn{margin-top:10px;padding:12px;font-size:15px;background:#1c56c4;box-shadow:0 5px 0 #0e2c66}
.health-guide{margin-top:12px;background:#eef4ff;border:2px solid #b9cdf5;border-radius:12px;padding:12px}
.health-steps{margin:10px 0 0;padding-left:22px;font-size:13.5px;font-weight:700;line-height:1.65;color:#2c3050;text-align:left}
.health-steps li{margin-top:7px}
.health-steps li:first-child{margin-top:0}
.health-copy-box{margin-top:12px;background:#fff;border:2px solid #c9cdf0;border-radius:12px;padding:10px 12px;text-align:left}
.health-copy-label{font-size:12px;font-weight:900;letter-spacing:.06em;color:#4a4e6d}
.health-copy-row{display:flex;gap:8px;align-items:stretch;margin-top:7px}
.health-ask{flex:1;min-width:0;display:flex;align-items:center;font-weight:900;font-size:15px;color:#14142b;background:#f3f4ff;border-radius:10px;padding:9px 12px}
.health-copy-row .mini-btn{flex:none}
.health-copy-state{margin:8px 0 0;font-size:12.5px;font-weight:800;line-height:1.5;color:#1c56c4;min-height:1em}

.face-set-head b{font-size:16px}
.mini-btn{font-size:14px}
html.tx-large .face-set-head b{font-size:18px}
html.tx-large .mini-btn{font-size:16px}

.step-photo{margin-top:12px;background:#fff;border:2px solid #c9cdf0;border-radius:12px;padding:10px 12px;text-align:left}
.step-photo:focus{border-color:#1c56c4;outline:none}
.step-photo img{display:block;max-width:100%;max-height:280px;margin:10px auto 0;border-radius:10px;border:1px solid #c9cdf0}
.step-photo img[hidden]{display:none}
.step-photo-btns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.step-photo-btns .mini-btn{flex:1 1 140px}
.step-photo-btns label.mini-btn{cursor:pointer}

.custom-spot{margin-top:12px;background:#fff;border:2px solid #c9cdf0;border-radius:12px;padding:10px 12px;text-align:left}
.custom-spot-row{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.custom-spot-row input{flex:1 1 150px;min-width:0;font-size:16px;font-weight:800;padding:10px 12px;border:2px solid #c9cdf0;border-radius:12px;background:#fff;color:#14142b;font-family:inherit}
.custom-spot-row .mini-btn{flex:1 1 150px}
.custom-spot-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed #d8daee;font-size:13px;font-weight:800;color:#14142b}
.custom-spot-item span{min-width:0;overflow-wrap:anywhere}
.custom-spot-item .mini-btn{flex:none;padding:7px 10px}
.bg-pass-state{margin-top:6px;text-align:left}
.bg-pass-state:empty{display:none}

.bg-auto-row{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;border:2px solid #c9cdf0;border-radius:12px;background:#fff;color:#14142b;cursor:pointer;font-size:14px;font-weight:900;line-height:1.4;text-align:left}
.bg-auto-row input{width:20px;height:20px;margin:0;flex:none;accent-color:#b77900;cursor:pointer}
.bg-pass-auto-state{margin-top:6px;text-align:left}
.bg-pass-auto-state:empty{display:none}

.trade-panel{margin-top:14px;border:2px solid #c9cdf0;border-radius:14px;padding:12px;background:#f3f4ff;text-align:left}
.trade-label{margin-top:10px;font-size:12px;font-weight:900;letter-spacing:.05em;color:#4a4e6d}
.trade-row{display:flex;gap:8px;margin-top:6px}
.trade-row select,.trade-row input{flex:1;min-width:0;font-size:15px;font-weight:800;padding:10px 12px;border:2px solid #c9cdf0;border-radius:12px;background:#fff;color:#14142b;font-family:inherit}
.trade-row .mini-btn{flex:none;align-self:stretch}

.trade-row input.price-input{flex:1 1 auto;min-width:0;min-height:56px;font-size:18px;font-weight:900;padding:14px 16px;border-width:2.5px;border-color:#9aa3d8;background:#fff}
.trade-row input.price-input:focus{border-color:#1c56c4;outline:3px solid rgba(28,86,196,.25);outline-offset:0}
.trade-row select.price-select{width:100%}
.trade-code-box{margin-top:10px;background:#14142b;border-radius:12px;padding:12px;text-align:center}
.trade-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:24px;font-weight:900;letter-spacing:.14em;color:#ffd21f;word-break:break-all;user-select:all;-webkit-user-select:all}
.trade-code-box .mini-btn{margin-top:9px}
.trade-state{margin:8px 0 0;font-size:13px;font-weight:800;line-height:1.55;color:#1c56c4;min-height:1em}
.trade-state.ok{color:#0a7a3d}
.trade-state.err{color:#b3001b}

.trade-confirm{margin-top:10px;background:#fdeef0;border:2px solid #b3001b;border-radius:12px;padding:10px 12px}
.mini-btn.cur-sel{outline:3px solid #14142b;outline-offset:1px;box-shadow:inset 0 0 0 2px #fff}
.trade-confirm[hidden]{display:none}
.trade-confirm-text{margin:0;font-size:13.5px;font-weight:800;line-height:1.6;color:#7a0013}

.walk-map{height:280px;margin-top:10px;border:2px solid #c9cdf0;border-radius:12px;z-index:0;background:#dfe8d8}
.walk-map-fallback{display:flex;align-items:center;justify-content:center;height:100%;padding:14px;font-size:13px;font-weight:800;line-height:1.6;color:#4a4e6d;text-align:center}

.walk-follow-btn{display:block;width:100%;margin-top:8px;padding:11px 12px;border-radius:12px;border:2px solid #0e2c66;background:#1c56c4;color:#fff;font-family:inherit;font-size:14px;font-weight:900;line-height:1.3;box-shadow:0 4px 0 #0e2c66;cursor:pointer}
.walk-follow-btn[hidden]{display:none}
.walk-follow-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #0e2c66}

.rw-music{margin-top:12px;border-top:2px dashed #c9cdf0;padding-top:10px;text-align:left}
.rw-music-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.rw-music-btns .mini-btn{flex:1 1 auto}
.rw-music-btns .mini-btn[hidden]{display:none}
.walk-stats{display:flex;justify-content:space-between;gap:8px;margin-top:10px;background:#fff;border:2px solid #c9cdf0;border-radius:12px;padding:9px 12px}
.walk-stats span{font-size:11px;font-weight:900;color:#4a4e6d;letter-spacing:.04em;display:flex;flex-direction:column;gap:1px}
.walk-stats b{font-size:17px;font-weight:900;color:#14142b;font-variant-numeric:tabular-nums}
.walk-status{margin:10px 0 0;font-size:13.5px;font-weight:800;line-height:1.6;color:#1c56c4;text-align:center;min-height:1.6em}
.walk-status.on{color:#0a7a3d}
.walk-status.err{color:#b3001b}
.walk-acc{margin:4px 0 0;font-size:11.5px;font-weight:800;line-height:1.5;color:#4a4e6d;text-align:center;font-variant-numeric:tabular-nums;min-height:1.5em}
.walk-btns{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.walk-locate{padding:12px;font-size:15px;background:#1c56c4;box-shadow:0 5px 0 #0e2c66}
.walk-start{padding:12px;font-size:15px;background:#0a7a3d;box-shadow:0 5px 0 #064d26}
.walk-start.stop{background:#b3001b;box-shadow:0 5px 0 #6d0010}
.walk-spots{margin-top:10px;background:#fff8e1;border:2px solid #e8c96a;border-radius:12px;padding:9px 12px;font-size:13px;font-weight:800;line-height:1.6;color:#14142b;text-align:left}
.move-block-note{position:fixed;left:50%;top:14px;transform:translateX(-50%);z-index:300;background:#14142b;color:#fff;border:2px solid #ffd21f;border-radius:14px;padding:12px 16px;font-weight:900;font-size:14px;line-height:1.5;box-shadow:0 10px 24px rgba(0,0,0,.45);max-width:92vw;text-align:center;pointer-events:none}
.move-block-note[hidden]{display:none}
.stamp-panel{margin-top:10px;background:#fff8e1;border:2px solid #e8c96a;border-radius:12px;padding:9px 12px;font-size:13px;font-weight:800;line-height:1.6;color:#14142b;text-align:left}
.stamp-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.stamp-head b{font-size:14px}
.stamp-head span{color:#8a6d1a}
.stamp-row{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px dashed rgba(138,109,26,.35)}

.stamp-row span{min-width:0}
.stamp-row b{white-space:nowrap;color:#8a6d1a}
.stamp-row.got b{color:#1d7a3a}
.stamp-row-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:3px}
.spot-nav-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:999px;background:#1c56c4;color:#fff;font-size:13px;font-weight:900;line-height:1.25;text-decoration:none;border:2px solid #0e2c66;box-shadow:0 3px 0 #0e2c66;font-family:inherit;white-space:nowrap;cursor:pointer}
.spot-nav-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #0e2c66}
.custom-spot-item .spot-nav-btn{flex:none;padding:7px 12px;font-size:12.5px}
.leaflet-popup-content a.spot-nav-btn{color:#fff;margin-top:7px}
.stamp-note{margin-top:6px;font-size:12px;color:#5c5326;line-height:1.55}
.stamp-panel.complete{border-color:#d9a416;background:linear-gradient(180deg,#fff6cf,#ffe98a);box-shadow:0 0 0 2px rgba(217,164,22,.35),0 6px 18px rgba(217,164,22,.35)}
.stamp-panel.complete .stamp-head b{color:#7a5a00}

.stamp-celebrate{position:fixed;inset:0;z-index:460;display:flex;align-items:center;justify-content:center;background:rgba(10,10,30,.58);padding:18px}
.stamp-celebrate[hidden]{display:none}
.stamp-celebrate-card{position:relative;z-index:1;width:100%;max-width:360px;background:linear-gradient(165deg,#262640,#12121f);border:3px solid #ffd21f;border-radius:18px;box-shadow:0 0 28px rgba(255,210,31,.55),0 16px 34px rgba(0,0,0,.5);color:#fff;text-align:center;padding:26px 20px 20px;overflow:hidden;animation:stampCelebratePop .45s cubic-bezier(.2,1.4,.4,1)}
@keyframes stampCelebratePop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
.stamp-celebrate-trophy{font-size:64px;line-height:1.1}
.stamp-celebrate-title{font-size:24px;font-weight:900;letter-spacing:.03em;margin-top:6px;line-height:1.35}
.stamp-celebrate-sub{font-size:13.5px;font-weight:800;line-height:1.65;color:#ffe98a;margin-top:8px}
.stamp-celebrate-close{margin-top:16px;padding:11px 26px;border-radius:999px;border:2px solid #14142b;background:linear-gradient(160deg,#ffe45e,#ffb800);color:#231a00;font-family:inherit;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.35)}
.stamp-celebrate-close:active{transform:scale(.97)}
.stamp-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.stamp-confetti i{position:absolute;top:-14px;width:8px;height:13px;border-radius:2px;opacity:.95;animation:stampConfettiFall 2.6s ease-in forwards}
@keyframes stampConfettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}85%{opacity:1}100%{transform:translateY(112vh) rotate(560deg);opacity:0}}
@media (prefers-reduced-motion: reduce){.stamp-celebrate-card{animation:none}.stamp-confetti{display:none}}

.stamp-toast{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translateX(-50%);z-index:455;display:flex;align-items:center;gap:10px;background:linear-gradient(165deg,#262640,#12121f);color:#fff;border:2.5px solid #ffd21f;border-radius:999px;padding:9px 18px 9px 12px;box-shadow:0 0 18px rgba(255,210,31,.5),0 10px 22px rgba(0,0,0,.45);max-width:94vw;pointer-events:none}
.stamp-toast[hidden]{display:none}
.stamp-toast-icon{font-size:30px;line-height:1;display:inline-block;animation:stampPress .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes stampPress{0%{transform:scale(2.1) rotate(-18deg);opacity:0}55%{transform:scale(.88) rotate(3deg);opacity:1}100%{transform:scale(1) rotate(0deg);opacity:1}}
.stamp-toast-text{font-weight:900;font-size:14px;line-height:1.4;min-width:0}
.stamp-toast-text small{display:block;font-size:12px;color:#ffe98a;font-weight:900;overflow-wrap:anywhere}
@media (prefers-reduced-motion: reduce){.stamp-toast-icon{animation:none}}

.walk-nav-toast{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translateX(-50%);z-index:456;display:flex;align-items:center;gap:8px;background:linear-gradient(165deg,#0d3b22,#0a5c2e);color:#fff;border:2.5px solid #2ed573;border-radius:999px;padding:10px 20px;box-shadow:0 0 18px rgba(46,213,115,.5),0 10px 22px rgba(0,0,0,.45);max-width:94vw;pointer-events:none;font-weight:900;font-size:15px;line-height:1.4;text-align:center;white-space:nowrap}
.walk-nav-toast[hidden]{display:none}

.speed-blank{position:fixed;inset:0;z-index:1000;background:#000;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;touch-action:none}
.speed-blank[hidden]{display:none}
.speed-blank-title{font-size:32px;font-weight:900;letter-spacing:.02em;line-height:1.45}
.speed-blank-sub{font-size:16px;font-weight:800;line-height:1.6;color:#c7c9e8}
.weekly-panel{margin-top:14px;border:2px solid #d9a416;border-radius:18px;background:#fffdf4;padding:11px 12px;text-align:left;color:#14142b}
.weekly-panel:empty{display:none}

.wk-head{display:flex;flex-direction:column;align-items:flex-start;gap:1px;margin-bottom:5px}
.wk-head b{font-size:16px}
.wk-head span{font-size:11.5px;font-weight:800;color:#8a6d1a;white-space:normal;line-height:1.5}
.wk-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;border-bottom:1px dashed rgba(217,164,22,.4);font-size:13.5px;font-weight:800}
.wk-row:last-child{border-bottom:none}
.wk-row span{min-width:0}
.wk-row b{white-space:nowrap;color:#8a6d1a}
.wk-row.done{color:#1d7a3a}
.wk-row.done b{color:#1d7a3a}

.gem-shop{margin-top:18px;text-align:left}
.gem-packs{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.gem-pack{display:flex;align-items:center;justify-content:space-between;gap:10px;border:2px solid #c9cdf0;border-radius:14px;padding:10px 12px;background:#fbfbff;color:#14142b}
.gem-pack>div{min-width:0}
.gem-pack b{font-size:16px}
.gem-pack span{display:block;font-size:12px;font-weight:700;color:#4a4e6d;margin-top:2px}
.gem-pack .mini-btn{flex:none}

.wallet-line{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1px;text-align:left}
.wallet-line>b{text-align:left}
#titlesTitle{flex:none;text-align:left}
.price-row{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1px;text-align:left}
.rec-meta{flex-direction:column;gap:2px;text-align:left}
.train-points{flex-direction:column;align-items:flex-start;justify-content:flex-start}
.walk-stats{flex-direction:column;gap:6px}
.stamp-row{flex-direction:column;gap:0;text-align:left}
.wk-row{flex-direction:column;align-items:flex-start;gap:0;text-align:left}
.face-set-head,.bout-head,.stamp-head,.tech-cat-head{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1px;text-align:left}

.wallet-line>*,.price-row>*,.rec-meta>*,.train-points>*,.walk-stats>*,.stamp-row>*,.wk-row>*,.face-set-head>*,.bout-head>*,.stamp-head>*,.tech-cat-head>*{flex:none}

.bout-head b,.bout-head span{flex:none}

#achList{display:block;text-align:left}
.ach-sec-head{font-size:21px;font-weight:900;color:#ffe9a8;margin:18px 0 2px;padding-bottom:4px;border-bottom:2px solid rgba(216,178,90,.55);text-align:left}
.ach-sec-head:first-of-type{margin-top:12px}
.ach-cat-head{font-size:14.5px;font-weight:900;color:#f3d98a;margin:12px 0 6px;text-align:left}
.ach-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}
.ach-status{display:flex;flex-direction:column;gap:3px;background:rgba(255,246,223,.08);border:1.5px solid rgba(216,178,90,.5);border-radius:10px;padding:10px 12px;margin-top:10px;font-size:13px;line-height:1.55;color:#fdf6df;text-align:left}
.ach-status b{font-size:14.5px;color:#ffe9a8}
.ach-status .ach-reward-note{color:#ffe9a8;font-weight:800}
.medal-bonus{display:block;font-size:12px;font-weight:800;color:#0a7a3d;line-height:1.5}
.medal-reward{display:block;font-size:12px;font-weight:800;color:#8a5a2a;line-height:1.5}
.equip-btn{margin-top:6px;font-family:inherit;font-size:12.5px;font-weight:900;padding:6px 14px;border-radius:999px;border:2px solid #7d5f1e;background:linear-gradient(180deg,#ffd873,#e3bc55);color:#241a04;cursor:pointer}
.equip-btn:active{transform:translateY(1px)}
.equipped-tag{display:inline-block;margin-top:6px;font-size:12px;font-weight:900;color:#0a7a3d}
.gem-badge{display:inline-block;font-size:11px;font-weight:900;border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:2px}
.gem-badge.first{background:#ff5f9e;color:#fff}
.gem-badge.best{background:#ffd21f;color:#14142b;border:1.5px solid #14142b}

#passBody{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.pass-bar{height:12px;border-radius:999px;background:#e6e8f5;border:2px solid #c9cdf0;overflow:hidden;margin:8px 0 4px}
.pass-bar>i{display:block;height:100%;background:#ff8c42;border-radius:999px}
.pass-done{color:#0a7a3d;font-weight:900}
.ad-proto{margin-top:16px;text-align:left;border:2px dashed #b9a44a;border-radius:14px;padding:12px;background:#fffdf2}
.ad-panel{margin-top:10px;border:2px solid #14142b;border-radius:12px;padding:14px 12px;text-align:center;background:#fdfdff;color:#14142b}
.ad-panel .ad-fake{font-size:21px;font-weight:900;line-height:1.35}
.ad-panel .ad-count{font-size:15px;font-weight:900;margin-top:8px}
.ad-watermark{display:inline-block;font-size:11px;font-weight:900;color:#b3001b;border:2px solid #b3001b;border-radius:6px;padding:1px 7px;transform:rotate(-4deg);margin-bottom:8px}

@keyframes noteFloat{0%,100%{transform:translateY(0);opacity:.95}50%{transform:translateY(-4px);opacity:.55}}
.room-note{animation:noteFloat 1.6s ease-in-out infinite}
.room-note.d2{animation-delay:.8s}
@media (prefers-reduced-motion: reduce){.room-note{animation:none}}

.home-scene{margin-top:14px;border:2px solid #e2e4f2;border-radius:14px;overflow:hidden;line-height:0;background:#a8dcff}
.home-scene svg{display:block;width:100%;height:auto}
.home-cat-head{font-weight:900;font-size:15px;color:#14142b;margin-top:10px;text-align:left}

.sale-off{color:#d6336c;font-weight:900}

.room-scene{margin-top:14px;border:2px solid #e2e4f2;border-radius:14px;overflow:hidden;line-height:0;background:#f6e7d3}
.room-scene svg{display:block;width:100%;height:auto}

.home-scene,.room-scene{touch-action:pan-y;-webkit-user-select:none;user-select:none}
.home-scene.zoomed,.room-scene.zoomed{touch-action:none}
.home-scene.zoomed svg,.room-scene.zoomed svg{cursor:grab}
.scene-zoom-hint{text-align:center;font-size:18px}
html.tx-large .scene-zoom-hint{font-size:20.25px}
#titleScreen .note.scene-zoom-hint{font-size:20.25px}

#titleScreen{touch-action:pan-y}
#titleScreen.zoomed{touch-action:none}
#titleScreen.zoomed .card{cursor:grab}

#achScreen{touch-action:pan-y}
#achScreen.zoomed{touch-action:none}
#achScreen.zoomed .card{cursor:grab}

#workshopScreen{touch-action:pan-y}
#workshopScreen.zoomed{touch-action:none}
#workshopScreen.zoomed .card{cursor:grab}

.title-zoom-reset,.ach-zoom-reset,.ws-zoom-reset{position:absolute;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:50;padding:11px 18px;border-radius:999px;border:2px solid #14142b;background:linear-gradient(180deg,#ffe45e,#ffb800);color:#14142b;font-family:inherit;font-weight:900;font-size:14px;letter-spacing:.03em;box-shadow:0 4px 12px rgba(0,0,0,.45);cursor:pointer}
.title-zoom-reset:active,.ach-zoom-reset:active,.ws-zoom-reset:active{transform:scale(.96)}

.title-topbar{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.title-topbar-hint{flex:1;min-width:0;margin:0;font-size:18.75px;font-weight:700;color:#4a4e6d;line-height:1.4;text-align:left}
.title-lang-btn{flex:none;min-height:38px;padding:8px 14px;border-radius:999px;border:2px solid #14142b;background:#f3f4ff;color:#14142b;font-family:inherit;font-size:13.5px;font-weight:900;cursor:pointer;box-shadow:0 3px 0 #14142b;white-space:nowrap}
.title-lang-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #14142b}
@keyframes roomBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.room-bob{animation:roomBob 1.1s ease-in-out infinite}
@keyframes bagSway{0%,100%{transform:rotate(2.2deg)}50%{transform:rotate(-2.2deg)}}
.bag-sway{transform-box:fill-box;transform-origin:50% 0;animation:bagSway 1.8s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.room-bob,.bag-sway{animation:none}}
.tstat{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px dashed #d8daee}
.tstat:last-child{border-bottom:none}
.tstat-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left}
.tstat-main b{font-size:15px;font-weight:900}
.tstat-main span{font-size:12px;font-weight:700;color:#4a4e6d;line-height:1.45}
.tstat .mini-btn{flex:none}
.mini-btn:disabled{opacity:.4;cursor:not-allowed}

.lang-select{margin:16px 0 2px}
.lang-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:8px}
.lang-options[hidden]{display:none}
.lang-btn{min-width:0;padding:11px 6px;border-radius:12px;border:2px solid #c9cdf0;background:#f3f4ff;color:#14142b;font-size:14px;font-weight:800;cursor:pointer;font-family:inherit}
.lang-btn.sel{border-color:#14142b;background:#ffd21f;color:#14142b;box-shadow:0 3px 0 #14142b}
.lang-btn:active{transform:translateY(2px)}

.fold-open{width:100%;display:flex;align-items:center;gap:10px;padding:14px;border-radius:16px;border:2px solid #14142b;background:linear-gradient(180deg,#26264e,#14142b);color:#fff;font-weight:900;font-size:16px;cursor:pointer;font-family:inherit;box-shadow:0 4px 0 #05050f;text-align:left}
.fold-open b{color:#ffd21f;font-size:16px}
.fold-open:active{transform:translateY(2px);box-shadow:0 2px 0 #05050f}
.fold-caret{margin-left:auto;font-size:14px;transition:transform .15s ease}
.fold-open.open .fold-caret{transform:rotate(180deg)}
.settings-panel{margin-top:4px}
.settings-panel[hidden]{display:none}

.health-open-btn{display:block;margin-top:10px;padding:12px;font-size:15px;text-align:center;text-decoration:none;background:#1c56c4;box-shadow:0 5px 0 #0e2c66}

.arena{justify-content:flex-start}
.stage{flex:none}
.tap-btn{flex:none}
.message{flex:0 0 auto;min-height:38px;height:38px}
.hud-sub{height:44px}
.hype-row{height:24px}

.light-set{margin:0 0 12px}
.light-check{display:flex;gap:10px;align-items:flex-start;background:#eef6ee;border:1.5px solid #b9d8b9;border-radius:12px;padding:11px 12px;cursor:pointer;color:#14142b}
.light-check input{width:20px;height:20px;flex:0 0 auto;margin:1px 0 0;accent-color:#1e7b34}
.light-check span{font-size:13px;font-weight:800;line-height:1.5}
.light-check span small{display:block;font-size:11px;color:#5c665e;font-weight:700}
.stream-title-check{margin:2px 0 10px;width:100%}
body.light-mode .screen{backdrop-filter:none;-webkit-backdrop-filter:none}
body.light-mode .crowd{filter:none}
body.light-mode .arena::before{filter:none}
body.light-mode .stage::before{filter:none}
body.light-mode .fg-blur{display:none}
body.light-mode .dust{display:none}
body.light-mode .game-logo::before,body.light-mode .game-logo::after{display:none}
body.light-mode .spot{opacity:.3}
body.light-mode .card{box-shadow:0 8px 18px rgba(0,0,0,.28)}
body.light-mode .hirameki-banner,body.light-mode .chance-banner,body.light-mode .serious-banner{box-shadow:0 4px 10px rgba(0,0,0,.35)}
body.light-mode .ougi-banner{box-shadow:0 0 0 2px rgba(10,10,20,.5),0 4px 10px rgba(0,0,0,.35)}
body.light-mode .fighter.chance-time{filter:none}
body.light-mode #fighter.opp-kaiser,body.light-mode #fighter.opp-no1,body.light-mode #fighter.opp-ganji.is-ganji.serious{filter:none}
body.light-mode .arena[data-crowd="1"] .person,body.light-mode .arena[data-crowd="2"] .person,body.light-mode .arena[data-crowd="3"] .person{animation:none}
body.light-mode .fighter{animation:none}
body.light-mode .second{animation:none}
body.light-mode .feint-row.armed .feint-stock{animation:none}
body.light-mode #fighter.opp-ganji.is-ganji.serious .bindi{animation:none}
body.light-mode #fighter.opp-raiga.is-raiga.beast{filter:none}
body.light-mode .beast-banner{box-shadow:0 4px 10px rgba(0,0,0,.35)}
body.light-mode .mode-banner{box-shadow:0 4px 10px rgba(0,0,0,.35)}
body.light-mode #fighter.opp-no1.omni,body.light-mode #fighter.opp-ganji.is-ganzou.daibutsu,body.light-mode #fighter.bolt-charge{filter:none}
body.light-mode .bolt-fx.show{animation:none;opacity:.9}
body.light-mode .player .p-glove{animation:none}
body.light-mode .player.fx-fire .p-glove.left .glove-svg,body.light-mode .player.fx-fire .p-glove.right .glove-svg,body.light-mode .player.fx-gold .p-glove.left .glove-svg,body.light-mode .player.fx-gold .p-glove.right .glove-svg,body.light-mode .player.fx-fusion .p-glove.left .glove-svg,body.light-mode .player.fx-fusion .p-glove.right .glove-svg{filter:none}
body.light-mode .player.fx-fire .glove-svg,body.light-mode .player.fx-gold .glove-svg,body.light-mode .player.fx-fusion .glove-svg{animation:none !important}
body.light-mode .player .elem-fx .fl{animation:none !important}
body.light-mode .p-glove{filter:drop-shadow(0 4px 0 rgba(0,0,0,.2))}

.message{flex:0 0 auto;height:38px;min-height:38px;max-height:38px;margin-top:6px;padding:6px 12px;display:block;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message small{display:none !important}
.quit-btn{flex:none;margin-left:2px;height:24px;padding:4px 8px;border-radius:999px;border:1.5px solid rgba(255,255,255,.45);background:rgba(255,255,255,.10);color:#fff;font-size:10.5px;font-weight:900;letter-spacing:.02em;white-space:nowrap;line-height:1;cursor:pointer;font-family:inherit}
.quit-btn:active{background:rgba(255,255,255,.28)}
#youName{display:block;max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.int-row>span.you-name-label{flex:0 1 auto;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.name-row{margin-top:10px}
.name-row input{width:100%;padding:11px 12px;border-radius:12px;border:2px solid #c9cdf0;background:#fff;color:#14142b;font-size:15px;font-weight:800;font-family:inherit}
.name-row input:focus{outline:none;border-color:#14142b}


.arena.fx-hitstop #fighter,.arena.fx-hitstop #fighter *,.arena.fx-hitstop #player,.arena.fx-hitstop #player *{animation-play-state:paused !important}

#stage.fx-shake{animation:fxShakeA .18s linear}
#stage.fx-shake-big{animation:fxShakeB .26s linear}
@keyframes fxShakeA{0%,100%{transform:translate(0,0)}25%{transform:translate(2px,-1px)}55%{transform:translate(-2px,1px)}80%{transform:translate(1px,0)}}
@keyframes fxShakeB{0%,100%{transform:translate(0,0)}20%{transform:translate(3px,-2px)}45%{transform:translate(-3px,2px)}70%{transform:translate(2px,1px)}88%{transform:translate(-1px,0)}}

.fx-focus{position:absolute;inset:-14px;z-index:6;pointer-events:none;opacity:0;background:repeating-conic-gradient(from 0deg at 50% 42%,rgba(235,242,255,.5) 0deg 1.6deg,transparent 1.6deg 8deg);-webkit-mask-image:radial-gradient(circle at 50% 42%,transparent 54%,#000 80%);mask-image:radial-gradient(circle at 50% 42%,transparent 54%,#000 80%)}
.fx-focus.show{animation:fxFocus .3s ease-out}
@keyframes fxFocus{0%{opacity:0}22%{opacity:.55}100%{opacity:0}}

.fx-parts{position:absolute;width:0;height:0;z-index:9;pointer-events:none}
.fx-parts span{position:absolute;left:-2px;top:-2px;width:5px;height:5px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:rgba(190,226,255,.95);box-shadow:0 0 4px rgba(150,205,255,.75);opacity:0;animation:fxPartFly .5s ease-out forwards;animation-delay:var(--dl,0s)}
.fx-parts.big span{background:rgba(255,236,170,.95);box-shadow:0 0 5px rgba(255,205,80,.8)}
@keyframes fxPartFly{0%{opacity:1;transform:translate(0,0) scale(1)}70%{opacity:1}100%{opacity:0;transform:translate(var(--dx,30px),var(--dy,20px)) scale(.35)}}

.fx-sweat{position:absolute;width:0;height:0;z-index:9;pointer-events:none}
.fx-sweat span{position:absolute;left:-3px;top:-3px;width:var(--sz,6px);height:var(--sz,6px);background:rgba(150,205,255,.95);border-radius:0 50% 50% 50%;box-shadow:0 0 3px rgba(150,205,255,.7);opacity:0;animation:fxSweatFly .62s ease-out forwards;animation-delay:var(--dl,0s)}
@keyframes fxSweatFly{0%{opacity:1;transform:translate(0,0) rotate(45deg) scale(.7)}30%{opacity:1;transform:translate(calc(var(--dx,30px)*.7),var(--dyu,-16px)) rotate(45deg) scale(1)}100%{opacity:0;transform:translate(var(--dx,30px),var(--dyd,34px)) rotate(45deg) scale(.85)}}

.arena.fx-crowd-max .person{animation:crowdJump .3s ease-in-out infinite;animation-delay:var(--d,0s)}
.arena.fx-crowd-max .person .arm{opacity:1}
.arena.fx-crowd-max .person .arm.l{transform:rotate(158deg)}
.arena.fx-crowd-max .person .arm.r{transform:rotate(-158deg)}
.fx-flashes{position:absolute;top:0;left:0;right:0;height:132px;z-index:5;pointer-events:none}
.fx-flashes span{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:radial-gradient(circle,#fff 0 18%,rgba(210,230,255,.75) 42%,rgba(210,230,255,0) 72%);opacity:0}
.fx-flashes.show span{animation:fxFlashBlink .9s ease-out forwards;animation-delay:var(--dl,0s)}
@keyframes fxFlashBlink{0%,55%,100%{opacity:0}12%,68%{opacity:.95}30%,82%{opacity:.15}}

.fx-pinch{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;box-shadow:inset 0 0 52px 16px rgba(255,32,44,.5);transition:opacity .35s ease}
.arena.fx-pinch-on .fx-pinch{opacity:.55;animation:fxPinchPulse 1.15s ease-in-out infinite}
@keyframes fxPinchPulse{0%,100%{opacity:.38}50%{opacity:.8}}
@media (prefers-reduced-motion: reduce){
  #stage.fx-shake,#stage.fx-shake-big{animation:none}
  .fx-focus.show{animation:none;opacity:0}
  .arena.fx-pinch-on .fx-pinch{animation:none;opacity:.5}
  .fx-flashes.show span{animation:none;opacity:0}
}
body.light-mode .fx-focus{display:none}
body.light-mode .fx-flashes{display:none}

#fighter.strike{transition-timing-function:cubic-bezier(.3,.72,.3,1)}
#fighter.strike .glove{transition-timing-function:cubic-bezier(.25,.8,.3,1)}
#fighter.whiff{transition-timing-function:cubic-bezier(.3,.75,.3,1)}
#fighter.whiff .glove.left{transition-timing-function:cubic-bezier(.3,.75,.3,1)}
#fighter.wind{transition-timing-function:cubic-bezier(.3,.65,.3,1)}
#fighter.wind .glove{transition-duration:.3s;transition-timing-function:cubic-bezier(.3,.85,.35,1)}
#fighter .glove{will-change:transform}
#fighter.recover:not(.down){animation:none}
#fighter.recover{transition:transform .36s cubic-bezier(.25,.8,.3,1)}
#fighter.recover .glove{transition:transform .36s cubic-bezier(.25,.8,.3,1)}
#fighter.recover .torso{transition:transform .44s cubic-bezier(.25,.8,.3,1)}
#fighter.strike.pt-hook-l .glove.left,#fighter.strike.pt-hook-r .glove.right{animation-timing-function:cubic-bezier(.48,.04,.72,.38)}
#fighter.strike.pt-hook-l .glove.left::before,#fighter.strike.pt-hook-r .glove.right::before{animation-timing-function:cubic-bezier(.48,.04,.72,.38)}
#fighter.strike.pt-hook-l .glove.left::after,#fighter.strike.pt-hook-r .glove.right::after{animation-timing-function:cubic-bezier(.48,.04,.72,.38)}

#fighter:not(.down):not(.rising) .legs{transform-origin:50% 100%}
#fighter:not(.down):not(.rising) .leg{transform-origin:50% 100%}
#fighter.attacking .legs{transform:translateY(0) scaleY(.95) scaleX(.98);filter:brightness(.96)}
#fighter.strike .legs,#fighter.whiff .legs{transform:translateY(0) scaleY(.92) scaleX(.97);filter:brightness(.93);-webkit-mask-image:none;mask-image:none}
#fighter.recover:not(.down) .legs{transform:translateY(0) scaleY(.97);transition:transform .36s cubic-bezier(.25,.8,.3,1)}
#fighter.recover .leg{animation:none}
#fighter.recover .leg .shin{animation:none}
#fighter.attacking .boxing-shoe,#fighter.recover:not(.down) .boxing-shoe{box-shadow:inset 0 -4px 0 rgba(0,0,0,.28),0 3px 3px rgba(0,0,0,.4)}
#fighter.attacking .legs::before,#fighter.attacking .legs::after,
#fighter.recover:not(.down) .legs::before,#fighter.recover:not(.down) .legs::after{
  content:"";position:absolute;bottom:-3px;width:88px;height:11px;border-radius:50%;
  background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(6,8,20,.5),rgba(6,8,20,0) 70%);z-index:-1;pointer-events:none}
#fighter.attacking .legs::before,#fighter.recover:not(.down) .legs::before{left:-4px}
#fighter.attacking .legs::after,#fighter.recover:not(.down) .legs::after{right:-4px}
#fighter.strike .legs::before,#fighter.strike .legs::after,
#fighter.whiff .legs::before,#fighter.whiff .legs::after{background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(6,8,20,.62),rgba(6,8,20,0) 70%)}


#fighter.attacking.pt-jab .leg:first-child,
#fighter.attacking.pt-hook-l .leg:first-child,
#fighter.attacking.pt-upper-l .leg:first-child,
#fighter.attacking.pt-upper-r .leg:first-child,
#fighter.attacking.pt-smash-l .leg:first-child,
#fighter.attacking.pt-chop-r .leg:first-child{z-index:2}
#fighter.attacking.pt-jab .leg:first-child .thigh,
#fighter.attacking.pt-hook-l .leg:first-child .thigh,
#fighter.attacking.pt-upper-l .leg:first-child .thigh,
#fighter.attacking.pt-upper-r .leg:first-child .thigh,
#fighter.attacking.pt-smash-l .leg:first-child .thigh,
#fighter.attacking.pt-chop-r .leg:first-child .thigh{width:86px;left:-3px}
#fighter.attacking.pt-jab .leg:first-child .lower-leg,
#fighter.attacking.pt-hook-l .leg:first-child .lower-leg,
#fighter.attacking.pt-upper-l .leg:first-child .lower-leg,
#fighter.attacking.pt-upper-r .leg:first-child .lower-leg,
#fighter.attacking.pt-smash-l .leg:first-child .lower-leg,
#fighter.attacking.pt-chop-r .leg:first-child .lower-leg{width:60px;left:10px}
#fighter.attacking.pt-jab .leg:first-child .boxing-shoe,
#fighter.attacking.pt-hook-l .leg:first-child .boxing-shoe,
#fighter.attacking.pt-upper-l .leg:first-child .boxing-shoe,
#fighter.attacking.pt-upper-r .leg:first-child .boxing-shoe,
#fighter.attacking.pt-smash-l .leg:first-child .boxing-shoe,
#fighter.attacking.pt-chop-r .leg:first-child .boxing-shoe{width:102px;left:-11px}
#fighter.attacking.pt-jab .leg:last-child .thigh,
#fighter.attacking.pt-hook-l .leg:last-child .thigh,
#fighter.attacking.pt-upper-l .leg:last-child .thigh,
#fighter.attacking.pt-upper-r .leg:last-child .thigh,
#fighter.attacking.pt-smash-l .leg:last-child .thigh,
#fighter.attacking.pt-chop-r .leg:last-child .thigh{width:67px;left:7px}
#fighter.attacking.pt-jab .leg:last-child .lower-leg,
#fighter.attacking.pt-hook-l .leg:last-child .lower-leg,
#fighter.attacking.pt-upper-l .leg:last-child .lower-leg,
#fighter.attacking.pt-upper-r .leg:last-child .lower-leg,
#fighter.attacking.pt-smash-l .leg:last-child .lower-leg,
#fighter.attacking.pt-chop-r .leg:last-child .lower-leg{width:45px;left:18px}
#fighter.attacking.pt-jab .leg:last-child .boxing-shoe,
#fighter.attacking.pt-hook-l .leg:last-child .boxing-shoe,
#fighter.attacking.pt-upper-l .leg:last-child .boxing-shoe,
#fighter.attacking.pt-upper-r .leg:last-child .boxing-shoe,
#fighter.attacking.pt-smash-l .leg:last-child .boxing-shoe,
#fighter.attacking.pt-chop-r .leg:last-child .boxing-shoe{width:82px;left:-1px}
#fighter.attacking.pt-straight .leg:last-child,
#fighter.attacking.pt-hook-r .leg:last-child,
#fighter.attacking.pt-smash-r .leg:last-child{z-index:2}
#fighter.attacking.pt-straight .leg:last-child .thigh,
#fighter.attacking.pt-hook-r .leg:last-child .thigh,
#fighter.attacking.pt-smash-r .leg:last-child .thigh{width:86px;left:-3px}
#fighter.attacking.pt-straight .leg:last-child .lower-leg,
#fighter.attacking.pt-hook-r .leg:last-child .lower-leg,
#fighter.attacking.pt-smash-r .leg:last-child .lower-leg{width:60px;left:10px}
#fighter.attacking.pt-straight .leg:last-child .boxing-shoe,
#fighter.attacking.pt-hook-r .leg:last-child .boxing-shoe,
#fighter.attacking.pt-smash-r .leg:last-child .boxing-shoe{width:102px;left:-11px}
#fighter.attacking.pt-straight .leg:first-child .thigh,
#fighter.attacking.pt-hook-r .leg:first-child .thigh,
#fighter.attacking.pt-smash-r .leg:first-child .thigh{width:67px;left:7px}
#fighter.attacking.pt-straight .leg:first-child .lower-leg,
#fighter.attacking.pt-hook-r .leg:first-child .lower-leg,
#fighter.attacking.pt-smash-r .leg:first-child .lower-leg{width:45px;left:18px}
#fighter.attacking.pt-straight .leg:first-child .boxing-shoe,
#fighter.attacking.pt-hook-r .leg:first-child .boxing-shoe,
#fighter.attacking.pt-smash-r .leg:first-child .boxing-shoe{width:82px;left:-1px}

#fighter:not(.attacking):not(.down) .leg:first-child{z-index:2}
#fighter:not(.attacking):not(.down) .leg:first-child .thigh{width:84px;left:-2px}
#fighter:not(.attacking):not(.down) .leg:first-child .lower-leg{width:58px;left:11px}
#fighter:not(.attacking):not(.down) .leg:first-child .boxing-shoe{width:99px;left:-9px}
#fighter:not(.attacking):not(.down) .leg:last-child{z-index:0}
#fighter:not(.attacking):not(.down) .leg:last-child .thigh{width:69px;left:6px}
#fighter:not(.attacking):not(.down) .leg:last-child .lower-leg{width:46px;left:17px}
#fighter:not(.attacking):not(.down) .leg:last-child .boxing-shoe{width:84px;left:-2px}

#fighter:not(.down) .legs{gap:20px;margin-left:-5px}

body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising):not(.sway):not(.chance-stagger):not(.rush-frozen):not(.recover) .torso{animation:torsoSwayOff calc(var(--beat-ms)*2) ease-in-out infinite}
@keyframes torsoSwayOff{0%,100%{transform:rotate(0deg)}25%{transform:rotate(1.15deg)}50%{transform:rotate(0deg)}75%{transform:rotate(-1.15deg)}}
body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising):not(.sway):not(.chance-stagger):not(.rush-frozen):not(.recover){animation:bobOff calc(var(--beat-ms)*2) ease-in-out infinite}
@keyframes bobOff{0%,100%{transform:translateY(0) rotate(-1.1deg) scale(1)}25%{transform:translateY(-6px) rotate(.2deg) scale(1.008)}50%{transform:translateY(0) rotate(1.1deg) scale(1)}75%{transform:translateY(-6px) rotate(.2deg) scale(1.008)}}
body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child{animation:legStepOffL calc(var(--beat-ms)*2) ease-in-out infinite}
body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:last-child{animation:legStepOffR calc(var(--beat-ms)*2) ease-in-out infinite;animation-delay:calc(var(--beat-ms)*-1)}
@keyframes legStepOffL{0%,100%{transform:rotate(3deg) translateY(0)}25%{transform:rotate(5deg) translateY(-6px) scaleY(.94)}50%,88%{transform:rotate(3deg) translateY(0)}}
@keyframes legStepOffR{0%,100%{transform:rotate(-3deg) translateY(0)}25%{transform:rotate(-5deg) translateY(-6px) scaleY(.94)}50%,88%{transform:rotate(-3deg) translateY(0)}}
body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child .shin{animation:shinStepOffL calc(var(--beat-ms)*2) ease-in-out infinite}
body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:last-child .shin{animation:shinStepOffR calc(var(--beat-ms)*2) ease-in-out infinite;animation-delay:calc(var(--beat-ms)*-1)}
@keyframes shinStepOffL{0%,100%{transform:rotate(0deg)}25%{transform:rotate(-7deg)}50%{transform:rotate(1.5deg)}75%,88%{transform:rotate(0deg)}}
@keyframes shinStepOffR{0%,100%{transform:rotate(0deg)}25%{transform:rotate(7deg)}50%{transform:rotate(-1.5deg)}75%,88%{transform:rotate(0deg)}}

body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising):not(.shaken):not(.recover) .glove.left{animation:gloveGrooveOff calc(var(--beat-ms)*2) ease-in-out infinite}
body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising):not(.shaken):not(.recover) .glove.right{animation:gloveGrooveOff calc(var(--beat-ms)*2) ease-in-out infinite;animation-delay:calc(var(--beat-ms)*-1)}
@keyframes gloveGrooveOff{0%,100%{translate:0 0}25%{translate:0 -6px}50%{translate:0 0}75%{translate:0 -3px}}
body.beat-live .fighter:not(.attacking):not(.down):not(.hurt):not(.rising):not(.shaken):not(.recover) .head{animation:headGrooveOff calc(var(--beat-ms)*2) ease-in-out infinite}
@keyframes headGrooveOff{0%,100%{translate:0 0}25%{translate:0 2.5px}50%{translate:0 0}75%{translate:0 2.5px}}

body.beat-live .p-glove{animation:gbobOff calc(var(--beat-ms)*2) ease-in-out infinite}
body.beat-live .p-glove.right{animation-delay:calc(var(--beat-ms)*-1)}
@keyframes gbobOff{0%,100%{translate:0 0}25%{translate:0 -8px}50%,88%{translate:0 0}}
@media (prefers-reduced-motion: reduce){
  body.beat-live .fighter,body.beat-live .fighter .torso,body.beat-live .fighter .leg,body.beat-live .fighter .shin,
  body.beat-live .fighter .glove,body.beat-live .fighter .head,body.beat-live .p-glove{animation:none}
}

.arena .message{flex-direction:row;flex-wrap:nowrap;white-space:nowrap;text-overflow:clip}
.arena .message small{display:inline;margin:0 0 0 .55em;font-size:.76em;line-height:1.2;white-space:nowrap}
.arena .chance-banner,.arena .serious-banner,.arena .beast-banner{max-width:94%;white-space:nowrap}
.arena .mode-banner{max-width:94%;white-space:nowrap}
.arena .crowd-req,.arena .judge,.arena .down-label{white-space:nowrap;text-overflow:clip}
.arena .enemy-bubble{max-width:calc(100% - 10px)}
.arena .second-bubble{max-width:calc(100% - 72px);white-space:nowrap;text-overflow:clip}
.arena .judge-side{max-width:calc(100% - 28px);white-space:nowrap;text-overflow:clip;line-height:1.2}
.arena .judge-side.timing{white-space:nowrap;line-height:1.2}
.arena .my-tag{max-width:96%;text-overflow:clip}

.arena .my-tag.combo{flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:8px}
.arena .my-tag .mt-kicker,.arena .my-tag .mt-tech,.arena .my-tag .mt-step{white-space:nowrap;text-overflow:clip}
.arena .cheer{max-width:92%;text-overflow:clip}
.arena .venue-sign{white-space:nowrap}
.arena .hirameki-banner{max-width:96%}
.arena .hb-name{white-space:nowrap;text-overflow:clip}
.arena .hb-kicker,.arena .hb-rarity{white-space:nowrap}
.arena .rush-panel{max-width:94%}

.arena .rush-panel .rush-title,.arena .rush-panel .rush-sub{white-space:nowrap}

.hud-sub .combo{flex-direction:row;align-items:baseline;gap:6px;white-space:nowrap;height:40px;padding:3px 12px 4px}
.hud-sub .combo-num{font-size:16px;white-space:nowrap}
.hud-sub .combo-label{font-size:9.5px;white-space:nowrap}

#fighter:not(.down) .legs{margin-left:0}
#fighter.opp-no1.is-zeus .legs{gap:52px}
#fighter.opp-no1.is-zeus.zform-2 .legs{gap:76px}
#fighter.opp-kaiser.is-kaiser .legs{gap:37px}
.trunks{transform-origin:50% 100%}
.fighter.down .trunks{transform-origin:50% 14%}
#fighter:not(.down):not(.rising) .leg{transform-origin:50% 0}

#fighter:not(.down) .legs{gap:4px}
#fighter.opp-no1.is-zeus .legs{gap:40px}
#fighter.opp-no1.is-zeus.zform-2 .legs{gap:64px}
#fighter.opp-kaiser.is-kaiser .legs{gap:21px}

.trunks{margin-top:-6px}
.legs{margin-top:-44px}

#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:first-child .thigh{width:30px;left:0}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:last-child .thigh{width:24px;left:3px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:first-child .lower-leg{width:20px;left:5px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:last-child .lower-leg{width:16px;left:7px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:first-child .boxing-shoe{width:64px;left:-17px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:last-child .boxing-shoe{width:56px;left:-13px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .knee{width:15px;left:8px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .shin{width:30px}
#fighter.opp-no1.is-zeus .legs{gap:51px}
#fighter.opp-no1.is-zeus.zform-2 .legs{gap:77px}

.hud{padding-left:6px;padding-right:6px}
.hud-bar{gap:6px}
.round-plate{flex:0 0 88px}
.round-plate-in{padding:4px 6px 5px}
.round-label{font-size:9px;letter-spacing:.12em}
.round-timer{font-size:18px}
.hud-name{letter-spacing:.03em;margin-bottom:3px}

.hud-name{height:auto}
.hud-name .hp-num{line-height:1.3}
#youName,#rivalName{display:block;max-width:none;overflow:hidden;text-overflow:clip;white-space:nowrap;line-height:1.3;padding-bottom:2px}
.hud-sub{margin-top:5px;height:28px;align-items:center;gap:8px}
.hud-sub .combo{flex-direction:row;align-items:center;justify-content:center;gap:5px;height:24px;min-width:0;padding:2px 11px;border-radius:999px;white-space:nowrap}
.hud-sub .combo-num{font-size:14px;line-height:1;white-space:nowrap}
.hud-sub .combo-label{font-size:9px;line-height:1;letter-spacing:.1em;white-space:nowrap}
.hud-sub .hype-row{flex:1 1 auto;min-width:0;height:24px;margin-top:0;gap:6px}
.hype-label{font-size:10.5px}
.hype-bar{flex:1 1 28px;min-width:28px}
.hype-state{flex:0 1 auto;min-width:0;overflow:hidden}
.quit-btn{height:24px;padding:3px 7px;font-size:10px;margin-left:0}

.hud-sub .combo[data-ctier="1"]{background:var(--yellow);color:#1a1400;box-shadow:0 0 0 3px rgba(255,210,31,.22)}
.hud-sub .combo[data-ctier="2"]{background:#ff8a1e;color:#241100;box-shadow:0 0 0 3px rgba(255,138,30,.25)}
.hud-sub .combo[data-ctier="3"]{background:#ff5252;color:#fff;box-shadow:0 0 0 3px rgba(255,82,82,.28)}
.hud-sub .combo[data-ctier="4"]{background:#b45cff;color:#fff;box-shadow:0 0 0 3px rgba(180,92,255,.3)}
.hud-sub .combo[data-ctier="5"]{background:#3f7bff;color:#fff;box-shadow:0 0 0 3px rgba(63,123,255,.3)}
.hud-sub .combo[data-ctier="6"]{background:#19c8e8;color:#062a33;box-shadow:0 0 0 3px rgba(25,200,232,.3)}
.hud-sub .combo[data-ctier="7"]{background:#2ed573;color:#06280f;box-shadow:0 0 0 3px rgba(46,213,115,.3)}
.hud-sub .combo[data-ctier="8"]{background:#a4e10c;color:#1d2b00;box-shadow:0 0 0 3px rgba(164,225,12,.32)}
.hud-sub .combo[data-ctier="9"]{background:linear-gradient(90deg,#ffb800,#ff7b00);color:#241100;box-shadow:0 0 0 3px rgba(255,150,0,.4),0 0 12px rgba(255,150,0,.55)}
.hud-sub .combo[data-ctier="10"]{background:linear-gradient(90deg,#ff5252,#ff9f2e,#ffd21f,#2ed573,#19c8e8,#3f7bff,#b45cff,#ff5252);background-size:220% 100%;color:#14142b;text-shadow:0 1px 0 rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35),0 0 14px rgba(255,170,0,.6);animation:comboRainbow 2.2s linear infinite}
@keyframes comboRainbow{from{background-position:0% 0}to{background-position:220% 0}}
.hud-sub .combo.tier-up{animation:comboTierUp .38s ease}
.hud-sub .combo[data-ctier="10"].tier-up{animation:comboRainbow 2.2s linear infinite,comboTierUp .38s ease}
@keyframes comboTierUp{0%{transform:scale(1)}35%{transform:scale(1.14)}100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce){
 .hud-sub .combo.tier-up{animation:none}
 .hud-sub .combo[data-ctier="10"]{animation:none}
 .hud-sub .combo[data-ctier="10"].tier-up{animation:none}
}
body.light-mode .hud-sub .combo[data-ctier="10"]{animation:none}

#fighter .legs{margin-left:-14px}
#fighter:not(.down) .legs{margin-left:-14px}

#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child{transform:rotate(1deg)}
#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:last-child{transform:rotate(-8deg) scaleY(.86)}
#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child .shin{transform:rotate(0deg)}
#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:last-child .shin{transform:rotate(26deg)}
#fighter .boxing-shoe{transition:transform .3s ease}
#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child .boxing-shoe{transform:translateY(-17px) rotate(30deg);transform-origin:50% 8px}
#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:last-child .boxing-shoe{transform:translateY(-10px) rotate(44deg);transform-origin:50% 8px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3):not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child .boxing-shoe{transform:translateY(-10px) rotate(30deg)}
@keyframes legStepL{0%,100%{transform:rotate(1deg) translateY(0)}16%{transform:rotate(1.6deg) translateY(1px)}34%,88%{transform:rotate(1deg) translateY(0)}}
@keyframes legStepR{0%,100%{transform:rotate(-8deg) scaleY(.86) translateY(0)}16%{transform:rotate(-10deg) scaleY(.85) translateY(-4px)}34%,88%{transform:rotate(-8deg) scaleY(.86) translateY(0)}}
@keyframes shinStepL{0%,100%{transform:rotate(0deg)}16%{transform:rotate(2deg)}32%{transform:rotate(-1deg)}88%{transform:rotate(0deg)}}
@keyframes shinStepR{0%,100%{transform:rotate(26deg)}16%{transform:rotate(33deg)}32%{transform:rotate(22deg)}88%{transform:rotate(26deg)}}
@keyframes legStepOffL{0%,100%{transform:rotate(1deg) translateY(0)}25%{transform:rotate(1.6deg) translateY(1px)}50%,88%{transform:rotate(1deg) translateY(0)}}
@keyframes legStepOffR{0%,100%{transform:rotate(-8deg) scaleY(.86) translateY(0)}25%{transform:rotate(-10deg) scaleY(.85) translateY(-4px)}50%,88%{transform:rotate(-8deg) scaleY(.86) translateY(0)}}
@keyframes shinStepOffL{0%,100%{transform:rotate(0deg)}25%{transform:rotate(2deg)}50%{transform:rotate(-1deg)}75%,88%{transform:rotate(0deg)}}
@keyframes shinStepOffR{0%,100%{transform:rotate(26deg)}25%{transform:rotate(33deg)}50%{transform:rotate(22deg)}75%,88%{transform:rotate(26deg)}}

.waist{height:60px}
.body{height:114px}
#fighter.opp-kaiser.is-kaiser .body{height:124px}
.navel{bottom:12px}
.legs{margin-top:-58px}

.waist{height:72px}
.navel{bottom:24px}
.trunks{margin-top:-10px}
.legs{margin-top:-44px}
#fighter:not(.is-kaiser):not(.is-zeus) .thigh{width:58px;left:11px}
#fighter:not(.is-kaiser):not(.is-zeus) .knee{width:30px;left:25px}
#fighter:not(.attacking):not(.down):not(.is-kaiser):not(.is-zeus) .leg:first-child .thigh{width:62px;left:9px}
#fighter:not(.attacking):not(.down):not(.is-kaiser):not(.is-zeus) .leg:last-child .thigh{width:52px;left:14px}
#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-jab .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-hook-l .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-upper-l .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-upper-r .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-smash-l .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-chop-r .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-straight .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-hook-r .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-smash-r .leg:last-child .thigh{width:64px;left:8px}
#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-jab .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-hook-l .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-upper-l .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-upper-r .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-smash-l .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-chop-r .leg:last-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-straight .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-hook-r .leg:first-child .thigh,#fighter.attacking:not(.is-kaiser):not(.is-zeus).pt-smash-r .leg:first-child .thigh{width:50px;left:15px}


.boxing-shoe::before{content:"";position:absolute;left:50%;margin-left:-23px;top:-27px;width:46px;height:31px;border:3px solid #111;border-bottom:none;border-radius:11px 11px 0 0;z-index:-1;background:repeating-linear-gradient(180deg,#fff 0 3px,rgba(255,255,255,0) 3px 9px) 50% 0/14px 100% no-repeat,linear-gradient(180deg,var(--shoe-dark),var(--shoe-mid))}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .boxing-shoe::before{width:24px;margin-left:-12px}

#fighter:not(.down) .leg:first-child .boxing-shoe{border-radius:14px 14px 10px 10px;background:linear-gradient(90deg,rgba(0,0,0,0) 0 31%,rgba(20,20,43,.26) 31% calc(31% + 2px),rgba(0,0,0,0) calc(31% + 2px) 67%,rgba(20,20,43,.26) 67% calc(67% + 2px),rgba(0,0,0,0) calc(67% + 2px)),linear-gradient(180deg,var(--shoe-dark) 0 10px,var(--shoe-mid) 10px 28px,var(--shoe-main) 28px 42px,#f5f6fa 42px)}
#fighter:not(.down) .leg:first-child .boxing-shoe::after{left:50%;margin-left:-8px;top:13px;width:16px;height:31px;border-radius:4px;background:none} 

#fighter:not(.down) .leg:last-child .boxing-shoe{border-radius:12px 20px 8px 10px;background:linear-gradient(100deg,rgba(0,0,0,.20) 0 16%,rgba(0,0,0,0) 16%),linear-gradient(180deg,var(--shoe-dark) 0 10px,var(--shoe-mid) 10px 28px,var(--shoe-main) 28px 42px,#f5f6fa 42px)}
#fighter:not(.down) .leg:last-child .boxing-shoe::after{left:30px;margin-left:0;top:15px;width:36px;height:5px;transform:rotate(14deg);background:none} 
#fighter:not(.down) .leg:last-child .boxing-shoe::before{background:repeating-linear-gradient(180deg,#fff 0 3px,rgba(255,255,255,0) 3px 9px) 68% 0/13px 100% no-repeat,linear-gradient(100deg,rgba(0,0,0,.18) 0 26%,rgba(0,0,0,0) 26%),linear-gradient(180deg,var(--shoe-dark),var(--shoe-mid))}

#fighter.attacking.pt-straight .leg:first-child .boxing-shoe,#fighter.attacking.pt-hook-r .leg:first-child .boxing-shoe,#fighter.attacking.pt-smash-r .leg:first-child .boxing-shoe{background:linear-gradient(270deg,rgba(20,20,43,.28) 0 15px,rgba(0,0,0,0) 15px),linear-gradient(180deg,var(--shoe-dark) 0 10px,var(--shoe-mid) 10px 28px,var(--shoe-main) 28px 42px,#f5f6fa 42px);border-radius:24px 10px 8px 8px}
#fighter.attacking.pt-jab .leg:last-child .boxing-shoe,#fighter.attacking.pt-hook-l .leg:last-child .boxing-shoe,#fighter.attacking.pt-upper-l .leg:last-child .boxing-shoe,#fighter.attacking.pt-upper-r .leg:last-child .boxing-shoe,#fighter.attacking.pt-smash-l .leg:last-child .boxing-shoe,#fighter.attacking.pt-chop-r .leg:last-child .boxing-shoe{background:linear-gradient(90deg,rgba(20,20,43,.28) 0 15px,rgba(0,0,0,0) 15px),linear-gradient(180deg,var(--shoe-dark) 0 10px,var(--shoe-mid) 10px 28px,var(--shoe-main) 28px 42px,#f5f6fa 42px);border-radius:10px 24px 8px 8px}
#fighter.attacking.pt-straight .leg:first-child .boxing-shoe::after,#fighter.attacking.pt-hook-r .leg:first-child .boxing-shoe::after,#fighter.attacking.pt-smash-r .leg:first-child .boxing-shoe::after,#fighter.attacking.pt-jab .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-hook-l .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-upper-l .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-upper-r .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-smash-l .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-chop-r .leg:last-child .boxing-shoe::after{left:14px;margin-left:0;top:12px;width:52px;height:5px;transform:none;border-radius:99px;background:none} 
#fighter.attacking.pt-straight .leg:first-child .boxing-shoe::before,#fighter.attacking.pt-hook-r .leg:first-child .boxing-shoe::before,#fighter.attacking.pt-smash-r .leg:first-child .boxing-shoe::before,#fighter.attacking.pt-jab .leg:last-child .boxing-shoe::before,#fighter.attacking.pt-hook-l .leg:last-child .boxing-shoe::before,#fighter.attacking.pt-upper-l .leg:last-child .boxing-shoe::before,#fighter.attacking.pt-upper-r .leg:last-child .boxing-shoe::before,#fighter.attacking.pt-smash-l .leg:last-child .boxing-shoe::before,#fighter.attacking.pt-chop-r .leg:last-child .boxing-shoe::before{background:linear-gradient(180deg,rgba(20,20,43,.28) 0 5px,rgba(0,0,0,0) 5px),linear-gradient(180deg,var(--shoe-dark),var(--shoe-mid))}

#fighter.down .boxing-shoe{border-radius:10px 10px 12px 12px;background:linear-gradient(90deg,rgba(0,0,0,0) 0 calc(50% - 1.5px),rgba(20,20,43,.45) calc(50% - 1.5px) calc(50% + 1.5px),rgba(0,0,0,0) calc(50% + 1.5px)),linear-gradient(180deg,var(--shoe-dark) 0 12px,var(--shoe-main) 12px 40px,#26262f 40px)}
#fighter.down .boxing-shoe::after{left:50%;margin-left:-5px;top:8px;width:10px;height:15px;background:var(--shoe-dark);border:2.5px solid #111;border-radius:6px;transform:none}
#fighter.down .boxing-shoe::before{background:linear-gradient(90deg,rgba(0,0,0,0) 0 calc(50% - 1.5px),rgba(20,20,43,.5) calc(50% - 1.5px) calc(50% + 1.5px),rgba(0,0,0,0) calc(50% + 1.5px)),linear-gradient(180deg,var(--shoe-dark),var(--shoe-mid))}

.fighter.wind.pt-upper-l .glove.left::after{transform:translate(-8px,5px) rotate(-19deg);top:48px;height:84px}
.fighter.wind.pt-upper-r .glove.right::after{transform:translate(8px,5px) rotate(19deg);top:48px;height:84px}
.fighter.wind.pt-upper-l .glove.right::after{transform:translate(-10px,-3px) rotate(7deg)}
.fighter.wind.pt-upper-r .glove.left::after{transform:translate(10px,-3px) rotate(-7deg)}
.fighter.wind.pt-smash-l .glove.left::after{transform:translate(16px,-6px) rotate(29deg)}
.fighter.wind.pt-smash-r .glove.right::after{transform:translate(-16px,-6px) rotate(-29deg)}
.fighter.wind.pt-smash-l .glove.right::after{transform:translate(-10px,-3px) rotate(7deg)}
.fighter.wind.pt-smash-r .glove.left::after{transform:translate(10px,-3px) rotate(-7deg)}

.fighter.wind.pt-jab .glove.left::after{transform:translate(10px,6px) rotate(2deg)}
.fighter.wind.pt-straight .upper-arm-r{transform:rotate(-12deg) scaleY(1.3)}
.fighter.wind.pt-upper-l .glove.left::after{transform:translate(-31px,13px) rotate(-19deg);top:48px;height:84px}
.fighter.wind.pt-upper-r .glove.right::after{transform:translate(31px,13px) rotate(19deg);top:48px;height:84px}
.fighter.wind.pt-upper-l .glove.right::after{transform:translate(16px,0px) rotate(7deg)}
.fighter.wind.pt-upper-r .glove.left::after{transform:translate(-16px,0px) rotate(-7deg)}
.fighter.wind.pt-smash-l .glove.right::after{transform:translate(16px,0px) rotate(7deg)}
.fighter.wind.pt-smash-r .glove.left::after{transform:translate(-16px,0px) rotate(-7deg)}
.fighter.wind.pt-smash-l .upper-arm-l{transform:rotate(4deg) scaleY(2.5)}
.fighter.wind.pt-smash-r .upper-arm-r{transform:rotate(-4deg) scaleY(2.5)}
.fighter.wind .glove::before{transition:transform .18s ease}
.fighter.wind .glove::after{transition:transform .24s cubic-bezier(.3,1.12,.4,1)}
.fighter.wind .upper-arm{transition:transform .26s cubic-bezier(.34,.8,.3,1)}


.fighter.down .glove.left::before{animation:downForeL 2.6s ease forwards}
@keyframes downForeL{0%{transform:rotate(9deg)}10%{transform:rotate(-1deg)}28%{transform:rotate(168deg)}52%{transform:rotate(199deg)}62%{transform:rotate(197deg)}72%{transform:rotate(219deg)}100%{transform:rotate(56deg)}}
.fighter.down .glove.right::before{animation:downForeR 2.6s ease forwards}
@keyframes downForeR{0%{transform:rotate(-9deg)}10%{transform:rotate(-15deg)}28%{transform:rotate(-155deg)}52%{transform:rotate(-185deg)}62%{transform:rotate(-186deg)}72%{transform:rotate(-223deg)}100%{transform:rotate(-104deg)}}
.fighter.down .glove.left::after{animation:downElbowL 2.6s ease forwards}
@keyframes downElbowL{0%{transform:translate(-6px,-7px) rotate(-7deg)}10%{transform:translate(8px,26px) rotate(125deg)}28%{transform:translate(-15px,-154px) rotate(14deg) scaleY(1.15)}52%{transform:translate(24px,-141px) rotate(-120deg)}62%{transform:translate(21px,-142px) rotate(-116deg)}72%{transform:translate(57px,-142px) rotate(-25deg)}100%{transform:translate(-95px,-2px) rotate(-97deg) scaleY(1.3)}}
.fighter.down .glove.right::after{animation:downElbowR 2.6s ease forwards}
@keyframes downElbowR{0%{transform:translate(6px,-7px) rotate(7deg)}10%{transform:translate(15px,24px) rotate(-130deg)}28%{transform:translate(34px,-147px) rotate(-7deg) scaleY(1.3)}52%{transform:translate(-10px,-157px) rotate(8deg)}62%{transform:translate(-12px,-157px) rotate(6deg)}72%{transform:translate(-72px,-136px) rotate(-40deg) scaleY(1.3)}100%{transform:translate(106px,-94px) rotate(33deg)}}
.fighter.down .upper-arm-l{animation:downUpperL 2.6s ease forwards}
@keyframes downUpperL{0%{transform:rotate(16deg)}10%{transform:rotate(20deg)}28%{transform:rotate(64deg)}52%{transform:rotate(60deg)}62%{transform:rotate(58deg)}72%{transform:rotate(56deg)}100%{transform:rotate(46deg)}}
.fighter.down .upper-arm-r{animation:downUpperR 2.6s ease forwards}
@keyframes downUpperR{0%{transform:rotate(-16deg)}10%{transform:rotate(-24deg)}28%{transform:rotate(-72deg)}52%{transform:rotate(-66deg)}62%{transform:rotate(-64deg)}72%{transform:rotate(-62deg)}100%{transform:rotate(-54deg)}}
.fighter.down.pat-launch .glove.left::before{animation:downForeLaunchL 2.6s ease forwards}
@keyframes downForeLaunchL{0%{transform:rotate(9deg)}10%{transform:rotate(-1deg)}28%{transform:rotate(168deg)}52%{transform:rotate(199deg)}62%{transform:rotate(197deg)}72%{transform:rotate(250deg)}100%{transform:rotate(353deg)}}
.fighter.down.pat-launch .glove.right::before{animation:downForeLaunchR 2.6s ease forwards}
@keyframes downForeLaunchR{0%{transform:rotate(-9deg)}10%{transform:rotate(-15deg)}28%{transform:rotate(-155deg)}52%{transform:rotate(-185deg)}62%{transform:rotate(-186deg)}72%{transform:rotate(-102deg)}100%{transform:rotate(-63deg)}}
.fighter.down.pat-launch .glove.left::after{animation:downElbowLaunchL 2.6s ease forwards}
@keyframes downElbowLaunchL{0%{transform:translate(-6px,-7px) rotate(-7deg)}10%{transform:translate(8px,26px) rotate(125deg)}28%{transform:translate(-15px,-154px) rotate(14deg) scaleY(1.15)}52%{transform:translate(24px,-141px) rotate(-120deg)}62%{transform:translate(21px,-142px) rotate(-116deg)}72%{transform:translate(88px,-100px) rotate(13deg)}100%{transform:translate(22px,58px) rotate(135deg)}}
.fighter.down.pat-launch .glove.right::after{animation:downElbowLaunchR 2.6s ease forwards}
@keyframes downElbowLaunchR{0%{transform:translate(6px,-7px) rotate(7deg)}10%{transform:translate(15px,24px) rotate(-130deg)}28%{transform:translate(34px,-147px) rotate(-7deg) scaleY(1.3)}52%{transform:translate(-10px,-157px) rotate(8deg)}62%{transform:translate(-12px,-157px) rotate(6deg)}72%{transform:translate(97px,-83px) rotate(63deg) scaleY(1.3)}100%{transform:translate(98px,1px) rotate(-167deg)}}
.fighter.down.pat-launch .upper-arm-l{animation:downUpperLaunchL 2.6s ease forwards}
@keyframes downUpperLaunchL{0%{transform:rotate(16deg)}10%{transform:rotate(20deg)}28%{transform:rotate(64deg)}52%{transform:rotate(60deg)}62%{transform:rotate(58deg)}72%{transform:rotate(58deg)}100%{transform:rotate(60deg)}}
.fighter.down.pat-launch .upper-arm-r{animation:downUpperLaunchR 2.6s ease forwards}
@keyframes downUpperLaunchR{0%{transform:rotate(-16deg)}10%{transform:rotate(-24deg)}28%{transform:rotate(-72deg)}52%{transform:rotate(-66deg)}62%{transform:rotate(-64deg)}72%{transform:rotate(-64deg)}100%{transform:rotate(-58deg)}}
.fighter.down.pat-face .glove.left::before{animation:downForeFaceL 2.6s ease forwards}
@keyframes downForeFaceL{0%{transform:rotate(9deg)}10%{transform:rotate(-1deg)}28%{transform:rotate(168deg)}52%,62%{transform:rotate(199deg)}72%{transform:rotate(197deg)}100%{transform:rotate(217deg)}}
.fighter.down.pat-face .glove.right::before{animation:downForeFaceR 2.6s ease forwards}
@keyframes downForeFaceR{0%{transform:rotate(-9deg)}10%{transform:rotate(-15deg)}28%{transform:rotate(-155deg)}52%,62%{transform:rotate(-185deg)}72%{transform:rotate(-194deg)}100%{transform:rotate(-214deg)}}
.fighter.down.pat-face .glove.left::after{animation:downElbowFaceL 2.6s ease forwards}
@keyframes downElbowFaceL{0%{transform:translate(-6px,-7px) rotate(-7deg)}10%{transform:translate(8px,26px) rotate(125deg)}28%{transform:translate(-15px,-154px) rotate(14deg) scaleY(1.15)}52%,62%{transform:translate(24px,-141px) rotate(-120deg)}72%{transform:translate(20px,-147px) rotate(-107deg)}100%{transform:translate(52px,-138px) rotate(-112deg)}}
.fighter.down.pat-face .glove.right::after{animation:downElbowFaceR 2.6s ease forwards}
@keyframes downElbowFaceR{0%{transform:translate(6px,-7px) rotate(7deg)}10%{transform:translate(15px,24px) rotate(-130deg)}28%{transform:translate(34px,-147px) rotate(-7deg) scaleY(1.3)}52%,62%{transform:translate(-10px,-157px) rotate(8deg)}72%{transform:translate(-26px,-159px) rotate(-12deg)}100%{transform:translate(-61px,-153px) rotate(-26deg) scaleY(1.3)}}
.fighter.rising .glove.left::before{animation:riseForeL 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseForeL{0%{transform:rotate(200deg)}12%{transform:rotate(205deg)}30%{transform:rotate(197deg)}44%{transform:rotate(197deg)}62%{transform:rotate(190deg)}76%{transform:rotate(33deg)}88%{transform:rotate(-7deg)}100%{transform:rotate(9deg)}}
.fighter.rising .glove.right::before{animation:riseForeR 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseForeR{0%{transform:rotate(-187deg)}12%{transform:rotate(-189deg)}34%{transform:rotate(-189deg)}52%{transform:rotate(-189deg)}68%{transform:rotate(-187deg)}84%{transform:rotate(-357deg)}100%{transform:rotate(-369deg)}}
.fighter.rising .glove.left::after{animation:riseElbowL 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseElbowL{0%{transform:translate(25px,-141px) rotate(-121deg)}12%{transform:translate(32px,-138px) rotate(-125deg)}30%{transform:translate(19px,-143px) rotate(-110deg)}44%{transform:translate(20px,-142px) rotate(-115deg)}62%{transform:translate(14px,-154px) rotate(-7deg)}76%{transform:translate(-51px,16px) rotate(-144deg) scaleY(1.3)}88%{transform:translate(15px,29px) rotate(-219deg)}100%{transform:translate(-6px,-7px) rotate(-367deg)}}
.fighter.rising .glove.right::after{animation:riseElbowR 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseElbowR{0%{transform:translate(-13px,-157px) rotate(5deg)}12%{transform:translate(-16px,-157px) rotate(6deg)}34%{transform:translate(-15px,-156px) rotate(8deg)}52%{transform:translate(-14px,-155px) rotate(9deg)}68%{transform:translate(-11px,-153px) rotate(2deg) scaleY(1.3)}84%{transform:translate(-8px,30px) rotate(-157deg) scaleY(1.3)}100%{transform:translate(6px,-7px) rotate(7deg)}}
.fighter.rising .upper-arm-l{animation:riseUpperL 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseUpperL{0%{transform:rotate(60deg)}12%{transform:rotate(58deg)}30%{transform:rotate(52deg)}44%{transform:rotate(55deg)}62%{transform:rotate(40deg)}76%{transform:rotate(28deg)}88%{transform:rotate(19deg)}100%{transform:rotate(16deg)}}
.fighter.rising .upper-arm-r{animation:riseUpperR 1.4s cubic-bezier(.3,.6,.35,1) forwards}
@keyframes riseUpperR{0%{transform:rotate(-66deg)}12%{transform:rotate(-64deg)}34%{transform:rotate(-57deg)}52%{transform:rotate(-51deg)}68%{transform:rotate(-34deg)}84%{transform:rotate(-20deg)}100%{transform:rotate(-16deg)}}

#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .leg{width:80px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .shin{width:80px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .thigh{width:58px;left:11px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .knee{width:30px;left:25px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .lower-leg{width:52px;left:14px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .boxing-shoe{width:92px;left:-6px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .boxing-shoe::before{width:46px;margin-left:-23px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-3) .legs{gap:1px}
#fighter.opp-no1.is-zeus.zform-2 .legs{gap:37px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:first-child .thigh{width:62px;left:9px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:last-child .thigh{width:52px;left:14px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:first-child .lower-leg{width:58px;left:11px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:last-child .lower-leg{width:46px;left:17px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:first-child .boxing-shoe{width:99px;left:-9px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:last-child .boxing-shoe{width:84px;left:-2px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:first-child .thigh,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:last-child .thigh{width:64px;left:8px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:last-child .thigh,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:first-child .thigh{width:50px;left:15px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:first-child .lower-leg,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:last-child .lower-leg{width:60px;left:10px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:last-child .lower-leg,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:first-child .lower-leg{width:45px;left:18px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:first-child .boxing-shoe,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:last-child .boxing-shoe{width:102px;left:-11px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:last-child .boxing-shoe,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:first-child .boxing-shoe{width:82px;left:-1px}

.trunks{clip-path:polygon(9% 0,91% 0,100% 58%,50% 70%,0 58%)}
.trunks-in{clip-path:polygon(8% 0,92% 0,100% 55%,50% 67%,0 55%);align-items:flex-start;padding-top:22px}
.trunks-leg{position:absolute;top:6px;left:50%;transform:translateX(-50%);width:84px;height:40px;background:#14142b;clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);z-index:6;pointer-events:none}
.trunks-leg::before{content:"";position:absolute;inset:3px;background:linear-gradient(90deg,rgba(0,0,0,.16) 0 7px,rgba(255,255,255,0) 7px calc(100% - 7px),rgba(0,0,0,.16) calc(100% - 7px)),linear-gradient(180deg,#ff9026,#f26d0d);clip-path:polygon(10% 0,90% 0,100% 100%,0 100%);box-shadow:inset 0 -7px 0 rgba(0,0,0,.18)}
#fighter.opp-kaiser.is-kaiser .trunks-leg{width:98px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .trunks-leg{width:54px}

#fighter.opp-gou .trunks-in{background:linear-gradient(180deg,#2b4bd8 0 9px,#1d358f 9px 12px,rgba(255,255,255,0) 12px),linear-gradient(90deg,rgba(0,0,0,.16) 0 7px,rgba(255,255,255,0) 7px calc(100% - 7px),rgba(0,0,0,.16) calc(100% - 7px)),linear-gradient(180deg,#ff9026,#f26d0d)}
#fighter.opp-gou .trunks-leg::before{background:linear-gradient(90deg,rgba(0,0,0,.16) 0 7px,rgba(255,255,255,0) 7px calc(100% - 7px),rgba(0,0,0,.16) calc(100% - 7px)),linear-gradient(180deg,#ff9026,#f26d0d)}
#fighter.opp-hayate .trunks-leg::before{background:linear-gradient(90deg,#0d7a44 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#0d7a44 calc(100% - 8px)),linear-gradient(180deg,#1fae62,#0d7a44)}
#fighter.opp-ganji .trunks-leg::before{background:linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#8a3324,#571d12)}
#fighter.opp-raiga .trunks-leg::before{background:linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#4b2a86,#2c1854)}
#fighter.opp-raiga.is-raiga .trunks-leg::before{background:repeating-linear-gradient(94deg,rgba(22,12,2,.92) 0 6px,rgba(22,12,2,0) 6px 14px,rgba(22,12,2,.85) 14px 18px,rgba(22,12,2,0) 18px 29px),linear-gradient(180deg,#ffa02e,#e06f00)}
#fighter.opp-kaiser .trunks-leg::before{background:linear-gradient(90deg,#f7b731 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#f7b731 calc(100% - 8px)),linear-gradient(180deg,#23232e,#0a0a10)}
#fighter.opp-no1 .trunks-leg::before{background:linear-gradient(90deg,#e83e55 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e83e55 calc(100% - 8px)),linear-gradient(180deg,#8f1020,#3d0710)}

.shin{height:122px}
.lower-leg{height:80px}
.boxing-shoe{top:33px}
.boxing-shoe::before{top:-41px;height:45px}

#fighter:not(.attacking):not(.down):not(.hurt):not(.rising):not(.sway):not(.recover):not(.chance-stagger):not(.rush-frozen){transform-origin:68px 459px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3):not(.attacking):not(.down):not(.hurt):not(.rising):not(.sway):not(.recover):not(.chance-stagger):not(.rush-frozen){transform-origin:54px 459px}
#fighter.opp-no1.is-zeus.zform-2:not(.attacking):not(.down):not(.hurt):not(.rising):not(.sway):not(.recover):not(.chance-stagger):not(.rush-frozen){transform-origin:51px 459px}
@keyframes legStepL{0%,100%{transform:rotate(1deg) translateY(0)}16%{transform:rotate(1.3deg) translateY(0)}34%,88%{transform:rotate(1deg) translateY(0)}}
@keyframes legStepOffL{0%,100%{transform:rotate(1deg) translateY(0)}25%{transform:rotate(1.3deg) translateY(0)}50%,88%{transform:rotate(1deg) translateY(0)}}
@keyframes shinStepL{0%,100%,16%,32%,88%{transform:rotate(0deg)}}
@keyframes shinStepOffL{0%,100%,25%,50%,75%,88%{transform:rotate(0deg)}}
.fighter.attacking.pt-jab .leg:first-child{transform:translate(-1px,1px) rotate(7deg)}
.fighter.attacking.pt-jab .leg:last-child{transform:translate(4px,1px) rotate(-8deg)}
.fighter.attacking.pt-straight .leg:first-child{transform:translate(-3px,0px) rotate(6deg)}
.fighter.attacking.pt-straight .leg:last-child{transform:translate(1px,1px) rotate(-7deg)}
.fighter.attacking.pt-hook-l .leg:first-child{transform:translate(-1px,1px) rotate(8deg)}
.fighter.attacking.pt-hook-l .leg:last-child{transform:translate(5px,0px) rotate(-6deg)}
.fighter.attacking.pt-hook-r .leg:first-child{transform:translate(-5px,0px) rotate(6deg)}
.fighter.attacking.pt-hook-r .leg:last-child{transform:translate(1px,1px) rotate(-8deg)}
.fighter.attacking.pt-upper-l .leg:first-child,.fighter.attacking.pt-upper-r .leg:first-child{transform:translate(-4px,0px) rotate(6deg)}
.fighter.attacking.pt-upper-l .leg:last-child,.fighter.attacking.pt-upper-r .leg:last-child{transform:translate(4px,0px) rotate(-6deg)}
.fighter.attacking.pt-smash-l .leg:last-child{transform:translate(5px,0px) rotate(-5deg)}
.fighter.attacking.pt-smash-r .leg:first-child{transform:translate(-5px,0px) rotate(5deg)}
.fighter.attacking.pt-chop-r .leg:first-child{transform:translate(-2px,2px) rotate(10deg)}
.fighter.attacking.pt-chop-r .leg:last-child{transform:translate(5px,0px) rotate(-5deg)}
#fighter:not(.attacking):not(.down):not(.rising):not(.recover) .legs::before{content:"";position:absolute;bottom:-3px;left:-4px;width:88px;height:11px;border-radius:50%;background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(6,8,20,.5),rgba(6,8,20,0) 70%);z-index:-1;pointer-events:none}

.shin{top:70px}
.knee{top:76px}
.boxing-shoe{top:43px}
#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child .boxing-shoe{transform:none}
#fighter:not(.attacking):not(.down):not(.hurt):not(.rising) .leg:last-child .boxing-shoe{transform:none}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3):not(.attacking):not(.down):not(.hurt):not(.rising) .leg:first-child .boxing-shoe{transform:none}
.neck{height:30px;margin-top:-15px}
#fighter.opp-gou .head{height:172px}
#fighter.opp-gou .neck{margin-top:-23px}

.fighter.hurt:not(.down) .neck{transform-origin:50% 100%;animation:hurtNeck calc(var(--hret,460)*1ms) cubic-bezier(.2,.7,.3,1);animation-delay:calc(var(--hstop,40)*1ms)}
@keyframes hurtNeck{0%,100%{transform:scaleY(1)}16%{transform:scaleY(max(1,calc(1 - var(--hhy,-9)*.05)))}58%{transform:scaleY(max(1,calc(1 - var(--hhy,-9)*.018)))}}
@media (prefers-reduced-motion: reduce){.fighter.hurt:not(.down) .neck{animation-duration:.46s;animation-delay:0ms}}

.trunks{width:204px;height:78px;clip-path:polygon(11% 0,89% 0,100% 58%,50% 70%,0 58%)}
.trunks-in{clip-path:polygon(10% 0,90% 0,100% 55%,50% 67%,0 55%);padding-top:25px}
.legs{margin-top:-57px}
#fighter.opp-no1.is-zeus .trunks{width:166px;height:73px}
#fighter.opp-no1.is-zeus .legs{margin-top:-56px}
#fighter.opp-no1.is-zeus.zform-2 .trunks{width:238px;height:95px}
#fighter.opp-no1.is-zeus.zform-2 .legs{margin-top:-60px}
#fighter.opp-kaiser.is-kaiser .trunks{width:238px;height:95px}
#fighter.opp-kaiser.is-kaiser .legs{margin-top:-60px}
.trunks-leg{height:46px;clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}
.trunks-leg::before{clip-path:polygon(13% 0,87% 0,100% 100%,0 100%)}

.head{z-index:3}
.trunks{clip-path:polygon(8% 0,92% 0,100% 58%,50% 70%,0 58%)}
.trunks-in{clip-path:polygon(8.5% 0,91.5% 0,100% 55%,50% 67%,0 55%)}
.hook-streak .hs-sub{stroke:rgba(205,232,255,.55);stroke-width:2.5}
.hook-streak .hs-d1{animation-delay:.035s}
.hook-streak .hs-d2{animation-delay:.07s}
.fighter.strike.pt-hook-l .hook-streak .hs-sub.hs-l{animation:hookStreak .32s linear both}
.fighter.strike.pt-hook-r .hook-streak .hs-sub.hs-r{animation:hookStreak .32s linear both}
.hook-streak .hs-sml,.hook-streak .hs-smr{stroke:rgba(245,252,255,.85);stroke-width:3;opacity:0}
.hook-streak .hs-sml.hs-sub2,.hook-streak .hs-smr.hs-sub2{stroke:rgba(205,232,255,.45);stroke-width:2}
.fighter.strike.pt-smash-l .hook-streak .hs-sml{animation:smashStreak .38s linear both}
.fighter.strike.pt-smash-r .hook-streak .hs-smr{animation:smashStreak .38s linear both}
@keyframes smashStreak{0%{stroke-dasharray:76 360;stroke-dashoffset:76;opacity:0}16%{opacity:.9}68%{stroke-dasharray:76 360;stroke-dashoffset:-130;opacity:.9}100%{stroke-dasharray:76 360;stroke-dashoffset:-330;opacity:0}}
.fighter.strike.pt-smash-l{transform:translateY(2px) rotate(20deg) scale(1.33)}
.fighter.strike.pt-smash-r{transform:translateY(2px) rotate(-20deg) scale(1.33)}
.fighter.strike.pt-smash-l .glove.left{transform:translate(126px,-6px) scale(5.6) rotate(35deg);animation:smashLArc .38s cubic-bezier(.45,.05,.3,1)}
.fighter.strike.pt-smash-r .glove.right{transform:translate(-126px,-6px) scale(5.6) rotate(-35deg);animation:smashRArc .38s cubic-bezier(.45,.05,.3,1)}
@keyframes smashLArc{0%{transform:translate(-64px,118px) rotate(-52deg) scale(.82)}26%{transform:translate(-38px,138px) rotate(-40deg) scale(1.6)}52%{transform:translate(16px,96px) rotate(-6deg) scale(3)}78%{transform:translate(84px,36px) rotate(20deg) scale(4.6)}100%{transform:translate(126px,-6px) rotate(35deg) scale(5.6)}}
@keyframes smashRArc{0%{transform:translate(64px,118px) rotate(52deg) scale(.82)}26%{transform:translate(38px,138px) rotate(40deg) scale(1.6)}52%{transform:translate(-16px,96px) rotate(6deg) scale(3)}78%{transform:translate(-84px,36px) rotate(-20deg) scale(4.6)}100%{transform:translate(-126px,-6px) rotate(-35deg) scale(5.6)}}
.fighter.whiff.pt-smash-l{transform:translateY(8px) rotate(24deg) scale(1.35)}
.fighter.whiff.pt-smash-r{transform:translateY(8px) rotate(-24deg) scale(1.35)}
.fighter.whiff.pt-smash-l .glove.left{transform:translate(178px,-34px) scale(4.95) rotate(83deg)}
.fighter.whiff.pt-smash-r .glove.right{transform:translate(-178px,-34px) scale(4.95) rotate(-83deg)}
#fighter.recover{transition:transform .24s cubic-bezier(.25,.8,.3,1)}
#fighter.recover .glove{transition:transform .21s cubic-bezier(.3,.75,.3,1)}
#fighter.recover .glove::before{transition:transform .22s cubic-bezier(.3,.75,.3,1)}
#fighter.recover .glove::after{transition:transform .25s cubic-bezier(.3,.75,.3,1)}
#fighter.recover .upper-arm{transition:transform .25s cubic-bezier(.3,.75,.3,1)}
#fighter.recover .torso{transition:transform .27s cubic-bezier(.25,.8,.3,1)}
@media (prefers-reduced-motion: reduce){
  .fighter.strike.pt-hook-l .hook-streak .hs-sub.hs-l,.fighter.strike.pt-hook-r .hook-streak .hs-sub.hs-r,
  .fighter.strike.pt-smash-l .hook-streak .hs-sml,.fighter.strike.pt-smash-r .hook-streak .hs-smr{animation:none;opacity:0}
}


/* UPPERCUT DEEP SCOOP WIND-UP (2026-11-06): the crouch before an
   enemy uppercut is now unmistakably a SCOOP crouch — the whole
   fighter sinks lower (34px, scaleY .80), the tell dip runs deeper
   (22px) and HOLDS near the bottom (72% stop) instead of bouncing
   straight back, the punching shoulder visibly drops and rolls,
   and the glove tucks 14px lower and rolls under (-26deg), so the
   fist starts the strike from the bottom of the scoop, not from
   guard height. Wind-up length, judgement and damage untouched:
   poses only, on the same .5s wind transition. */
.fighter.wind.pt-upper-l,.fighter.wind.pt-upper-r{transform:translateY(34px) scale(1.06,.80)}
@keyframes tellUpper{0%{translate:0 0;scale:1 1}38%{translate:0 22px;scale:1.05 .87}72%{translate:0 19px;scale:1.045 .885}100%{translate:0 0;scale:1 1}}
.fighter.wind.pt-upper-l .torso{transform:rotate(-3deg) scaleY(.91)}
.fighter.wind.pt-upper-r .torso{transform:rotate(3deg) scaleY(.91)}
.fighter.wind.pt-upper-l .trunks{transform:rotate(1deg) scaleY(.95)}
.fighter.wind.pt-upper-r .trunks{transform:rotate(-1deg) scaleY(.95)}
.fighter.wind.pt-upper-l .head,.fighter.wind.pt-upper-r .head{translate:0 7px}
.fighter .shoulder{transition:transform .45s cubic-bezier(.34,.8,.3,1)}
.fighter.wind.pt-upper-l .shoulder-l{transform:rotate(-17deg) translateY(5px)}
.fighter.wind.pt-upper-r .shoulder-r{transform:rotate(17deg) translateY(5px)}

.fighter.wind.pt-upper-l .glove.left{transform:translate(24px,80px) rotate(-26deg) scale(.9)}
.fighter.wind.pt-upper-r .glove.right{transform:translate(-24px,80px) rotate(26deg) scale(.9)}

.fighter.wind.pt-upper-l .glove.left::before{transform:rotate(29deg)}
.fighter.wind.pt-upper-r .glove.right::before{transform:rotate(-29deg)}
.fighter.wind.pt-upper-l .glove.left::after{transform:translate(-39px,1px) rotate(1deg);top:48px;height:84px}
.fighter.wind.pt-upper-r .glove.right::after{transform:translate(39px,1px) rotate(-1deg);top:48px;height:84px}

.fighter.wind.pt-upper-l .glove.left .glove-svg,
.fighter.strike.pt-upper-l .glove.left .glove-svg,
.fighter.whiff.pt-upper-l .glove.left .glove-svg{transform:scaleX(-1)}
.fighter.wind.pt-upper-r .glove.right .glove-svg,
.fighter.strike.pt-upper-r .glove.right .glove-svg,
.fighter.whiff.pt-upper-r .glove.right .glove-svg{transform:scaleX(1)}

/* UPPERCUT SCOOP ARC (2026-11-06): the old rise peaked HIGH above
   the strike point at 42% (y 29) and then came back DOWN onto the
   face growing the whole way — a glove swelling down-screen in a
   near-straight line, which is exactly a straight punch's visual
   signature, so the upper read as a straight. The trajectory is
   now one true scoop (mirrored in FLURRY_POSES): from the deepened
   wind crouch the fist SINKS slow to the bottom of the scoop
   (22%), slides across the bottom toward the centre (40%), then
   drives UP into the chin in a single accelerating curve (58% ->
   arrival at 76%, same one-beat overshoot, same settle) — y never
   reverses after the dip and never rises above the target, so
   nothing travels in a straight line at the face. Timing shape:
   the sink segment is eased gentle, each rise segment eases IN
   harder than the last, so the fist is slowest at the bottom of
   the scoop and fastest at the chin. Total clock (.34s), arrival
   stop (76%), strike / whiff poses, judgement and damage are
   unchanged. Forearm / elbow follow the same stops. */
@keyframes upperRiseL{
  0%{transform:translate(24px,80px) rotate(-26deg) scale(.9);animation-timing-function:cubic-bezier(.42,0,.58,1)}
  22%{transform:translate(20px,104px) rotate(-34deg) scale(.95);animation-timing-function:cubic-bezier(.45,.05,.55,1)}
  40%{transform:translate(34px,107px) rotate(-22deg) scale(1.15);animation-timing-function:cubic-bezier(.55,.06,.68,.19)}
  58%{transform:translate(43px,92px) rotate(-8deg) scale(2.05);animation-timing-function:cubic-bezier(.7,0,.84,.3)}
  76%{transform:translate(40px,80px) rotate(0deg) scale(2.95);animation-timing-function:ease-out}
  88%{transform:translate(41px,84px) rotate(1deg) scale(3.03);animation-timing-function:ease-out}
  100%{transform:translate(40px,80px) rotate(0deg) scale(2.95)}
}
@keyframes upperRiseR{
  0%{transform:translate(-24px,80px) rotate(26deg) scale(.9);animation-timing-function:cubic-bezier(.42,0,.58,1)}
  22%{transform:translate(-20px,104px) rotate(34deg) scale(.95);animation-timing-function:cubic-bezier(.45,.05,.55,1)}
  40%{transform:translate(-34px,107px) rotate(22deg) scale(1.15);animation-timing-function:cubic-bezier(.55,.06,.68,.19)}
  58%{transform:translate(-43px,92px) rotate(8deg) scale(2.05);animation-timing-function:cubic-bezier(.7,0,.84,.3)}
  76%{transform:translate(-40px,80px) rotate(0deg) scale(2.95);animation-timing-function:ease-out}
  88%{transform:translate(-41px,84px) rotate(-1deg) scale(3.03);animation-timing-function:ease-out}
  100%{transform:translate(-40px,80px) rotate(0deg) scale(2.95)}
}
@keyframes upperForeL{
  0%{transform:rotate(29deg) scaleY(1)}
  22%{transform:rotate(42deg) scaleY(.73)}
  40%{transform:rotate(42deg) scaleY(.56)}
  58%{transform:rotate(31deg) scaleY(.40)}
  76%{transform:rotate(20deg) scaleY(.30)}
  100%{transform:rotate(20deg) scaleY(.30)}
}
@keyframes upperForeR{
  0%{transform:rotate(-29deg) scaleY(1)}
  22%{transform:rotate(-42deg) scaleY(.73)}
  40%{transform:rotate(-42deg) scaleY(.56)}
  58%{transform:rotate(-31deg) scaleY(.40)}
  76%{transform:rotate(-20deg) scaleY(.30)}
  100%{transform:rotate(-20deg) scaleY(.30)}
}
@keyframes upperElbowL{
  0%{transform:translate(-13.5px,-13.2px) rotate(46.7deg) scaleY(.87)}
  22%{transform:translate(3px,-65px) rotate(41deg) scaleY(1.38)}
  40%{transform:translate(-9px,-75px) rotate(24deg) scaleY(1.18)}
  58%{transform:translate(-13px,-60px) rotate(10deg) scaleY(.62)}
  76%{transform:translate(-8px,-54px) rotate(2deg) scaleY(.38)}
  100%{transform:translate(-8px,-54px) rotate(2deg) scaleY(.38)}
}
@keyframes upperElbowR{
  0%{transform:translate(13.5px,-13.2px) rotate(-46.7deg) scaleY(.87)}
  22%{transform:translate(-3px,-65px) rotate(-41deg) scaleY(1.38)}
  40%{transform:translate(9px,-75px) rotate(-24deg) scaleY(1.18)}
  58%{transform:translate(13px,-60px) rotate(-10deg) scaleY(.62)}
  76%{transform:translate(8px,-54px) rotate(-2deg) scaleY(.38)}
  100%{transform:translate(8px,-54px) rotate(-2deg) scaleY(.38)}
}

/* UPPERCUT ARM CHAIN (2026-11-06): the scoop arc above moved
   the GLOVE, but the arm segments kept the pre-arc keyframes —
   by arrival the forearm's absolute angle hit 105deg (a bar
   sticking sideways out of the fist, elbow end ~150px off the
   body's elbow) and the elbow link hung in empty air off the
   left edge. The chain is now SOLVED per stop (fighter-local
   px, left; right mirrors): the elbow stays in one compact
   zone below the fist — (32,348) at the scoop bottom, (36,344)
   mid-slide, (36,340) on the drive, (36,332) at arrival — so
   the forearm's absolute angle never exceeds 23deg and stands
   near-vertical under the fist through the rise, pushing it
   up. The ::after link now runs AS the second bone: its origin
   sits on the upper arm's elbow tip and its end lands on the
   forearm's elbow, instead of floating wherever its own
   keyframes drifted. The upper arm also gets a strike pose
   of its own (below): tucked low (elbow (38,281)) instead of
   snapping back to the guard pose mid-punch, so the elbow
   never pins straight before the fist arrives at 76%.
   Measured origin gap per stop (both sides; right mirrors):
   22% 5.0px / 40% 0.8px / 58% 0.8px / 76% and 100% 1.7px.
   The 0% stop needed its own solve and now has it: at 0% the
   arm still wears the WIND pose (rotate(-11deg) scaleY(1.92),
   elbow (52,310)), and the first pass had merely carried the
   wind ::after's own origin over — which sat 35px off that
   elbow. The 0% keyframe is re-solved onto the wind elbow
   (origin gap ~0px, link end on the forearm's elbow), so
   every stop now measures <=5px. Glove trajectory, clock,
   judgement and damage unchanged — arm segments only. */
.fighter.strike.pt-upper-l .upper-arm-l{transform:rotate(-6deg) scaleY(1.45)}
.fighter.strike.pt-upper-r .upper-arm-r{transform:rotate(6deg) scaleY(1.45)}
.fighter.whiff.pt-upper-l .upper-arm-l{transform:rotate(-4deg) scaleY(1.5)}
.fighter.whiff.pt-upper-r .upper-arm-r{transform:rotate(4deg) scaleY(1.5)}

.fighter.whiff.pt-upper-l .glove.left{transform:translate(40px,110px) rotate(6deg) scale(3.1)}
.fighter.whiff.pt-upper-r .glove.right{transform:translate(-40px,110px) rotate(-6deg) scale(3.1)}
.fighter.whiff.pt-upper-l .glove.left::before{transform:rotate(17deg) scaleY(.32)}
.fighter.whiff.pt-upper-r .glove.right::before{transform:rotate(-17deg) scaleY(.32)}
.fighter.whiff.pt-upper-l .glove.left::after{transform:translate(-9px,-62px) rotate(-3deg) scaleY(.57)}
.fighter.whiff.pt-upper-r .glove.right::after{transform:translate(9px,-62px) rotate(3deg) scaleY(.57)}

.hook-streak .hs-upl,.hook-streak .hs-upr{stroke:rgba(245,252,255,.85);stroke-width:3;opacity:0}
.hook-streak .hs-upsub{stroke:rgba(205,232,255,.45);stroke-width:2;animation-delay:.03s}
.fighter.strike.pt-upper-l .hook-streak .hs-upl{animation:upperStreak .34s cubic-bezier(.5,.05,.65,.35) both}
.fighter.strike.pt-upper-r .hook-streak .hs-upr{animation:upperStreak .34s cubic-bezier(.5,.05,.65,.35) both}
@keyframes upperStreak{
  0%{stroke-dasharray:46 260;stroke-dashoffset:46;opacity:0}
  14%{opacity:.9}
  58%{stroke-dasharray:46 260;stroke-dashoffset:-46;opacity:.9}
  100%{stroke-dasharray:46 260;stroke-dashoffset:-118;opacity:0}
}
@media (prefers-reduced-motion: reduce){
  .fighter.strike.pt-upper-l .hook-streak .hs-upl,.fighter.strike.pt-upper-r .hook-streak .hs-upr{animation:none;opacity:0}
}

.trunks{width:168px;margin-left:-14px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .trunks{width:135px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-3) .trunks{width:165px}
#fighter.opp-no1.is-zeus.zform-2 .trunks{width:201px}
#fighter.opp-kaiser.is-kaiser .trunks{width:199px}

#fighter{--fwd:0;--seamX:calc(var(--fwd)*11px)}
.chest{display:flex}
.waist{display:flex}
.half{flex:none;height:100%;background:inherit;background-size:200% 100%;background-repeat:no-repeat;transition:width .25s ease,filter .25s ease}
.half-l{width:calc(50% - var(--seamX));background-position:0 0;filter:brightness(calc(1 - var(--fwd)*.07))}
.half-r{width:calc(50% + var(--seamX));background-position:100% 0;filter:brightness(calc(1 + var(--fwd)*.07))}
.chest>.half-l{box-shadow:inset 12px 0 10px -5px rgba(166,91,38,.20),inset -6px 0 7px -4px rgba(120,60,20,.20),inset 0 -11px 0 rgba(166,91,38,.16)}
.chest>.half-r{box-shadow:inset -12px 0 10px -5px rgba(166,91,38,.20),inset 6px 0 7px -4px rgba(120,60,20,.20),inset 0 -11px 0 rgba(166,91,38,.16)}
.waist>.half-l{box-shadow:inset 9px 0 7px -3px rgba(146,79,35,.22),inset -5px 0 6px -3px rgba(120,60,20,.18),inset 0 -8px 0 rgba(166,91,38,.13)}
.waist>.half-r{box-shadow:inset -9px 0 7px -3px rgba(146,79,35,.22),inset 5px 0 6px -3px rgba(120,60,20,.18),inset 0 -8px 0 rgba(166,91,38,.13)}
#fighter .sternum{left:calc(50% + var(--seamX));transition:left .25s ease}
#fighter .navel{left:calc(50% + var(--seamX));transition:left .25s ease}
#fighter.opp-raiga.is-raiga .chesthair{left:calc(50% + var(--seamX));transition:left .25s ease}
#fighter .chest::before{width:calc(48px - var(--seamX));transition:width .25s ease}
#fighter .chest::after{width:calc(48px + var(--seamX));transition:width .25s ease}
#fighter.opp-kaiser.is-kaiser .armor-plate{display:flex}
#fighter.opp-kaiser.is-kaiser .armor-plate::before{left:calc(50% + var(--seamX));transition:left .25s ease}
#fighter.wind .half{transition-duration:.45s}
#fighter.strike .half{transition-duration:.15s}
#fighter.whiff .half{transition-duration:.18s}
#fighter.recover .half{transition-duration:.4s}

#fighter.wind.pt-jab{--fwd:.55}
#fighter.wind.pt-straight{--fwd:-.55}
#fighter.wind.pt-hook-l{--fwd:.6}
#fighter.wind.pt-hook-r{--fwd:-.6}
#fighter.wind.pt-upper-l{--fwd:.5}
#fighter.wind.pt-upper-r{--fwd:-.5}
#fighter.wind.pt-smash-l{--fwd:.65}
#fighter.wind.pt-smash-r{--fwd:-.65}
#fighter.wind.pt-chop-r{--fwd:.6}

#fighter.strike.pt-jab{--fwd:-.95}
#fighter.strike.pt-straight{--fwd:.95}
#fighter.strike.pt-hook-l{--fwd:-.95}
#fighter.strike.pt-hook-r{--fwd:.95}
#fighter.strike.pt-upper-l{--fwd:-.9}
#fighter.strike.pt-upper-r{--fwd:.9}
#fighter.strike.pt-smash-l{--fwd:-1}
#fighter.strike.pt-smash-r{--fwd:1}
#fighter.strike.pt-chop-r{--fwd:-.95}
#fighter.whiff.pt-jab{--fwd:-1.05}
#fighter.whiff.pt-straight{--fwd:1.05}
#fighter.whiff.pt-hook-l{--fwd:-1.05}
#fighter.whiff.pt-hook-r{--fwd:1.05}
#fighter.whiff.pt-upper-l{--fwd:-1}
#fighter.whiff.pt-upper-r{--fwd:1}
#fighter.whiff.pt-smash-l{--fwd:-1.1}
#fighter.whiff.pt-smash-r{--fwd:1.1}
#fighter.whiff.pt-chop-r{--fwd:-1.05}

#fighter.recover.pt-jab{--fwd:-.3}
#fighter.recover.pt-straight{--fwd:.3}
#fighter.recover.pt-hook-l{--fwd:-.3}
#fighter.recover.pt-hook-r{--fwd:.3}
#fighter.recover.pt-upper-l{--fwd:-.3}
#fighter.recover.pt-upper-r{--fwd:.3}
#fighter.recover.pt-smash-l{--fwd:-.35}
#fighter.recover.pt-smash-r{--fwd:.35}
#fighter.recover.pt-chop-r{--fwd:-.3}

#fighter.feinting.pt-jab{--fwd:.5}
#fighter.feinting.pt-straight{--fwd:-.5}
#fighter.feinting.pt-hook-l{--fwd:.55}
#fighter.feinting.pt-hook-r{--fwd:-.55}
#fighter.feinting.pt-upper-l{--fwd:.45}
#fighter.feinting.pt-upper-r{--fwd:-.45}
#fighter.feinting.pt-smash-l{--fwd:.6}
#fighter.feinting.pt-smash-r{--fwd:-.6}
#fighter.feinting.pt-chop-r{--fwd:.55}
#fighter.feint-back{--fwd:-.3}

#fighter.sway{--fwd:clamp(-1,calc(var(--sway,24)*.026),1)}
#fighter.dodge-duck{--fwd:clamp(-1,calc(var(--sway,24)*.026),1)}
#fighter.dodge-swayback{--fwd:clamp(-1,calc(var(--sway,24)*.026),1)}
#fighter.dodge-step{--fwd:clamp(-1,calc(var(--sway,24)*.026),1)}

#fighter.hurt{--fwd:clamp(-.85,calc(var(--hx,11)*-.05),.85)}
#fighter.belly-clutch:not(.down){--fwd:.3}
#fighter.belly-clutch.belly-deep:not(.down){--fwd:.45}
#fighter.chance-stagger{--fwd:.35}
#fighter.down{--fwd:0}
#fighter.rising{--fwd:.25}

.trunks-in{inset:3px 3px 0;box-shadow:none;clip-path:polygon(8.5% 0,91.5% 0,100% 58%,50% 70%,0 58%);background:linear-gradient(180deg,#f5f6fa 0 20px,rgba(255,255,255,0) 20px),linear-gradient(90deg,#e83e55 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e83e55 calc(100% - 8px)),linear-gradient(180deg,#33356e,#23234d)}
#fighter.opp-hayate .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 20px,rgba(255,255,255,0) 20px),linear-gradient(90deg,#0d7a44 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#0d7a44 calc(100% - 8px)),linear-gradient(180deg,#1fae62,#0d7a44)}
#fighter.opp-ganji .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 20px,rgba(255,255,255,0) 20px),linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#8a3324,#571d12)}
#fighter.opp-raiga .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 20px,rgba(255,255,255,0) 20px),linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#4b2a86,#2c1854)}
#fighter.opp-raiga.is-raiga .trunks-in{background:linear-gradient(180deg,#f5f6fa 0 20px,rgba(255,255,255,0) 20px),repeating-linear-gradient(94deg,rgba(22,12,2,.92) 0 6px,rgba(22,12,2,0) 6px 14px,rgba(22,12,2,.85) 14px 18px,rgba(22,12,2,0) 18px 29px),linear-gradient(180deg,#ffa02e,#e06f00)}
#fighter.opp-kaiser .trunks-in{background:linear-gradient(180deg,#ffe066 0 20px,rgba(255,255,255,0) 20px),linear-gradient(90deg,#f7b731 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#f7b731 calc(100% - 8px)),linear-gradient(180deg,#23232e,#0a0a10)}
#fighter.opp-no1 .trunks-in{background:linear-gradient(180deg,#ffe066 0 20px,rgba(255,255,255,0) 20px),linear-gradient(90deg,#e83e55 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e83e55 calc(100% - 8px)),linear-gradient(180deg,#8f1020,#3d0710)}
#fighter.opp-gou .trunks-in{background:linear-gradient(180deg,#2b4bd8 0 21px,#1d358f 21px 27px,rgba(255,255,255,0) 27px),linear-gradient(90deg,rgba(0,0,0,.16) 0 7px,rgba(255,255,255,0) 7px calc(100% - 7px),rgba(0,0,0,.16) calc(100% - 7px)),linear-gradient(180deg,#ff9026,#f26d0d)}
.trunks-sponsor{position:absolute;top:3px;left:11%;right:11%;height:20px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;letter-spacing:.14em;color:#2a2a52;white-space:nowrap;overflow:hidden;pointer-events:none}
#fighter.opp-kaiser .trunks-sponsor,#fighter.opp-no1 .trunks-sponsor{color:#503a00}
#fighter.opp-gou .trunks-sponsor{height:21px;color:#fff;text-shadow:0 1px 2px rgba(8,16,64,.6)}
.trunks-leg::before{background:linear-gradient(180deg,#f67d15 0 8px,rgba(246,125,21,0) 30px),linear-gradient(90deg,rgba(0,0,0,.16) 0 7px,rgba(255,255,255,0) 7px calc(100% - 7px),rgba(0,0,0,.16) calc(100% - 7px)),linear-gradient(180deg,#ff9026,#f26d0d)}
#fighter.opp-gou .trunks-leg::before{background:linear-gradient(180deg,#f67d15 0 8px,rgba(246,125,21,0) 30px),linear-gradient(90deg,rgba(0,0,0,.16) 0 7px,rgba(255,255,255,0) 7px calc(100% - 7px),rgba(0,0,0,.16) calc(100% - 7px)),linear-gradient(180deg,#ff9026,#f26d0d)}
#fighter.opp-hayate .trunks-leg::before{background:linear-gradient(180deg,#129253 0 8px,rgba(18,146,83,0) 30px),linear-gradient(90deg,#0d7a44 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#0d7a44 calc(100% - 8px)),linear-gradient(180deg,#1fae62,#0d7a44)}
#fighter.opp-ganji .trunks-leg::before{background:linear-gradient(180deg,#6d271a 0 8px,rgba(109,39,26,0) 30px),linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#8a3324,#571d12)}
#fighter.opp-raiga .trunks-leg::before{background:linear-gradient(180deg,#37206b 0 8px,rgba(55,32,107,0) 30px),linear-gradient(90deg,#e8c15a 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e8c15a calc(100% - 8px)),linear-gradient(180deg,#4b2a86,#2c1854)}
#fighter.opp-raiga.is-raiga .trunks-leg::before{background:linear-gradient(180deg,#eb8512 0 8px,rgba(235,133,18,0) 30px),repeating-linear-gradient(94deg,rgba(22,12,2,.92) 0 6px,rgba(22,12,2,0) 6px 14px,rgba(22,12,2,.85) 14px 18px,rgba(22,12,2,0) 18px 29px),linear-gradient(180deg,#ffa02e,#e06f00)}
#fighter.opp-kaiser .trunks-leg::before{background:linear-gradient(180deg,#15151e 0 8px,rgba(21,21,30,0) 30px),linear-gradient(90deg,#f7b731 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#f7b731 calc(100% - 8px)),linear-gradient(180deg,#23232e,#0a0a10)}
#fighter.opp-no1 .trunks-leg::before{background:linear-gradient(180deg,#620b17 0 8px,rgba(98,11,23,0) 30px),linear-gradient(90deg,#e83e55 0 8px,rgba(255,255,255,0) 8px calc(100% - 8px),#e83e55 calc(100% - 8px)),linear-gradient(180deg,#8f1020,#3d0710)}

#fighter{--sL:calc(1 + max(calc(var(--fwd)*-.30),0));--sR:calc(1 + max(calc(var(--fwd)*.30),0))}
#fighter .chest{column-gap:10px;transform-origin:calc(50% - var(--fwd)*50%) 50%;transform:scaleX(calc(1 + var(--fwd)*var(--fwd)*.16));transition:transform .25s ease}
#fighter .waist{column-gap:8px;transform-origin:calc(50% - var(--fwd)*50%) 50%;transform:scaleX(calc(1 + var(--fwd)*var(--fwd)*.16));transition:transform .25s ease}
#fighter.wind .chest,#fighter.wind .waist{transition-duration:.45s}
#fighter.strike .chest,#fighter.strike .waist{transition-duration:.15s}
#fighter.whiff .chest,#fighter.whiff .waist{transition-duration:.18s}
#fighter.recover .chest,#fighter.recover .waist{transition-duration:.4s}
.chest>.half-l{width:calc(50% - 5px);transform-origin:100% 50%;transform:scaleX(var(--sL));border-radius:44px 15px 15px 13px;box-shadow:inset 10px 0 9px -5px rgba(166,91,38,.18),inset -9px 0 10px -3px rgba(110,55,18,.52),inset 0 -10px 0 rgba(166,91,38,.14)}
.chest>.half-r{width:calc(50% - 5px);transform-origin:0% 50%;transform:scaleX(var(--sR));border-radius:15px 44px 13px 15px;box-shadow:inset -10px 0 9px -5px rgba(166,91,38,.18),inset 9px 0 10px -3px rgba(110,55,18,.52),inset 0 -10px 0 rgba(166,91,38,.14)}
.waist>.half-l{width:calc(50% - 4px);transform-origin:100% 50%;transform:scaleX(var(--sL));border-radius:5px 7px 7px 14px;box-shadow:inset 8px 0 7px -3px rgba(146,79,35,.20),inset -8px 0 8px -3px rgba(110,55,18,.50),inset 0 -8px 0 rgba(166,91,38,.13)}
.waist>.half-r{width:calc(50% - 4px);transform-origin:0% 50%;transform:scaleX(var(--sR));border-radius:7px 5px 14px 7px;box-shadow:inset -8px 0 7px -3px rgba(146,79,35,.20),inset 8px 0 8px -3px rgba(110,55,18,.50),inset 0 -8px 0 rgba(166,91,38,.13)}
#fighter .chest>.half-l,#fighter .chest>.half-r,#fighter .waist>.half-l,#fighter .waist>.half-r{transition:transform .25s ease,filter .25s ease}
#fighter.wind .chest>.half-l,#fighter.wind .chest>.half-r,#fighter.wind .waist>.half-l,#fighter.wind .waist>.half-r{transition-duration:.45s}
#fighter.strike .chest>.half-l,#fighter.strike .chest>.half-r,#fighter.strike .waist>.half-l,#fighter.strike .waist>.half-r{transition-duration:.15s}
#fighter.whiff .chest>.half-l,#fighter.whiff .chest>.half-r,#fighter.whiff .waist>.half-l,#fighter.whiff .waist>.half-r{transition-duration:.18s}
#fighter.recover .chest>.half-l,#fighter.recover .chest>.half-r,#fighter.recover .waist>.half-l,#fighter.recover .waist>.half-r{transition-duration:.4s}

#fighter .sternum{left:50%;top:3px;width:10px;height:calc(100% - 8px);background:linear-gradient(90deg,rgba(120,60,20,0),rgba(110,52,16,.55) 28%,rgba(84,40,12,.75) 50%,rgba(110,52,16,.55) 72%,rgba(120,60,20,0));border-radius:5px}
#fighter .waist::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:9px;height:100%;background:linear-gradient(90deg,rgba(120,60,20,0),rgba(110,52,16,.52) 28%,rgba(84,40,12,.72) 50%,rgba(110,52,16,.52) 72%,rgba(120,60,20,0));z-index:2;pointer-events:none}
#fighter .navel{left:50%;z-index:3}
#fighter.opp-raiga.is-raiga .chesthair{left:50%}

#fighter .chest::before{width:58px}
#fighter .chest::after{width:58px}

.boxing-shoe{top:62px;height:32px;background:linear-gradient(180deg,var(--shoe-dark) 0 7px,var(--shoe-mid) 7px 18px,var(--shoe-main) 18px 25px,#f5f6fa 25px)}
.boxing-shoe::before{top:-18px;height:22px}

#fighter:not(.down) .leg:first-child .boxing-shoe{background:linear-gradient(90deg,rgba(0,0,0,0) 0 31%,rgba(20,20,43,.26) 31% calc(31% + 2px),rgba(0,0,0,0) calc(31% + 2px) 67%,rgba(20,20,43,.26) 67% calc(67% + 2px),rgba(0,0,0,0) calc(67% + 2px)),linear-gradient(180deg,var(--shoe-dark) 0 7px,var(--shoe-mid) 7px 18px,var(--shoe-main) 18px 25px,#f5f6fa 25px)}
#fighter:not(.down) .leg:first-child .boxing-shoe::after{top:7px;height:20px}

#fighter:not(.down) .leg:last-child .boxing-shoe{background:linear-gradient(100deg,rgba(0,0,0,.20) 0 16%,rgba(0,0,0,0) 16%),linear-gradient(180deg,var(--shoe-dark) 0 7px,var(--shoe-mid) 7px 18px,var(--shoe-main) 18px 25px,#f5f6fa 25px)}
#fighter:not(.down) .leg:last-child .boxing-shoe::after{top:10px}

#fighter.attacking.pt-straight .leg:first-child .boxing-shoe,#fighter.attacking.pt-hook-r .leg:first-child .boxing-shoe,#fighter.attacking.pt-smash-r .leg:first-child .boxing-shoe{background:linear-gradient(270deg,rgba(20,20,43,.28) 0 15px,rgba(0,0,0,0) 15px),linear-gradient(180deg,var(--shoe-dark) 0 7px,var(--shoe-mid) 7px 18px,var(--shoe-main) 18px 25px,#f5f6fa 25px)}
#fighter.attacking.pt-jab .leg:last-child .boxing-shoe,#fighter.attacking.pt-hook-l .leg:last-child .boxing-shoe,#fighter.attacking.pt-upper-l .leg:last-child .boxing-shoe,#fighter.attacking.pt-upper-r .leg:last-child .boxing-shoe,#fighter.attacking.pt-smash-l .leg:last-child .boxing-shoe,#fighter.attacking.pt-chop-r .leg:last-child .boxing-shoe{background:linear-gradient(90deg,rgba(20,20,43,.28) 0 15px,rgba(0,0,0,0) 15px),linear-gradient(180deg,var(--shoe-dark) 0 7px,var(--shoe-mid) 7px 18px,var(--shoe-main) 18px 25px,#f5f6fa 25px)}
#fighter.attacking.pt-straight .leg:first-child .boxing-shoe::after,#fighter.attacking.pt-hook-r .leg:first-child .boxing-shoe::after,#fighter.attacking.pt-smash-r .leg:first-child .boxing-shoe::after,#fighter.attacking.pt-jab .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-hook-l .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-upper-l .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-upper-r .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-smash-l .leg:last-child .boxing-shoe::after,#fighter.attacking.pt-chop-r .leg:last-child .boxing-shoe::after{top:9px}

#fighter.down .boxing-shoe{background:linear-gradient(90deg,rgba(0,0,0,0) 0 calc(50% - 1.5px),rgba(20,20,43,.45) calc(50% - 1.5px) calc(50% + 1.5px),rgba(0,0,0,0) calc(50% + 1.5px)),linear-gradient(180deg,var(--shoe-dark) 0 8px,var(--shoe-main) 8px 24px,#26262f 24px)}
#fighter.down .boxing-shoe::after{top:6px}

.lower-leg{width:38px;left:21px}
.boxing-shoe::before{width:36px;margin-left:-18px}
#fighter:not(.attacking):not(.down) .leg:first-child .lower-leg{width:42px;left:19px}
#fighter:not(.attacking):not(.down) .leg:last-child .lower-leg{width:34px;left:23px}
#fighter.attacking.pt-jab .leg:first-child .lower-leg,#fighter.attacking.pt-hook-l .leg:first-child .lower-leg,#fighter.attacking.pt-upper-l .leg:first-child .lower-leg,#fighter.attacking.pt-upper-r .leg:first-child .lower-leg,#fighter.attacking.pt-smash-l .leg:first-child .lower-leg,#fighter.attacking.pt-chop-r .leg:first-child .lower-leg{width:44px;left:18px}
#fighter.attacking.pt-jab .leg:last-child .lower-leg,#fighter.attacking.pt-hook-l .leg:last-child .lower-leg,#fighter.attacking.pt-upper-l .leg:last-child .lower-leg,#fighter.attacking.pt-upper-r .leg:last-child .lower-leg,#fighter.attacking.pt-smash-l .leg:last-child .lower-leg,#fighter.attacking.pt-chop-r .leg:last-child .lower-leg{width:33px;left:24px}
#fighter.attacking.pt-straight .leg:last-child .lower-leg,#fighter.attacking.pt-hook-r .leg:last-child .lower-leg,#fighter.attacking.pt-smash-r .leg:last-child .lower-leg{width:44px;left:18px}
#fighter.attacking.pt-straight .leg:first-child .lower-leg,#fighter.attacking.pt-hook-r .leg:first-child .lower-leg,#fighter.attacking.pt-smash-r .leg:first-child .lower-leg{width:33px;left:24px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .lower-leg{width:38px;left:21px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3) .boxing-shoe::before{width:36px;margin-left:-18px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:first-child .lower-leg{width:42px;left:19px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3):not(.attacking):not(.down) .leg:last-child .lower-leg{width:34px;left:23px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:first-child .lower-leg,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:last-child .lower-leg{width:44px;left:18px}
#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-jab,.pt-hook-l,.pt-upper-l,.pt-upper-r,.pt-smash-l,.pt-chop-r) .leg:last-child .lower-leg,#fighter.opp-no1.is-zeus:is(.omni,.zform-1,.zform-2,.zform-3).attacking:is(.pt-straight,.pt-hook-r,.pt-smash-r) .leg:first-child .lower-leg{width:33px;left:24px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .lower-leg{width:15px;left:8px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:first-child .lower-leg{width:16px;left:7px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .leg:last-child .lower-leg{width:13px;left:9px}
#fighter.opp-no1.is-zeus:not(.omni):not(.zform-1):not(.zform-2):not(.zform-3) .boxing-shoe::before{width:18px;margin-left:-9px}


.fighter.down .glove::before,.fighter.rising .glove::before{animation:none!important}
.fighter.down .glove.left::before,.fighter.rising .glove.left::before{transform:rotate(9deg)!important}
.fighter.down .glove.right::before,.fighter.rising .glove.right::before{transform:rotate(-9deg)!important}

.fighter.down .glove.left::after,.fighter.rising .glove.left::after{transform:translate(-6px,-7px) rotate(-7deg)!important}
.fighter.down .glove.right::after,.fighter.rising .glove.right::after{transform:translate(6px,-7px) rotate(7deg)!important}

.fighter.down .glove.left{animation:downGloveNRL 2.6s ease forwards!important}
@keyframes downGloveNRL{0%{transform:translate(0,0)}10%{transform:translate(4px,-8px)}28%{transform:translate(-8px,44px)}52%,62%{transform:translate(-26px,124px)}72%{transform:translate(-40px,94px) scale(.93)}100%{transform:translate(-62px,26px) scale(.84)}}
.fighter.down .glove.right{animation:downGloveNRR 2.6s ease forwards!important}
@keyframes downGloveNRR{0%{transform:translate(0,0)}10%{transform:translate(-4px,-8px)}28%{transform:translate(8px,44px)}52%,62%{transform:translate(26px,124px)}72%{transform:translate(40px,94px) scale(.93)}100%{transform:translate(62px,26px) scale(.84)}}
.fighter.down.pat-launch .glove.left{animation:downGloveLaunchNRL 2.6s ease forwards!important}
@keyframes downGloveLaunchNRL{0%{transform:translate(0,0)}10%{transform:translate(4px,-8px)}28%{transform:translate(-8px,44px)}52%,62%{transform:translate(-26px,124px)}72%{transform:translate(-58px,60px) scale(.90)}100%{transform:translate(-96px,10px) scale(.82)}}
.fighter.down.pat-launch .glove.right{animation:downGloveLaunchNRR 2.6s ease forwards!important}
@keyframes downGloveLaunchNRR{0%{transform:translate(0,0)}10%{transform:translate(-4px,-8px)}28%{transform:translate(8px,44px)}52%,62%{transform:translate(26px,124px)}72%{transform:translate(58px,60px) scale(.90)}100%{transform:translate(96px,10px) scale(.82)}}
.fighter.down.pat-face .glove.left{animation:downGloveFaceNRL 2.6s ease forwards!important}
@keyframes downGloveFaceNRL{0%{transform:translate(0,0)}10%{transform:translate(4px,-8px)}28%{transform:translate(-8px,44px)}52%,62%{transform:translate(-26px,124px)}72%{transform:translate(-30px,120px) scale(.95)}100%{transform:translate(-34px,132px) scale(.86)}}
.fighter.down.pat-face .glove.right{animation:downGloveFaceNRR 2.6s ease forwards!important}
@keyframes downGloveFaceNRR{0%{transform:translate(0,0)}10%{transform:translate(-4px,-8px)}28%{transform:translate(8px,44px)}52%,62%{transform:translate(26px,124px)}72%{transform:translate(30px,120px) scale(.95)}100%{transform:translate(34px,132px) scale(.86)}}
.fighter.rising .glove.left{animation:riseGloveNRL 1.4s cubic-bezier(.3,.6,.35,1) forwards!important}
@keyframes riseGloveNRL{0%{transform:translate(-26px,124px)}12%{transform:translate(-27px,129px)}30%{transform:translate(-26px,127px)}44%{transform:translate(-26px,128px)}62%{transform:translate(-22px,96px)}76%{transform:translate(-18px,36px)}88%{transform:translate(-4px,10px)}100%{transform:translate(0,0)}}
.fighter.rising .glove.right{animation:riseGloveNRR 1.4s cubic-bezier(.3,.6,.35,1) forwards!important}
@keyframes riseGloveNRR{0%{transform:translate(26px,124px)}12%{transform:translate(27px,130px)}34%{transform:translate(26px,128px)}52%{transform:translate(25px,124px)}68%{transform:translate(21px,96px)}84%{transform:translate(7px,20px)}100%{transform:translate(0,0)}}

.fighter.down .glove::after{animation:downBridge 2.6s ease forwards!important}
@keyframes downBridge{0%,10%{top:92px;height:48px}28%{top:58px;height:82px}52%,62%{top:12px;height:128px}72%{top:32px;height:108px}100%{top:50px;height:90px}}
.fighter.down.pat-launch .glove::after{animation:launchBridge 2.6s ease forwards!important}
@keyframes launchBridge{0%,10%{top:92px;height:48px}28%{top:58px;height:82px}52%,62%{top:12px;height:128px}72%{top:24px;height:116px}100%{top:46px;height:94px}}
.fighter.down.pat-face .glove::after{animation:faceBridge 2.6s ease forwards!important}
@keyframes faceBridge{0%,10%{top:92px;height:48px}28%{top:58px;height:82px}52%,62%{top:12px;height:128px}72%{top:14px;height:126px}100%{top:10px;height:130px}}
.fighter.rising .glove::after{animation:riseBridge 1.4s cubic-bezier(.3,.6,.35,1) forwards!important}
@keyframes riseBridge{0%{top:12px;height:128px}12%{top:10px;height:130px}30%{top:14px;height:126px}44%{top:13px;height:127px}62%{top:36px;height:104px}76%{top:60px;height:80px}88%{top:79px;height:61px}100%{top:92px;height:48px}}

.fighter.down .upper-arm-l{animation:downUpperNRL 2.6s ease forwards!important}
@keyframes downUpperNRL{0%{transform:rotate(16deg) scaleY(1)}10%{transform:rotate(16deg) scaleY(1.06)}28%{transform:rotate(16deg) scaleY(1.22)}52%,62%{transform:rotate(16deg) scaleY(1.38)}72%{transform:translateX(-10px) rotate(16deg) scaleY(1.3)}100%{transform:translateX(-20px) rotate(16deg) scaleY(1.26)}}
.fighter.down .upper-arm-r{animation:downUpperNRR 2.6s ease forwards!important}
@keyframes downUpperNRR{0%{transform:rotate(-16deg) scaleY(1)}10%{transform:rotate(-16deg) scaleY(1.06)}28%{transform:rotate(-16deg) scaleY(1.22)}52%,62%{transform:rotate(-16deg) scaleY(1.38)}72%{transform:translateX(10px) rotate(-16deg) scaleY(1.3)}100%{transform:translateX(20px) rotate(-16deg) scaleY(1.26)}}
.fighter.down.pat-launch .upper-arm-l{animation:downUpperLaunchNRL 2.6s ease forwards!important}
@keyframes downUpperLaunchNRL{0%{transform:rotate(16deg) scaleY(1)}10%{transform:rotate(16deg) scaleY(1.06)}28%{transform:rotate(16deg) scaleY(1.22)}52%,62%{transform:rotate(16deg) scaleY(1.38)}72%{transform:translateX(-14px) rotate(16deg) scaleY(1.34)}100%{transform:translateX(-26px) rotate(16deg) scaleY(1.28)}}
.fighter.down.pat-launch .upper-arm-r{animation:downUpperLaunchNRR 2.6s ease forwards!important}
@keyframes downUpperLaunchNRR{0%{transform:rotate(-16deg) scaleY(1)}10%{transform:rotate(-16deg) scaleY(1.06)}28%{transform:rotate(-16deg) scaleY(1.22)}52%,62%{transform:rotate(-16deg) scaleY(1.38)}72%{transform:translateX(14px) rotate(-16deg) scaleY(1.34)}100%{transform:translateX(26px) rotate(-16deg) scaleY(1.28)}}
.fighter.down.pat-face .upper-arm-l{animation:downUpperFaceNRL 2.6s ease forwards!important}
@keyframes downUpperFaceNRL{0%{transform:rotate(16deg) scaleY(1)}10%{transform:rotate(16deg) scaleY(1.06)}28%{transform:rotate(16deg) scaleY(1.22)}52%,62%{transform:rotate(16deg) scaleY(1.38)}72%{transform:rotate(16deg) scaleY(1.46)}100%{transform:rotate(16deg) scaleY(1.52)}}
.fighter.down.pat-face .upper-arm-r{animation:downUpperFaceNRR 2.6s ease forwards!important}
@keyframes downUpperFaceNRR{0%{transform:rotate(-16deg) scaleY(1)}10%{transform:rotate(-16deg) scaleY(1.06)}28%{transform:rotate(-16deg) scaleY(1.22)}52%,62%{transform:rotate(-16deg) scaleY(1.38)}72%{transform:rotate(-16deg) scaleY(1.46)}100%{transform:rotate(-16deg) scaleY(1.52)}}
.fighter.rising .upper-arm-l{animation:riseUpperNRL 1.4s cubic-bezier(.3,.6,.35,1) forwards!important}
@keyframes riseUpperNRL{0%{transform:rotate(16deg) scaleY(1.38)}12%{transform:rotate(16deg) scaleY(1.4)}30%{transform:rotate(16deg) scaleY(1.34)}44%{transform:rotate(16deg) scaleY(1.37)}62%{transform:rotate(16deg) scaleY(1.22)}76%{transform:rotate(16deg) scaleY(1.1)}88%{transform:rotate(16deg) scaleY(1.04)}100%{transform:rotate(16deg) scaleY(1)}}
.fighter.rising .upper-arm-r{animation:riseUpperNRR 1.4s cubic-bezier(.3,.6,.35,1) forwards!important}
@keyframes riseUpperNRR{0%{transform:rotate(-16deg) scaleY(1.38)}12%{transform:rotate(-16deg) scaleY(1.4)}30%{transform:rotate(-16deg) scaleY(1.34)}44%{transform:rotate(-16deg) scaleY(1.37)}62%{transform:rotate(-16deg) scaleY(1.22)}76%{transform:rotate(-16deg) scaleY(1.1)}88%{transform:rotate(-16deg) scaleY(1.04)}100%{transform:rotate(-16deg) scaleY(1)}}

.jt{position:absolute;pointer-events:none}

.fighter:is(.down,.rising) .jt-jaw{left:50%;bottom:-16px;transform:translateX(-50%);width:62px;height:36px;border-radius:50%;background:inherit;z-index:0}

.fighter:is(.down,.rising) .neck::before{content:"";position:absolute;left:50%;transform:translateX(-50%);top:-15px;width:58px;height:58px;border-radius:50% 50% 46% 46%/60% 60% 40% 40%;background:inherit;z-index:-1}
.fighter:is(.down,.rising) .neck::after{content:"";position:absolute;left:50%;transform:translateX(-50%);top:6px;width:124px;height:44px;border-radius:50%;background:inherit;z-index:-1}

.fighter:is(.down,.rising) .upper-arm::before{content:"";position:absolute;left:50%;transform:translateX(-50%);top:-13px;width:calc(100% + 14px);height:30px;border-radius:50%;background:inherit;z-index:-1}

.fighter:is(.down,.rising) .upper-arm::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-38px;width:calc(100% + 28px);height:72px;border-radius:50%;background:inherit;z-index:-1}

.fighter:is(.down,.rising) .glove::after{width:72px;margin-left:-36px}
.fighter:is(.down,.rising) .glove.left::after{transform:translate(14px,-7px) rotate(-7deg)!important}
.fighter:is(.down,.rising) .glove.right::after{transform:translate(-14px,-7px) rotate(7deg)!important}

.fighter.down.pat-launch .glove.left::after{transform:translate(30px,-7px) rotate(-7deg)!important}
.fighter.down.pat-launch .glove.right::after{transform:translate(-30px,-7px) rotate(7deg)!important}
.fighter:is(.down,.rising) .glove::before{top:30px;height:98px}


.fighter:is(.down,.rising) .glove::before{visibility:hidden}

.fighter:is(.down,.rising) .upper-arm::after{width:calc(100% + 4px);height:56px;bottom:-22px}

.fighter:is(.down,.rising) .glove::after{width:34px;margin-left:-17px;border-radius:999px}
.fighter:is(.down,.rising) .glove.left::after{transform:translate(8px,-7px) rotate(-7deg)!important}
.fighter:is(.down,.rising) .glove.right::after{transform:translate(-8px,-7px) rotate(7deg)!important}
.fighter.down.pat-launch .glove.left::after{transform:translate(8px,-7px) rotate(-7deg)!important}
.fighter.down.pat-launch .glove.right::after{transform:translate(-8px,-7px) rotate(7deg)!important}

#fighter.opp-hayate:is(.down,.rising) .glove::after{width:38px;margin-left:-19px}
#fighter.opp-kaiser.is-kaiser:is(.down,.rising) .glove::after{width:44px;margin-left:-22px}
#fighter.opp-no1.is-zeus:is(.down,.rising) .glove::after{width:24px;margin-left:-12px}
#fighter.opp-no1.is-zeus.zform-2:is(.down,.rising) .glove::after{width:44px;margin-left:-22px}

.fighter.down .glove::after{animation:downArmBridge 2.6s ease forwards!important}
@keyframes downArmBridge{0%,10%{top:72px;height:68px}28%{top:58px;height:82px}52%,62%{top:12px;height:128px}72%{top:32px;height:108px}100%{top:50px;height:90px}}
.fighter.down.pat-face .glove::after{animation:downArmFace 2.6s ease forwards!important}
@keyframes downArmFace{0%,10%{top:72px;height:68px}28%{top:58px;height:82px}52%,62%{top:12px;height:128px}72%{top:14px;height:126px}100%{top:10px;height:130px}}
.fighter.down.pat-launch .glove.left::after{animation:downArmLaunchL 2.6s ease forwards!important}
@keyframes downArmLaunchL{0%,10%{top:72px;height:68px;translate:0px 0px}28%{top:58px;height:82px;translate:0px 0px}52%,62%{top:12px;height:128px;translate:0px 0px}72%{top:24px;height:116px;translate:4px 0px}100%{top:46px;height:94px;translate:32px 0px}}
.fighter.down.pat-launch .glove.right::after{animation:downArmLaunchR 2.6s ease forwards!important}
@keyframes downArmLaunchR{0%,10%{top:72px;height:68px;translate:0px 0px}28%{top:58px;height:82px;translate:0px 0px}52%,62%{top:12px;height:128px;translate:0px 0px}72%{top:24px;height:116px;translate:-4px 0px}100%{top:46px;height:94px;translate:-32px 0px}}


#fighter.ghost-glove .gloves .g-main{fill:var(--gg-main,#f4527b)}
#fighter.ghost-glove .gloves .g-thumb{fill:var(--gg-thumb,#d6336c)}
#fighter.ghost-glove .gloves .g-palm{fill:var(--gg-thumb,#d6336c)}
#onlineScreen .card{text-align:left}
#onlineScreen h1{text-align:left}

.ref-codebox{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0}
.ref-code{font-size:22px;font-weight:900;letter-spacing:.14em;background:rgba(255,210,63,.16);border:1.5px dashed rgba(255,210,63,.65);border-radius:8px;padding:4px 12px}
.ref-link{flex:1 1 200px;min-width:0;font-size:12.5px;overflow-wrap:anywhere;opacity:.9;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px 8px}
.ref-stats{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.ref-stat{flex:1 1 90px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px 10px;text-align:center}
.ref-stat b{display:block;font-size:19px}
.ref-stat span{font-size:12px;opacity:.85}
.ref-form input[type="text"],.ref-form input[type="url"]{width:100%;box-sizing:border-box;margin:4px 0 8px;padding:9px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:inherit;font-size:15px}
#refCodeInput{flex:1 1 160px;min-width:0;box-sizing:border-box;padding:9px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:inherit;font-size:15px;text-transform:uppercase}
.partner-chip{display:inline-block;margin-left:6px;padding:0 7px;border-radius:999px;background:rgba(255,180,60,.25);border:1px solid rgba(255,180,60,.7);font-size:11.5px;font-weight:800;vertical-align:2px}
.share-panel{margin-top:12px;text-align:center}
.share-panel img{max-width:100%;height:auto;border-radius:12px;border:1px solid rgba(255,255,255,.2)}
.share-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:10px}
.ws-contest{margin-top:10px;background:rgba(255,190,0,.14);border:1px solid rgba(190,145,0,.6);border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.65;text-align:left}
.online-head{font-size:19px;margin:20px 0 8px}

.transfer-box{margin-top:16px;border-top:2px dashed #d6d9f2;padding-top:4px}
.transfer-row{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}
.transfer-row input{flex:1;min-width:180px;padding:10px 12px;border:2px solid #c9cdf0;border-radius:10px;font-size:15px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.transfer-code{font-size:19px;letter-spacing:.1em;color:#1c56c4;word-break:break-all}
.online-row{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:8px 0;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:10px;flex-wrap:wrap}
.online-row .o-main{flex:1 1 150px;min-width:0}
.online-row .o-name{font-weight:800;font-size:16.5px;overflow-wrap:anywhere}
.online-row .o-sub{font-size:13px;opacity:.85;margin-top:2px}
.online-row .o-fight{flex:0 0 auto}
.rank-row{display:flex;align-items:center;gap:10px;padding:7px 12px;margin:6px 0;background:rgba(255,255,255,.04);border-radius:8px;font-size:15px}
.rank-row.me{background:rgba(255,210,63,.16);border:1px solid rgba(255,210,63,.5)}
.rank-row .r-no{flex:0 0 2.2em;font-weight:800}
.rank-row .r-name{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font-weight:700}
.rank-row .r-rec{flex:0 0 auto;opacity:.95;font-size:22px;font-weight:800;line-height:1.2}
#onlineMyRecord{font-size:18px}
.online-row .rec-text{font-size:19px;font-weight:800;line-height:1.35}
#popularityTitle,#endlessBestTitle{font-size:21px;line-height:1.3}
#bbStreak{font-size:22px}
#titleScreen .status-strip .wallet-line{flex-wrap:wrap;row-gap:2px}
.str-chip{display:inline-block;padding:1px 8px;border-radius:999px;background:rgba(120,170,255,.22);border:1px solid rgba(120,170,255,.55);font-size:12.5px;font-weight:700;vertical-align:1px}
.online-empty{font-size:14.5px;opacity:.85;padding:8px 2px;line-height:1.6}

.chat-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin:8px 0;padding:2px}
.chat-msg{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:7px 10px}
.chat-msg.me{background:rgba(255,210,63,.13);border-color:rgba(255,210,63,.45)}
.chat-meta{display:flex;align-items:center;gap:8px;font-size:12px;opacity:.9}
.chat-meta .c-name{font-weight:800;font-size:13px}
.chat-meta .c-time{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.chat-act{flex:none;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);cursor:pointer;font-family:inherit}
.chat-act:disabled{opacity:.55;cursor:default}
.chat-body{font-size:14.5px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;margin-top:2px}
.chat-phrases{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.chat-phrase{font-size:13px;font-weight:700;padding:6px 11px;border-radius:999px;background:rgba(120,170,255,.18);border:1px solid rgba(120,170,255,.5);color:#fff;cursor:pointer;font-family:inherit}
.chat-phrase:active{transform:scale(.96)}
.chat-input-row{display:flex;gap:8px;margin-top:8px}
.chat-input-row input{flex:1;min-width:0;font-size:15px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.3);color:#fff;font-family:inherit}
.chat-input-row .mini-btn{flex:none;align-self:stretch}
.chat-state{font-size:13px;font-weight:700;min-height:1.2em;margin:6px 0 0;color:#ffd23f;line-height:1.5}
.chat-state.ok{color:#7be495}
.chat-state.err{color:#ff8f9e}
.ai-chat{margin-top:20px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.28)}
.chat-list.ai-list{max-height:260px}
.chat-msg.ai{background:rgba(110,200,255,.10);border-color:rgba(110,200,255,.42)}
.chat-msg.ai .c-name{color:#7fd4ff}
.chat-msg.typing .chat-body{opacity:.6}

.fr-gold{border:2px solid #ffd21f;border-radius:999px;padding:0 8px;background:rgba(255,210,31,.14);display:inline-block}
.fr-flame{border:2px solid #ff7a29;border-radius:999px;padding:0 8px;background:rgba(255,110,30,.14);display:inline-block}
.fr-ice{border:2px solid #7fd4ff;border-radius:999px;padding:0 8px;background:rgba(110,200,255,.13);display:inline-block}
.fr-sakura{border:2px solid #ff9ec4;border-radius:999px;padding:0 8px;background:rgba(255,150,190,.13);display:inline-block}
.title-chip{display:inline-block;font-size:11px;font-weight:800;border-radius:3px;clip-path:polygon(5px 0,calc(100% - 5px) 0,100% 5px,100% calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,0 calc(100% - 5px),0 5px);padding:2px 9px;margin-left:6px;background:linear-gradient(160deg,#191c33,#0a0c1a);border:1px solid #c39a35;color:#fdf6df;box-shadow:inset 0 0 0 2px #0a0c1a,inset 0 0 0 3px rgba(227,188,85,.5);vertical-align:2px;white-space:nowrap}
.sup-badge{margin-right:4px;font-style:normal}
.online-row.tag-gold{border-color:#ffd21f;background:rgba(255,210,31,.10)}
.online-row.tag-neon{border-color:#37f2e2;box-shadow:0 0 10px rgba(55,242,226,.45);background:rgba(55,242,226,.07)}
.online-row.tag-wood{border-color:#b98a4e;background:rgba(160,110,55,.13)}
.online-row.tag-ice{border-color:#7fd4ff;background:rgba(110,200,255,.09)}
.chat-msg.bub-gold .chat-body{background:linear-gradient(180deg,rgba(255,220,90,.28),rgba(255,180,20,.16));border:1.5px solid #ffd21f;border-radius:12px;padding:6px 10px}
.chat-msg.bub-sky .chat-body{background:rgba(110,200,255,.18);border:1.5px solid #7fd4ff;border-radius:12px;padding:6px 10px}
.chat-msg.bub-rose .chat-body{background:rgba(255,150,190,.16);border:1.5px solid #ff9ec4;border-radius:12px;padding:6px 10px}
.chat-msg.bub-mint .chat-body{background:rgba(120,240,190,.15);border:1.5px solid #63e6b8;border-radius:12px;padding:6px 10px}
.chat-phrase.stamp{font-size:16px;background:rgba(255,150,190,.16);border-color:rgba(255,150,190,.55)}
.gift-panel{margin:10px 0;padding:10px 12px;border:1.5px dashed rgba(255,210,63,.6);border-radius:12px;background:rgba(255,210,63,.06)}
.gift-amts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.gift-amts .chat-phrase.sel{background:#ffd21f;color:#14142b;border-color:#ffd21f}
.gift-panel select{flex:1;min-width:0;font-size:15px;padding:9px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.3);color:#fff;font-family:inherit}
.gift-amt-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}

.mkt-avg{font-size:12px;font-weight:800;color:#ffd97a;margin-top:2px}
.mkt-mine-row{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:6px 0;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:10px;flex-wrap:wrap;font-size:14px}
.mkt-mine-row .mm-main{flex:1 1 140px;min-width:0;overflow-wrap:anywhere}
.mkt-mine-row .mm-sub{font-size:12px;opacity:.85}
.mkt-sold{color:#7be495;font-weight:800}

.mkt-theme-badge{display:inline-block;margin-left:7px;padding:1px 8px;border-radius:999px;background:linear-gradient(120deg,#ff8a3c,#e65100);color:#fff;font-size:11px;font-weight:900;letter-spacing:.03em;vertical-align:2px;box-shadow:0 0 8px rgba(255,140,0,.5)}

#legalScreen .card{text-align:left}
#legalScreen h1{text-align:left}
.legal-body{font-size:14px;line-height:1.75}
.legal-body h3{font-size:16.5px;margin:20px 0 6px}
.legal-body p,.legal-body li{overflow-wrap:anywhere}
.legal-body ul{margin:4px 0 8px;padding-left:1.3em}
.legal-body table{border-collapse:collapse;width:100%;margin:8px 0}
.legal-body th,.legal-body td{border:1px solid rgba(255,255,255,.25);padding:7px 9px;font-size:13.5px;text-align:left;vertical-align:top}
.legal-body th{width:34%;background:rgba(255,255,255,.06);white-space:nowrap}
.legal-note{font-size:12.5px;opacity:.85}

.vse-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:7px 0;padding:8px 10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);border-radius:10px}
.vse-row .vse-name{flex:1 1 118px;font-weight:800;font-size:14px;min-width:0;overflow-wrap:anywhere}
.vse-row .vse-state{flex:1 1 100%;font-size:12px;opacity:.85;min-height:1em}
.vse-row .mini-btn.rec-on{background:#b3001b;color:#fff;border-color:#ff8f9e}
.vse-presets{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.vse-presets .chat-phrase.sel{background:#ffd21f;color:#14142b;border-color:#ffd21f}
.show-fx{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;z-index:30;pointer-events:none;text-align:center;padding:0 10px}
.show-fx[hidden]{display:none}
.show-fx-icons{font-size:38px;line-height:1.2;animation:showFxPop .5s ease-out}
.show-fx-name{font-size:29px;font-weight:900;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.45),0 0 18px rgba(255,255,255,.35);animation:showFxPop .5s ease-out;padding:2px 14px;max-width:100%;overflow-wrap:anywhere}
.show-fx.ent-flame .show-fx-name{color:#ffd9a0;text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 22px rgba(255,110,20,.85)}
.show-fx.ent-star .show-fx-name{color:#fff3b0;text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 22px rgba(255,220,80,.9)}
.show-fx.ent-rainbow .show-fx-name{text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 10px #ff5f6d,0 0 20px #ffc371,0 0 30px #5ee7df}
.show-fx.ent-royal .show-fx-name{border:3px double #ffd21f;border-radius:12px;background:rgba(20,16,40,.55)}
.show-fx.ent-sparkle .show-fx-icons{animation:showFxTwinkle .45s ease-in-out infinite alternate}
@keyframes showFxPop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes showFxTwinkle{from{transform:scale(1) rotate(-3deg)}to{transform:scale(1.12) rotate(3deg)}}
@media (prefers-reduced-motion: reduce){ .show-fx-icons,.show-fx-name{animation:none} }

.p-glove.left .g-main{fill:var(--pg-main-l,var(--pg-main,#2f7bff))}
.p-glove.left .g-thumb{fill:var(--pg-thumb-l,var(--pg-thumb,#1c56c4))}
.p-glove.right .g-main{fill:var(--pg-main-r,var(--pg-main,#2f7bff))}
.p-glove.right .g-thumb{fill:var(--pg-thumb-r,var(--pg-thumb,#1c56c4))}

.p-glove.left .g-cuff{fill:var(--pg-cuff-l,#ffffff)}
.p-glove.right .g-cuff{fill:var(--pg-cuff-r,#ffffff)}
.p-glove.left .g-lace{stroke:var(--pg-lace-l,#14142b)}
.p-glove.right .g-lace{stroke:var(--pg-lace-r,#14142b)}
#fighter.ghost-glove .gloves .g-cuff{fill:var(--gg-cuff,#ffffff)}
#fighter.ghost-glove .gloves .g-lace,#fighter.ghost-glove .gloves .g-lace-x{stroke:var(--gg-lace,#fff8ee)}
.ws-fight-text{pointer-events:none}
.player.cos-trail-custom .trail{background:linear-gradient(180deg,var(--ugc-trail,#ffd21f),transparent)}
.show-fx.ent-custom .show-fx-name{color:var(--ugc-ent,#ffffff);text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 22px var(--ugc-ent,rgba(255,255,255,.6))}

.ws-tabs{display:flex;gap:6px;margin:12px 0 4px;flex-wrap:wrap}
.ws-tab{flex:1 1 30%;padding:10px 6px;border-radius:10px;border:1.5px solid rgba(20,20,43,.3);background:rgba(20,20,43,.05);color:#14142b;font-weight:800;font-size:14.5px;cursor:pointer}
.ws-tab.sel{background:#ffd21f;color:#14142b;border-color:#ffd21f}
.ws-theme-banner{margin:10px 0;padding:10px 12px;border:1.5px solid rgba(190,145,0,.65);border-radius:12px;background:rgba(255,190,0,.12);text-align:left}
.ws-theme-banner b{font-size:16px}
.ws-kinds{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.ws-chip{padding:8px 12px;border-radius:999px;border:1.5px solid rgba(20,20,43,.32);background:rgba(20,20,43,.05);color:#14142b;font-weight:700;font-size:14px;cursor:pointer}
.ws-chip.sel{background:#ffd21f;color:#14142b;border-color:#ffd21f}
.ws-field{margin:12px 0;text-align:left}
.ws-field-head{font-weight:800;font-size:15px;margin-bottom:6px}
.ws-swatches{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ws-swatch{width:34px;height:34px;border-radius:9px;border:2.5px solid rgba(20,20,43,.4);cursor:pointer;padding:0}
.ws-swatch.sel{border-color:#ffd21f;box-shadow:0 0 0 2px rgba(255,210,31,.5)}
.ws-colorpick{width:44px;height:34px;border:2.5px solid rgba(20,20,43,.4);border-radius:9px;background:transparent;padding:2px;cursor:pointer}
.ws-select,.ws-textin{width:100%;font-size:15.5px;padding:10px 12px;border-radius:10px;border:1px solid rgba(20,20,43,.35);background:#fff;color:#14142b;font-family:inherit}
.ws-range{width:100%;accent-color:#ffd21f}
.ws-preview{display:flex;justify-content:center;align-items:center;gap:14px;margin:10px 0;padding:12px;border-radius:12px;background:rgba(20,20,43,.05);border:1px solid rgba(20,20,43,.14);flex-wrap:wrap}
.ws-preview svg{height:150px;width:auto}
.ws-preview .ws-glovesvg{height:96px}
.ws-roomprev{width:170px;height:104px;border-radius:10px;border:2px solid rgba(20,20,43,.7);position:relative;overflow:hidden}
.ws-roomprev .ws-rp-base{position:absolute;left:0;right:0;bottom:0;height:12px}
.ws-trailprev{width:170px;height:26px;border-radius:999px;filter:blur(.4px)}
.ws-entprev{font-size:34px;line-height:1.2}
.ws-stamp{font-size:30px;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:rgba(20,20,43,.06)}
.ws-stamp.big{font-size:44px;width:84px;height:84px;border-radius:18px}
.ws-stamp.fr-gold{border:3px solid #ffd21f;box-shadow:0 0 10px rgba(255,210,31,.55)}
.ws-stamp.fr-flame{border:3px solid #ff7a29;box-shadow:0 0 12px rgba(255,110,20,.7)}
.ws-stamp.fr-ice{border:3px solid #7fd4ff;box-shadow:0 0 10px rgba(110,200,255,.6)}
.ws-stamp.fr-sakura{border:3px solid #ff9ec4;box-shadow:0 0 10px rgba(255,150,190,.6)}
.ws-stamp.fr-star{border:3px dashed #ffe066;box-shadow:0 0 10px rgba(255,224,102,.55)}
.ws-stamp.fr-rainbow{border:3px solid transparent;background:linear-gradient(rgba(30,30,50,.9),rgba(30,30,50,.9)) padding-box,linear-gradient(90deg,#ff5f6d,#ffc371,#5ee7df,#7b4bd6) border-box}
.ws-card{display:flex;gap:10px;align-items:center;padding:10px 12px;margin:8px 0;background:rgba(20,20,43,.04);border:1px solid rgba(20,20,43,.14);border-radius:12px;flex-wrap:wrap;text-align:left}
.ws-card.featured{border:2px solid #ffd21f;background:rgba(255,210,31,.10);box-shadow:0 0 14px rgba(255,210,31,.25)}
.ws-card .ws-main{flex:1 1 150px;min-width:0}
.ws-card .ws-name{font-weight:800;font-size:16px;overflow-wrap:anywhere}
.ws-card .ws-sub{font-size:13px;opacity:.88;margin-top:2px;overflow-wrap:anywhere}
.ws-thumb{flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-width:64px}
.ws-thumb svg{height:52px;width:auto}
.ws-thumb .ws-roomprev{width:76px;height:48px}
.ws-thumb .ws-trailprev{width:64px;height:16px}
.ws-thumb .ws-entprev{font-size:24px}
.ws-thumb .ws-stamp{width:46px;height:46px;font-size:24px}
.ws-status{font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px;border:1.5px solid rgba(20,20,43,.45)}
.ws-status.pending{color:#8a6d00;border-color:#c79a00}
.ws-status.approved{color:#0d7a3f;border-color:#2ed573}
.ws-status.rejected{color:#c81e35;border-color:#ff4757}
.creator-chip{display:inline-block;font-size:11.5px;font-weight:800;color:#14142b;background:linear-gradient(180deg,#ffe98a,#ffd21f);border-radius:999px;padding:1px 8px;margin-left:6px;vertical-align:2px;white-space:nowrap}
.ws-sortrow{display:flex;gap:6px;margin:8px 0}
.ws-emoji-grid{display:flex;flex-wrap:wrap;gap:6px}
.ws-emoji{font-size:22px;width:44px;height:44px;border-radius:10px;border:1.5px solid rgba(20,20,43,.28);background:rgba(20,20,43,.04);cursor:pointer}
.ws-emoji.sel{border-color:#ffd21f;background:rgba(255,210,31,.18)}

#fighter .head{transition:background .3s ease,border-radius .3s ease,scale .2s ease}
#fighter .eye,#fighter .brow{transition:transform .3s ease,translate .18s ease,opacity .14s ease}
#fighter .nose,#fighter .ear,#fighter .cheek,#fighter .mouth-line,#fighter .blush,#fighter .bindi,#fighter .tstripe,#fighter .whiskers{transition:translate .18s ease,opacity .14s ease}
#fighter .hair,#fighter .beard,#fighter .crown,#fighter .glasses,#fighter .fangs{transition:transform .2s ease,opacity .14s ease}
#fighter .swell,#fighter .browswell,#fighter .blackeye,#fighter .sweat{transition:opacity .3s ease,transform .3s ease,translate .18s ease}
#fighter .blood-nose{transition:height .3s ease,opacity .3s ease,translate .18s ease}
#fighter .blood-mouth{transition:height .3s ease,opacity .3s ease,translate .18s ease}

#fighter.hurt.prof-r .head{border-radius:38% 56% 44% 34%/28% 38% 56% 48%;scale:.93 .86}
#fighter.hurt.prof-r .hair{transform:translateX(-50%) translateX(-10px) scaleX(.92)}
#fighter.hurt.prof-r .crown{transform:translateX(-50%) rotate(-5deg) translateX(-8px)}
#fighter.hurt.prof-r .ear-l{translate:7px 0}
#fighter.hurt.prof-r .ear-r{opacity:0;translate:-16px 0}
#fighter.hurt.prof-r .eye-l{opacity:0;translate:30px 0}
#fighter.hurt.prof-r .eye-r{translate:12px 0}
#fighter.hurt.prof-r .brow-l{opacity:0;translate:27px 0}
#fighter.hurt.prof-r .brow-r{translate:11px 0}
#fighter.hurt.prof-r .nose{translate:43px 1px}
#fighter.hurt.prof-r .mouth{translate:calc(-50% + 23px) 1px}
#fighter.hurt.prof-r .cheek-l{translate:20px 0}
#fighter.hurt.prof-r .cheek-r{translate:9px 0}
#fighter.hurt.prof-r .mouth-line-l{opacity:0}
#fighter.hurt.prof-r .mouth-line-r{translate:16px 0}
#fighter.hurt.prof-r .blush-l{translate:22px 0}
#fighter.hurt.prof-r .blush-r{translate:10px 0}
#fighter.hurt.prof-r .swell-l{translate:24px 0}
#fighter.hurt.prof-r .swell-r{translate:9px 0}
#fighter.hurt.prof-r .browswell-l{translate:22px 0}
#fighter.hurt.prof-r .browswell-r{translate:8px 0}
#fighter.hurt.prof-r .blackeye{translate:8px 0}
#fighter.hurt.prof-r .blackeye-l{translate:22px 0}
#fighter.hurt.prof-r .blood-nose{translate:41px 0}
#fighter.hurt.prof-r .blood-mouth{translate:4px 0}
#fighter.hurt.prof-r .sweat-1{translate:8px 0}
#fighter.hurt.prof-r .sweat-2{translate:24px 0}
#fighter.hurt.prof-r .bindi{translate:15px 0}
#fighter.hurt.prof-r .beard{transform:translateX(-34%) scaleX(.76)}
#fighter.hurt.prof-r .glasses{opacity:0}
#fighter.hurt.prof-r .tstripe-l{opacity:0}
#fighter.hurt.prof-r .tstripe-r{translate:6px 0}
#fighter.hurt.prof-r .tstripe-fore{translate:10px 0}
#fighter.hurt.prof-r .fangs{translate:20px 0}
#fighter.hurt.prof-r .whiskers{opacity:0}

#fighter.hurt.prof-l .head{border-radius:56% 38% 34% 44%/38% 28% 48% 56%;scale:.93 .86}
#fighter.hurt.prof-l .hair{transform:translateX(-50%) translateX(10px) scaleX(.92)}
#fighter.hurt.prof-l .crown{transform:translateX(-50%) rotate(-5deg) translateX(8px)}
#fighter.hurt.prof-l .ear-r{translate:-7px 0}
#fighter.hurt.prof-l .ear-l{opacity:0;translate:16px 0}
#fighter.hurt.prof-l .eye-r{opacity:0;translate:-30px 0}
#fighter.hurt.prof-l .eye-l{translate:-12px 0}
#fighter.hurt.prof-l .brow-r{opacity:0;translate:-27px 0}
#fighter.hurt.prof-l .brow-l{translate:-11px 0}
#fighter.hurt.prof-l .nose{translate:-43px 1px}
#fighter.hurt.prof-l .mouth{translate:calc(-50% - 23px) 1px}
#fighter.hurt.prof-l .cheek-l{translate:-9px 0}
#fighter.hurt.prof-l .cheek-r{translate:-20px 0}
#fighter.hurt.prof-l .mouth-line-r{opacity:0}
#fighter.hurt.prof-l .mouth-line-l{translate:-16px 0}
#fighter.hurt.prof-l .blush-l{translate:-10px 0}
#fighter.hurt.prof-l .blush-r{translate:-22px 0}
#fighter.hurt.prof-l .swell-l{translate:-9px 0}
#fighter.hurt.prof-l .swell-r{translate:-24px 0}
#fighter.hurt.prof-l .browswell-l{translate:-8px 0}
#fighter.hurt.prof-l .browswell-r{translate:-22px 0}
#fighter.hurt.prof-l .blackeye{translate:-22px 0}
#fighter.hurt.prof-l .blackeye-l{translate:-8px 0}
#fighter.hurt.prof-l .blood-nose{translate:-41px 0}
#fighter.hurt.prof-l .blood-mouth{translate:-34px 0}
#fighter.hurt.prof-l .sweat-1{translate:-24px 0}
#fighter.hurt.prof-l .sweat-2{translate:-8px 0}
#fighter.hurt.prof-l .bindi{translate:-15px 0}
#fighter.hurt.prof-l .beard{transform:translateX(-66%) scaleX(.76)}
#fighter.hurt.prof-l .glasses{opacity:0}
#fighter.hurt.prof-l .tstripe-r{opacity:0}
#fighter.hurt.prof-l .tstripe-l{translate:-6px 0}
#fighter.hurt.prof-l .tstripe-fore{translate:-10px 0}
#fighter.hurt.prof-l .fangs{translate:-20px 0}
#fighter.hurt.prof-l .whiskers{opacity:0}
/* RUSH PROFILE SYNC （ラッシュ時の横顔の同期・2026-11-04): during a
   rush the profile parts migrate on a LONGER transition (.34s,
   was .18s) so they travel WITH the head's own turn — rushHead
   now peaks at 32% of its 520ms clock (≈210ms after impact,
   hitstop included) — instead of snapping to full profile while
   the head is still near front, which read as the neck twisting.
   Alternating rush hooks flip the class each hit; the longer
   transition interpolates from wherever the parts currently are,
   so the flip stays smooth. Rush only: single counters keep the
   original .18s migration. */
#fighter.hurt.rush-face .eye,#fighter.hurt.rush-face .brow{transition:transform .34s ease,translate .34s ease,opacity .2s ease}
#fighter.hurt.rush-face .nose,#fighter.hurt.rush-face .ear,#fighter.hurt.rush-face .cheek,#fighter.hurt.rush-face .mouth,#fighter.hurt.rush-face .mouth-line,#fighter.hurt.rush-face .blush,#fighter.hurt.rush-face .bindi,#fighter.hurt.rush-face .tstripe,#fighter.hurt.rush-face .whiskers{transition:translate .34s ease,opacity .2s ease}
#fighter.hurt.rush-face .hair,#fighter.hurt.rush-face .beard,#fighter.hurt.rush-face .crown,#fighter.hurt.rush-face .glasses,#fighter.hurt.rush-face .fangs{transition:transform .34s ease,opacity .2s ease}
#fighter.hurt.rush-face .swell,#fighter.hurt.rush-face .browswell,#fighter.hurt.rush-face .blackeye,#fighter.hurt.rush-face .sweat,#fighter.hurt.rush-face .blood-nose,#fighter.hurt.rush-face .blood-mouth{transition:opacity .3s ease,transform .3s ease,translate .34s ease,height .3s ease}
@media (prefers-reduced-motion: reduce){
 #fighter .head,#fighter .eye,#fighter .brow,#fighter .nose,#fighter .ear,#fighter .cheek,#fighter .hair,#fighter .beard,#fighter .crown{transition-duration:.01s}
}
/* ==== Side panels + streaming mode (2026-11-04) ====
   The panels live OUTSIDE the .app column, fixed to the window's
   left / right edges. They are display:none unless JS adds
   body.bb-panels, which happens only when the window is wide
   enough that the (possibly fit-shrunk) game column leaves at
   least ~248px of slack on each side. On phones / portrait /
   narrow windows they never appear and the layout is untouched.
   Panel type is sized for stream viewers: opponent name 26px,
   round / streak 19px+. */
.bb-panel{position:fixed;top:var(--vvoff,0px);height:var(--vvh,100dvh);width:0;display:none;flex-direction:column;gap:12px;padding:14px 12px calc(14px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;z-index:4;color:#fff;background:linear-gradient(180deg,#10101f,#0a0a16);scrollbar-width:thin;font-family:inherit}
#bbPanelL{left:0;border-right:2px solid rgba(255,210,31,.28)}
#bbPanelR{right:0;border-left:2px solid rgba(255,210,31,.28)}
body.bb-panels .bb-panel{display:flex}
.bb-sec{background:#171731;border:1.5px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 14px}
.bb-sec h3{margin:0 0 8px;font-size:13px;letter-spacing:.14em;color:#ffd21f;font-weight:900}
.bb-big{font-size:26px;font-weight:900;line-height:1.25}
.bb-mid{font-size:19px;font-weight:900;line-height:1.4}
.bb-txt{font-size:14px;line-height:1.55;color:#e8e8f4}
.bb-dim{font-size:13px;line-height:1.5;color:#a9a9c4}
.bb-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:15px}
.bb-row b{font-weight:900;text-align:right}
.bb-scout{overflow-wrap:anywhere}
.bb-panel .online-empty{color:#a9a9c4;font-size:13px}
.bb-panel .rank-row,.bb-panel .chat-msg{font-size:14px}
/* Venue billboard （看板）: sponsor-board styling echoing the
   trunks sponsor band — navy board, gold frame, stripe accent. */
.bb-board{border:3px solid #ffd21f;border-radius:14px;background:linear-gradient(180deg,#1d1d3d,#101024);padding:14px;text-align:center;position:relative;overflow:hidden}
.bb-board::before{content:"";position:absolute;top:0;left:0;right:0;height:10px;background:repeating-linear-gradient(135deg,#ffd21f 0 10px,#14142b 10px 20px)}
.bb-board .bb-ad-title{margin-top:8px;font-size:21px;font-weight:900;letter-spacing:.06em;color:#ffd21f;line-height:1.35}
.bb-board .bb-code{margin:10px auto 4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:27px;font-weight:900;letter-spacing:.14em;color:#fff;background:rgba(255,210,31,.12);border:1.5px dashed rgba(255,210,31,.65);border-radius:10px;padding:8px 6px}
.bb-board .bb-ad-txt{font-size:14px;line-height:1.6;color:#e8e8f4;margin-top:8px}
/* Quick sound toggle on the battle screen: a round button in
   the arena's top-right corner (crowd area — never over the
   fighter or the timing lanes). It is a child of the arena for
   positioning, but its taps are fully stopped (pointerdown /
   click) so they can never be read as a counter tap. */
.snd-fab{position:absolute;top:8px;right:8px;z-index:40;width:42px;height:42px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);background:rgba(16,16,34,.82);color:#fff;font-size:19px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.snd-fab:active{transform:scale(.93)}
.snd-fab.off{opacity:.72;filter:grayscale(.5)}
#titleSoundBtn.off{opacity:.65;filter:grayscale(.6)}
/* Tap-to-start music prompt: shown only when a music session is
   running but the browser still has not let any track become
   audible after the automatic retries (autoplay policy etc.).
   Fixed to the viewport (it lives outside the scaled stage), low
   centre, clear of the counter button at the very bottom. */
/* The old wide "tap to start the music" pill sat over the arena
   and hid the player's own techniques — retired (2026-11-05). It
   stays in the DOM (hidden for good) because older wiring refers
   to it; the prompt now lives on two small 🎵 icon buttons that
   sit NEXT TO the sound buttons: .bgm-icon-btn below. */
#bgmTapBtn{display:none!important}
/* 🎵 music-start icon buttons: same round 42px shape as the
   battle sound fab, placed immediately to its LEFT inside the
   arena (never over the ring or the technique lanes); on the
   title screen the twin button is a pill in the topbar, directly
   beside the title sound button. Shown only while a music
   session wants sound but nothing is audible yet (bgmPromptSync
   drives the hidden flag); hidden the moment music plays. */
.bgm-icon-btn{position:absolute;top:8px;right:58px;z-index:40;width:42px;height:42px;border-radius:50%;border:1.5px solid rgba(255,215,120,.9);background:rgba(16,16,34,.88);color:#ffe9a8;font-size:19px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 4px 14px rgba(0,0,0,.45)}
.bgm-icon-btn:active{transform:scale(.93)}
.bgm-icon-btn[hidden]{display:none}
.bgm-icon-btn.title{position:static;width:auto;height:auto;min-height:38px;padding:8px 12px;border-radius:999px;border:2px solid #14142b;background:#fff7dd;box-shadow:0 3px 0 #14142b;font-size:15px}
