/* ========================================================= */
/* ANIMACIONES Y EFECTOS PARALLAX - ELECCIONES UNIMINUTO     */
/* ========================================================= */

/* Float animations for background decorative elements */
@keyframes floatSlow {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-18px) rotate(2deg);
  }
}

@keyframes floatReverse {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(18px) rotate(-3deg);
  }
}

@keyframes floatGentle {
  0%, 100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-8px) scale(1.02);
  }
}

@keyframes pulseGlow {
  0%, 100% {
    opacity: 0.45;
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(234, 88, 12, 0.4);
  }
  50% {
    opacity: 0.9;
    transform: scale(1.05);
    box-shadow: 0 0 20px 6px rgba(234, 88, 12, 0.25);
  }
}

@keyframes pulseDot {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 10px rgba(16, 185, 129, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}

@keyframes orbMorph {
  0%, 100% {
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
    transform: rotate(0deg) scale(1);
  }
  50% {
    border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;
    transform: rotate(180deg) scale(1.08);
  }
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

@keyframes shineSweep {
  0% {
    transform: translateX(-100%) rotate(45deg);
  }
  100% {
    transform: translateX(200%) rotate(45deg);
  }
}

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

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

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

@keyframes spinSlow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Staggered slide content reveal */
.slide.active .slide-badge {
  animation: heroReveal 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
}

.slide.active .slide-title {
  animation: heroReveal 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both;
}

.slide.active .slide-desc {
  animation: heroReveal 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
}

.slide.active .slide-actions {
  animation: heroReveal 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.4s both;
}

.slide.active .slide-content-right {
  animation: heroReveal 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.25s both;
}

/* Utility Animation Classes */
.animate-float {
  animation: floatSlow 8s ease-in-out infinite;
}

.animate-float-reverse {
  animation: floatReverse 9s ease-in-out infinite;
}

.animate-float-gentle {
  animation: floatGentle 5s ease-in-out infinite;
}

.animate-pulse-glow {
  animation: pulseGlow 4s ease-in-out infinite;
}

.animate-pulse-dot {
  animation: pulseDot 2s infinite;
}

.animate-spin-slow {
  animation: spinSlow 25s linear infinite;
}

/* Reveal on scroll base classes */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal-on-scroll.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* Parallax Floating Orb Layer */
.parallax-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
  transition: transform 0.3s ease-out;
  will-change: transform;
}

.orb-primary {
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgba(234, 88, 12, 0.16) 0%, rgba(245, 158, 11, 0.06) 50%, transparent 70%);
}

.orb-blue {
  width: 580px;
  height: 580px;
  background: radial-gradient(circle, rgba(2, 132, 199, 0.15) 0%, rgba(56, 189, 248, 0.05) 50%, transparent 70%);
}

.orb-gold {
  width: 440px;
  height: 440px;
  background: radial-gradient(circle, rgba(245, 158, 11, 0.16) 0%, rgba(251, 191, 36, 0.05) 50%, transparent 70%);
}

/* 3D Tilt Card hover wrapper */
.tilt-card-wrapper {
  perspective: 1200px;
  transform-style: preserve-3d;
}

.tilt-card-inner {
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;
  will-change: transform;
}

/* Accessible reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal-on-scroll {
    opacity: 1 !important;
    transform: none !important;
  }
}
