@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
}

.reveal {
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.reveal.revealed { opacity: 1; transform: translateY(0); }

.reveal-left {
  opacity: 0; transform: translateX(-30px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.reveal-left.revealed { opacity: 1; transform: translateX(0); }

.reveal-right {
  opacity: 0; transform: translateX(30px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.reveal-right.revealed { opacity: 1; transform: translateX(0); }

.reveal-stagger > * {
  opacity: 0; transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.reveal-stagger.revealed > * {
  opacity: 1; transform: translateY(0);
}
.reveal-stagger.revealed > *:nth-child(1) { transition-delay: 0s; }
.reveal-stagger.revealed > *:nth-child(2) { transition-delay: 0.06s; }
.reveal-stagger.revealed > *:nth-child(3) { transition-delay: 0.12s; }
.reveal-stagger.revealed > *:nth-child(4) { transition-delay: 0.18s; }
.reveal-stagger.revealed > *:nth-child(5) { transition-delay: 0.24s; }
.reveal-stagger.revealed > *:nth-child(6) { transition-delay: 0.3s; }
.reveal-stagger.revealed > *:nth-child(7) { transition-delay: 0.36s; }
.reveal-stagger.revealed > *:nth-child(8) { transition-delay: 0.42s; }
.reveal-stagger.revealed > *:nth-child(9) { transition-delay: 0.48s; }
.reveal-stagger.revealed > *:nth-child(10) { transition-delay: 0.54s; }
.reveal-stagger.revealed > *:nth-child(11) { transition-delay: 0.6s; }
.reveal-stagger.revealed > *:nth-child(12) { transition-delay: 0.66s; }

.hero-title .line { display: block; overflow: hidden; }
.hero-title .line span { display: block; transform: translateY(100%); opacity: 0; }
.hero-title.ready .line span {
  animation: titleReveal 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
.hero-title.ready .line:nth-child(1) span { animation-delay: 0.2s; }
.hero-title.ready .line:nth-child(2) span { animation-delay: 0.45s; }
.hero-title.ready .line:nth-child(3) span { animation-delay: 0.7s; }
.hero-title.ready .line:nth-child(4) span { animation-delay: 0.95s; }

@keyframes titleReveal {
  0% { transform: translateY(100%); opacity: 0; }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.product-card { will-change: transform; }
.why-card { will-change: transform; }
.recipe-card { will-change: transform; }
.gallery-item { will-change: transform; }

.fade-up {
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.fade-up.fade-up-visible {
  opacity: 1; transform: translateY(0);
}

/* product-card animation handled by JS via animateIn() */
