/* ==========================================================================
   S.B. Technical Training Institute - Animations & 3D Keyframes
   ========================================================================== */

/* Keyframe: Pulse Badge */
@keyframes pulseBadge {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(252, 211, 77, 0.7);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 8px rgba(252, 211, 77, 0);
  }
}

/* Keyframe: Marquee Scroll */
@keyframes marqueeScroll {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-100%, 0, 0);
  }
}

/* Keyframe: Floating Slow */
@keyframes floatSlow {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
}

/* Keyframe: Floating Bob for Badges */
@keyframes floatBob {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-12px) rotate(2deg);
  }
}

/* Keyframe: Blink Cursor */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* Keyframe: Ripple Pulse (Call Blue) */
@keyframes ripplePulseBlue {
  0% {
    transform: translate(-50%, -50%) scale(0.9);
    opacity: 0.9;
  }
  70% {
    opacity: 0.3;
  }
  100% {
    transform: translate(-50%, -50%) scale(2.2);
    opacity: 0;
  }
}

/* Keyframe: Ripple Pulse (WhatsApp Green) */
@keyframes ripplePulseGreen {
  0% {
    transform: translate(-50%, -50%) scale(0.9);
    opacity: 0.9;
  }
  70% {
    opacity: 0.3;
  }
  100% {
    transform: translate(-50%, -50%) scale(2.2);
    opacity: 0;
  }
}

/* Keyframe: Shimmer Effect */
@keyframes shimmerSweep {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

/* Keyframe: Gradient Shift */
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Keyframe: Bounce Entrance */
@keyframes bounceIn {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  50% {
    opacity: 0.9;
    transform: scale(1.08);
  }
  70% { transform: scale(0.95); }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* Reveal on Scroll Classes */
.reveal-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-fade-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-fade-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-zoom-in {
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-visible {
  opacity: 1 !important;
  transform: translate(0, 0) scale(1) !important;
}

/* Stagger Delays */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

/* Interactive Hover Glow */
.hover-glow {
  transition: var(--transition);
}

.hover-glow:hover {
  filter: drop-shadow(0 0 15px rgba(255, 94, 20, 0.45));
}

/* Button Shimmer */
.btn-shimmer::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transform: translateX(-100%);
  transition: transform 0.7s ease;
}

.btn-shimmer:hover::after {
  transform: translateX(100%);
}
