/* ==========================================================================
   Curated animation set. Deliberately not exhaustive — see project notes:
   hero reveal, scroll reveals, sticky-nav shrink (style.css), a tasteful
   tilt on dish/menu cards, animated stat counters, and a back-to-top fade.
   That's the whole list. More effects stacked on top would fight each
   other rather than read as premium.
   ========================================================================== */

/* ---- scroll reveal (hero elements + .reveal sections) ------------------ */
.reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity .6s ease, transform .6s ease;
  transition-delay:var(--delay, 0ms);
}
.reveal.in-view{ opacity:1; transform:translateY(0); }

/* Hero content reveals immediately on load rather than waiting on scroll. */
.hero .reveal{ animation:heroRise .7s ease forwards; opacity:0; }
.hero .reveal:nth-child(1){ animation-delay:.05s; }
.hero .reveal:nth-child(2){ animation-delay:.15s; }
.hero .reveal:nth-child(3){ animation-delay:.25s; }
.hero .reveal:nth-child(4){ animation-delay:.35s; }
.hero .reveal:nth-child(5){ animation-delay:.45s; }
@keyframes heroRise{
  from{ opacity:0; transform:translateY(22px); }
  to{ opacity:1; transform:translateY(0); }
}

/* ---- tilt: subtle 3D response to pointer position, dish/menu cards only */
.tilt{ transform:perspective(800px) rotateX(0deg) rotateY(0deg); }

/* ---- lightbox fade ------------------------------------------------------ */
.lightbox{ animation:fadeIn .2s ease; }
.lightbox img{ animation:zoomIn .25s ease; }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }
@keyframes zoomIn{ from{ opacity:0; transform:scale(.96); } to{ opacity:1; transform:scale(1); } }

/* ---- respect reduced motion --------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal, .hero .reveal{ animation:none !important; opacity:1 !important; transform:none !important; transition:none !important; }
  .tilt{ transition:none !important; }
  .gallery-item img{ transition:none !important; }
}
