/*========================================================
  Animaciones Intermedias — Iras Dargor
  Elegantes, con presencia y enfoque premium
========================================================*/

/* Estado inicial (oculto) */
.fade-up,
.fade-down,
.fade-left,
.fade-right,
.zoom-in,
.scale-in {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Dirección hacia arriba */
.fade-up { transform: translateY(40px); }

/* Dirección hacia abajo */
.fade-down { transform: translateY(-40px); }

/* Direcciones laterales */
.fade-left { transform: translateX(-40px); }
.fade-right { transform: translateX(40px); }

/* Zoom suave */
.zoom-in {
  transform: scale(0.9);
  transition: all 0.7s ease-out;
}

/* Aparición por escala */
.scale-in {
  transform: scale(0.85);
  transition: all 0.8s cubic-bezier(0.23, 1, 0.32, 1);
}

/* Estado final (visible) */
.show {
  opacity: 1 !important;
  transform: translate(0, 0) scale(1) !important;
}

/* Aparición escalonada */
.stagger > * {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.7s ease-out;
}

.stagger.show > * {
  opacity: 1;
  transform: translateY(0);
}

.stagger.show > *:nth-child(1) { transition-delay: .1s; }
.stagger.show > *:nth-child(2) { transition-delay: .2s; }
.stagger.show > *:nth-child(3) { transition-delay: .3s; }
.stagger.show > *:nth-child(4) { transition-delay: .4s; }
.stagger.show > *:nth-child(5) { transition-delay: .5s; }
.stagger.show > *:nth-child(6) { transition-delay: .6s; }

/* Animación especial: glow épico */
.glow-fade-in {
  opacity: 0;
  filter: drop-shadow(0 0 20px rgba(8, 54, 170, 0.5));
  transition: all 0.9s ease-out;
  transform: scale(0.95);
}

.glow-fade-in.show {
  opacity: 1;
  transform: scale(1);
  filter: drop-shadow(0 0 40px rgba(8, 54, 170, 0.8));
}

/* Animación rebote */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-10px); }
  60% { transform: translateY(-5px); }
}

/* Movimiento vertical del gradiente */
@keyframes gradientVertical {
  0% {
    background-position: 50% 100%;
  }
  50% {
    background-position: 50% 0%;
  }
  100% {
    background-position: 50% 100%;
  }
}