:root { --ease-out: cubic-bezier(.23, 1, .32, 1); }
/* Keep section geometry stable during native smooth anchor navigation. */
.section { content-visibility: visible; }
html { scroll-behavior: smooth; }
.dish-rail,.social-videos { scroll-behavior: smooth; scroll-snap-type: x proximity; }
@media (prefers-reduced-motion: no-preference) {
  html.page-boot :is(.glass-header,.opening,.section,.marquee,footer):not(.motion-enter) { opacity: 0; }
  .motion-enter { animation: sectionEntrance .65s var(--ease-out) both; }
  .glass-header.motion-enter { animation-name: headerEntrance; animation-duration: .5s; }
  .opening.motion-enter,footer.motion-enter { animation-name: softEntrance; animation-duration: .5s; }
  html.hero-boot .hero:not(.hero-enter) { visibility: hidden; }
  /* One parent animation gives every part the exact same start and finish. */
  body.is-ready .hero-media,
  body.is-ready .title-letter { animation: none; }
  .hero.hero-enter {
    animation: heroTogether .65s var(--ease-out) both;
  }
}
@keyframes heroTogether {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}
@keyframes sectionEntrance {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}
@keyframes headerEntrance {
  from { opacity: 0; transform: translateY(-12px); }
  to { opacity: 1; transform: none; }
}
@keyframes softEntrance { from { opacity: 0; } to { opacity: 1; } }
.motion-enter:focus-within { animation: none; opacity: 1; transform: none; }
.motion-offscreen .marquee-track,.motion-offscreen .ember,
html.page-hidden .marquee-track,html.page-hidden .ember { animation-play-state: paused; }
@media (hover: hover) and (pointer: fine) {
  .location-card,.dish-card,.social-link { transition: border-color .2s ease, transform .2s var(--ease-out); }
  .location-card:hover,.dish-card:hover,.social-link:hover { transform: translateY(-3px); border-color: var(--gold); }
}
@media (prefers-reduced-motion: reduce) {
  html,.dish-rail,.social-videos { scroll-behavior: auto; }
  html.page-boot :is(.glass-header,.opening,.section,.marquee,footer) { opacity: 1; }
  html.hero-boot .hero { visibility: visible; }
  .hero.hero-enter { animation: none; }
}
