/* ==========================================================================
   animations.css — Manswered.com keyframes and scroll-reveal transitions
   Everything here respects prefers-reduced-motion.
   ========================================================================== */

@keyframes fadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes bump { 0% { transform: scale(1); } 40% { transform: scale(1.45); } 100% { transform: scale(1); } }
@keyframes shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes toastIn { from { opacity: 0; transform: translateY(16px) scale(0.98); } to { opacity: 1; transform: none; } }
@keyframes toastOut { to { opacity: 0; transform: translateY(10px); } }
@keyframes bob { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 8px); } }
@keyframes slowZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
@keyframes pulseGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(201, 169, 110, 0.45); } 50% { box-shadow: 0 0 0 10px rgba(201, 169, 110, 0); } }

/* Hero entrance */
.hero__bg img { animation: slowZoom 9s var(--ease) both; }
.hero .anim-1, .hero .anim-2, .hero .anim-3, .hero .anim-4, .page-hero .anim-1, .page-hero .anim-2, .page-hero .anim-3 { animation: fadeUp 800ms var(--ease) both; }
.anim-1 { animation-delay: 80ms !important; }
.anim-2 { animation-delay: 220ms !important; }
.anim-3 { animation-delay: 360ms !important; }
.anim-4 { animation-delay: 500ms !important; }
.hero__scroll { animation: bob 2.2s ease-in-out infinite; }
.btn--pulse { animation: pulseGlow 2.4s ease-in-out infinite; }

/* Scroll reveal: .reveal is added by JS only, so no-JS users always see content */
.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity 700ms var(--ease), transform 700ms var(--ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }
.js .reveal-stagger > * { opacity: 0; transform: translateY(22px); transition: opacity 600ms var(--ease), transform 600ms var(--ease); }
.js .reveal-stagger.is-visible > * { opacity: 1; transform: none; }
.js .reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 90ms; }
.js .reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 180ms; }
.js .reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 270ms; }
.js .reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 360ms; }
.js .reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 450ms; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .js .reveal, .js .reveal-stagger > * { opacity: 1; transform: none; }
}
