/* Signature moves (js/moves.mjs): effects layered around a friend while it acts */
.moving { z-index: 9 !important; animation: none !important; }
.moving img { object-fit: contain; }
.mv-fx { position: absolute; pointer-events: none; z-index: 8; }
.mv-fire { width: 170px; height: 90px; margin-top: -45px; border-radius: 50% 60% 60% 50%;
  background: radial-gradient(ellipse at 20% 50%, #FFF6B0 0 18%, #FFC13B 32%, #FF7A1A 55%, rgba(255,60,0,.0) 72%);
  filter: blur(1px); animation: mvFire .9s ease-out both; transform-origin: 0 50%; }
@keyframes mvFire { 0% { transform: scale(.1, .4); opacity: 0; } 25% { opacity: 1; } 60% { transform: scale(1.2, 1); } 100% { transform: scale(1.5, 1.1) translateX(40px); opacity: 0; } }
.mv-snow { width: 70px; height: 40px; border-radius: 50%; background: radial-gradient(circle, #FFFFFF 0 30%, rgba(255,255,255,.6) 55%, transparent 72%); animation: mvPuff .8s ease-out both; }
.mv-splash { width: 110px; height: 60px; border-radius: 50%; background: radial-gradient(ellipse at 50% 80%, rgba(255,255,255,.95) 0 20%, rgba(150,220,255,.8) 45%, transparent 70%); animation: mvPuff .7s ease-out both; }
.mv-flames { width: 60px; height: 120px; border-radius: 50% 50% 45% 45%; background: radial-gradient(ellipse at 50% 20%, #FFF8C0 0 15%, #FFB020 40%, #FF5A10 65%, transparent 75%); animation: mvFlame .6s ease-out both; }
@keyframes mvPuff { from { transform: scale(.3); opacity: .9; } to { transform: scale(1.8) translateY(-20px); opacity: 0; } }
@keyframes mvFlame { from { transform: scaleY(.3); opacity: 1; } to { transform: scaleY(1.6) translateY(60px); opacity: 0; } }
