/* Animaciones simples y compartidas. Nada llamativo: entradas suaves y
   feedback de interacción. prefers-reduced-motion ya las desactiva todas
   por completo (ver la regla global en base.css). */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes popIn {
  from {
    opacity: 0;
    transform: scale(0.85);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes overlayFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes modalPanelIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes slideUpIn {
  from {
    opacity: 0;
    transform: translate(-50%, 12px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

/* Utilidad genérica: entrada suave para bloques de página (hero, secciones). */
.fade-in-up {
  animation: fadeInUp 0.5s ease both;
}

/* Animación al desplazarse: arranca oculto/corrido y pasa a su lugar cuando
   entra en pantalla (ver js/common/scroll-reveal.js, que agrega is-visible). */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal:nth-child(2) {
  transition-delay: 0.08s;
}

.reveal:nth-child(3) {
  transition-delay: 0.16s;
}

.reveal:nth-child(4) {
  transition-delay: 0.24s;
}

.reveal:nth-child(5) {
  transition-delay: 0.32s;
}
