/* ---------- Reveal (animación de aparición) ---------- */
:root{
  --reveal-distance: 8px;
  --reveal-duration: .6s;
  --reveal-ease: ease-out;
}

/* Estado inicial (oculto + ligero desplazamiento) */
.reveal{
  opacity: 0;
  transform: translateY(var(--reveal-distance));
  transition:
    opacity var(--reveal-duration) var(--reveal-ease),
    transform var(--reveal-duration) var(--reveal-ease);
  transition-delay: var(--reveal-delay, 0ms);
}

/* Visible (cuando entra en viewport) */
.reveal.is-visible{
  opacity: 1;
  transform: none;
}

/* Accesibilidad: respeta usuarios con movimiento reducido */
@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}