/* Homepage motion — visible scroll-scrub, spring entrances, parallax */

:root {
  --spring-out: cubic-bezier(0.34, 1.56, 0.64, 1);
  --spring-soft: cubic-bezier(0.22, 1.12, 0.36, 1);
}

/* Spring reveals */
body.home .reveal,
body.home .reveal-left,
body.home .reveal-right {
  transition:
    opacity 0.9s var(--spring-out),
    transform 0.9s var(--spring-out);
}

body.home .reveal-stagger > * {
  transition:
    opacity 0.85s var(--spring-out),
    transform 0.85s var(--spring-out);
  transition-delay: calc(var(--stagger-i, 0) * 0.1s);
}

/* Override style.css reveal-stagger reset so scroll motion still works */
body.home .reveal-stagger.revealed > .showcase-card {
  transform: translateY(var(--showcase-lift, 0)) scale(var(--showcase-scale, 1)) !important;
}

/* Dual showcase — strong parallax on video */
body.home .dual-card__media {
  transform: translateY(var(--parallax-y, 0)) scale(var(--parallax-scale, 1.08)) !important;
}

body.home .dual-card:hover .dual-card__media {
  transform: translateY(var(--parallax-y, 0)) scale(calc(var(--parallax-scale, 1.08) * 1.02)) !important;
}

/* Promo band — zoom on scroll */
body.home .promo-band__media {
  transform: scale(var(--promo-scale, 1.06)) !important;
}

/* Showcase cards — lift as you scroll */
body.home .showcase-card .showcase-img img {
  transform: scale(var(--showcase-img-scale, 1)) !important;
}

/* Burger rail — fly in from the right, one by one */
body.home .menu-fuel-preview .menu-fuel-card {
  opacity: 0;
  transform: translateX(48px) scale(0.96);
  transition:
    opacity 0.65s var(--spring-out),
    transform 0.65s var(--spring-out);
}

body.home .menu-fuel-preview .menu-fuel-card.is-motion-visible {
  opacity: 1;
  transform: none;
}

body.home .menu-fuel-preview .menu-fuel-card.is-motion-visible:hover {
  transform: none;
}

body.home .menu-fuel-preview .menu-fuel-card__media img {
  transform: scale(var(--card-img-scale, 1)) !important;
}

/* Rail scroll hint — pulses until user interacts */
body.home .menu-fuel-preview .menu-fuel-rail::after {
  content: '← Swipe the lineup →';
  display: block;
  flex-shrink: 0;
  align-self: center;
  padding: 0.5rem 1rem;
  margin-right: 1rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(250, 246, 240, 0.45);
  animation: motion-hint-pulse 2s ease-in-out infinite;
  pointer-events: none;
}

body.home .menu-fuel-preview .menu-fuel-rail.is-interacted::after {
  display: none;
}

@keyframes motion-hint-pulse {
  0%, 100% { opacity: 0.35; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(6px); }
}

/* Menu hub cards — pop in */
body.home .menu-hub-card {
  transition:
    transform 0.55s var(--spring-out),
    box-shadow 0.45s var(--ease-out);
}

body.home .menu-hub-card.is-motion-visible {
  animation: motion-hub-pop 0.7s var(--spring-out) backwards;
  animation-delay: calc(var(--stagger-i, 0) * 0.08s);
}

@keyframes motion-hub-pop {
  from {
    opacity: 0;
    transform: translateY(40px) scale(0.92);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Order band */
body.home .order-band {
  transform: none;
}

/* About — staged reveal + floating photos */
body.home .about-amenities.reveal-stagger > span {
  opacity: 0;
  transform: translateY(14px) scale(0.96);
}

body.home .about-amenities.reveal-stagger.revealed > span {
  opacity: 1;
  transform: none;
  transition-delay: calc(var(--stagger-i, 0) * 0.07s);
}

body.home .about-hours-grid.reveal-stagger > .about-hours-block {
  opacity: 0;
  transform: translateY(28px);
}

body.home .about-hours-grid.reveal-stagger.revealed > .about-hours-block {
  opacity: 1 !important;
  transform: none !important;
}

body.home .about-hours-grid.reveal-stagger.revealed > .about-hours-block:hover {
  transform: translateY(-4px) !important;
}

body.home .about-images.reveal-stagger > .about-images__frame {
  opacity: 0;
  transform: translateY(36px) scale(0.94);
}

body.home .about-images.reveal-stagger.revealed > .about-images__frame {
  opacity: 1 !important;
  transform: translate3d(0, var(--about-float-y, 0), 0) scale(1) !important;
  transition:
    opacity 0.9s var(--spring-out),
    transform 0.9s var(--spring-out),
    box-shadow 0.55s var(--ease-out);
  transition-delay: calc(var(--stagger-i, 0) * 0.14s);
}

body.home .about-images.reveal-stagger.revealed > .about-images__frame:nth-child(1) img {
  animation: about-float-a 5.5s ease-in-out 1s infinite;
}

body.home .about-images.reveal-stagger.revealed > .about-images__frame:nth-child(2) img {
  animation: about-float-b 6.2s ease-in-out 1.35s infinite;
}

@keyframes about-float-a {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@keyframes about-float-b {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(10px); }
}

body.home .about-images__frame:hover {
  transform: translate3d(0, calc(var(--about-float-y, 0) - 8px), 0) scale(1.01) !important;
  box-shadow: 0 22px 48px rgba(44, 24, 16, 0.18);
}

body.home .about-images__frame:hover img {
  animation-play-state: paused;
}

body.home .about-amenities span {
  transition:
    transform 0.35s var(--spring-out),
    background 0.35s ease,
    border-color 0.35s ease,
    color 0.35s ease;
}

body.home .about-amenities span:hover {
  transform: translateY(-3px) !important;
}

body.home .about-visit-link {
  transition: letter-spacing 0.35s var(--ease-out);
}

body.home .about-visit-card:hover .about-visit-link {
  letter-spacing: 0.1em;
}

@media (prefers-reduced-motion: reduce) {
  body.home .dual-card__media,
  body.home .promo-band__media,
  body.home .menu-fuel-preview .menu-fuel-card,
  body.home .order-band,
  body.home .about-images__frame,
  body.home .about-hours-block,
  body.home .about-visit-card {
    transform: none !important;
    opacity: 1 !important;
    animation: none !important;
  }

  body.home .menu-fuel-preview .menu-fuel-rail::after {
    display: none;
  }
}
