/* ==========================================================================
   NASHA MUKTI KENDRA PATNA - ANIMATIONS STYLESHEET
   Keyframes, Scroll Reveals, Floating Organic Blobs & Dynamic Glows
   ========================================================================== */

/* --- Scroll Reveal Animations --- */
.reveal {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

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

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

.reveal-left.revealed,
.reveal-right.revealed {
  opacity: 1;
  transform: translateX(0);
}

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

.reveal-zoom.revealed {
  opacity: 1;
  transform: scale(1);
}

/* Stagger Delays */
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.4s; }
.delay-5 { transition-delay: 0.5s; }
.delay-6 { transition-delay: 0.6s; }

/* --- Floating Organic Blobs --- */
.blob-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.floating-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.45;
  will-change: transform;
}

.blob-1 {
  width: 450px;
  height: 450px;
  background: radial-gradient(circle, rgba(15, 61, 46, 0.25) 0%, rgba(26, 83, 65, 0.05) 70%);
  top: -10%;
  right: -5%;
  animation: floatBlob1 18s ease-in-out infinite alternate;
}

.blob-2 {
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(217, 119, 6, 0.18) 0%, rgba(245, 158, 11, 0.02) 70%);
  bottom: 5%;
  left: -8%;
  animation: floatBlob2 22s ease-in-out infinite alternate;
}

.blob-3 {
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.18) 0%, rgba(5, 150, 105, 0.02) 70%);
  top: 40%;
  right: 15%;
  animation: floatBlob3 15s ease-in-out infinite alternate;
}

@keyframes floatBlob1 {
  0% { transform: translate(0px, 0px) scale(1); }
  50% { transform: translate(-50px, 60px) scale(1.1); }
  100% { transform: translate(40px, -40px) scale(0.95); }
}

@keyframes floatBlob2 {
  0% { transform: translate(0px, 0px) scale(1); }
  50% { transform: translate(60px, -50px) scale(1.08); }
  100% { transform: translate(-30px, 30px) scale(0.92); }
}

@keyframes floatBlob3 {
  0% { transform: translate(0px, 0px) scale(1); }
  50% { transform: translate(-40px, -40px) scale(1.12); }
  100% { transform: translate(50px, 40px) scale(0.96); }
}

/* --- Pulse Keyframes --- */
@keyframes pulseRings {
  0% {
    transform: scale(0.95);
    opacity: 0.9;
  }
  50% {
    transform: scale(1.35);
    opacity: 0;
  }
  100% {
    transform: scale(1.35);
    opacity: 0;
  }
}

@keyframes pulseGlow {
  0%, 100% {
    box-shadow: 0 0 15px rgba(217, 119, 6, 0.3);
  }
  50% {
    box-shadow: 0 0 30px rgba(217, 119, 6, 0.6);
  }
}

.pulse-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #10B981;
  position: relative;
}

.pulse-dot::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: inherit;
  animation: pulseRings 1.8s infinite;
}

/* --- Subtle Float Keyframes for Hero Badges --- */
@keyframes floatSubtle {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
}

.animate-float {
  animation: floatSubtle 4s ease-in-out infinite;
}

/* --- Number Counter Styling --- */
.counter-val {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}
