.npc-pixel-enemy{image-rendering:pixelated;overflow:visible;isolation:isolate}
.npc-echo-art{position:relative;display:flex;align-items:center;justify-content:center}
.npc-echo-art>.npc-pixel-enemy{width:100%;height:100%;max-height:100%;filter:drop-shadow(0 7px 4px #0005)}
.npc-body{transform-origin:64px 116px;animation:npc-breathe 2.4s ease-in-out infinite}
.npc-anatomy,.npc-strike{transform-origin:64px 64px}
.npc-anatomy{animation:npc-limbs 1.6s ease-in-out infinite}
.npc-part-wings .npc-anatomy{animation:npc-flap .9s ease-in-out infinite;transform-origin:64px 50px}
.npc-part-legs .npc-anatomy{animation:npc-scuttle 1.1s ease-in-out infinite;transform-origin:64px 94px}
.npc-part-wheels .npc-anatomy{animation:none}.npc-wheel{animation:npc-wheel-turn .8s linear infinite}
.npc-part-head .npc-anatomy{animation:npc-sway 1.8s ease-in-out infinite;transform-origin:64px 48px}
.npc-part-ears .npc-anatomy{animation:npc-twitch 3s ease-in-out infinite;transform-origin:64px 35px}
.npc-part-flame .npc-anatomy{animation:npc-flicker .7s ease-in-out infinite;transform-origin:64px 37px}
.auto-strike .npc-strike{animation:npc-swing .45s ease-out both}
.auto-strike .npc-part-head .npc-strike{animation:npc-snap .45s ease-out both}
.auto-strike .npc-part-wings .npc-strike{animation:npc-flare .45s ease-out both}
.auto-strike .npc-part-wheels .npc-strike{animation:npc-charge .45s ease-out both}
.auto-strike .npc-part-flame .npc-strike{animation:npc-flare .45s ease-out both}
.npc-motion-paused .npc-body,.npc-motion-paused .npc-anatomy,.npc-motion-paused .npc-strike,.npc-motion-paused .npc-wheel{animation-play-state:paused!important}
@keyframes npc-breathe{50%{transform:translateY(-2px) scale(1.015,1.025)}}
@keyframes npc-limbs{50%{transform:rotate(5deg) translateY(-1px)}}
@keyframes npc-flap{50%{transform:scaleX(.86) rotate(-4deg)}}
@keyframes npc-scuttle{50%{transform:translateX(2px) rotate(3deg)}}
@keyframes npc-wheel-turn{to{transform:rotate(-360deg)}}
@keyframes npc-sway{50%{transform:rotate(-6deg) translateX(-2px)}}
@keyframes npc-twitch{12%,18%{transform:rotate(7deg)}15%,21%{transform:rotate(-4deg)}}
@keyframes npc-flicker{50%{transform:scale(.90,1.10) rotate(4deg)}}
@keyframes npc-swing{35%{transform:rotate(-20deg) translate(-3px,-3px)}65%{transform:rotate(14deg) translate(4px,0)}}
@keyframes npc-snap{40%{transform:translate(-7px,4px) rotate(-14deg)}75%{transform:translate(4px,0)}}
@keyframes npc-flare{45%{transform:scale(1.18) rotate(-8deg)}}
@keyframes npc-charge{45%{transform:translateX(-4px) scale(1.04)}}
@media(prefers-reduced-motion:reduce){.npc-body,.npc-anatomy,.npc-wheel,.auto-strike .npc-strike{animation:none!important;transform:none!important}}

.npc-choice-preview{display:block;width:clamp(48px,8vh,72px);height:clamp(48px,8vh,72px);margin:0 auto 5px}.npc-choice-preview>.npc-pixel-enemy{display:block;width:100%;height:100%}.toy-scene-art>.npc-pixel-enemy{width:100%;height:100%}

/* Toy car: keep tires seated in their arches; only their hubs turn. */
.npc-wheel-hub{animation-duration:2.8s;transform-box:view-box}
