/* ── Sleep: slow breathe + droop + eyes closed ───────────── */

.anim-sleep.mote-body-anim {
  animation: ma-sleep-breathe 5s ease-in-out infinite;
  transform-box: fill-box;
  transform-origin: 50% 70%;
}

@keyframes ma-sleep-breathe {
  0%, 100% { transform: scaleY(1) rotate(0deg); }
  50%      { transform: scaleY(1.03) rotate(-2deg); }
}

/* Eyes stay closed during sleep */
.anim-sleep .mote-eye {
  transform: scaleY(0.05);
  animation: none;
}

/* Top features droop */
.anim-sleep .mote-features-top {
  animation: ma-sleep-droop 5s ease-in-out infinite;
  transform-box: fill-box;
  transform-origin: 50% 100%;
}

@keyframes ma-sleep-droop {
  0%, 100% { transform: rotate(-3deg); }
  50%      { transform: rotate(-5deg); }
}

/* Side features relax downward */
.anim-sleep .mote-features-side {
  animation: ma-sleep-arms 5s ease-in-out infinite;
  transform-box: fill-box;
  transform-origin: 50% 30%;
}

@keyframes ma-sleep-arms {
  0%, 100% { transform: rotate(4deg); }
  50%      { transform: rotate(6deg); }
}

/* ── Dead: fade + shrink ─────────────────────────────────── */

.anim-dead.mote-body-anim {
  animation: ma-dead 0.6s ease-in forwards;
  transform-box: fill-box;
  transform-origin: 50% 50%;
}

@keyframes ma-dead {
  0%   { transform: scaleY(1) scaleX(1); opacity: 1; filter: grayscale(0); }
  40%  { transform: scaleY(0.7) scaleX(1.2); opacity: 0.7; filter: grayscale(0.5); }
  100% { transform: scaleY(0.4) scaleX(0.4); opacity: 0.3; filter: grayscale(1); }
}

.anim-dead .mote-eye {
  transform: scaleY(0.05);
  animation: none;
}

/* ── Zzz particle animation ──────────────────────────────── */

.mote-zzz {
  pointer-events: none;
  animation: ma-zzz-float 2s ease-out forwards;
}

@keyframes ma-zzz-float {
  0%   { transform: translate(0, 0) scale(0.6); opacity: 0; }
  15%  { opacity: 0.8; }
  100% { transform: translate(-14px, -22px) scale(1); opacity: 0; }
}

/* ── Sparkle particle animation ──────────────────────────── */

.mote-sparkle {
  pointer-events: none;
  animation: ma-sparkle-burst 0.35s ease-out forwards;
}

@keyframes ma-sparkle-burst {
  0%   { transform: translate(0, 0) scale(0); opacity: 1; }
  50%  { transform: translate(var(--sx, 8px), var(--sy, -8px)) scale(1); opacity: 0.9; }
  100% { transform: translate(calc(var(--sx, 8px) * 1.5), calc(var(--sy, -8px) * 1.5)) scale(0); opacity: 0; }
}

/* ── Impact particle animation ───────────────────────────── */

.mote-impact {
  pointer-events: none;
  animation: ma-impact-pop 0.2s ease-out forwards;
}

@keyframes ma-impact-pop {
  0%   { transform: translate(0, 0) scale(1.2); opacity: 1; }
  100% { transform: translate(var(--ix, 6px), var(--iy, -6px)) scale(0); opacity: 0; }
}

/* ── Sweat drop animation ────────────────────────────────── */

.mote-sweat {
  pointer-events: none;
  animation: ma-sweat-drop 0.4s ease-in forwards;
}

@keyframes ma-sweat-drop {
  0%   { transform: translateY(0) scale(1); opacity: 1; }
  30%  { transform: translateY(-4px) scale(1.2); opacity: 1; }
  100% { transform: translateY(12px) scale(0.6); opacity: 0; }
}
