/* ==========================================================================
   Keyframe animations
   ========================================================================== */

/* Hero gold shimmer sweep on headline text */
.shimmer-text {
  background: linear-gradient(100deg,
    var(--color-text-on-dark) 30%,
    var(--color-gold-100) 45%,
    var(--color-gold-500) 50%,
    var(--color-gold-100) 55%,
    var(--color-text-on-dark) 70%);
  background-size: 250% auto;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: shimmer-sweep 5s linear infinite;
}
@keyframes shimmer-sweep {
  0% { background-position: 200% center; }
  100% { background-position: -200% center; }
}

/* WhatsApp FAB pulse-glow */
@keyframes fab-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5), var(--shadow-lg); }
  50% { box-shadow: 0 0 0 12px rgba(37, 211, 102, 0), var(--shadow-lg); }
}

/* Preloader */
.preloader {
  position: fixed; inset: 0;
  z-index: 2000;
  background: var(--gradient-maroon);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--space-4);
  transition: opacity 0.6s var(--ease-premium), visibility 0.6s;
}
.preloader.is-hidden { opacity: 0; visibility: hidden; }
.preloader-mark {
  font-family: var(--font-display);
  font-size: 2.25rem;
  color: var(--color-gold-500);
  letter-spacing: 0.06em;
  animation: preloader-fade 1.8s var(--ease-premium) infinite;
}
.preloader-ring {
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 2px solid rgba(212, 175, 55, 0.25);
  border-top-color: var(--color-gold-500);
  animation: preloader-spin 0.9s linear infinite;
}
@keyframes preloader-spin { to { transform: rotate(360deg); } }
@keyframes preloader-fade {
  0%, 100% { opacity: 0.55; letter-spacing: 0.06em; }
  50% { opacity: 1; letter-spacing: 0.12em; }
}

/* Fade-up utility (non-JS fallback / simple entrance) */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Gentle float used on category tile icons */
@keyframes gentle-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.float-anim { animation: gentle-float 4s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .shimmer-text { animation: none; background-position: 0 center; }
  .whatsapp-fab { animation: none; }
  .float-anim { animation: none; }
}
