/*
 * Bewegung, global — die CSS-Haelfte des Bewegungs-Standards (UI-10/10 U6).
 *
 * WARUM DAS NICHT IN TYPESCRIPT GEHT
 * ----------------------------------
 * `prefers-reduced-motion` wurde bis 2026-08-23 nur an vier Stellen beachtet,
 * alle ueber `framer-motion`s `useReducedMotion`. Die 119 CSS-Uebergaenge aus
 * dem `motionTransitions`-Bestand liefen unabhaengig davon — und MUIs eigene
 * Uebergaenge, die von react-big-calendar, die von simplebar ebenso. Fuer einen
 * Nutzer mit vestibulaerer Stoerung hatte die Betriebssystem-Einstellung damit
 * auf den groessten Teil der Oberflaeche keine Wirkung (WCAG 2.3.3 Level AAA,
 * aber im BFSG-Kontext die Erwartung).
 *
 * Eine Regel hier erwischt alles, auch was wir nicht geschrieben haben.
 *
 * WARUM NICHT `animation: none`
 * -----------------------------
 * Bewegung wird auf 0,01 ms verkuerzt, nicht abgeschaltet. Der Unterschied ist
 * nicht kosmetisch: ein `transitionend`- oder `animationend`-Ereignis, auf das
 * Code wartet, FEUERT bei 0,01 ms weiterhin — bei `none` nie. Genau daran
 * sterben Akkordeons, die ihre Hoehe nach dem Uebergang neu messen, und Modals,
 * die sich nach dem Ausblenden aushaengen. Der Nutzer sieht keinen Unterschied,
 * die Anwendung schon. (`0.01ms` statt `0s` aus demselben Grund: manche
 * Engines behandeln `0s` wie `none`.)
 *
 * `!important` ist hier richtig und nicht faul: die Regel muss Inline-Styles
 * schlagen, und Emotion schreibt jedes `sx` als Klasse mit hoher Spezifitaet.
 *
 * `scroll-behavior: auto` gehoert dazu — ein weiches Scrollen ueber mehrere
 * Bildschirmhoehen ist genau die Art Bewegung, die diese Einstellung meint.
 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }

  html {
    scroll-behavior: auto !important;
  }
}
