/* Takarazuka review: desktop copy balance and existing scroll entrances only. */
@media (min-width:960px) {
  .tk-flag-host .hero__panel {
    padding-top:clamp(88px,12svh,120px);
    padding-bottom:clamp(108px,18svh,180px);
  }
  .tk-flag-host .hero__title { margin-top:22px; }
  .tk-flag-host .hero__mid { margin-top:22px; }
  .tk-flag-host .hero__small { margin-top:16px; }
  .tk-flag-host .hero__act { padding-top:48px; }
  .tk-flag-host .hero__tags { gap:10px; margin-bottom:28px; }
}

/* Keep the final layout, photo angles and one-time reveal behavior unchanged.
   Only elements that already have an entrance receive these transitions. */
@media (prefers-reduced-motion:no-preference) {
  .js .reveal,
  .rb-js .rb-stage .rb-photo,
  .rb-js .rb-card,
  .rb-js .rb-photo--postcard,
  .rb-js .rb-strip,
  .rb-js .rb-cards {
    transition-property:opacity,transform;
    transition-duration:1.4s,1.4s;
    transition-timing-function:cubic-bezier(.16,1,.3,1),cubic-bezier(.16,1,.3,1);
  }
  .js .reveal:not(.is-in) { transform:translateY(18px); }
  .js .about__photo.reveal:not(.is-in) { transform:translateY(18px) rotate(1.8deg); }
  /* The separate clipped 3D unfold competed with this letter's scroll reveal. */
  .js .about__letter.wg-in { animation:none; clip-path:none; }
  .rb-js .rb-stage:not(.is-in) .rb-photo { transform:translateY(18px); }
  .rb-js .rb-stage:not(.is-in) .rb-photo--pebble-b { transform:translateY(40px); }
  .rb-js .rb-stage:not(.is-in) .rb-photo--pebble-c { transform:translateY(22px); }
  .rb-js .rb-stage:not(.is-in) .rb-photo--snap { transform:rotate(-2deg) translateY(18px); }
  .rb-js .rb-stage:not(.is-in) .rb-photo--snap-b { transform:rotate(2.4deg) translateY(34px); }
  .rb-js .rb-card:not(.is-in),
  .rb-js .rb-strip:not(.is-in),
  .rb-js .rb-cards:not(.is-in) { transform:translateY(18px); }
  .rb-js .rb-photo--postcard:not(.is-in) { transform:rotate(2.2deg) translateY(18px); }
  .rb-js .rb-stage::before { transition:opacity 1.4s cubic-bezier(.16,1,.3,1); }
  .rb-js .rb-pop { transition:opacity 1.4s cubic-bezier(.16,1,.3,1),transform 1.4s cubic-bezier(.16,1,.3,1); }
  /* Match the homepage's immediate start; no stagger on cemetery photos. */
  .rb-js .rb-stage[data-reveal].is-in .rb-photo { transition-delay: 0s; }
  /* The schedule container already reveals; avoid a second fade on its rows. */
  .garden-details-ready #flow .schedule__line li {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
@media (min-width:960px) and (prefers-reduced-motion:no-preference) {
  .js .about__photo.reveal:not(.is-in) { transform:translateY(18px) rotate(-2deg); }
}
