.game-stage-avatar{transition:filter .25s ease}
.game-stage-character{transform-origin:50% 75%}
.game-emote-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-6px 0 18px;min-height:31px}
.game-emote-controls span{font:500 9px Inter;color:var(--look-muted)}
.game-emote-replay{display:flex;align-items:center;gap:6px;border:1px solid var(--look-line);background:var(--look-panel);color:var(--look-accent);border-radius:7px;padding:8px 10px;font:600 9px Inter;cursor:pointer}
.game-emote-replay svg{width:12px;height:12px}.game-emote-replay:hover{background:var(--look-input)}.game-emote-replay:focus-visible{outline:2px solid var(--look-accent);outline-offset:3px}
[data-look] .game-identity-stage.is-emoting .game-stage-avatar{animation:none;mask-image:none;-webkit-mask-image:none;overflow:visible;filter:drop-shadow(0 12px 12px #082c481a);z-index:4}
[data-look] .game-identity-stage.is-emoting .game-stage-character{width:100%;height:100%;margin:0;object-fit:contain;object-position:center bottom;animation:emote-zoom-out .36s cubic-bezier(.2,.8,.3,1) both}
.game-identity-stage.is-emoting .game-player-tag{opacity:0;transition:opacity .15s}
.game-emote-fx{position:absolute;right:-25px;bottom:80px;width:380px;height:430px;pointer-events:none;z-index:5;--fx:#deb564;--fx2:#fff1bf}
.emote-halo{position:absolute;bottom:4%;left:20%;width:60%;height:12%;border:2px solid var(--fx);border-radius:50%;opacity:0;animation:emote-halo 3.4s ease both}
.emote-sphere{position:absolute;top:43%;left:58%;width:60px;height:60px;border-radius:50%;opacity:0;background:radial-gradient(circle at 40% 35%,#fff 0%,var(--fx2) 18%,var(--fx) 45%,transparent 73%);filter:drop-shadow(0 0 14px var(--fx))}
.emote-particle{position:absolute;top:48%;left:50%;height:7px;width:7px;border-radius:2px;background:var(--fx);opacity:0;animation:emote-burst 2.5s ease-out calc(.55s + var(--i)*.025s) both}
[data-emote-effect=energy] .game-emote-fx{--fx:#48bce5;--fx2:#d5fbff}
[data-emote-effect=fire] .game-emote-fx{--fx:#f1a224;--fx2:#fff1a5}
[data-emote-effect=power] .game-emote-fx{--fx:#efbe48;--fx2:#fff6b2}
[data-emote-effect=power] .emote-halo{left:22%;bottom:5%;width:56%;height:80%;border:0;border-radius:50%;background:radial-gradient(ellipse,transparent 40%,#efbe4840 58%,#fff6b260 67%,transparent 74%);animation:emote-power 2.7s ease both}
[data-emote-effect=fire] .emote-sphere,[data-emote-effect=energy] .emote-sphere{animation:emote-fireball 2.6s .45s ease-in-out both}
[data-emote-effect=fire] .emote-particle{border-radius:60% 15% 60% 45%;height:13px;width:7px}
[data-emote-effect=orbit] .emote-halo{height:52%;bottom:18%;transform:rotate(-25deg);border-width:2px;animation:emote-orbit 2.7s .4s ease both}
[data-emote-effect=bubble] .game-emote-fx{--fx:#57b6bb;--fx2:#e4ffff}
[data-emote-effect=bubble] .emote-particle{border:2px solid var(--fx);background:#ffffff66;border-radius:50%;width:14px;height:14px}
[data-emote-effect=heart] .game-emote-fx{--fx:#da7090;--fx2:#ffe5ed}
[data-emote-effect=heart] .emote-particle{border-radius:3px;transform:rotate(45deg)}
[data-emote-effect=beat] .game-emote-fx{--fx:#deb564;--fx2:#082c48}
[data-emote-effect=beat] .emote-particle{height:16px;width:4px;background:linear-gradient(var(--fx),#082c48)}
[data-emote-effect=wind] .emote-particle{height:3px;width:20px;border-radius:50%}
.is-emoting[data-emote-motion=wave] .game-stage-avatar{animation:emote-wave 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=bounce] .game-stage-avatar{animation:emote-bounce 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=float] .game-stage-avatar{animation:emote-float 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=jolt] .game-stage-avatar{animation:emote-jolt 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=shuffle] .game-stage-avatar{animation:emote-shuffle 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=sway] .game-stage-avatar{animation:emote-sway 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=spin] .game-stage-avatar{animation:emote-spin 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=stomp] .game-stage-avatar{animation:emote-stomp 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=jump] .game-stage-avatar{animation:emote-jump 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=ninja] .game-stage-avatar{animation:emote-ninja 2.8s .3s ease-in-out both!important}
.is-emoting[data-emote-motion=robot] .game-stage-avatar{animation:emote-robot 2.8s .3s steps(2,end) both!important}
.is-emoting[data-emote-motion=dance] .game-stage-avatar{animation:emote-dance 2.8s .3s ease-in-out both!important}
@keyframes emote-zoom-out{from{opacity:.5;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}
@keyframes emote-wave{0%,100%{transform:none}20%,60%{transform:rotate(-7deg) translateY(-8px)}40%,80%{transform:rotate(7deg) translateY(-8px)}}
@keyframes emote-bounce{0%,100%{transform:none}20%,60%{transform:translateY(8px) scale(1.04,.94)}35%,75%{transform:translateY(-23px) scale(.97,1.03)}}
@keyframes emote-float{0%,100%{transform:none}25%{transform:translate(-12px,-28px) rotate(-7deg)}65%{transform:translate(12px,-38px) rotate(8deg)}}
@keyframes emote-jolt{0%,100%{transform:none}25%{transform:rotate(-5deg) scale(.95)}35%,55%{transform:translateX(7px) rotate(3deg)}45%,65%{transform:translateX(-7px) rotate(-3deg)}80%{transform:translateY(-18px)}}
@keyframes emote-shuffle{0%,100%{transform:none}15%,55%{transform:translateX(-20px) rotate(-6deg)}35%,75%{transform:translateX(20px) rotate(6deg)}45%,85%{transform:translateY(-12px)}}
@keyframes emote-sway{0%,100%{transform:none}25%,65%{transform:rotate(-9deg)}45%,85%{transform:rotate(9deg) translateY(-8px)}}
@keyframes emote-spin{0%,100%{transform:none}25%{transform:translateY(-15px) rotate(-12deg)}45%{transform:translateY(-20px) scaleX(.05)}65%{transform:translateY(-15px) rotate(10deg)}85%{transform:rotate(-5deg)}}
@keyframes emote-stomp{0%,100%{transform:none}20%,60%{transform:translate(-15px,-12px) rotate(-5deg)}35%,75%{transform:translate(15px,7px) rotate(5deg) scaleY(.96)}}
@keyframes emote-jump{0%,100%{transform:none}20%{transform:translateY(12px) scale(1.04,.93)}40%{transform:translateY(-40px) rotate(-6deg)}60%{transform:translateY(-24px) rotate(6deg)}80%{transform:translateY(7px) scale(1.03,.96)}}
@keyframes emote-ninja{0%,100%{transform:none}20%{transform:scale(.95) rotate(-7deg)}40%,65%{transform:translateX(-14px) rotate(-5deg)}75%{transform:translateX(20px) rotate(6deg)}85%{transform:translateX(-6px)}}
@keyframes emote-robot{0%,100%{transform:none}20%{transform:rotate(-8deg) translateX(-8px)}40%{transform:rotate(8deg) translateY(-15px)}60%{transform:rotate(-8deg) translateX(10px)}80%{transform:rotate(4deg)}}
@keyframes emote-dance{0%,100%{transform:none}15%,55%{transform:translate(-18px,-8px) rotate(-10deg)}30%,70%{transform:translate(18px,-12px) rotate(10deg)}45%,85%{transform:translateY(-23px) rotate(-3deg)}}
@keyframes emote-burst{0%{opacity:0;translate:0 0;scale:.4}20%{opacity:.95}80%{opacity:.8}100%{opacity:0;translate:var(--dx) var(--dy);rotate:120deg;scale:.3}}
@keyframes emote-halo{0%,100%{opacity:0;scale:.5}25%,70%{opacity:.5;scale:1.1}}
@keyframes emote-orbit{0%,100%{opacity:0;rotate:0deg}30%,70%{opacity:.6}90%{rotate:100deg}}
@keyframes emote-fireball{0%{opacity:0;scale:.2;translate:-25px 0}25%{opacity:1;scale:.9}55%{opacity:1;scale:1.3;translate:5px -8px}85%,100%{opacity:0;scale:.3;translate:90px -25px}}
@keyframes emote-power{0%,15%,100%{opacity:0;scale:.75}40%,65%{opacity:.9;scale:1.05}50%,75%{opacity:.65;scale:1.15}90%{opacity:.5;scale:1}}
@media(max-width:1100px){.game-emote-fx{width:300px;height:350px;right:-20px}}
@media(max-width:800px){.game-emote-fx{width:240px;height:260px;right:0;bottom:5px}.game-emote-fx .emote-sphere{width:45px;height:45px}.game-emote-controls{margin-bottom:16px}.game-emote-controls span{font-size:8px}}
@media(max-width:480px){.game-emote-fx{width:190px;height:220px;right:-5px}.game-emote-controls span{max-width:130px}}
@media(max-width:800px){[data-look] .game-identity-stage.is-emoting .game-stage-avatar{height:230px;bottom:15px}}
@media(max-width:480px){[data-look] .game-identity-stage.is-emoting .game-stage-avatar{height:210px;bottom:15px}}
@media(prefers-reduced-motion:reduce){.game-identity-stage.is-emoting .game-stage-avatar,.game-identity-stage.is-emoting .game-stage-character,.game-emote-fx *{animation:none!important}.game-emote-fx{display:none}.game-stage-avatar{transition:none}}
/* Anatomically different poses, replacing whole-image motion. */
[data-look] .game-identity-stage.is-emoting[data-emote-mode=frames] .game-stage-avatar{animation:none!important}
.is-emoting[data-emote-mode=frames] .game-stage-character{visibility:hidden}
.is-emoting[data-emote-mode=frames][data-emote-effect=fire] .emote-sphere,.is-emoting[data-emote-mode=frames][data-emote-effect=energy] .emote-sphere{animation:emote-fireball 1.4s 1.05s ease-in-out both}
.game-emote-sprite{position:absolute;top:0;left:50%;height:100%;width:auto;max-width:none;transform:translateX(-50%);pointer-events:none}
@keyframes emote-articulated{
 0%{background-position:0% 0%}8.333%{background-position:33.333% 0%}16.666%{background-position:66.666% 0%}25%{background-position:100% 0%}
 33.333%{background-position:0% 50%}41.666%{background-position:33.333% 50%}50%{background-position:66.666% 50%}58.333%{background-position:100% 50%}
 66.666%{background-position:0% 100%}75%{background-position:33.333% 100%}83.333%{background-position:66.666% 100%}91.666%,100%{background-position:100% 100%}
}
@media(prefers-reduced-motion:reduce){.game-emote-sprite{animation:none!important}}
