/* ═══════════════════════════════════════════════════════════════
   RAINORA V2 — ANIMATIONS
═══════════════════════════════════════════════════════════════ */

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes fadeDown { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }

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

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes badgeBounce {
  0%, 100% { transform: scale(1); }
  30% { transform: scale(1.5); }
  60% { transform: scale(.85); }
  80% { transform: scale(1.1); }
}

@keyframes heartBeat {
  0% { transform: scale(1); }
  20% { transform: scale(1.3); }
  40% { transform: scale(.9); }
  60% { transform: scale(1.2); }
  80% { transform: scale(.95); }
  100% { transform: scale(1); }
}

@keyframes toastSlideUp {
  from { opacity: 0; transform: translateY(20px) scale(.95); }
  to { opacity: 1; transform: none; }
}

@keyframes toastSlideOut {
  to { opacity: 0; transform: translateY(-10px) scale(.95); }
}

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

@keyframes sheen {
  0% { transform: translateX(-120%) skewX(-20deg); }
  100% { transform: translateX(220%) skewX(-20deg); }
}

@keyframes progressFill {
  from { width: 0; }
}

@keyframes revealCard {
  from { opacity: 0; transform: translateY(24px) scale(.97); }
  to { opacity: 1; transform: none; }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(196,154,75,.4); }
  50% { box-shadow: 0 0 0 8px rgba(196,154,75,0); }
}

/* ─── Reveal Utility ─── */
.reveal {
  opacity: 0; transform: translateY(24px);
  transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }
.reveal.delay-1 { transition-delay: .1s; }
.reveal.delay-2 { transition-delay: .2s; }
.reveal.delay-3 { transition-delay: .3s; }
.reveal.delay-4 { transition-delay: .4s; }

/* ─── Stagger Cards ─── */
.product-card { animation: revealCard .5s var(--ease) backwards; }
.product-card:nth-child(1) { animation-delay: 0ms; }
.product-card:nth-child(2) { animation-delay: 60ms; }
.product-card:nth-child(3) { animation-delay: 120ms; }
.product-card:nth-child(4) { animation-delay: 180ms; }
.product-card:nth-child(5) { animation-delay: 240ms; }
.product-card:nth-child(6) { animation-delay: 300ms; }
.product-card:nth-child(7) { animation-delay: 360ms; }
.product-card:nth-child(8) { animation-delay: 420ms; }

/* ─── Sheen Effect (Brand Mark) ─── */
.brand-mark { position: relative; overflow: hidden; }
.brand-mark::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%);
  transform: translateX(-120%) skewX(-20deg);
  animation: sheen 4s ease-in-out infinite;
}

/* ─── Reduced Motion ─── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .reveal { opacity: 1; transform: none; }
  .product-card { animation: none; }
}
