/* 
  Uni-Challenge Consultants - Modern Animation & Visual FX Stylesheet
  Keyframes, Scroll Entrance Observers, Glow Effects & Hover Micro-Interactions
*/

/* -------------------------------------------------------------
   1. KEYFRAME ANIMATIONS
------------------------------------------------------------- */
@keyframes slideUpFade {
  0% {
    opacity: 0;
    transform: translateY(35px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideDownFade {
  0% {
    opacity: 0;
    transform: translateY(-35px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideLeftFade {
  0% {
    opacity: 0;
    transform: translateX(45px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideRightFade {
  0% {
    opacity: 0;
    transform: translateX(-45px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes zoomInFade {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes floatSoft {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

@keyframes pulseGoldGlow {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4);
  }
  50% {
    box-shadow: 0 0 20px 6px rgba(212, 175, 55, 0.6);
  }
}

@keyframes gradientShimmer {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* -------------------------------------------------------------
   2. SCROLL ANIMATION CLASSES (INTERSECTION OBSERVER)
------------------------------------------------------------- */
.fade-up, .fade-down, .fade-left, .fade-right, .zoom-in {
  opacity: 0;
  will-change: opacity, transform;
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.fade-up { transform: translateY(40px); }
.fade-down { transform: translateY(-40px); }
.fade-left { transform: translateX(50px); }
.fade-right { transform: translateX(-50px); }
.zoom-in { transform: scale(0.92); }

.fade-up.animated, .fade-down.animated, .fade-left.animated, .fade-right.animated, .zoom-in.animated {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

/* Animation Delays */
.delay-100 { transition-delay: 0.1s !important; }
.delay-200 { transition-delay: 0.2s !important; }
.delay-300 { transition-delay: 0.3s !important; }
.delay-400 { transition-delay: 0.4s !important; }
.delay-500 { transition-delay: 0.5s !important; }

/* Continuous Micro-Animations */
.floating-element {
  animation: floatSoft 4s ease-in-out infinite;
}

.pulse-glow-btn {
  animation: pulseGoldGlow 3s infinite;
}

.gold-gradient-text {
  background: linear-gradient(135deg, #d4af37 0%, #fef9e7 50%, #c5a059 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradientShimmer 4s ease infinite;
}
