/* ============================================================
   MISS NOODLES — ANIMATIONS
   ============================================================ */

@keyframes steamRise {
  0%   { transform: translateY(0) scaleX(1); opacity: 0; }
  15%  { opacity: 0.5; }
  65%  { transform: translateY(-32px) scaleX(1.5); opacity: 0.28; }
  100% { transform: translateY(-56px) scaleX(0.5); opacity: 0; }
}

@keyframes scrollPulse {
  0%, 100% { opacity: 0.12; transform: scaleY(1); }
  50%       { opacity: 0.48; transform: scaleY(1.15); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes kenBurns {
  0%   { transform: scale(1.0) translate(0, 0); }
  100% { transform: scale(1.06) translate(-1.5%, 0.8%); }
}

/* Hero scroll hint */
.scroll-hint { animation: fadeIn 1s ease 1.6s both; }

/* --- Scroll-reveal ---------------------------------------- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1),
              transform 0.9s cubic-bezier(0.16,1,0.3,1);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.reveal-scale {
  opacity: 0;
  transform: scale(0.95);
  transition: opacity 1s cubic-bezier(0.16,1,0.3,1),
              transform 1s cubic-bezier(0.16,1,0.3,1);
}
.reveal-scale.is-visible { opacity: 1; transform: scale(1); }

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1),
              transform 0.7s cubic-bezier(0.16,1,0.3,1);
}
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0.04s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.11s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.18s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.25s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 0.32s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 0.39s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(7) { transition-delay: 0.46s; opacity: 1; transform: none; }
.reveal-stagger.is-visible > *:nth-child(8) { transition-delay: 0.53s; opacity: 1; transform: none; }

/* Lifestyle rows */
.lifestyle__row {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.85s cubic-bezier(0.16,1,0.3,1),
              transform 0.85s cubic-bezier(0.16,1,0.3,1);
}
.lifestyle__row.is-visible { opacity: 1; transform: translateY(0); }

/* How It Works — step stagger */
.how__step {
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 0.6s cubic-bezier(0.16,1,0.3,1),
              transform 0.6s cubic-bezier(0.16,1,0.3,1);
}
.how__steps-wrap.is-visible .how__step { opacity: 1; transform: translateX(0); }
.how__steps-wrap.is-visible .how__step:nth-child(1) { transition-delay: 0.10s; }
.how__steps-wrap.is-visible .how__step:nth-child(2) { transition-delay: 0.24s; }
.how__steps-wrap.is-visible .how__step:nth-child(3) { transition-delay: 0.38s; }
.how__steps-wrap.is-visible .how__step:nth-child(4) { transition-delay: 0.52s; }
.how__steps-wrap.is-visible .how__step:nth-child(5) { transition-delay: 0.66s; }
