* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Animaciones de Texto */
/* Estado inicial: invisible y un poco desplazado hacia abajo */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease-out;
}

/* Estado activo: visible y en su posición original */
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Retrasos opcionales para elementos en cascada */
.delay-200 { transition-delay: 0.2s; }
.delay-400 { transition-delay: 0.4s; }