/* Snappetite-style scroll animations for Magic Fridge (index only) */

/* ─── Base (Snappetite transition--slide: 0.65s ease, 0.1s delay when active) ─── */
.mf-animate {
  opacity: 0;
  transition-property: opacity, transform, clip-path;
  transition-duration: 0.65s;
  transition-timing-function: ease;
  transition-delay: 0s;
  will-change: opacity, transform;
}

.mf-animate.is-active {
  opacity: 1;
  transform: none;
  transition-delay: 0.1s;
}

.mf-animate--slide {
  transform: translateY(20%);
}

.mf-animate--scale {
  transform: scale(0.9);
}

.mf-animate.is-active.mf-delay-1 { transition-delay: 0.1s; }
.mf-animate.is-active.mf-delay-2 { transition-delay: 0.2s; }
.mf-animate.is-active.mf-delay-3 { transition-delay: 0.3s; }
.mf-animate.is-active.mf-delay-4 { transition-delay: 0.4s; }
.mf-animate.is-active.mf-delay-5 { transition-delay: 0.5s; }
.mf-animate.is-active.mf-delay-6 { transition-delay: 0.6s; }

/* Stagger: delay children when parent row becomes visible */
.mf-stagger > .mf-animate.is-active:nth-child(1) { transition-delay: 0.1s; }
.mf-stagger > .mf-animate.is-active:nth-child(2) { transition-delay: 0.2s; }
.mf-stagger > .mf-animate.is-active:nth-child(3) { transition-delay: 0.3s; }
.mf-stagger > .mf-animate.is-active:nth-child(4) { transition-delay: 0.4s; }
.mf-stagger > .mf-animate.is-active:nth-child(5) { transition-delay: 0.5s; }
.mf-stagger > .mf-animate.is-active:nth-child(6) { transition-delay: 0.6s; }

/* ─── Image clip-path reveal (Snappetite reveal keyframe) ─── */
.mf-animate--reveal {
  overflow: hidden;
}

.mf-animate--reveal img,
.mf-animate--reveal video {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.75s ease, transform 0.5s ease;
}

.mf-animate--reveal.is-active img,
.mf-animate--reveal.is-active video {
  clip-path: inset(0 0 0 0);
  transition-delay: 0.15s;
}

/* ─── Image hover zoom ─── */
.mf-img-zoom img {
  transition: transform 0.5s ease;
}

.mf-img-zoom:hover img,
.group:hover .mf-img-zoom img {
  transform: scale(1.05);
}

/* ─── Hero background drift (Snappetite animate-gradient feel) ─── */
.mf-bg-hero::before {
  animation: mf-blob-drift 25s ease-in-out infinite;
}

@keyframes mf-blob-drift {
  0%, 100% {
    transform: scale(1) translate(0, 0);
  }
  33% {
    transform: scale(1.04) translate(1.5%, -1%);
  }
  66% {
    transform: scale(1.02) translate(-1%, 1.5%);
  }
}

/* ─── Reduced motion ─── */
@media (prefers-reduced-motion: reduce) {
  .mf-animate,
  .mf-animate--reveal img,
  .mf-animate--reveal video {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
  }

  .mf-bg-hero::before {
    animation: none !important;
  }

  .mf-img-zoom img {
    transition: none !important;
  }
}
