/*
 * Lucky Squares Enhanced Character Pack — articulated profile rigs.
 * These rules intentionally override the original broad movement packs.
 * Each profile keeps its joints connected to its matching body silhouette.
 */
.ls-race-character-rig{position:absolute;inset:0 4% 0 8%;z-index:1;pointer-events:none}
.ls-race-character-rig>i,.ls-race-character-rig span>i{
  position:absolute;display:block;box-sizing:border-box;
  background:linear-gradient(180deg,var(--body-main),var(--body-dark));
  border:1px solid color-mix(in srgb,var(--body-main) 68%,white);
  box-shadow:0 1px 2px rgba(0,0,0,.55);
  animation-delay:var(--rig-delay)
}

/* Connected upper leg, lower leg, and foot. */
.rig-limb{
  position:absolute;top:var(--leg-top);width:var(--limb-width);height:var(--leg-length);
  z-index:1;transform-origin:50% 2%;
  animation-duration:var(--gait-duration);animation-timing-function:cubic-bezier(.45,0,.55,1);
  animation-iteration-count:infinite;animation-delay:var(--rig-delay)
}
.rig-limb.hind-far{left:var(--hip-rear);opacity:.72;scale:.84}
.rig-limb.hind-near{left:calc(var(--hip-rear) + 7%);z-index:3}
.rig-limb.fore-far{left:var(--hip-front);opacity:.72;scale:.84}
.rig-limb.fore-near{left:calc(var(--hip-front) + 7%);z-index:3}
.rig-limb .rig-upper{left:19%;top:0;width:62%;height:54%;border-radius:99px;transform-origin:50% 8%}
.rig-limb .rig-lower{
  left:32%;top:43%;width:48%;height:51%;border-radius:99px;transform-origin:50% 7%;
  animation-duration:var(--gait-duration);animation-timing-function:ease-in-out;
  animation-iteration-count:infinite
}
.rig-limb .rig-foot{left:30%;bottom:-2%;width:105%;height:15%;border-radius:70% 90% 45% 45%;transform-origin:20% 50%}
.rig-torso{
  left:28%;top:34%;width:49%;height:30%;z-index:0;
  border-radius:48% 58% 42% 46%;transform:rotate(-2deg);
  background:linear-gradient(160deg,color-mix(in srgb,var(--body-main) 86%,white),var(--body-dark))!important;
  box-shadow:inset 0 2px 4px rgba(255,255,255,.25),0 2px 3px rgba(0,0,0,.38)!important
}
.profile-camel .rig-torso{top:30%;height:34%;border-radius:42% 68% 42% 48%;transform:rotate(1deg)}
.profile-heavy-quadruped .rig-torso{left:26%;top:32%;width:53%;height:36%}
.profile-hopper .rig-torso{left:31%;top:36%;width:43%;height:31%}
.profile-equine.art-full .ls-race-icon,.profile-camel.art-full .ls-race-icon,
.profile-canine.art-full .ls-race-icon,.profile-small-quadruped.art-full .ls-race-icon,
.profile-heavy-quadruped.art-full .ls-race-icon,.profile-hopper.art-full .ls-race-icon,
.profile-turtle.art-full .ls-race-icon{clip-path:inset(0 0 29% 0)}
.profile-camel.art-full .ls-race-icon{clip-path:inset(0 0 34% 0)}
.profile-canine.art-face .ls-race-icon,.profile-small-quadruped.art-face .ls-race-icon,
.profile-hopper.art-face .ls-race-icon{translate:22% -8%;scale:.92}
.rig-limb.hind-far,.rig-limb.fore-near{animation-name:ls-race-stride-a}
.rig-limb.fore-far,.rig-limb.hind-near{animation-name:ls-race-stride-b}
.rig-limb.hind-far .rig-lower,.rig-limb.fore-near .rig-lower{animation-name:ls-race-knee-a}
.rig-limb.fore-far .rig-lower,.rig-limb.hind-near .rig-lower{animation-name:ls-race-knee-b}
.rig-tail{
  left:20%;top:38%;width:29%;height:10%;border-radius:99px 12% 80% 99%;
  transform-origin:95% 50%;
  background:linear-gradient(90deg,var(--body-dark),var(--body-main),transparent)!important;
  animation:ls-race-tail var(--body-cycle) ease-in-out infinite alternate
}

