/* v0.10: flat guochao comic pages. Ink, paper and human collision replace sculptural props. */
.arena-effects{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:18;isolation:isolate}.arena-effects *{pointer-events:none!important}
.game-shell>.arena-effects{overflow:hidden}
.fx-theatre,.fx-draw-card,.fx-impact,.fx-skill-cut{position:absolute;pointer-events:none;will-change:transform,opacity}
.fx-theatre{--fx-duration:4400ms;--fx-time-scale:1.8;z-index:20;width:330px;height:220px;contain:layout style;isolation:isolate;overflow:visible}
.arena-effects .fx-source-frame,.arena-effects .fx-target-frame{z-index:4}
.arena-effects .fx-aim-layer{z-index:5}
.arena-effects .fx-fly-card,.arena-effects .fx-draw-card{z-index:24}
/* Explicit v197 play modes reuse the card art; their marks describe actual
   buffs/draws instead of impersonating healing or a defensive response. */
.arena-effects .fx-fly-card.tone-boost{border-color:#c55f36;box-shadow:0 0 0 1px #f3ca79,0 8px 18px #8a392855}
.arena-effects .fx-source-frame.tone-boost{box-shadow:inset 0 0 0 3px #e4ad57,0 0 14px #c3593855}
.arena-effects .fx-source-frame.tone-draw{box-shadow:inset 0 0 0 2px #8cb6a2,0 0 10px #153c3155}
.fx-mode-state{position:absolute;right:0;bottom:18%;z-index:23;display:flex;align-items:center;gap:3px;rotate:-5deg;padding:3px 7px 4px;background:#ecc576;color:#5b291d;box-shadow:3px 3px #192e25;font:1000 italic 14px/1 var(--sans,sans-serif);clip-path:polygon(5px 0,100% 0,calc(100% - 5px) 100%,0 100%)}
.fx-mode-state svg{width:20px;height:20px;fill:currentColor;stroke:#502e21;stroke-width:1.4;stroke-linejoin:round}
.arena-effects .fx-mode-coffeeBoost .fx-impact-word{color:#efb451;text-shadow:2px 2px #6a291c,4px 4px #172b23}
.arena-effects .fx-mode-coffeeBoost .fx-comic-rays{background:repeating-conic-gradient(from 5deg at 57% 50%,transparent 0 12deg,#d5903b 12.5deg 14deg,transparent 14.5deg 24deg)}
.arena-effects .fx-mode-coffeeBoost .fx-impact-explosion{background:#f2cf83}
.arena-effects .fx-mode-coffeeBoost .fx-impact-explosion:after{background:#bb4b31}
.arena-effects .fx-mode-coffeeBoost .fx-main-sprite{filter:drop-shadow(2px 2px #b75a3455)}
.arena-effects .fx-mode-activeDodge .fx-impact-word{color:#e7d4a2;text-shadow:2px 2px #173b31,4px 4px #173b31}
.arena-effects .fx-mode-activeDodge .fx-mode-state{background:#cfdfbe;color:#244e40}
.arena-effects .fx-mode-activeDodge .fx-mode-state svg{fill:none;stroke:currentColor;stroke-width:2}
.arena-effects .fx-mode-activeDodge .fx-hit-cross,.arena-effects .fx-mode-activeDodge .fx-impact-explosion,.arena-effects .fx-mode-activeDodge .fx-perspective-cut{display:none}
.arena-effects .fx-tableau>.fx-mode-state{display:flex!important;animation:none!important}
.fx-comic-panel{position:absolute;inset:0 -3%;border:3px solid #152623;background:#eadbb9;transform:rotate(-3deg);clip-path:polygon(1% 4%,98% 0,100% 94%,5% 100%);z-index:0}.fx-comic-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(#152623 1px,transparent 1.3px) 0 0/5px 5px;opacity:.15}.fx-comic-panel i{position:absolute;inset:0;background:#c83b2b;clip-path:polygon(0 0,100% 17%,0 43%);opacity:.9}.fx-comic-panel b{position:absolute;inset:0;background:#245b52;clip-path:polygon(100% 44%,100% 100%,0 95%);opacity:.55}
.fx-comic-rays{position:absolute;inset:-9% -12%;z-index:1;background:repeating-conic-gradient(from 5deg at 67% 56%,transparent 0 12deg,#152623 12.5deg 14deg,transparent 14.5deg 24deg);clip-path:polygon(0 8%,97% 0,100% 91%,5% 100%);opacity:.46;animation:fx10-rays var(--fx-duration) both}.fx-ink-swipe{position:absolute;inset:10% -7% 3%;z-index:1;background:#c83b2b;clip-path:polygon(0 45%,98% 0,80% 34%,100% 41%,8% 100%,27% 62%);animation:fx10-swipe var(--fx-duration) both}
.fx-card-title{position:absolute;left:-3%;top:-16%;z-index:20;max-width:110%;padding:3px 10px 7px;background:#eadbb9;border:3px solid #152623;box-shadow:4px 4px 0 #c83b2b;color:#152623;font:1000 italic clamp(25px,3.8vw,43px)/1.05 var(--sans,sans-serif);letter-spacing:1px;white-space:nowrap;transform:rotate(-5deg);opacity:1;animation:fx10-title 420ms both}
.fx-main-actor{position:absolute;inset:-1% -2%;display:block;z-index:4;transform-origin:45% 62%;animation-duration:var(--fx-duration);animation-fill-mode:both;animation-timing-function:cubic-bezier(.35,0,.25,1)}.fx-main-sprite,.fx-perspective-sprite{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;user-select:none}
.fx-perspective-cut{position:absolute;inset:-1% -2%;z-index:6;clip-path:polygon(0 0,65% 0,53% 100%,0 100%);transform-origin:25% 65%;animation:fx10-perspective var(--fx-duration) both}
.fx-speed-field,.fx-paper-burst{position:absolute;inset:0;z-index:7}.fx-speed-streak{position:absolute;left:-14%;top:calc(6% + var(--i)*10%);height:calc(1px + var(--i)*.2px);width:calc(25% + var(--i)*5%);background:#eadbb9;border-bottom:1px solid #152623;transform:rotate(-13deg);animation:fx10-streak var(--fx-duration) both;animation-delay:calc(var(--i)*8ms * var(--fx-time-scale))}
.fx-impact-explosion{position:absolute;left:43%;top:22%;width:74%;height:72%;background:#eadbb9;z-index:3;clip-path:polygon(0 33%,22% 30%,15% 1%,40% 18%,57% 0,64% 24%,98% 12%,83% 40%,100% 56%,77% 64%,94% 97%,63% 83%,43% 100%,38% 72%,7% 91%,20% 59%);animation:fx10-explosion var(--fx-duration) both}.fx-impact-explosion:after{content:"";position:absolute;inset:8%;background:#c83b2b;clip-path:inherit}.fx-hit-cross{position:absolute;left:69%;top:46%;width:40%;height:4px;z-index:8;background:#eadbb9;transform:rotate(-25deg);animation:fx10-hit var(--fx-duration) both}.fx-hit-cross:after{content:"";position:absolute;left:48%;top:-40px;width:4px;height:84px;background:#eadbb9;transform:rotate(-37deg)}
.fx-paper-shard{position:absolute;left:57%;top:54%;width:calc(7px + var(--i)*2px);height:calc(11px + var(--i)*3px);border:1px solid #152623;background:#eadbb9;clip-path:polygon(0 0,100% 16%,73% 100%,13% 76%);animation:fx10-shards var(--fx-duration) both;animation-delay:calc(var(--i)*8ms * var(--fx-time-scale))}
.fx-action-mark{position:absolute;z-index:8;background:#152623;color:#eadbb9;border:2px solid #eadbb9;padding:3px 7px;font:1000 italic clamp(14px,2vw,21px)/1.1 var(--sans,sans-serif);white-space:nowrap;box-shadow:2px 2px 0 #152623;animation:fx10-mark var(--fx-duration) both}.fx-action-mark-0{left:-3%;top:38%;transform:rotate(-12deg)}.fx-action-mark-1{right:-7%;bottom:7%;background:#c83b2b;transform:rotate(7deg);animation-name:fx10-mark-last}
.fx-impact-word{position:absolute;right:-11%;top:18%;z-index:11;color:#c83b2b;font:1000 italic clamp(34px,5.5vw,66px)/1 var(--sans,sans-serif);letter-spacing:-3px;-webkit-text-stroke:1.5px #152623;paint-order:stroke fill;text-shadow:3px 3px 0 #eadbb9,5px 5px 0 #152623;transform:rotate(-11deg) skewX(-8deg);animation:fx10-impact-word var(--fx-duration) both}
.fx-comic-split{position:absolute;inset:-9% -10%;z-index:9;background:#eadbb9;clip-path:polygon(0 70%,100% 25%,100% 29%,0 74%);animation:fx10-split var(--fx-duration) both}
.fx-setup-caption,.fx-scene-caption{position:absolute;z-index:13;text-align:center;padding:5px 9px;font:1000 clamp(13px,1.8vw,19px)/1.2 var(--sans,sans-serif);box-shadow:3px 3px 0 #152623;border:2px solid #152623;white-space:normal}
.fx-setup-caption{left:-8%;top:9%;max-width:59%;background:#eadbb9;color:#152623;transform:rotate(-5deg);animation:fx10-setup var(--fx-duration) both}.fx-setup-caption:after{content:"";position:absolute;bottom:-9px;left:45%;border:6px solid transparent;border-top-color:#152623;transform:rotate(-16deg)}
.fx-scene-caption{left:50%;bottom:-18%;width:max-content;max-width:min(94vw,440px);transform:translateX(-50%) rotate(-2deg);background:#eadbb9;color:#152623;border-bottom:5px solid #c83b2b;font-size:clamp(17px,2.6vw,29px);animation:fx10-punchline var(--fx-duration) both}
.fx-scene-combo .fx-impact-explosion{animation-name:fx10-double-explosion}.fx-scene-combo .fx-hit-cross{animation-name:fx10-double-hit}.fx-scene-combo .fx-action-mark-0{animation-name:fx10-first-demand}.fx-scene-combo .fx-action-mark-1{animation-name:fx10-last-demand}
.fx-scene-deadline .fx-impact-word,.fx-scene-strike .fx-impact-word,.fx-scene-rebound .fx-impact-word{font-size:clamp(43px,6.7vw,76px)}.fx-scene-rally .fx-ink-swipe,.fx-scene-focus .fx-ink-swipe,.fx-scene-backing .fx-ink-swipe{background:#245b52}.fx-scene-rally .fx-impact-word,.fx-scene-focus .fx-impact-word{color:#245b52}
@keyframes fx10-title{0%{opacity:1;transform:rotate(-7deg) scale(1.08)}40%{opacity:1;transform:rotate(-4deg) scale(.98)}100%{opacity:1;transform:rotate(-5deg) scale(1)}}
@keyframes fx10-setup{0%,32%{opacity:1;translate:0 0}40%,100%{opacity:0;translate:-8px -4px}}
@keyframes fx10-punchline{0%,55%{opacity:0;translate:0 8px}62%,98%{opacity:1;translate:0 0}100%{opacity:0;translate:0 0}}
@keyframes fx10-rays{0%,20%{opacity:.35;rotate:0deg}47%{opacity:.75;rotate:-4deg}61%,98%{opacity:.45;rotate:0deg}100%{opacity:.3;rotate:0deg}}
@keyframes fx10-swipe{0%,27%{opacity:.3;translate:-25px 0}46%{opacity:.9;translate:8px 0}64%,98%{opacity:.48;translate:0 0}100%{opacity:.3;translate:0 0}}
@keyframes fx10-perspective{0%,35%{opacity:0;transform:translate(-9px,7px) scale(.98)}43%{opacity:.6;transform:translate(-9px,7px) scale(1.02)}53%{opacity:1;transform:translate(18px,-2px) scale(1.29)}62%,100%{opacity:0;transform:translate(22px,-3px) scale(1.31)}}
@keyframes fx10-streak{0%,33%{opacity:0;translate:-50px 12px}46%{opacity:1;translate:15px -4px}57%,100%{opacity:0;translate:75px -20px}}
@keyframes fx10-explosion{0%,46%{opacity:0;transform:scale(.2) rotate(-15deg)}57%{opacity:.96;transform:scale(1.17) rotate(5deg)}66%{opacity:.3;transform:scale(.92) rotate(0)}72%,100%{opacity:0;transform:scale(1.15) rotate(4deg)}}
@keyframes fx10-hit{0%,49%{opacity:0;scale:.1}56%{opacity:1;scale:1.3}64%,100%{opacity:0;scale:1.5}}
@keyframes fx10-shards{0%,49%{opacity:0;transform:translate(0,0) rotate(0)}55%{opacity:1;transform:translate(calc((var(--i) - 3)*19px),calc((var(--i) - 5)*10px)) rotate(calc(var(--i)*17deg))}73%,100%{opacity:0;transform:translate(calc((var(--i) - 3)*31px),calc((var(--i) - 5)*18px)) rotate(calc(var(--i)*33deg))}}
@keyframes fx10-mark{0%,18%{opacity:0;scale:.8}25%,38%{opacity:1;scale:1}47%,100%{opacity:0;scale:1}}
@keyframes fx10-mark-last{0%,52%{opacity:0;scale:1.3}61%,93%{opacity:1;scale:1}100%{opacity:0;scale:1}}
@keyframes fx10-impact-word{0%,46%{opacity:0;translate:15px 15px;scale:1.5}57%{opacity:1;translate:0 0;scale:.93}65%,94%{opacity:1;translate:0 0;scale:1}100%{opacity:0;translate:0 0;scale:1}}
@keyframes fx10-split{0%,38%{opacity:0;translate:-15% 12%}46%{opacity:1;translate:0 0}51%,100%{opacity:0;translate:15% -12%}}
@keyframes fx10-double-explosion{0%,29%{opacity:0;transform:scale(.3)}36%{opacity:1;transform:scale(1.08)}43%{opacity:0;transform:scale(1.2)}49%{opacity:0;transform:scale(.2)}56%{opacity:1;transform:scale(1.35)}65%,100%{opacity:0;transform:scale(1.5)}}
@keyframes fx10-double-hit{0%,31%{opacity:0;scale:.1}36%{opacity:1;scale:1}43%{opacity:0;scale:1.3}51%{opacity:0;scale:.1}56%{opacity:1;scale:1.5}65%,100%{opacity:0;scale:1.6}}
@keyframes fx10-first-demand{0%,28%{opacity:0;scale:1.4}36%,43%{opacity:1;scale:1}49%,100%{opacity:0;scale:1}}
@keyframes fx10-last-demand{0%,49%{opacity:0;scale:1.5}56%,94%{opacity:1;scale:1}100%{opacity:0;scale:1}}
.fx-impact{display:grid;place-items:center;min-width:96px;min-height:58px;text-align:center;z-index:15}.fx-impact b{position:relative;font:1000 italic clamp(21px,2.8vw,33px)/1.1 var(--sans,sans-serif);color:#eadbb9;white-space:nowrap;-webkit-text-stroke:1px #152623;paint-order:stroke fill;text-shadow:2px 2px 0 #152623}.fx-impact-ring{position:absolute;inset:-4%;background:#c83b2b;border:2px solid #152623;clip-path:polygon(0 33%,22% 30%,15% 1%,40% 18%,57% 0,64% 24%,98% 12%,83% 40%,100% 56%,77% 64%,94% 97%,63% 83%,43% 100%,38% 72%,7% 91%,20% 59%)}.fx-impact.good .fx-impact-ring{background:#245b52}
.fx-skill-cut{display:flex;align-items:center;gap:20px;width:min(510px,72vw);height:150px;padding:8px 26px 8px 10px;background:#eadbb9;border-block:3px solid #152623;box-shadow:5px 5px 0 #c83b2b;transform:translate(-50%,-50%);clip-path:polygon(3% 0,100% 4%,97% 100%,0 96%)}.fx-skill-cut .portrait{width:116px;height:166px;object-fit:contain;object-position:center;margin-top:-15px;border:0;border-radius:0}.fx-skill-cut>div{display:grid;gap:7px;color:#152623}.fx-skill-cut small{font-size:12px;color:#245b52}.fx-skill-cut strong{font:1000 italic 32px/1.1 var(--sans,sans-serif);color:#c83b2b}.fx-skill-cut span{font-size:13px;line-height:1.5}.fx-draw-card{width:42px;height:60px;display:grid;place-content:center;gap:1px;text-align:center;border:2px solid #152623;background:#eadbb9;box-shadow:3px 3px 0 #c83b2b;color:#152623}.fx-draw-card span{font-size:25px;font-weight:1000;color:#c83b2b}.fx-draw-card b{font-size:8px;letter-spacing:3px}
/* Retained and reduced-motion stages keep the readable name as well as the complete comic. */
.fx-tableau{opacity:1}.fx-tableau>.fx-main-actor{animation:none!important;opacity:1!important;transform:none!important}.fx-tableau>.fx-card-title{animation:none!important;opacity:1!important;transform:rotate(-5deg)}.fx-tableau>.fx-scene-caption{display:block!important;animation:none!important;opacity:1!important;translate:0 0!important;transform:translateX(-50%) rotate(-2deg)}
.fx-tableau>:not(.fx-main-actor):not(.fx-card-title):not(.fx-scene-caption):not(.fx-comic-panel):not(.fx-comic-rays):not(.fx-ink-swipe):not(.fx-impact-word):not(.fx-mode-state):not(.sk19-scene){display:none!important}
.fx-comic-theatre.fx-tableau>.fx-comic-panel,.fx-comic-theatre.fx-tableau>.fx-comic-rays,.fx-comic-theatre.fx-tableau>.fx-ink-swipe{display:block!important;animation:none!important;opacity:.4;translate:0 0;rotate:0deg}.fx-comic-theatre.fx-tableau>.fx-comic-panel{opacity:1;transform:rotate(-3deg)}.fx-comic-theatre.fx-tableau>.fx-impact-word{display:block!important;animation:none!important;opacity:1!important;translate:0 0!important;scale:1!important;right:-6%;top:25%;font-size:clamp(33px,5vw,60px)}
@media(max-height:410px) and (orientation:landscape){.fx-card-title{top:-16%;font-size:26px;padding:2px 7px 4px;border-width:2px;box-shadow:3px 3px 0 #c83b2b}.fx-setup-caption{font-size:12px;line-height:15px;padding:3px 6px;max-width:62%;top:7%}.fx-scene-caption{bottom:-18%;font-size:17px;line-height:21px;padding:4px 8px;max-width:min(82vw,370px);border-bottom-width:3px}.fx-impact-word{font-size:43px;right:-10%;letter-spacing:-2px}.fx-scene-deadline .fx-impact-word,.fx-scene-strike .fx-impact-word,.fx-scene-rebound .fx-impact-word{font-size:49px}.fx-action-mark{font-size:13px;padding:2px 5px}.fx-impact b{font-size:23px}.fx-skill-cut{height:110px}.fx-skill-cut .portrait{height:127px;width:85px}.fx-skill-cut strong{font-size:25px}.fx-skill-cut span{font-size:11px}.fx-comic-theatre.fx-tableau>.fx-impact-word{font-size:40px}}
@media(max-width:450px) and (orientation:portrait){.fx-card-title{font-size:28px}.fx-scene-caption{font-size:17px;max-width:86vw}.fx-setup-caption{font-size:12px}.fx-impact-word{font-size:44px}.fx-skill-cut{width:88vw;gap:11px;padding-right:14px}.fx-skill-cut strong{font-size:25px}.fx-skill-cut .portrait{width:95px}}
@media(prefers-reduced-motion:reduce){.fx-comic-theatre,.fx-comic-theatre *{animation:none!important;transition:none!important}.arena-effects.has-static-comic{display:block}.fx-static-comic{opacity:1;transform:translate(-50%,-50%)}.fx-comic-theatre.fx-static-comic>.fx-impact-word,.fx-comic-theatre.fx-static-comic>.fx-comic-rays,.fx-comic-theatre.fx-static-comic>.fx-ink-swipe{display:block!important}.fx-comic-theatre.fx-static-comic>.fx-card-title{opacity:1!important}}

/* Each human scene has a distinct anticipation, contact and clear held pose. */
.fx-scene-assign .fx-main-actor{animation-name:fx10-assign}
@keyframes fx10-assign{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-18px,10px) rotate(-5deg) scale(.96)}55%{opacity:1;transform:translate(16px,-5px) rotate(2deg) scale(1.12)}63%{opacity:1;transform:translate(-3.2px,1px) rotate(-0.6666666666666666deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-dodge .fx-main-actor{animation-name:fx10-dodge}
@keyframes fx10-dodge{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-13px,2px) rotate(-4deg) scale(.96)}55%{opacity:1;transform:translate(26px,-13px) rotate(7deg) scale(1.02)}63%{opacity:1;transform:translate(-5.2px,2.6px) rotate(-2.3333333333333335deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-soup .fx-main-actor{animation-name:fx10-soup}
@keyframes fx10-soup{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-8px,7px) rotate(-7deg) scale(.96)}55%{opacity:1;transform:translate(8px,-6px) rotate(1deg) scale(1.08)}63%{opacity:1;transform:translate(-1.6px,1.2px) rotate(-0.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-rush .fx-main-actor{animation-name:fx10-rush}
@keyframes fx10-rush{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-25px,3px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(24px,-5px) rotate(4deg) scale(1.17)}63%{opacity:1;transform:translate(-4.8px,1px) rotate(-1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-pua .fx-main-actor{animation-name:fx10-pua}
@keyframes fx10-pua{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-10px,-9px) rotate(-3deg) scale(.96)}55%{opacity:1;transform:translate(14px,9px) rotate(5deg) scale(1.13)}63%{opacity:1;transform:translate(-2.8px,-1.8px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-passpot .fx-main-actor{animation-name:fx10-passpot}
@keyframes fx10-passpot{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(18px,7px) rotate(5deg) scale(.96)}55%{opacity:1;transform:translate(-21px,-6px) rotate(-4deg) scale(1.18)}63%{opacity:1;transform:translate(4.2px,1.2px) rotate(1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-nap .fx-main-actor{animation-name:fx10-nap}
@keyframes fx10-nap{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-6px,12px) rotate(-5deg) scale(.96)}55%{opacity:1;transform:translate(3px,15px) rotate(3deg) scale(1.03)}63%{opacity:1;transform:translate(-0.6px,-3px) rotate(-1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-nplus .fx-main-actor{animation-name:fx10-nplus}
@keyframes fx10-nplus{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-15px,4px) rotate(-7deg) scale(.96)}55%{opacity:1;transform:translate(12px,-12px) rotate(-2deg) scale(1.12)}63%{opacity:1;transform:translate(-2.4px,2.4px) rotate(0.6666666666666666deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-optimize .fx-main-actor{animation-name:fx10-optimize}
@keyframes fx10-optimize{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(9px,7px) rotate(5deg) scale(.96)}55%{opacity:1;transform:translate(-18px,-14px) rotate(-6deg) scale(1.19)}63%{opacity:1;transform:translate(3.6px,2.8px) rotate(2deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-deal .fx-main-actor{animation-name:fx10-deal}
@keyframes fx10-deal{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-24px,5px) rotate(-4deg) scale(.96)}55%{opacity:1;transform:translate(22px,1px) rotate(5deg) scale(1.16)}63%{opacity:1;transform:translate(-4.4px,-0.2px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-outing .fx-main-actor{animation-name:fx10-outing}
@keyframes fx10-outing{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-24px,10px) rotate(-3deg) scale(.96)}55%{opacity:1;transform:translate(18px,-8px) rotate(4deg) scale(1.12)}63%{opacity:1;transform:translate(-3.6px,1.6px) rotate(-1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-change .fx-main-actor{animation-name:fx10-change}
@keyframes fx10-change{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(20px,-4px) rotate(7deg) scale(.96)}55%{opacity:1;transform:translate(-22px,8px) rotate(-5deg) scale(1.17)}63%{opacity:1;transform:translate(4.4px,-1.6px) rotate(1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-keyboard .fx-main-actor{animation-name:fx10-keyboard}
@keyframes fx10-keyboard{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-17px,8px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(18px,-12px) rotate(3deg) scale(1.2)}63%{opacity:1;transform:translate(-3.6px,2.4px) rotate(-1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-laser .fx-main-actor{animation-name:fx10-laser}
@keyframes fx10-laser{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-16px,-4px) rotate(-4deg) scale(.96)}55%{opacity:1;transform:translate(23px,3px) rotate(5deg) scale(1.13)}63%{opacity:1;transform:translate(-4.6px,-0.6px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-contract .fx-main-actor{animation-name:fx10-contract}
@keyframes fx10-contract{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(11px,8px) rotate(5deg) scale(.96)}55%{opacity:1;transform:translate(-8px,-7px) rotate(-2deg) scale(1.12)}63%{opacity:1;transform:translate(1.6px,1.4px) rotate(0.6666666666666666deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-headphones .fx-main-actor{animation-name:fx10-headphones}
@keyframes fx10-headphones{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-7px,6px) rotate(-3deg) scale(.96)}55%{opacity:1;transform:translate(8px,-3px) rotate(3deg) scale(1.06)}63%{opacity:1;transform:translate(-1.6px,0.6px) rotate(-1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-study .fx-main-actor{animation-name:fx10-study}
@keyframes fx10-study{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-8px,13px) rotate(-5deg) scale(.96)}55%{opacity:1;transform:translate(13px,-17px) rotate(2deg) scale(1.14)}63%{opacity:1;transform:translate(-2.6px,3.4px) rotate(-0.6666666666666666deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-audit .fx-main-actor{animation-name:fx10-audit}
@keyframes fx10-audit{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-15px,10px) rotate(-4deg) scale(.96)}55%{opacity:1;transform:translate(19px,-8px) rotate(3deg) scale(1.17)}63%{opacity:1;transform:translate(-3.8px,1.6px) rotate(-1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-reimburse .fx-main-actor{animation-name:fx10-reimburse}
@keyframes fx10-reimburse{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-16px,-6px) rotate(-7deg) scale(.96)}55%{opacity:1;transform:translate(20px,12px) rotate(6deg) scale(1.2)}63%{opacity:1;transform:translate(-4px,-2.4px) rotate(-2deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-meeting .fx-main-actor{animation-name:fx10-meeting}
@keyframes fx10-meeting{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-8px,-7px) rotate(-3deg) scale(.96)}55%{opacity:1;transform:translate(12px,5px) rotate(4deg) scale(1.13)}63%{opacity:1;transform:translate(-2.4px,-1px) rotate(-1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-duel .fx-main-actor{animation-name:fx10-duel}
@keyframes fx10-duel{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-20px,1px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(22px,-4px) rotate(4deg) scale(1.18)}63%{opacity:1;transform:translate(-4.4px,0.8px) rotate(-1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-swap .fx-main-actor{animation-name:fx10-swap}
@keyframes fx10-swap{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(23px,0px) rotate(7deg) scale(.96)}55%{opacity:1;transform:translate(-25px,3px) rotate(-6deg) scale(1.14)}63%{opacity:1;transform:translate(5px,-0.6px) rotate(2deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-brainstorm .fx-main-actor{animation-name:fx10-brainstorm}
@keyframes fx10-brainstorm{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-11px,13px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(15px,-16px) rotate(3deg) scale(1.18)}63%{opacity:1;transform:translate(-3px,3.2px) rotate(-1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-focus .fx-main-actor{animation-name:fx10-focus}
@keyframes fx10-focus{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(10px,5px) rotate(4deg) scale(.96)}55%{opacity:1;transform:translate(-12px,-3px) rotate(-3deg) scale(1.08)}63%{opacity:1;transform:translate(2.4px,0.6px) rotate(1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-salary .fx-main-actor{animation-name:fx10-salary}
@keyframes fx10-salary{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-15px,8px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(17px,-9px) rotate(5deg) scale(1.16)}63%{opacity:1;transform:translate(-3.4px,1.8px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-offwork .fx-main-actor{animation-name:fx10-offwork}
@keyframes fx10-offwork{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-23px,11px) rotate(-7deg) scale(.96)}55%{opacity:1;transform:translate(30px,-16px) rotate(6deg) scale(1.2)}63%{opacity:1;transform:translate(-6px,3.2px) rotate(-2deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-checkin .fx-main-actor{animation-name:fx10-checkin}
@keyframes fx10-checkin{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-9px,-9px) rotate(-5deg) scale(.96)}55%{opacity:1;transform:translate(12px,14px) rotate(4deg) scale(1.16)}63%{opacity:1;transform:translate(-2.4px,-2.8px) rotate(-1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-redtape .fx-main-actor{animation-name:fx10-redtape}
@keyframes fx10-redtape{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-12px,7px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(16px,-7px) rotate(5deg) scale(1.17)}63%{opacity:1;transform:translate(-3.2px,1.4px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-disclaimer .fx-main-actor{animation-name:fx10-disclaimer}
.fx-scene-yanpai .fx-main-actor{animation-name:fx10-audit}
.fx-scene-chatlog .fx-main-actor{animation-name:fx10-disclaimer}
@keyframes fx10-disclaimer{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(18px,4px) rotate(5deg) scale(.96)}55%{opacity:1;transform:translate(-17px,-5px) rotate(-4deg) scale(1.12)}63%{opacity:1;transform:translate(3.4px,1px) rotate(1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-bet .fx-main-actor{animation-name:fx10-bet}
@keyframes fx10-bet{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-14px,12px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(16px,-12px) rotate(3deg) scale(1.2)}63%{opacity:1;transform:translate(-3.2px,2.4px) rotate(-1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-handover .fx-main-actor{animation-name:fx10-handover}
@keyframes fx10-handover{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-21px,7px) rotate(-5deg) scale(.96)}55%{opacity:1;transform:translate(22px,-4px) rotate(6deg) scale(1.17)}63%{opacity:1;transform:translate(-4.4px,0.8px) rotate(-2deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-freeze .fx-main-actor{animation-name:fx10-freeze}
@keyframes fx10-freeze{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(14px,6px) rotate(5deg) scale(.96)}55%{opacity:1;transform:translate(-14px,-6px) rotate(-3deg) scale(1.13)}63%{opacity:1;transform:translate(2.8px,1.2px) rotate(1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-sickleave .fx-main-actor{animation-name:fx10-sickleave}
@keyframes fx10-sickleave{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(7px,10px) rotate(4deg) scale(.96)}55%{opacity:1;transform:translate(-8px,6px) rotate(-2deg) scale(1.08)}63%{opacity:1;transform:translate(1.6px,-1.2px) rotate(0.6666666666666666deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-copy .fx-main-actor{animation-name:fx10-copy}
@keyframes fx10-copy{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-20px,-5px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(21px,6px) rotate(5deg) scale(1.16)}63%{opacity:1;transform:translate(-4.2px,-1.2px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-deadline .fx-main-actor{animation-name:fx10-deadline}
@keyframes fx10-deadline{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-12px,-18px) rotate(-8deg) scale(.96)}55%{opacity:1;transform:translate(16px,19px) rotate(7deg) scale(1.26)}63%{opacity:1;transform:translate(-3.2px,-3.8px) rotate(-2.3333333333333335deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-rebound .fx-main-actor{animation-name:fx10-rebound}
@keyframes fx10-rebound{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-24px,15px) rotate(-8deg) scale(.96)}55%{opacity:1;transform:translate(28px,-17px) rotate(5deg) scale(1.3)}63%{opacity:1;transform:translate(-5.6px,3.4px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-rally .fx-main-actor{animation-name:fx10-rally}
@keyframes fx10-rally{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-7px,10px) rotate(-4deg) scale(.96)}55%{opacity:1;transform:translate(4px,-9px) rotate(1deg) scale(1.1)}63%{opacity:1;transform:translate(-0.8px,1.8px) rotate(-0.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-overtime .fx-main-actor{animation-name:fx10-overtime}
@keyframes fx10-overtime{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(18px,-7px) rotate(8deg) scale(.96)}55%{opacity:1;transform:translate(-20px,9px) rotate(-5deg) scale(1.18)}63%{opacity:1;transform:translate(4px,-1.8px) rotate(1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-strike .fx-main-actor{animation-name:fx10-strike}
@keyframes fx10-strike{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-23px,13px) rotate(-9deg) scale(.96)}55%{opacity:1;transform:translate(26px,-15px) rotate(6deg) scale(1.31)}63%{opacity:1;transform:translate(-5.2px,3px) rotate(-2deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-megaphone .fx-main-actor{animation-name:fx10-megaphone}
@keyframes fx10-megaphone{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-16px,4px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(20px,-3px) rotate(5deg) scale(1.17)}63%{opacity:1;transform:translate(-4px,0.6px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-backing .fx-main-actor{animation-name:fx10-backing}
@keyframes fx10-backing{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(12px,8px) rotate(6deg) scale(.96)}55%{opacity:1;transform:translate(-13px,-7px) rotate(-3deg) scale(1.14)}63%{opacity:1;transform:translate(2.6px,1.4px) rotate(1deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-badge .fx-main-actor{animation-name:fx10-badge}
@keyframes fx10-badge{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-23px,2px) rotate(-7deg) scale(.96)}55%{opacity:1;transform:translate(24px,-6px) rotate(5deg) scale(1.18)}63%{opacity:1;transform:translate(-4.8px,1.2px) rotate(-1.6666666666666667deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-vpn .fx-main-actor{animation-name:fx10-vpn}
@keyframes fx10-vpn{0%,27%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}38%{opacity:1;transform:translate(-19px,7px) rotate(-6deg) scale(.96)}55%{opacity:1;transform:translate(21px,-9px) rotate(4deg) scale(1.16)}63%{opacity:1;transform:translate(-4.2px,1.8px) rotate(-1.3333333333333333deg) scale(1.02)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fx-scene-combo .fx-main-actor{animation-name:fx10-combo}
@keyframes fx10-combo{0%,24%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}30%{opacity:1;transform:translate(-13px,7px) rotate(-4deg) scale(.97)}36%{opacity:1;transform:translate(15px,-5px) rotate(3deg) scale(1.14)}43%{opacity:1;transform:translate(-22px,9px) rotate(-6deg) scale(.96)}56%{opacity:1;transform:translate(27px,-12px) rotate(5deg) scale(1.25)}64%{opacity:1;transform:translate(-5px,2px) rotate(-2deg) scale(1.01)}66%,98%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}

/* v0.11: transparent character theatre; only local impact shapes and lettering remain. */
.fx-comic-panel,.fx-comic-panel:before,.fx-comic-panel>i,.fx-comic-panel>b,.fx-ink-swipe,.fx-comic-theatre.fx-tableau>.fx-comic-panel,.fx-comic-theatre.fx-tableau>.fx-ink-swipe,.fx-comic-theatre.fx-static-comic>.fx-ink-swipe{display:none!important;background:none!important;border:0!important;box-shadow:none!important}
.fx-theatre,.fx-comic-theatre,.fx-flat-print{background:transparent;border:0;box-shadow:none}
.fx-comic-rays{background:repeating-conic-gradient(from 5deg at 67% 56%,transparent 0 12deg,#f2dbad 12.5deg 13.2deg,transparent 13.6deg 24deg);mask-image:radial-gradient(ellipse at 67% 56%,transparent 22%,#000 54%,transparent 73%);clip-path:none}
.fx-card-title{background:transparent;border:0;box-shadow:none;color:#f0d6a0;-webkit-text-stroke:1.5px #152623;paint-order:stroke fill;text-shadow:2px 2px #152623,4px 3px #c83b2b;padding:0 2px 4px}
.fx-skill-cut{background:transparent;border:0;box-shadow:none;clip-path:none}.fx-skill-cut>div{color:#f3dfb5;text-shadow:1px 1px #152623,0 2px #152623}.fx-skill-cut small{color:#b9e3c3}.fx-skill-cut strong{color:#f1cf91;-webkit-text-stroke:1px #152623;paint-order:stroke fill;text-shadow:2px 2px #152623,3px 3px #c83b2b}
/* v0.13: words are part of the performance, without a rectangular subtitle plate. */
.fx-setup-caption,.fx-scene-caption{background:transparent!important;border:0!important;border-radius:0;box-shadow:none!important;color:#f5dfb4;padding:0 3px;-webkit-text-stroke:.8px #182d25;paint-order:stroke fill;text-shadow:1px 2px #152623,2px 3px #152623}
.fx-setup-caption:after{display:none}
.fx-scene-caption{font-weight:1000;letter-spacing:.4px}
@media(prefers-reduced-motion:reduce){.fx-comic-theatre.fx-static-comic>.fx-comic-panel,.fx-comic-theatre.fx-static-comic>.fx-ink-swipe{display:none!important}}

/* Confirmed outcomes only: small card bodies and local hit marks, never connecting routes. */
.fx-result-card,.fx-result-label,.fx-result-shard,.fx-confirmed-hit,.fx-damage-number{position:absolute;pointer-events:none;will-change:transform,opacity;user-select:none}
.fx-result-card{display:grid;place-content:center;gap:1px;width:36px;height:52px;z-index:23;border:2px solid #152623;border-radius:2px;background:repeating-linear-gradient(45deg,transparent 0 5px,#a13c2e33 5px 7px),#e9d6aa;color:#a93628;box-shadow:2px 2px #17382bb3;font:1000 italic 24px/1 var(--sans,sans-serif);text-align:center}
.fx-result-card:before{content:'';position:absolute;inset:3px;border:1px solid #a13c2e88;pointer-events:none}.fx-result-card>span{font:1000 italic 24px/1 var(--sans,sans-serif)}.fx-result-card>b,.fx-result-card>small{font:900 7px/1.2 var(--sans,sans-serif);letter-spacing:1px;color:#234c37}
.fx-result-label{z-index:25;display:block;width:max-content;max-width:160px;padding:2px 5px;color:#f2d8a3;background:#1b3f32;border:1px solid #e0ba79;box-shadow:2px 2px #11271ec9;font:1000 italic 14px/1.3 var(--sans,sans-serif);white-space:nowrap;text-align:center;transform:translate(-50%,-50%) rotate(-5deg)}
.fx-result-label[data-operation=discard]{color:#f1d7a3;background:#a63929}
.fx-result-shard{z-index:24;width:12px;height:18px;border:1px solid #152623;background:repeating-linear-gradient(45deg,transparent 0 4px,#b6382b44 4px 6px),#ead7ac;clip-path:polygon(0 0,100% 13%,73% 100%,8% 81%)}
.fx-confirmed-hit{z-index:23;width:104px;height:87px;background:#efca84;clip-path:polygon(0 37%,24% 31%,14% 1%,42% 20%,61% 0,66% 26%,99% 14%,82% 43%,100% 60%,75% 67%,92% 98%,60% 82%,40% 100%,36% 74%,5% 90%,19% 57%);filter:drop-shadow(2px 2px #172d23);transform:translate(-50%,-50%)}
.fx-confirmed-hit:before{content:'';position:absolute;inset:9%;clip-path:inherit;background:#c7442f}.fx-confirmed-hit:after{content:'';position:absolute;inset:27%;clip-path:inherit;background:#f6e4b8}
.fx-damage-number{z-index:26;display:block;width:max-content;max-width:200px;color:#e64f36;font:1000 italic clamp(39px,6vw,64px)/1 var(--sans,sans-serif);letter-spacing:-2px;background:transparent;border:0;white-space:nowrap;-webkit-text-stroke:1.6px #172d23;paint-order:stroke fill;text-shadow:2px 2px #f2ddae,4px 4px #172d23;transform:translate(-50%,-50%) rotate(-9deg)}
.fx-damage-number.is-heal,.fx-damage-number[data-kind=heal]{color:#8ed79a}.fx-damage-number.is-shield,.fx-damage-number[data-kind=shield]{color:#7fc9c5}.fx-damage-number.is-slacking,.fx-damage-number.is-out,.fx-damage-number[data-kind=slacking],.fx-damage-number[data-kind=out]{font-size:clamp(23px,3.7vw,40px);letter-spacing:0;color:#efc272}
.fx-result-static{animation:none!important;transition:none!important;opacity:1!important;will-change:auto}.fx-result-static.fx-result-label{z-index:27}.fx-result-static.fx-damage-number{font-size:32px;rotate:0deg}
@media(max-height:410px) and (orientation:landscape){.fx-result-label{font-size:12px;padding:2px 4px}.fx-confirmed-hit{width:78px;height:67px}.fx-damage-number{font-size:43px}.fx-damage-number.is-slacking,.fx-damage-number.is-out{font-size:26px}.fx-result-static.fx-damage-number{font-size:29px}}
@media(prefers-reduced-motion:reduce){.fx-result-card,.fx-result-shard,.fx-confirmed-hit{animation:none!important;transition:none!important}.fx-result-static{opacity:1!important}}

/* v0.11 new card choreography */
.fx-scene-replyall .fx-main-actor{animation-name:fx10-meeting}
.fx-scene-work996 .fx-main-actor{animation-name:fx10-deadline}
.fx-scene-grip .fx-main-actor{animation-name:fx10-redtape}
.fx-scene-granularity .fx-main-actor{animation-name:fx10-audit}
.fx-scene-talent .fx-main-actor{animation-name:fx10-optimize}
.fx-scene-fishcontest .fx-main-actor{animation-name:fx10-dodge}
.fx-scene-bosscomes .fx-main-actor{animation-name:fx10-rush}
.fx-scene-teatime .fx-main-actor{animation-name:fx10-soup}
.fx-scene-deflect .fx-main-actor{animation-name:fx10-passpot}
.fx-scene-potmeeting .fx-main-actor{animation-name:fx10-optimize}
.fx-scene-badreply .fx-main-actor{animation-name:fx10-rebound}
.fx-scene-refuse .fx-main-actor{animation-name:fx10-contract}
.fx-scene-arbitration .fx-main-actor{animation-name:fx10-rebound}
.fx-scene-hotline .fx-main-actor{animation-name:fx10-assign}
.fx-scene-badreview .fx-main-actor{animation-name:fx10-pua}
.fx-scene-empower .fx-main-actor{animation-name:fx10-handover}
.fx-scene-review .fx-main-actor{animation-name:fx10-audit}
.fx-scene-friday .fx-main-actor{animation-name:fx10-handover}
.fx-scene-tempextra .fx-main-actor{animation-name:fx10-rush}
.fx-scene-membership .fx-main-actor{animation-name:fx10-deal}
/* Public play and confirmed seat exchange silhouettes. */
.fx-play-card{position:absolute;z-index:27;width:48px;height:70px;pointer-events:none;border:2px solid #182c23;background:#efdbb1;box-shadow:2px 2px #152d25;overflow:hidden}.fx-play-sprite{display:block;width:100%;height:53px;object-fit:contain}.fx-play-card>b{position:absolute;bottom:1px;left:0;width:100%;font:900 italic 10px/1.2 var(--sans,sans-serif);color:#173b2c;text-align:center}.fx-seat-ghost{position:absolute;z-index:24;pointer-events:none;width:84px;height:110px;filter:drop-shadow(0 0 8px #e7ca80)}.fx-seat-ghost img,.fx-seat-ghost svg{width:100%;height:100%;object-fit:contain}

/* v0.12 equipment performances */
.fx-scene-printer .fx-main-actor{animation-name:fx10-audit}
.fx-scene-recorder .fx-main-actor{animation-name:fx10-contract}
.fx-scene-microphone .fx-main-actor{animation-name:fx10-megaphone}
.fx-scene-annualleave .fx-main-actor{animation-name:fx10-swap}
.fx-scene-commutepass .fx-main-actor{animation-name:fx10-badge}

/* v0.14 新卡：借用意思最贴的已有动作 */
.fx-scene-ping .fx-main-actor{animation-name:fx10-assign}
.fx-scene-gossip .fx-main-actor{animation-name:fx10-brainstorm}
.fx-scene-toilet .fx-main-actor{animation-name:fx10-freeze}
.fx-scene-monitor .fx-main-actor{animation-name:fx10-vpn}
.fx-scene-thermos .fx-main-actor{animation-name:fx10-sickleave}

/* v0.19：新牌沿用最接近的旧动作 */
.fx-scene-peer .fx-main-actor{animation-name:fx10-strike}
.fx-scene-slack .fx-main-actor{animation-name:fx10-nap}
.fx-scene-vacation .fx-main-actor{animation-name:fx10-sickleave}
.fx-scene-scissors .fx-main-actor{animation-name:fx10-redtape}
.fx-scene-mop .fx-main-actor{animation-name:fx10-outing}
.fx-scene-dumbbell .fx-main-actor{animation-name:fx10-rebound}
.fx-scene-pot .fx-main-actor{animation-name:fx10-passpot}
.fx-scene-option .fx-main-actor{animation-name:fx10-deal}
.fx-scene-smoke .fx-main-actor{animation-name:fx10-offwork}
.fx-scene-backpack .fx-main-actor{animation-name:fx10-badge}
.fx-scene-walkie .fx-main-actor{animation-name:fx10-megaphone}
.fx-scene-chair .fx-main-actor{animation-name:fx10-swap}
.fx-scene-wechatlog .fx-main-actor{animation-name:fx10-disclaimer}
.fx-scene-policy .fx-main-actor{animation-name:fx10-backing}
.fx-scene-byd .fx-main-actor{animation-name:fx10-badge}
.fx-scene-helmet .fx-main-actor{animation-name:fx10-focus}
.fx-scene-cupping .fx-main-actor{animation-name:fx10-sickleave}
.fx-scene-keys .fx-main-actor{animation-name:fx10-salary}
.fx-scene-car .fx-main-actor{animation-name:fx10-badge}
.fx-scene-ebike .fx-main-actor{animation-name:fx10-badge}
.fx-scene-calculator .fx-main-actor{animation-name:fx10-contract}

/* v0.19.1 职业绝活：透明印刷漫画切入。角色、道具、文字同场演出，
   主动1.6s / 被动1.1s；实伤只由独立血量数字表达。 */
.fx-role-skill{position:absolute;z-index:22;pointer-events:none;transform:translate(-50%,-50%);isolation:isolate;contain:layout style;--sk-accent:#398777;--sk-ink:#172723;--sk-paper:#f7dfae}
.sk19-scene{position:relative;width:100%;height:100%;overflow:visible;--sk-dir:1;--sk-tilt:0deg;--sk-gesture:sk19-stamp;--sk-prop-gesture:sk19-prop-pop;--sk-time:var(--sk-duration,1600ms)}
.sk19-actor,.sk19-echo{position:absolute;left:2%;bottom:0;width:43%;height:110%;transform-origin:50% 84%;animation:var(--sk-gesture) var(--sk-time) cubic-bezier(.22,.76,.24,1) both;z-index:4}
.sk19-actor .role-portrait,.sk19-echo .role-portrait{display:block;width:100%!important;height:100%!important;max-height:none!important;object-fit:contain;object-position:bottom;border:0;border-radius:0;box-shadow:none;background:transparent;filter:drop-shadow(3px 2px 0 var(--sk-ink)) drop-shadow(-2px -1px 0 var(--sk-paper))}
.sk19-echo{left:-3%;opacity:.2;z-index:1;animation:sk19-echo var(--sk-time) steps(3,end) both}
.sk19-echo .role-portrait{filter:brightness(0) sepia(1) saturate(4);opacity:.75}
.sk19-prop-wrap{position:absolute;left:30%;top:13%;width:28%;height:65%;z-index:6;transform-origin:50% 70%;animation:var(--sk-prop-gesture) var(--sk-time) cubic-bezier(.18,.8,.24,1) both;filter:drop-shadow(3px 3px 0 var(--sk-paper))}
.sk19-prop{width:100%;height:100%;overflow:visible;stroke:var(--sk-ink);fill:var(--sk-accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke fill}
.sk19-copy{position:absolute;left:40%;right:-2%;bottom:12%;z-index:9;display:flex;align-items:flex-start;flex-direction:column;gap:7px;transform:rotate(-3deg);color:var(--sk-paper);font-family:var(--sans,sans-serif)}
.sk19-copy small{font-size:clamp(10px,1.4vw,13px);line-height:1.1;font-weight:850;letter-spacing:.06em;color:#f0ce8c;text-shadow:1px 1px 0 var(--sk-ink),-1px -1px 0 var(--sk-ink),1px -1px 0 var(--sk-ink)}
.sk19-copy strong{font-size:clamp(24px,3.6vw,41px);font-weight:1000;font-style:italic;line-height:1.07;letter-spacing:-.05em;color:var(--sk-paper);-webkit-text-stroke:1.1px var(--sk-ink);paint-order:stroke fill;text-shadow:2px 3px 0 var(--sk-ink),4px 5px 0 var(--sk-accent);overflow-wrap:anywhere}
.sk19-quote{font-size:clamp(11px,1.55vw,15px);font-weight:850;line-height:1.35;letter-spacing:.02em;color:#fff1d1;text-shadow:1px 1px 0 var(--sk-ink),-1px -1px 0 var(--sk-ink),2px 2px 0 var(--sk-ink);animation:sk19-quote var(--sk-time) linear both}
.sk19-word{position:absolute;right:4%;top:-1%;z-index:8;font-size:clamp(22px,4vw,44px);font-weight:1000;font-style:italic;letter-spacing:-.06em;line-height:1;color:#d1442e;-webkit-text-stroke:1px var(--sk-ink);paint-order:stroke fill;text-shadow:2px 2px 0 var(--sk-paper);transform:rotate(8deg);animation:sk19-word var(--sk-time) linear both}
.sk19-burst{position:absolute;left:13%;top:-3%;width:72%;height:95%;z-index:0;background:var(--sk-paper);opacity:.84;clip-path:polygon(49% 8%,58% 31%,79% 3%,73% 38%,100% 29%,80% 53%,99% 73%,69% 68%,76% 100%,53% 77%,36% 98%,32% 72%,0 80%,20% 52%,1% 27%,32% 35%,24% 2%,46% 26%);animation:sk19-burst var(--sk-time) steps(2,end) both}
.sk19-speed{position:absolute;inset:-12% -10%;z-index:0;opacity:.5;background:repeating-conic-gradient(from 12deg,transparent 0deg 13deg,var(--sk-accent) 13.6deg 14.2deg,transparent 15deg 26deg);mask-image:radial-gradient(ellipse,transparent 25%,#000 28%,transparent 71%);animation:sk19-speed var(--sk-time) linear both}
.sk19-spark{position:absolute;left:47%;top:48%;width:15px;height:5px;background:var(--sk-ink);border-right:11px solid var(--sk-paper);transform:rotate(calc(var(--n)*45deg)) translateX(25px);animation:sk19-spark var(--sk-time) steps(3,end) both}
.context-break{--sk-accent:#d1442e}.context-break .sk19-burst{background:#edb452}.context-break .sk19-word{font-size:clamp(28px,4.5vw,50px)}
.context-passive{--sk-time:var(--sk-duration,1100ms)}.context-passive .sk19-actor{animation-name:sk19-passive}.context-passive .sk19-burst{opacity:.55}.context-passive .sk19-echo{display:none}
.sk19-scene.is-compact .sk19-copy{left:27%;right:-2%;bottom:1%;gap:4px}.sk19-scene.is-compact .sk19-copy small{font-size:9px}.sk19-scene.is-compact .sk19-copy strong{font-size:18px;-webkit-text-stroke:.7px;letter-spacing:-.035em}.sk19-scene.is-compact .sk19-actor{width:54%;height:105%;left:-6%;bottom:10%}.sk19-scene.is-compact .sk19-prop-wrap{left:40%;width:33%;top:8%;height:50%}.sk19-scene.is-compact .sk19-word{font-size:21px;right:0;top:3%}.sk19-scene.is-compact .sk19-burst{left:17%;width:80%;height:80%}.sk19-scene.is-compact .sk19-speed{opacity:.25}
.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-actor{left:7%;width:79%;height:84%;bottom:23%}.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-echo{left:0%;width:79%;height:84%;bottom:23%}.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-prop-wrap{left:49%;width:45%;height:46%;top:7%}.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-copy{left:0;right:0;bottom:1%;gap:5px;align-items:center;text-align:center}.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-copy strong{font-size:25px;line-height:1.08}.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-copy small{font-size:10px}.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-quote{font-size:11px}.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .sk19-word{font-size:26px;right:-1%;top:0}
/* Each occupational silhouette performs its own comic gesture. */
.motif-stamp-recoil{--sk-gesture:sk19-stamp;--sk-prop-gesture:sk19-prop-slam}
.motif-keyboard-burst{--sk-gesture:sk19-keyboard;--sk-prop-gesture:sk19-prop-jolt}
.motif-paper-telescope{--sk-gesture:sk19-point;--sk-prop-gesture:sk19-prop-telescope}
.motif-screen-flip{--sk-gesture:sk19-screen;--sk-prop-gesture:sk19-prop-flip}
.motif-whisper-ricochet{--sk-gesture:sk19-gossip;--sk-prop-gesture:sk19-prop-wave}
.motif-copy-spring{--sk-gesture:sk19-copy;--sk-prop-gesture:sk19-prop-telescope}
.motif-sweep-gather{--sk-gesture:sk19-sweep;--sk-prop-gesture:sk19-prop-sweep}
.motif-barrier-stomp{--sk-gesture:sk19-stomp;--sk-prop-gesture:sk19-prop-slam}
.motif-pie-orbit{--sk-gesture:sk19-pie;--sk-prop-gesture:sk19-prop-orbit}
.motif-coin-shower{--sk-gesture:sk19-throw;--sk-prop-gesture:sk19-prop-coins}
.motif-notice-eject{--sk-gesture:sk19-eject;--sk-prop-gesture:sk19-prop-eject}
.motif-pan-relay{--sk-gesture:sk19-relay;--sk-prop-gesture:sk19-prop-relay}
.motif-demand-zoom{--sk-gesture:sk19-demand;--sk-prop-gesture:sk19-prop-telescope}
.motif-invoice-fold{--sk-gesture:sk19-fold;--sk-prop-gesture:sk19-prop-flip}
.motif-letter-slash{--sk-gesture:sk19-slash;--sk-prop-gesture:sk19-prop-slash}
.motif-whisper-pass{--sk-gesture:sk19-whisper;--sk-prop-gesture:sk19-prop-wave}
.motif-scissor-snap{--sk-gesture:sk19-scissor;--sk-prop-gesture:sk19-prop-snip}
.motif-weight-pump{--sk-gesture:sk19-pump;--sk-prop-gesture:sk19-prop-pump}
.motif-live-link{--sk-gesture:sk19-live;--sk-prop-gesture:sk19-prop-live}
.motif-policy-wrap{--sk-gesture:sk19-wrap;--sk-prop-gesture:sk19-prop-wrap}
.motif-car-swerve{--sk-gesture:sk19-swerve;--sk-prop-gesture:sk19-prop-drive}
.motif-lift-trap{--sk-gesture:sk19-lift;--sk-prop-gesture:sk19-prop-lift}
.motif-vacuum-pop{--sk-gesture:sk19-vacuum;--sk-prop-gesture:sk19-prop-vacuum}
.motif-key-jangle{--sk-gesture:sk19-jangle;--sk-prop-gesture:sk19-prop-jangle}
@keyframes sk19-stamp{0%{transform:translateY(-13%) rotate(-10deg) scale(.83)}25%{transform:translateY(5%) rotate(4deg) scale(1.04)}32%,48%{transform:translateY(-2%) rotate(-3deg)}64%,100%{transform:none}}
@keyframes sk19-keyboard{0%{transform:translateX(-15%) rotate(8deg)}22%{transform:translateX(3%) rotate(-3deg)}30%,37%{transform:translateY(3%) rotate(-5deg)}44%,51%{transform:translateY(-2%) rotate(2deg)}65%,100%{transform:none}}
@keyframes sk19-point{0%{transform:translateX(-22%) scale(.9)}25%{transform:translateX(9%) rotate(8deg) scale(1.04)}34%,49%{transform:translateX(6%) rotate(5deg)}65%,100%{transform:none}}
@keyframes sk19-screen{0%{transform:translateY(10%) rotate(-8deg)}20%{transform:translateY(-2%) rotate(2deg)}33%{transform:scaleX(.55) rotate(-5deg)}43%,59%{transform:scaleX(1.03) rotate(3deg)}75%,100%{transform:none}}
@keyframes sk19-gossip{0%{transform:translateX(-13%) rotate(-12deg)}24%{transform:translateX(5%) rotate(9deg)}34%,48%{transform:translateX(-4%) rotate(-7deg)}66%,100%{transform:rotate(2deg)}}
@keyframes sk19-copy{0%{transform:translateY(20%) scale(.68)}24%{transform:translateY(-8%) scale(1.08)}33%,49%{transform:translateY(2%) scale(.99)}62%,100%{transform:none}}
@keyframes sk19-sweep{0%{transform:translateX(-20%) rotate(-16deg)}27%{transform:translateX(17%) rotate(17deg)}39%,50%{transform:translateX(10%) rotate(9deg)}70%,100%{transform:none}}
@keyframes sk19-stomp{0%{transform:translateY(-20%) scale(.85)}25%{transform:translateY(5%) scale(1.08,.93)}32%,48%{transform:scale(1.02)}65%,100%{transform:none}}
@keyframes sk19-pie{0%{transform:rotate(-6deg) scale(.9)}24%{transform:translateX(-5%) rotate(-12deg) scale(1.03)}36%,52%{transform:translateX(5%) rotate(6deg)}70%,100%{transform:none}}
@keyframes sk19-throw{0%{transform:translateY(5%) rotate(-13deg)}26%{transform:translateY(-8%) rotate(8deg) scale(1.06)}35%,49%{transform:translateY(-6%) rotate(5deg)}68%,100%{transform:none}}
@keyframes sk19-eject{0%{transform:translateX(-10%) rotate(5deg)}25%{transform:translateX(14%) rotate(-7deg)}34%,52%{transform:translateX(8%) rotate(-4deg)}70%,100%{transform:none}}
@keyframes sk19-relay{0%{transform:translateX(13%) rotate(13deg)}27%{transform:translateX(-17%) rotate(-16deg)}37%,52%{transform:translateX(-9%) rotate(-8deg)}74%,100%{transform:none}}
@keyframes sk19-demand{0%{transform:scale(.8) rotate(-7deg)}25%{transform:scale(1.16) rotate(7deg)}33%,50%{transform:scale(1.10) rotate(3deg)}71%,100%{transform:none}}
@keyframes sk19-fold{0%{transform:translateY(-6%) rotate(9deg)}25%{transform:translateY(5%) rotate(-8deg) scale(.95,1.05)}35%,53%{transform:rotate(-4deg)}75%,100%{transform:none}}
@keyframes sk19-slash{0%{transform:translate(-14%,10%) rotate(-17deg)}25%{transform:translate(12%,-4%) rotate(13deg)}34%,50%{transform:translate(6%,-2%) rotate(5deg)}72%,100%{transform:none}}
@keyframes sk19-whisper{0%{transform:translateX(11%) rotate(8deg)}22%{transform:translateX(-7%) rotate(-10deg)}34%,48%{transform:translateX(-4%) rotate(-6deg) scale(1.03)}68%,100%{transform:none}}
@keyframes sk19-scissor{0%{transform:rotate(-10deg)}23%{transform:translateX(7%) rotate(9deg)}30%{transform:rotate(-8deg)}38%,52%{transform:translateX(4%) rotate(5deg)}75%,100%{transform:none}}
@keyframes sk19-pump{0%{transform:translateY(12%) scale(1,.88)}24%{transform:translateY(-8%) scale(1.08,1.08)}33%,49%{transform:translateY(-5%) scale(1.05)}68%,100%{transform:none}}
@keyframes sk19-live{0%{transform:rotate(-8deg) scale(.88)}22%{transform:rotate(9deg) scale(1.04)}31%{transform:rotate(-6deg) scale(1.08)}41%,56%{transform:rotate(4deg) scale(1.03)}75%,100%{transform:none}}
@keyframes sk19-wrap{0%{transform:translateX(-12%) rotate(5deg)}24%{transform:translateX(10%) rotate(-7deg)}35%,51%{transform:translateX(6%) rotate(-4deg) scale(1.02)}73%,100%{transform:none}}
@keyframes sk19-swerve{0%{transform:translateX(-25%) rotate(-15deg)}23%{transform:translateX(16%) rotate(16deg)}32%,46%{transform:translateX(9%) rotate(7deg)}65%,100%{transform:none}}
@keyframes sk19-lift{0%{transform:translateY(22%) scale(.9)}24%{transform:translateY(-9%) scale(1.03)}32%,48%{transform:translateY(-5%)}67%,100%{transform:translateY(1%)}}
@keyframes sk19-vacuum{0%{transform:scale(.83,1.08) rotate(-5deg)}24%{transform:scale(1.1,.95) rotate(6deg)}33%,48%{transform:scale(.99,1.04) rotate(-3deg)}69%,100%{transform:none}}
@keyframes sk19-jangle{0%{transform:rotate(-13deg) translateY(-5%)}24%{transform:rotate(12deg) translateY(3%)}31%{transform:rotate(-9deg)}39%,54%{transform:rotate(6deg)}75%,100%{transform:none}}
@keyframes sk19-prop-pop{0%,12%{opacity:0;transform:scale(.4)}28%{opacity:1;transform:scale(1.2)}36%,65%{opacity:1;transform:scale(1)}100%{opacity:.9;transform:scale(.98)}}
@keyframes sk19-prop-slam{0%,9%{opacity:0;transform:translateY(-70%) rotate(-14deg) scale(.5)}26%{opacity:1;transform:translateY(15%) rotate(8deg) scale(1.2)}34%,57%{opacity:1;transform:translateY(6%) rotate(3deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-jolt{0%,10%{opacity:0;transform:scale(.5)}25%{opacity:1;transform:rotate(8deg) scale(1.2)}32%{transform:rotate(-11deg)}39%,54%{transform:rotate(5deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-telescope{0%,8%{opacity:0;transform:translateX(-30%) scaleX(.3)}25%{opacity:1;transform:translateX(18%) scaleX(1.25)}34%,56%{opacity:1;transform:translateX(9%) scaleX(1.1)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-flip{0%,8%{opacity:0;transform:scaleX(.05)}25%{opacity:1;transform:scaleX(1.12) rotate(-9deg)}34%,56%{opacity:1;transform:scaleX(1) rotate(-5deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-wave{0%,8%{opacity:0;transform:translateX(-25%) rotate(-25deg)}25%{opacity:1;transform:translateX(8%) rotate(15deg)}35%,52%{opacity:1;transform:translateX(5%) rotate(5deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-sweep{0%,6%{opacity:0;transform:translateX(-70%) rotate(-45deg)}25%{opacity:1;transform:translateX(35%) rotate(48deg)}35%,52%{opacity:1;transform:translateX(20%) rotate(24deg)}100%{opacity:1;transform:translateX(-8%) rotate(-12deg)}}
@keyframes sk19-prop-orbit{0%,8%{opacity:0;transform:translate(-50%,-40%) rotate(-35deg) scale(.4)}27%{opacity:1;transform:translate(20%,10%) rotate(18deg) scale(1.2)}35%,54%{opacity:1;transform:translate(10%,3%) rotate(8deg)}100%{opacity:1;transform:rotate(-5deg)}}
@keyframes sk19-prop-coins{0%,10%{opacity:0;transform:translateY(-70%) rotate(-30deg) scale(.4)}26%{opacity:1;transform:translateY(20%) rotate(14deg) scale(1.2)}35%,52%{opacity:1;transform:translateY(7%) rotate(-8deg)}100%{opacity:.9;transform:translateY(20%) rotate(5deg)}}
@keyframes sk19-prop-eject{0%,10%{opacity:0;transform:translateX(-65%) rotate(-25deg)}26%{opacity:1;transform:translateX(30%) rotate(20deg)}35%,54%{opacity:1;transform:translateX(18%) rotate(10deg)}100%{opacity:1;transform:translateX(5%) rotate(3deg)}}
@keyframes sk19-prop-relay{0%,8%{opacity:0;transform:translateX(75%) rotate(50deg)}26%{opacity:1;transform:translateX(-25%) rotate(-26deg)}34%,54%{opacity:1;transform:translateX(-15%) rotate(-15deg)}100%{opacity:1;transform:rotate(5deg)}}
@keyframes sk19-prop-slash{0%,8%{opacity:0;transform:translate(-70%,50%) rotate(-45deg)}25%{opacity:1;transform:translate(20%,-20%) rotate(20deg)}34%,54%{opacity:1;transform:translate(10%,-9%) rotate(10deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-snip{0%,10%{opacity:0;transform:rotate(-35deg) scale(.6)}25%{opacity:1;transform:rotate(24deg) scale(1.2)}32%{transform:rotate(-20deg) scale(1.2)}41%,56%{opacity:1;transform:rotate(14deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-pump{0%,8%{opacity:0;transform:translateY(70%) scale(.75)}25%{opacity:1;transform:translateY(-35%) scale(1.2)}34%,54%{opacity:1;transform:translateY(-20%) scale(1.1)}100%{opacity:1;transform:translateY(-5%)}}
@keyframes sk19-prop-live{0%,8%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1.25) rotate(-10deg)}35%,54%{opacity:1;transform:scale(1.1) rotate(5deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-wrap{0%,8%{opacity:0;transform:translateX(-50%) scaleX(.3) rotate(-15deg)}25%{opacity:1;transform:translateX(12%) scaleX(1.2) rotate(12deg)}34%,54%{opacity:1;transform:translateX(5%) scaleX(1.07) rotate(5deg)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-drive{0%,8%{opacity:0;transform:translateX(-95%) rotate(-20deg)}24%{opacity:1;transform:translateX(28%) rotate(15deg)}33%,54%{opacity:1;transform:translateX(15%) rotate(5deg)}100%{opacity:1;transform:translateX(-3%)}}
@keyframes sk19-prop-lift{0%,8%{opacity:0;transform:translateY(65%) scaleY(.6)}25%{opacity:1;transform:translateY(-20%) scaleY(1.1)}35%,54%{opacity:1;transform:translateY(-12%) scaleY(1.05)}100%{opacity:1;transform:none}}
@keyframes sk19-prop-vacuum{0%,10%{opacity:0;transform:translateY(-30%) scale(.4,1.4)}25%{opacity:1;transform:translateY(20%) scale(1.35,.7)}34%,55%{opacity:1;transform:translateY(5%) scale(1.05)}100%{opacity:1;transform:translateY(-8%)}}
@keyframes sk19-prop-jangle{0%,8%{opacity:0;transform:rotate(-45deg) scale(.6)}25%{opacity:1;transform:rotate(30deg) scale(1.2)}32%{transform:rotate(-24deg) scale(1.15)}41%,56%{opacity:1;transform:rotate(12deg)}100%{opacity:1;transform:rotate(-5deg)}}
@keyframes sk19-echo{0%,9%{opacity:0;transform:translateX(-20%) scale(.85)}22%{opacity:.35;transform:translateX(-8%) scale(1.08)}38%,100%{opacity:0;transform:translateX(-20%) scale(1.12)}}
@keyframes sk19-quote{0%,19%{opacity:0;transform:translateY(5px)}28%,100%{opacity:1;transform:none}}
@keyframes sk19-word{0%,26%{opacity:0;transform:scale(.3) rotate(-10deg)}34%{opacity:1;transform:scale(1.16) rotate(9deg)}41%,83%{opacity:1;transform:scale(1) rotate(6deg)}100%{opacity:.8;transform:scale(1) rotate(6deg)}}
@keyframes sk19-burst{0%,18%{opacity:0;transform:scale(.3) rotate(-8deg)}28%,54%{opacity:.84;transform:scale(1) rotate(4deg)}70%,100%{opacity:.4;transform:scale(.98) rotate(2deg)}}
@keyframes sk19-speed{0%,8%{opacity:0;transform:scale(.5)}22%,38%{opacity:.6;transform:scale(1.03)}55%,100%{opacity:0;transform:scale(1.1)}}
@keyframes sk19-spark{0%,24%{opacity:0;transform:rotate(calc(var(--n)*45deg)) translateX(25px)}35%{opacity:1;transform:rotate(calc(var(--n)*45deg)) translateX(90px)}48%,100%{opacity:0;transform:rotate(calc(var(--n)*45deg)) translateX(115px)}}
@keyframes sk19-passive{0%{transform:translateY(9%) scale(.87)}22%{transform:translateY(-4%) rotate(var(--sk-tilt)) scale(1.04)}40%,77%{transform:translateY(0) rotate(0) scale(1)}100%{transform:none}}
.sk19-scene.is-static *,.sk19-scene.is-static::before,.sk19-scene.is-static::after{animation:none!important;transition:none!important}.sk19-scene.is-static .sk19-speed,.sk19-scene.is-static .sk19-sparks,.sk19-scene.is-static .sk19-echo{display:none}.sk19-scene.is-static .sk19-quote,.sk19-scene.is-static .sk19-word{opacity:1}
.fx-role-skill.fx-tableau>.sk19-scene{display:block!important}.fx-role-skill.fx-tableau *{animation:none!important;transition:none!important}.fx-role-skill.fx-tableau .sk19-speed,.fx-role-skill.fx-tableau .sk19-sparks,.fx-role-skill.fx-tableau .sk19-echo{display:none}.fx-role-skill.fx-tableau .sk19-word,.fx-role-skill.fx-tableau .sk19-quote{opacity:1}
@media(prefers-reduced-motion:reduce){.fx-role-skill *{animation:none!important;transition:none!important}.sk19-speed,.sk19-sparks,.sk19-echo{display:none}.sk19-word,.sk19-quote{opacity:1;transform:none}}

/* v0.28: transparent occupational props, held comic impact and three distinct acts per merchant. */
.is-v28-merchant{--sk-gesture:sk28-lunge;--sk-prop-gesture:sk28-prop-thrust;perspective:650px}
.is-v28-merchant .sk19-actor{transform-origin:45% 82%;filter:drop-shadow(4px 4px 0 #172723)}
.is-v28-merchant .sk19-prop-wrap{left:28%;top:4%;width:35%;height:75%;transform-origin:36% 70%;filter:drop-shadow(4px 4px 0 var(--sk-ink)) drop-shadow(-2px -2px 0 var(--sk-paper))}
.is-v28-merchant .sk19-prop{stroke-width:4.5;vector-effect:non-scaling-stroke}
.is-v28-merchant .sk19-burst{opacity:.62;width:68%;left:17%;clip-path:polygon(46% 0,57% 28%,83% 4%,73% 38%,100% 37%,78% 55%,96% 87%,64% 73%,58% 100%,45% 77%,18% 99%,28% 65%,0 63%,24% 43%,6% 12%,37% 29%)}
.is-v28-merchant .sk19-word{top:-3%;right:0;font-size:clamp(26px,4.3vw,49px);text-shadow:3px 3px 0 var(--sk-paper),5px 5px 0 var(--sk-ink);transform-origin:70% 80%}
.sk28-impact-slices{position:absolute;inset:5% -6% 0 12%;z-index:2;pointer-events:none;overflow:visible}
.sk28-impact-slices i{position:absolute;left:24%;top:20%;width:70%;height:5%;background:var(--sk-accent);clip-path:polygon(0 38%,100% 0,78% 100%,18% 66%);transform:rotate(-13deg);animation:sk28-ink-hit var(--sk-time) steps(3,end) both}
.sk28-impact-slices i:nth-child(2){top:39%;left:9%;width:85%;transform:rotate(7deg);background:var(--sk-ink)}
.sk28-impact-slices i:nth-child(3){top:67%;left:5%;width:68%;transform:rotate(-21deg);background:var(--sk-paper)}
.is-v28-merchant.context-passive .sk19-prop-wrap{top:10%;left:32%;width:31%;height:65%}
.is-v28-merchant.context-passive .sk28-impact-slices{opacity:.6}
.is-v28-merchant.context-break .sk19-prop-wrap{width:40%;height:83%;top:-1%}
.motif-snip-perspective{--sk-gesture:sk28-snip;--sk-prop-gesture:sk28-prop-snip}
.motif-membership-fan,.motif-shopping-rush{--sk-gesture:sk28-present;--sk-prop-gesture:sk28-prop-flip}
.motif-fringe-explosion{--sk-gesture:sk28-recoil;--sk-prop-gesture:sk28-prop-burst}
.motif-tape-snap{--sk-gesture:sk28-present;--sk-prop-gesture:sk28-prop-stretch}
.motif-core-breath{--sk-gesture:sk28-breathe;--sk-prop-gesture:sk28-prop-breathe}
.motif-double-pump{--sk-gesture:sk28-double;--sk-prop-gesture:sk28-prop-double}
.motif-follower-swarm,.motif-star-ripple{--sk-gesture:sk28-breathe;--sk-prop-gesture:sk28-prop-burst}
.motif-rocket-gift{--sk-gesture:sk28-present;--sk-prop-gesture:sk28-prop-launch}
.motif-palm-perspective{--sk-gesture:sk28-lunge;--sk-prop-gesture:sk28-prop-thrust}
.motif-clock-orbit,.motif-meter-tick{--sk-gesture:sk28-present;--sk-prop-gesture:sk28-prop-tick}
.motif-siren-choice{--sk-gesture:sk28-recoil;--sk-prop-gesture:sk28-prop-siren}
.motif-dispatch-swerve{--sk-gesture:sk28-swerve;--sk-prop-gesture:sk28-prop-thrust}
.motif-lane-slide{--sk-gesture:sk28-swerve;--sk-prop-gesture:sk28-prop-slide}
.motif-door-kick{--sk-gesture:sk28-lunge;--sk-prop-gesture:sk28-prop-kick}
.motif-lift-clamp{--sk-gesture:sk28-recoil;--sk-prop-gesture:sk28-prop-lift}
.motif-takeout-snap{--sk-gesture:sk28-snip;--sk-prop-gesture:sk28-prop-flip}
.motif-rent-jangle{--sk-gesture:sk28-present;--sk-prop-gesture:sk28-prop-tick}
.motif-flashlight-scan{--sk-gesture:sk28-lunge;--sk-prop-gesture:sk28-prop-scan}
@keyframes sk28-lunge{0%{transform:translate(-18%,10%) scale(.79) rotate(-9deg)}24%{transform:translate(9%,-3%) scale(1.15) rotate(5deg)}36%,77%{transform:translate(3%,0) scale(1.03)}100%{transform:none}}
@keyframes sk28-snip{0%{transform:rotate(-13deg) scale(.9)}20%{transform:translateX(8%) rotate(8deg)}30%{transform:rotate(-7deg)}43%,78%{transform:translateX(3%) rotate(3deg)}100%{transform:none}}
@keyframes sk28-present{0%{transform:translateY(12%) rotate(-8deg) scale(.86)}25%{transform:translateY(-4%) rotate(6deg) scale(1.09)}40%,80%{transform:rotate(2deg) scale(1.02)}100%{transform:none}}
@keyframes sk28-recoil{0%{transform:translateX(-12%) rotate(-8deg)}24%{transform:translateX(5%) rotate(9deg) scale(1.06)}34%{transform:translateX(-5%) rotate(-5deg)}45%,80%{transform:rotate(2deg)}100%{transform:none}}
@keyframes sk28-breathe{0%{transform:scale(.9,.96)}28%{transform:scale(1.07,1.04)}52%,79%{transform:scale(1.02)}100%{transform:none}}
@keyframes sk28-double{0%{transform:translateY(14%) scale(.9)}20%{transform:translateY(-8%) scale(1.1)}31%{transform:translateY(5%) scale(.95)}44%{transform:translateY(-9%) scale(1.13)}57%,82%{transform:translateY(-3%) scale(1.03)}100%{transform:none}}
@keyframes sk28-swerve{0%{transform:translateX(-22%) rotate(-13deg)}24%{transform:translateX(14%) rotate(13deg)}36%,79%{transform:translateX(4%) rotate(4deg)}100%{transform:none}}
@keyframes sk28-prop-thrust{0%,9%{opacity:0;transform:perspective(220px) rotateY(-35deg) translate(-50%,18%) scale(.3)}26%{opacity:1;transform:perspective(220px) rotateY(7deg) translate(10%,-5%) scale(1.25)}39%,83%{opacity:1;transform:rotate(-5deg) scale(1.02)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-snip{0%,10%{opacity:0;transform:rotate(-28deg) scale(.6)}24%{opacity:1;transform:rotate(20deg) scale(1.16)}34%{transform:rotate(-18deg) scale(1.08)}45%,83%{opacity:1;transform:rotate(6deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-flip{0%,10%{opacity:0;transform:perspective(300px) rotateY(75deg) translateX(-30%) scale(.6)}28%{opacity:1;transform:perspective(300px) rotateY(-12deg) translateX(4%) scale(1.16)}40%,83%{opacity:1;transform:rotate(5deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-burst{0%,14%{opacity:0;transform:scale(.25) rotate(-20deg)}29%{opacity:1;transform:scale(1.25) rotate(12deg)}41%,83%{opacity:1;transform:scale(1.02) rotate(-5deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-stretch{0%,10%{opacity:0;transform:scaleX(.2) rotate(-15deg)}27%{opacity:1;transform:scaleX(1.3) rotate(9deg)}39%,83%{opacity:1;transform:scaleX(1.02) rotate(-3deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-breathe{0%,9%{opacity:0;transform:scale(.6)}31%{opacity:1;transform:scale(1.18)}49%,83%{opacity:1;transform:scale(1.02)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-double{0%,9%{opacity:0;transform:translateY(50%) scale(.6)}22%{opacity:1;transform:translateY(-12%) scale(1.12)}32%{transform:translateY(16%)}45%{transform:translateY(-15%) scale(1.22)}58%,83%{opacity:1;transform:translateY(-3%)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-launch{0%,10%{opacity:0;transform:translateY(60%) rotate(-12deg) scale(.5)}30%{opacity:1;transform:translateY(-22%) rotate(8deg) scale(1.2)}43%,83%{opacity:1;transform:translateY(-8%) rotate(3deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-tick{0%,10%{opacity:0;transform:rotate(-25deg) scale(.65)}25%{opacity:1;transform:rotate(17deg) scale(1.14)}34%{transform:rotate(-12deg)}45%,83%{opacity:1;transform:rotate(4deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-siren{0%,10%{opacity:0;transform:scale(.5)}26%{opacity:1;transform:rotate(14deg) scale(1.18)}36%{transform:rotate(-14deg)}47%,83%{opacity:1;transform:rotate(5deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-slide{0%,10%{opacity:0;transform:translateX(-55%) rotate(-10deg) scale(.65)}28%{opacity:1;transform:translateX(13%) rotate(6deg) scale(1.16)}41%,83%{opacity:1;transform:translateX(1%)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-kick{0%,10%{opacity:0;transform:rotateY(65deg) scale(.6)}26%{opacity:1;transform:rotateY(-15deg) rotate(14deg) scale(1.18)}41%,83%{opacity:1;transform:rotate(4deg)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-lift{0%,10%{opacity:0;transform:translateY(55%) scale(.7)}26%{opacity:1;transform:translateY(-18%) scale(1.16)}38%{transform:translateY(8%)}49%,83%{opacity:1;transform:translateY(-3%)}100%{opacity:1;transform:none}}
@keyframes sk28-prop-scan{0%,10%{opacity:0;transform:rotate(-40deg) scale(.6)}29%{opacity:1;transform:rotate(23deg) scale(1.18)}44%,83%{opacity:1;transform:rotate(-8deg)}100%{opacity:1;transform:none}}
@keyframes sk28-ink-hit{0%,15%{opacity:0;scale:.2 1;translate:-35% 0}28%,66%{opacity:.9;scale:1 1;translate:0 0}85%,100%{opacity:.3;scale:1.1 1}}
.is-v28-merchant.is-static .sk28-impact-slices i{animation:none;opacity:.35}
.fx-role-skill.is-narrow:not(.fx-role-skill-mini) .is-v28-merchant .sk19-prop-wrap{left:48%;width:46%;height:47%;top:5%}
.fx-role-skill-mini .is-v28-merchant .sk28-impact-slices{display:none}
@media(prefers-reduced-motion:reduce){.is-v28-merchant *{animation:none!important;transition:none!important}.is-v28-merchant .sk28-impact-slices{display:none}}
.fx-scene-milk .fx-main-actor{animation-name:fx10-soup}
.fx-scene-afterworkdrink .fx-main-actor{animation-name:fx10-rally}
.fx-scene-latemeeting .fx-main-actor{animation-name:fx10-meeting}
.fx-scene-surprise .fx-main-actor{animation-name:fx10-rush}
