/* =========================================================
   CAPA 5 · MOVIMIENTO (global)
   Efectos que usan varias secciones. Las animaciones propias
   de cada sección viven en su archivo dentro de sections/.
   ========================================================= */

/* Aparición al hacer scroll. js/effects.js agrega .js-reveal
   y luego .in cuando el elemento entra en pantalla.
   Arranca parcialmente visible (nunca invisible del todo). */
.js-reveal {
  opacity: .2; transform: translateY(28px);
  transition: opacity .8s ease, transform .8s var(--ease-out);
}
.js-reveal.in { opacity: 1; transform: none; }

/* Accesibilidad: si la persona pidió reducir movimiento en su
   sistema, se apagan todas las animaciones del sitio. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}