/* Horse/deer/bull: gathered gallop with paired suspension phases. */
.profile-equine .rig-limb{animation-timing-function:cubic-bezier(.6,0,.4,1)}
.profile-equine .rig-limb.hind-far,.profile-equine .rig-limb.fore-near{animation-name:ls-race-gallop-limb-a}
.profile-equine .rig-limb.fore-far,.profile-equine .rig-limb.hind-near{animation-name:ls-race-gallop-limb-b}

/* Camel: long legs, smaller stride, slower rolling body cycle. */
.profile-camel .rig-limb{animation-timing-function:ease-in-out}
.profile-camel .rig-limb.hind-far,.profile-camel .rig-limb.fore-near{animation-name:ls-race-camel-step-a}
.profile-camel .rig-limb.fore-far,.profile-camel .rig-limb.hind-near{animation-name:ls-race-camel-step-b}
.profile-camel .rig-limb .rig-lower{height:55%;top:41%}

/* Dogs, wolves, foxes, and cats: extended front/rear running stride. */
.profile-canine .rig-limb.hind-far,.profile-canine .rig-limb.fore-near{animation-name:ls-race-canine-stride-a}
.profile-canine .rig-limb.fore-far,.profile-canine .rig-limb.hind-near{animation-name:ls-race-canine-stride-b}
.profile-canine .rig-tail{top:35%;animation-duration:calc(var(--body-cycle) * .65)}

/* Small/heavy quadrupeds and hoppers retain profile-appropriate proportions. */
.profile-heavy-quadruped .rig-limb{animation-timing-function:ease-in-out}
.profile-heavy-quadruped .rig-limb .rig-foot{width:125%;height:18%}
.profile-hopper .rig-limb.hind-far,.profile-hopper .rig-limb.hind-near{
  width:calc(var(--limb-width) * 1.4);height:calc(var(--leg-length) * 1.08)
}
.profile-hopper .rig-limb.fore-far,.profile-hopper .rig-limb.fore-near{
  scale:.7;top:calc(var(--leg-top) + 4%)
}

/* Ground birds use two legs plus tucked wings. */
.profile-rig-ground-bird .rig-body-wing{
  top:34%;width:28%;height:28%;border-radius:85% 15% 80% 25%;transform-origin:80% 45%;
  animation:ls-race-bird-wing var(--body-cycle) ease-in-out infinite alternate
}
.profile-rig-ground-bird .rig-body-wing.rig-a{left:28%}
.profile-rig-ground-bird .rig-body-wing.rig-b{right:15%;scale:-1 1}
.profile-ground-bird.art-full .ls-race-icon{clip-path:inset(0 0 20% 0)}

/* Flying birds and creatures use attached wings and a directional tail. */
.rig-flight-wing{
  top:24%;width:42%;height:31%;border-radius:85% 12% 78% 22%;transform-origin:75% 50%;
  background:linear-gradient(135deg,var(--body-main),color-mix(in srgb,var(--body-dark) 65%,transparent),transparent)!important;
  animation:ls-race-wing var(--body-cycle) ease-in-out infinite alternate
}
.rig-flight-wing.rig-a{left:14%;rotate:-16deg}
.rig-flight-wing.rig-b{right:4%;scale:-1 1;rotate:16deg}
.rig-tail-fan,.rig-flight-tail{
  left:18%;top:46%;width:24%;height:22%;
  clip-path:polygon(100% 35%,0 0,22% 50%,0 100%,100% 65%);
  transform-origin:95% 50%;animation:ls-race-tail var(--body-cycle) ease-in-out infinite alternate
}

/* Dragons have a heavier independent wing and tail cycle. */
.profile-rig-dragon .rig-dragon-wing{
  top:18%;width:43%;height:36%;
  clip-path:polygon(0 50%,80% 0,62% 38%,100% 58%,55% 62%,72% 100%);
  transform-origin:70% 55%;animation:ls-race-dragon-wing var(--body-cycle) ease-in-out infinite alternate
}
.profile-rig-dragon .rig-dragon-wing.rig-a{left:13%}
.profile-rig-dragon .rig-dragon-wing.rig-b{right:2%;scale:-1 1}
.rig-dragon-tail{
  left:10%;top:48%;width:39%;height:10%;border-radius:99px 10% 80% 99%;
  transform-origin:95% 50%;animation:ls-race-tail calc(var(--body-cycle) * .8) ease-in-out infinite alternate
}

