/* motion.css ─ keyframes + global reduced-motion override.
 * Keep keyframes here, not scattered across primitive files,
 * so a single import disables them under prefers-reduced-motion. */

/* Skeleton shimmer — gradient sweep, NOT opacity pulse */
@keyframes wd-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}

/* "LIVE" tally-light stutter — bright 0.9s / dim 0.3s / bright 0.9s */
@keyframes wd-stutter {
  0%, 42%       { opacity: 1; }
  42.01%, 56%   { opacity: 0.55; }
  56.01%, 100%  { opacity: 1; }
}

/* Signal-strip sweep for recording cards */
@keyframes wd-signal-sweep {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

.wd-shimmer {
  background: linear-gradient(
    90deg,
    var(--bg-surface) 0%,
    var(--bg-hover)   50%,
    var(--bg-surface) 100%
  );
  background-size: 200% 100%;
  animation: wd-shimmer 1.8s ease-in-out infinite;
}

.wd-stutter   { animation: wd-stutter      2.1s ease-in-out infinite; }
.wd-sweep     { animation: wd-signal-sweep 1.8s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .wd-shimmer, .wd-stutter, .wd-sweep {
    animation: none;
  }
  *, *::before, *::after {
    transition-duration: 0ms !important;
    animation-duration: 0ms !important;
  }
}
