/* ============================================
   ZIEN FIT — Keyframe Animations
   ============================================ */

/* ── Fade Up (page entry, staggered) ── */
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Fade In ── */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Fade Out ── */
@keyframes fadeOut {
  from { opacity: 1; }
  to   { opacity: 0; }
}

/* ── Slide In from Right ── */
@keyframes slideInRight {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}

/* ── Slide Out to Right ── */
@keyframes slideOutRight {
  from { transform: translateX(0); }
  to   { transform: translateX(100%); }
}

/* ── Slide Up (bottom sheet) ── */
@keyframes slideUp {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

/* ── Slide Down ── */
@keyframes slideDown {
  from { transform: translateY(0); }
  to   { transform: translateY(100%); }
}

/* ── Gold Scan Sweep (section header underline) ── */
@keyframes scanSweep {
  from {
    transform: scaleX(0);
    transform-origin: left;
  }
  to {
    transform: scaleX(1);
    transform-origin: left;
  }
}

/* ── Data Pulse ── */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.4; }
}

/* ── Gold Glow Throb ── */
@keyframes goldThrob {
  0%, 100% { box-shadow: var(--shadow-gold); }
  50%      { box-shadow: 0 0 40px rgba(201,168,76,0.5); }
}

/* ── Typewriter Cursor Blink ── */
@keyframes cursorBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0; }
}

/* ── Particle Drift (floating gold specks) ── */
@keyframes particleDrift {
  0%   { transform: translateY(0) translateX(0); opacity: 0; }
  10%  { opacity: 0.6; }
  90%  { opacity: 0.6; }
  100% { transform: translateY(-100vh) translateX(20px); opacity: 0; }
}

/* ── Shimmer (loading skeleton) ── */
@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* ── Rotate Slow (body auto-rotate hint) ── */
@keyframes rotateSlow {
  0%   { transform: rotateY(0deg); }
  100% { transform: rotateY(360deg); }
}

/* ── Scale Pulse (tap feedback) ── */
@keyframes scalePulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(0.97); }
  100% { transform: scale(1); }
}

/* ── Progress Fill ── */
@keyframes progressFill {
  from { width: 0; }
}

/* ── Glow Pulse (muscle highlight) ── */
@keyframes glowPulse {
  0%, 100% { filter: drop-shadow(0 0 6px var(--muscle-active)); }
  50%      { filter: drop-shadow(0 0 16px var(--muscle-active)); }
}

/* ── Stagger Utility Classes ── */
.anim-fade-up {
  animation: fadeUp var(--dur-slow) var(--ease-snap) both;
}
.anim-delay-1 { animation-delay: 60ms; }
.anim-delay-2 { animation-delay: 120ms; }
.anim-delay-3 { animation-delay: 180ms; }
.anim-delay-4 { animation-delay: 240ms; }
.anim-delay-5 { animation-delay: 300ms; }
.anim-delay-6 { animation-delay: 360ms; }
.anim-delay-7 { animation-delay: 420ms; }
.anim-delay-8 { animation-delay: 480ms; }
