/* =========================================================
   Next Gen Innovations Nepal — Animations
   ========================================================= */

/* ─── KEYFRAMES ──────────────────────────────────────────── */
@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-14px); }
}

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.5; transform: scale(1.4); }
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-24px); }
  to   { opacity: 1; transform: translateY(0); }
}

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

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-32px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(32px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.85); }
  to   { opacity: 1; transform: scale(1); }
}

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

@keyframes blobMove {
  0%, 100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; transform: rotate(0deg); }
  33%       { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; transform: rotate(120deg); }
  66%       { border-radius: 60% 30% 50% 50% / 30% 60% 60% 40%; transform: rotate(240deg); }
}

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

@keyframes slideInNav {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes ripple {
  to { transform: scale(3); opacity: 0; }
}

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

/* ─── HERO ENTER ANIMATIONS ──────────────────────────────── */
.anim-hero-badge  { animation: fadeInDown 0.7s ease both; animation-delay: 0.1s; }
.anim-hero-title  { animation: fadeInUp  0.75s ease both; animation-delay: 0.25s; }
.anim-hero-sub    { animation: fadeInUp  0.75s ease both; animation-delay: 0.4s; }
.anim-hero-nepali { animation: fadeInUp  0.7s ease both;  animation-delay: 0.5s; }
.anim-hero-btns   { animation: fadeInUp  0.75s ease both; animation-delay: 0.6s; }
.anim-hero-stats  { animation: fadeInUp  0.75s ease both; animation-delay: 0.75s; }
.anim-hero-visual { animation: fadeInRight 0.9s ease both; animation-delay: 0.3s; }

/* ─── NAV ANIMATION ──────────────────────────────────────── */
.nav-links li {
  animation: slideInNav 0.5s ease both;
}
.nav-links li:nth-child(1) { animation-delay: 0.05s; }
.nav-links li:nth-child(2) { animation-delay: 0.10s; }
.nav-links li:nth-child(3) { animation-delay: 0.15s; }
.nav-links li:nth-child(4) { animation-delay: 0.20s; }
.nav-links li:nth-child(5) { animation-delay: 0.25s; }
.nav-links li:nth-child(6) { animation-delay: 0.30s; }

/* ─── FLOATING BLOB BACKGROUND ───────────────────────────── */
.blob {
  position: absolute;
  border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
  filter: blur(48px);
  opacity: 0.12;
  animation: blobMove 12s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}

.blob-1 {
  width: 400px; height: 400px;
  background: var(--indigo);
  top: 10%; right: 5%;
  animation-duration: 14s;
}

.blob-2 {
  width: 300px; height: 300px;
  background: var(--teal);
  bottom: 10%; left: 5%;
  animation-duration: 10s;
  animation-delay: -4s;
}

/* ─── HOVER EFFECTS ──────────────────────────────────────── */
.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(15,28,63,0.15);
}

/* ─── SHIMMER LOADER ─────────────────────────────────────── */
.shimmer {
  background: linear-gradient(90deg, #eef2ff 25%, #dce7ff 50%, #eef2ff 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

/* ─── GRADIENT TEXT ANIMATED ─────────────────────────────── */
.gradient-text-anim {
  background: linear-gradient(270deg, var(--teal), var(--indigo), var(--teal));
  background-size: 300% 300%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: gradientShift 4s ease infinite;
}

/* ─── RIPPLE BUTTON ──────────────────────────────────────── */
.btn-ripple { position: relative; overflow: hidden; }
.btn-ripple::after {
  content: '';
  position: absolute;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: rgba(255,255,255,0.3);
  transform: scale(0);
  pointer-events: none;
}
.btn-ripple:active::after {
  animation: ripple 0.5s ease;
}

/* ─── PAGE-SPECIFIC ANIMATIONS ───────────────────────────── */
.scale-in { animation: scaleIn 0.6s ease both; }

/* ─── REDUCE MOTION ──────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}