/*
 * Movimiento reducido: una sola regla para toda la academia.
 *
 * Medido en Chromium con `prefers-reduced-motion: reduce` declarado: de 35
 * selectores con animacion infinita repartidos por la aplicacion, 34 seguian
 * girando o latiendo igual. La primera pantalla que ve una persona --el emblema
 * de carga dando vueltas sin parar y los halos de la ventana latiendo-- no
 * miraba la preferencia. Para quien tiene sensibilidad vestibular eso no es
 * decoracion: es la razon por la que existe el ajuste en su sistema.
 *
 * La regla es general y con `!important` a proposito. Los estilos de esta
 * aplicacion se declaran en treinta y seis sitios --hojas, bloques <style> y
 * CSS que inyecta el JavaScript--, asi que una lista de selectores se queda
 * corta el dia siguiente. `animation-fill-mode: forwards` evita el efecto
 * secundario conocido de esta tecnica: sin el, una animacion de aparicion
 * termina al instante y el elemento vuelve a su estado base, que a veces es
 * invisible.
 *
 * Lo que esto NO cubre: el movimiento que dibuja el JavaScript por su cuenta
 * --el canvas del Gran Salon, por ejemplo--. Eso se consulta con
 * `window.matchMedia('(prefers-reduced-motion: reduce)')`, como ya hacen
 * `map.js` y `map-switcher.js`, y se comprueba aparte.
 */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    animation-fill-mode: forwards !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
