/*
 * Respect a stated preference for reduced motion.
 *
 * The site had 21 animations and 68 transitions and honoured no such
 * preference anywhere. For users with vestibular disorders, sliding toasts,
 * shimmer placeholders and animated panels can cause genuine nausea and
 * dizziness — this is not a taste setting.
 *
 * Durations are collapsed to 0.01ms rather than set to `none`. Some code
 * listens for animationend and transitionend to clean up after itself; an
 * animation removed outright never fires those events and the handler never
 * runs, leaving elements in a half-finished state. A near-zero duration is
 * visually instant and still completes.
 *
 * Loading spinners are the deliberate exception. Their motion is not
 * decoration, it is the feedback that something is happening, and the blanket
 * rule above would leave a static ring conveying nothing. They keep turning,
 * slowly.
 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .loading-spinner,
  .spinner {
    animation-duration: 1.5s !important;
    animation-iteration-count: infinite !important;
  }
}
