/* Daylight reveals shared by the home and menu pages. */
.photo-window{position:relative;overflow:hidden;isolation:isolate}
.intro-pic .photo-window{border-radius:180px 180px 22px 22px}
.intro-pic .photo-window img{border-radius:0}
.menu-photo-window{overflow:hidden}
.photo-window::after,.experience-photo.sunlit::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 90% 15%,rgba(255,221,151,.48),transparent 65%);opacity:0}
.experience-photo.sunlit{position:relative;overflow:hidden}
@media(prefers-reduced-motion:no-preference){
  .motion-ready [data-reveal]{transition:opacity .8s ease,translate .8s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
  .motion-ready [data-reveal]:not(.is-revealed){opacity:.72;translate:0 18px}
  .motion-ready [data-reveal].is-revealed{opacity:1;translate:0 0}
  .sunlit.is-revealed{animation:photo-daylight 2.8s ease-out both}
  .photo-window.is-revealed img{animation:photo-settle 3.2s cubic-bezier(.2,.6,.3,1) both}
  .photo-window.is-revealed::after,.experience-photo.sunlit.is-revealed::after{animation:warm-arrival 2.8s ease-out both}
  .menu-card img{transition:scale .7s ease}
  @media(hover:hover){.menu-card:hover img{scale:1.035}}
}
@keyframes photo-daylight{from{filter:brightness(.65) saturate(.85)}to{filter:brightness(1) saturate(1)}}
@keyframes photo-settle{from{transform:scale(1.045)}to{transform:scale(1)}}
@keyframes warm-arrival{0%{opacity:0;transform:translateY(12%)}45%{opacity:1}100%{opacity:0;transform:translateY(-8%)}}
@media(prefers-reduced-motion:reduce){[data-reveal],.sunlit,.photo-window img{animation:none!important;transition:none!important;opacity:1!important;translate:none!important;filter:none!important}.photo-window::after,.experience-photo.sunlit::after{display:none}.tape-track{animation:none}}

/* Approach the real balcony, then reveal the imagined dancing scene. */
.intro-pic .dance-photo{display:block;transform-origin:45% 81%;transition:transform 4.2s cubic-bezier(.3,.05,.3,1);will-change:transform}
.intro-pic .dance-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;opacity:0;transition:opacity 1.2s ease;background:#d7e5e4}
.dance-window.approaching .dance-photo{transform:translateY(-23%) scale(2.65)}
.dance-window.dancing .dance-video{opacity:1}
.dance-window.returning .dance-photo{transition:none;transform:none}
.dance-window::after{display:none}
@media(prefers-reduced-motion:reduce){.intro-pic .dance-photo{transform:none!important;transition:none!important}.intro-pic .dance-video{display:none}}
