/* One-shot bottom-up reveal, matching the interview photos without scroll listeners or permanent layers. */
@media (prefers-reduced-motion: no-preference) {
  html.top-photo-motion-ready main :is(
    .schedule-section__poster,
    .about-brand-tiles .brand-tile,
    .about-logo-character,
    #contributors .person-logo,
    #contributors .portrait-wrap,
    .special-contents__visual,
    .item-lineup__image,
    .item-details__photo,
    .item-details__gallery-tile img,
    .event-section__visual img
  ):not(.is-photo-visible) {
    opacity: 0;
  }

  html.top-photo-motion-ready main :is(
    .schedule-section__poster,
    .about-brand-tiles .brand-tile,
    .about-logo-character,
    #contributors .person-logo,
    #contributors .portrait-wrap,
    .special-contents__visual,
    .item-lineup__image,
    .item-details__photo,
    .item-details__gallery-tile img,
    .event-section__visual img
  ).is-photo-visible {
    animation: top-photo-reveal 1.2s cubic-bezier(.22, 1, .36, 1) .12s backwards;
  }

  @keyframes top-photo-reveal {
    from {
      opacity: 0;
      clip-path: inset(100% 0 0);
      transform: translateY(12%);
    }
    to {
      opacity: 1;
      clip-path: inset(0);
      transform: none;
    }
  }
}