/* ==========================================================================
   KG SOLUTIONS — animations.css
   Signature motion: gold logo shimmer + ambient hero orbs.
   Everything else stays quiet (scroll fade-ups, CTA pulse).
   ========================================================================== */

/* ---------- Hero background orbs ----------------------------------------- */
.hero-bg { position: absolute; inset: 0; overflow: hidden; z-index: 0; pointer-events: none; }
.orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  mix-blend-mode: screen;
  animation: orbFloat 18s ease-in-out infinite;
}
/* Gold leads; the violet orb is dialled back so it reads as depth, not an "AI gradient". */
.orb-1 {
  width: 600px; height: 600px; opacity: 0.14;
  background: radial-gradient(circle, #C4A35A, transparent 70%);
  top: -200px; left: -100px;
  animation-duration: 20s;
}
.orb-2 {
  width: 500px; height: 500px; opacity: 0.07;
  background: radial-gradient(circle, #7C3AED, transparent 70%);
  top: 100px; right: -150px;
  animation-duration: 25s;
  animation-delay: -8s;
}
.orb-3 {
  width: 400px; height: 400px; opacity: 0.11;
  background: radial-gradient(circle, #C4A35A, transparent 70%);
  bottom: -120px; left: 40%;
  animation-duration: 22s;
  animation-delay: -4s;
}
@keyframes orbFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%      { transform: translate(30px, -20px) scale(1.05); }
  66%      { transform: translate(-20px, 15px) scale(0.95); }
}

/* ---------- Logo shimmer (signature) ------------------------------------ */
@keyframes logoShimmer {
  0%   { left: -100%; }
  50%  { left: 150%; }
  100% { left: 150%; }
}

/* ---------- Scroll fade-up ----------------------------------------------- */
.fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s var(--ease), transform 0.65s var(--ease);
  will-change: opacity, transform;
}
.fade-up.visible { opacity: 1; transform: translateY(0); }

/* Stagger helpers */
.d-1 { transition-delay: 0.1s; }
.d-2 { transition-delay: 0.2s; }
.d-3 { transition-delay: 0.3s; }
.d-4 { transition-delay: 0.4s; }

/* ---------- CTA button pulse -------------------------------------------- */
.btn-primary:hover { animation: btnPulse 1.2s ease-out; }
@keyframes btnPulse {
  0%   { box-shadow: 0 0 0 0 rgba(196, 163, 90, 0.4); }
  100% { box-shadow: 0 0 0 14px rgba(196, 163, 90, 0); }
}

/* ---------- Counter: reserve space so values don't reflow --------------- */
.stat-pill__num, .stat-block__num { display: inline-block; min-width: 1ch; }

/* ==========================================================================
   Reduced motion — respect the user's preference
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .orb { animation: none; }
  .nav-logo::after { animation: none; opacity: 0; }
  .fade-up { opacity: 1; transform: none; transition: none; }
  .btn-primary:hover { animation: none; }
}
