/* ─────────────────────────────────────────────
   ANIMATIONS — Keyframes · Animated helpers
   ───────────────────────────────────────────── */

/* ── Keyframes ──────────────────────────────── */
@keyframes float-slow {
  0%   { transform: translate(0, 0) scale(1); }
  25%  { transform: translate(60px, -50px) scale(1.12); }
  50%  { transform: translate(-40px, 40px) scale(0.9); }
  75%  { transform: translate(50px, 20px) scale(1.08); }
  100% { transform: translate(0, 0) scale(1); }
}

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

@keyframes glow-amber {
  0%, 100% {
    text-shadow:
      0 0 20px rgba(245, 158, 11, 0.5),
      0 0 40px rgba(245, 158, 11, 0.2);
  }
  50% {
    text-shadow:
      0 0 30px rgba(245, 158, 11, 0.8),
      0 0 60px rgba(245, 158, 11, 0.3);
  }
}

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

@keyframes count-up {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Animated element classes ───────────────── */

/* Background mesh blobs */
.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  animation: float-slow 10s ease-in-out infinite;
}

/* Glow text (amber) */
.glow {
  animation: glow-amber 3s ease-in-out infinite;
}

/* Available dot pulse */
.avail-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4ade80;
  display: inline-block;
  animation: pulse-dot 2s ease-in-out infinite;
  margin-right: 5px;
}

/* Reveal elements — JS drives the transition */
.reveal {
  opacity: 0;
  transform: translateY(20px);
}

/* Counting animation on stat numbers */
.stat-counted {
  animation: count-up 0.4s ease forwards;
}