/* Crab/spider legs originate under the shell/body and articulate sideways. */
.profile-rig-arthropod .rig-claw{
  top:31%;width:18%;height:17%;border-radius:75% 30% 70% 35%;transform-origin:80% 60%;
  animation:ls-race-claw-a calc(var(--body-cycle) * .9) ease-in-out infinite alternate
}
.profile-rig-arthropod .rig-claw.rig-a{left:17%}
.profile-rig-arthropod .rig-claw.rig-b{right:7%;scale:-1 1;animation-name:ls-race-claw-b}
.rig-side-leg{
  position:absolute;top:50%;width:6%;height:38%;transform-origin:50% 0;
  animation:ls-race-crab-leg-a var(--gait-duration) ease-in-out infinite alternate
}
.rig-side-leg>i{left:0;top:45%;width:100%;height:58%;border-radius:99px;transform-origin:50% 0}
.rig-side-leg.rig-1{left:29%;rotate:45deg}.rig-side-leg.rig-2{left:36%;rotate:25deg;animation-name:ls-race-crab-leg-b}
.rig-side-leg.rig-3{left:43%;rotate:10deg}.rig-side-leg.rig-4{left:50%;rotate:-8deg;animation-name:ls-race-crab-leg-b}
.rig-side-leg.rig-5{left:57%;rotate:8deg}.rig-side-leg.rig-6{left:64%;rotate:-10deg;animation-name:ls-race-crab-leg-b}
.rig-side-leg.rig-7{left:71%;rotate:-25deg}.rig-side-leg.rig-8{left:78%;rotate:-45deg;animation-name:ls-race-crab-leg-b}

/* Octopus arms are connected to the lower body and wave independently. */
.rig-tentacle{
  position:absolute;top:52%;width:7%;height:42%;transform-origin:50% 0;
  animation:ls-race-tentacle var(--body-cycle) ease-in-out infinite alternate
}
.rig-tentacle>i{left:10%;top:42%;width:80%;height:62%;border-radius:99px;transform-origin:50% 0}
.rig-tentacle.rig-1{left:31%;rotate:34deg}.rig-tentacle.rig-2{left:40%;rotate:20deg;animation-delay:calc(var(--rig-delay) - .15s)}
.rig-tentacle.rig-3{left:49%;rotate:7deg;animation-delay:calc(var(--rig-delay) - .3s)}
.rig-tentacle.rig-4{left:58%;rotate:-7deg;animation-delay:calc(var(--rig-delay) - .45s)}
.rig-tentacle.rig-5{left:67%;rotate:-20deg;animation-delay:calc(var(--rig-delay) - .6s)}
.rig-tentacle.rig-6{left:76%;rotate:-34deg;animation-delay:calc(var(--rig-delay) - .75s)}

