/* Normo — Motion tokens.
   Movimiento sobrio: fades y desplazamientos cortos. Sin bounces decorativos.
   Tres caracteres de curva, uno por familia de movimiento (ver guidelines/motion-caracter).
   Respetar prefers-reduced-motion en la implementación. */
:root {
  /* Duraciones por función, no por gusto */
  --normo-motion-instant: 80ms; /* @kind other */
  --normo-motion-fast: 120ms; /* @kind other */ /* micro: hover, press, foco */
  --normo-motion-base: 200ms; /* @kind other */ /* estado: switch, check, tab */
  --normo-motion-slow: 320ms; /* @kind other */ /* entrada: reveal, toast, drawer, pantalla */
  --normo-motion-slower: 500ms; /* @kind other */ /* trazado de marca, progreso largo */

  /* Caracteres de curva */
  --normo-ease-mecanico: cubic-bezier(0.4, 0, 0.6, 1); /* @kind other */ /* pieza de chapa: seco, simétrico */
  --normo-ease-instrumental: cubic-bezier(0.23, 1, 0.32, 1); /* @kind other */ /* aguja de medición: sale y frena largo */
  --normo-ease-constructivo: cubic-bezier(0.32, 0.72, 0, 1); /* @kind other */ /* trazado de plano */

  /* Alias operativos */
  --normo-ease-out: cubic-bezier(0.23, 1, 0.32, 1); /* @kind other */
  --normo-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1); /* @kind other */
  --normo-ease-standard: cubic-bezier(0.2, 0, 0.2, 1); /* @kind other */
  --normo-ease-accelerate: cubic-bezier(0.4, 0, 1, 1); /* @kind other */

  /* Reveals */
  --normo-reveal-shift: 16px; /* @kind other */ /* desplazamiento de entrada — nunca más */
  --normo-stagger-step: 60ms; /* @kind other */ /* escalonado entre hermanos */
  --normo-stagger-max: 6; /* @kind other */ /* a partir de aquí no se escalona más */
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