/* Snail/turtle/aquatic movement has no generic running legs. */
.profile-rig-snail .rig-snail-foot{
  left:25%;right:10%;bottom:3%;height:12%;border-radius:60% 80% 45% 45%;
  animation:ls-race-snail-foot var(--body-cycle) ease-in-out infinite
}
.profile-rig-snail .rig-snail-trail{
  left:-8%;bottom:2%;width:46%;height:5%;border:0;
  background:linear-gradient(90deg,transparent,#bae6fd)!important;filter:blur(2px);
  animation:ls-race-exhaust .9s ease-out infinite
}
.rig-swim-tail{
  left:14%;top:41%;width:30%;height:27%;
  clip-path:polygon(100% 45%,0 0,18% 50%,0 100%,100% 55%);
  transform-origin:95% 50%;animation:ls-race-swim-tail var(--body-cycle) ease-in-out infinite alternate
}
.rig-swim-fin{
  left:46%;top:54%;width:25%;height:19%;clip-path:polygon(0 0,100% 35%,12% 100%);
  transform-origin:10% 10%;animation:ls-race-swim-fin var(--body-cycle) ease-in-out infinite alternate
}
.rig-wave{
  bottom:0;width:46%;height:17%;border:0!important;border-top:3px solid #67e8f9!important;
  border-radius:50%;background:transparent!important;animation:ls-race-wave .65s ease-in-out infinite
}
.rig-wave.rig-a{left:5%}.rig-wave.rig-b{right:-8%;animation-delay:-.3s}
.rig-splash{
  left:-4%;top:40%;width:22%;height:22%;border-radius:50%;background:#bae6fd!important;
  filter:blur(2px);animation:ls-race-splash .55s ease-out infinite
}

/* Humanoids use two jointed legs and counter-swinging articulated arms. */
.profile-rig-humanoid .rig-arm{
  position:absolute;top:38%;width:8%;height:38%;transform-origin:50% 0;
  animation:ls-race-arm-a var(--gait-duration) ease-in-out infinite alternate
}
.profile-rig-humanoid .rig-arm>i{left:10%;top:46%;width:80%;height:56%;border-radius:99px;transform-origin:50% 0}
.profile-rig-humanoid .rig-arm.arm-a{left:28%}
.profile-rig-humanoid .rig-arm.arm-b{right:17%;animation-name:ls-race-arm-b}
.profile-rig-humanoid .rig-humanoid-torso{
  left:35%;top:32%;width:36%;height:38%;border-radius:46% 46% 38% 38%;
  background:linear-gradient(160deg,var(--body-main),var(--body-dark))!important
}
.profile-humanoid.art-full .ls-race-icon{clip-path:inset(0 0 28% 0)}
.profile-humanoid.art-face .ls-race-icon{translate:7% -14%;scale:.86}
.profile-rig-humanoid-flight .rig-cape{
  left:20%;top:31%;width:42%;height:45%;clip-path:polygon(25% 0,100% 15%,72% 100%,0 72%);
  transform-origin:80% 20%;opacity:.78;animation:ls-race-cape var(--body-cycle) ease-in-out infinite alternate
}
.profile-rig-humanoid-flight .rig-arm{position:absolute;top:42%;width:35%;height:8%;border-radius:99px;transform-origin:80% 50%}
.profile-rig-humanoid-flight .rig-arm>i{right:0;top:-10%;width:60%;height:120%;border-radius:99px}
.profile-rig-humanoid-flight .rig-arm.arm-a{left:19%;rotate:-14deg}
.profile-rig-humanoid-flight .rig-arm.arm-b{right:4%;scale:-1 1;rotate:14deg}

/* Vehicles keep wheels/propulsion attached to the chassis instead of animal legs. */
.profile-rig-ground-vehicle .rig-wheel{
  bottom:1%;width:22%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,#94a3b8 0 23%,#0f172a 25% 58%,var(--racer-main) 60% 70%,#020617 72%)!important;
  animation:ls-race-wheel calc(var(--gait-duration) * .75) linear infinite
}
.profile-rig-ground-vehicle .rig-wheel.rig-a{left:19%}.profile-rig-ground-vehicle .rig-wheel.rig-b{right:9%}
.rig-exhaust{
  left:-8%;top:48%;width:25%;height:16%;border:0!important;
  background:linear-gradient(90deg,transparent,var(--racer-main))!important;
  filter:blur(2px);animation:ls-race-exhaust .45s ease-out infinite
}
.profile-rig-air-vehicle .rig-thrust{
  left:-12%;top:43%;width:31%;height:18%;border:0;
  background:linear-gradient(90deg,transparent,#facc15,var(--racer-main));
  clip-path:polygon(0 50%,100% 0,100% 100%);animation:ls-race-thrust-flame .24s ease-in-out infinite alternate
}
.rig-motion-arc{
  inset:8% 9% 2% 13%;border:0!important;border-top:3px solid var(--racer-main)!important;
  border-right:3px solid transparent!important;border-radius:50%;background:transparent!important;
  opacity:.65;animation:ls-race-wheel .65s linear infinite
}
.rig-spark{
  left:-2%;bottom:8%;width:18%;height:5%;border:0!important;
  background:linear-gradient(90deg,transparent,#facc15)!important;animation:ls-race-exhaust .4s ease-out infinite
}
.rig-ghost-wisp{
  top:52%;width:9%;height:38%;border-radius:99px;
  background:linear-gradient(transparent,var(--racer-main),transparent)!important;
  filter:blur(2px);animation:ls-race-ghost-wisp var(--body-cycle) ease-in-out infinite alternate
}
.rig-ghost-wisp.rig-a{left:38%}.rig-ghost-wisp.rig-b{left:58%;animation-delay:calc(var(--rig-delay) - .3s)}
.rig-motion-echo{
  left:12%;top:39%;width:32%;height:8%;border:0!important;border-radius:99px;
  background:linear-gradient(90deg,transparent,var(--racer-main))!important;
  filter:blur(1px);opacity:.5;animation:ls-race-exhaust .65s ease-out infinite
}
.rig-motion-echo.rig-b{top:57%;width:25%;animation-delay:-.3s}

/* The body follows the gait instead of floating independently from the limbs. */
.profile-equine .ls-race-character-body{animation:ls-race-equine-body var(--body-cycle) linear infinite var(--racer-phase)}
.profile-camel .ls-race-character-body{animation:ls-race-camel-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-canine .ls-race-character-body{animation:ls-race-canine-body var(--body-cycle) linear infinite var(--racer-phase)}
.profile-small-quadruped .ls-race-character-body{animation:ls-race-small-animal-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-heavy-quadruped .ls-race-character-body{animation:ls-race-heavy-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-hopper .ls-race-character-body{animation:ls-race-hopper-body var(--body-cycle) cubic-bezier(.45,0,.55,1) infinite var(--racer-phase)}
.profile-ground-bird .ls-race-character-body{animation:ls-race-bird-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-flying-bird .ls-race-character-body,.profile-flying-creature .ls-race-character-body,.profile-dragon .ls-race-character-body,.profile-humanoid-flight .ls-race-character-body,.profile-air-vehicle .ls-race-character-body{animation:ls-race-flight-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-arthropod .ls-race-character-body{animation:ls-race-arthropod-body var(--body-cycle) linear infinite var(--racer-phase)}
.profile-tentacled .ls-race-character-body,.profile-aquatic-creature .ls-race-character-body,.profile-water-vehicle .ls-race-character-body{animation:ls-race-swim-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-turtle .ls-race-character-body,.profile-snail .ls-race-character-body{animation:ls-race-crawl-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-humanoid .ls-race-character-body{animation:ls-race-humanoid-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-ground-vehicle .ls-race-character-body{animation:ls-race-engine calc(var(--body-cycle) * .5) ease-in-out infinite var(--racer-phase)}
.profile-rolling .ls-race-character-body{animation:ls-race-rolling-body var(--body-cycle) linear infinite var(--racer-phase)}
.profile-ghost .ls-race-character-body{animation:ls-race-ghost-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}
.profile-inanimate .ls-race-character-body{animation:ls-race-inanimate-body var(--body-cycle) ease-in-out infinite var(--racer-phase)}

/* Ground contact follows the body and scales at suspension points. */
.ls-race-character-shadow{
  left:var(--shadow-left)!important;right:var(--shadow-right)!important;bottom:1%!important;height:14%!important;
  transform-origin:50% 50%;animation:ls-race-ground-shadow var(--body-cycle) ease-in-out infinite var(--racer-phase)
}
.profile-flying-bird .ls-race-character-shadow,.profile-flying-creature .ls-race-character-shadow,
.profile-dragon .ls-race-character-shadow,.profile-humanoid-flight .ls-race-character-shadow,
.profile-air-vehicle .ls-race-character-shadow,.profile-ghost .ls-race-character-shadow{opacity:.27;scale:.72}
.profile-aquatic-creature .ls-race-character-shadow,.profile-water-vehicle .ls-race-character-shadow,.profile-tentacled .ls-race-character-shadow{opacity:.2;filter:blur(6px)}

@keyframes ls-race-stride-a{0%,100%{rotate:28deg}50%{rotate:-30deg}}
@keyframes ls-race-stride-b{0%,100%{rotate:-30deg}50%{rotate:28deg}}
@keyframes ls-race-knee-a{0%,100%{rotate:-20deg}50%{rotate:32deg}}
@keyframes ls-race-knee-b{0%,100%{rotate:32deg}50%{rotate:-20deg}}
@keyframes ls-race-gallop-limb-a{0%,100%{rotate:40deg}24%{rotate:-42deg}58%{rotate:-12deg}78%{rotate:35deg}}
@keyframes ls-race-gallop-limb-b{0%,100%{rotate:-30deg}30%{rotate:38deg}62%{rotate:-44deg}82%{rotate:-8deg}}
@keyframes ls-race-camel-step-a{0%,100%{rotate:20deg}50%{rotate:-23deg}}
@keyframes ls-race-camel-step-b{0%,100%{rotate:-23deg}50%{rotate:20deg}}
@keyframes ls-race-canine-stride-a{0%,100%{rotate:44deg}46%{rotate:-46deg}66%{rotate:-25deg}}
@keyframes ls-race-canine-stride-b{0%,100%{rotate:-46deg}46%{rotate:44deg}66%{rotate:22deg}}
@keyframes ls-race-tail{to{rotate:-25deg;translate:-3% -5%}}
@keyframes ls-race-bird-wing{to{rotate:25deg;scale:1 .72}}
@keyframes ls-race-dragon-wing{to{rotate:13deg;scale:1 .42}}
@keyframes ls-race-crab-leg-a{to{rotate:18deg;translate:5% 0}}
@keyframes ls-race-crab-leg-b{to{rotate:-18deg;translate:-5% 0}}
@keyframes ls-race-tentacle{to{rotate:16deg;translate:3% 2%}}
@keyframes ls-race-snail-foot{50%{scale:1.08 .72;translate:3% 3%}}
@keyframes ls-race-swim-tail{to{rotate:22deg;scale:.82 1}}
@keyframes ls-race-swim-fin{to{rotate:-17deg;scale:1 .72}}
@keyframes ls-race-cape{to{rotate:-12deg;scale:1.12 .86}}
@keyframes ls-race-ghost-wisp{to{rotate:13deg;scale:.72 1.15;opacity:.35}}
@keyframes ls-race-equine-body{0%,100%{translate:0 3%;rotate:-1deg}28%{translate:1% -9%;rotate:2deg}57%{translate:0 -3%;rotate:-2deg}78%{translate:-1% 4%;rotate:1deg}}
@keyframes ls-race-camel-body{0%,100%{translate:0 2%;rotate:-2deg}50%{translate:0 -4%;rotate:2deg}}
@keyframes ls-race-canine-body{0%,100%{translate:-2% 2%;scale:1.04 .93;rotate:-1deg}45%{translate:3% -5%;scale:.96 1.06;rotate:2deg}70%{translate:1% 0;scale:1 .98}}
@keyframes ls-race-small-animal-body{0%,100%{translate:-1% 3%;rotate:-2deg}50%{translate:2% -5%;rotate:2deg}}
@keyframes ls-race-heavy-body{0%,100%{translate:0 2%;rotate:-1deg}50%{translate:1% -3%;rotate:1deg}}
@keyframes ls-race-hopper-body{0%,100%{translate:0 10%;scale:1.05 .9}47%{translate:3% -18%;scale:.94 1.08}}
@keyframes ls-race-bird-body{0%,100%{translate:0 3%;rotate:-5deg}50%{translate:1% -5%;rotate:5deg}}
@keyframes ls-race-flight-body{0%,100%{translate:0 10%;rotate:3deg}50%{translate:1% -11%;rotate:-3deg}}
@keyframes ls-race-arthropod-body{0%,100%{translate:-3% 2%}50%{translate:3% -1%}}
@keyframes ls-race-swim-body{0%,100%{translate:-1% 5%;rotate:-3deg}50%{translate:3% -6%;rotate:3deg}}
@keyframes ls-race-crawl-body{0%,100%{translate:-2% 3%}50%{translate:2% 0}}
@keyframes ls-race-humanoid-body{0%,100%{translate:-2% 1%;rotate:-4deg}50%{translate:3% -5%;rotate:4deg}}
@keyframes ls-race-rolling-body{to{rotate:1turn}}
@keyframes ls-race-ghost-body{0%,100%{translate:0 12%;rotate:-3deg}50%{translate:2% -14%;rotate:3deg}}
@keyframes ls-race-inanimate-body{0%,100%{translate:0 4%;rotate:-2deg}50%{translate:1% -5%;rotate:2deg}}
@keyframes ls-race-ground-shadow{0%,100%{scale:1 .9;opacity:.52}50%{scale:.78 .72;opacity:.28}}

/* Reduced motion keeps every attachment aligned without continuous limb cycling. */
.ls-themed-race-shell.reduced-motion .ls-race-character-body,
.ls-themed-race-shell.reduced-motion .ls-race-character-rig *,
.ls-themed-race-shell.reduced-motion .ls-race-character-shadow{animation:none!important}
