/* Section-scoped Scrollworld presentation. No document-wide scroll capture. */
@supports (overflow: clip) { body { overflow-x: clip; } }
#tour.cinema { padding: 0; position: relative; background: #161714; color: #fff9ec; }
.cinema__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.cinema__world { --cinema-top: 101px; --cinema-progress: 0; position: relative; }
.cinema__world.is-scroll { height: calc(100svh - var(--cinema-top) + var(--cinema-travel, 3200px)); }
.cinema__viewport { position: relative; height: calc(100svh - var(--cinema-top)); min-height: 520px; isolation: isolate; background: #161714; }
.is-scroll .cinema__viewport { position: sticky; top: var(--cinema-top); }
.cinema__media { position: absolute; inset: 0; overflow: hidden; z-index: -2; }
.cinema__poster, .cinema__video { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.cinema__poster { opacity: 0; }
.is-scroll .cinema__poster { opacity: 1; }
.is-scroll .cinema__video { opacity: 0; pointer-events: none; }
.is-scroll.is-ready .cinema__video { opacity: 1; }
.is-scroll.is-ready .cinema__poster { opacity: 0; }
.cinema__viewport::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgb(8 11 10 / .45), transparent 24%, transparent 55%, rgb(8 11 10 / .76)); }
.cinema__topline { position: absolute; top: 25px; left: var(--pad); right: var(--pad); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cinema__topline p { font-size: 11px; letter-spacing: .19em; text-transform: uppercase; font-weight: 400; }
.cinema__topline p span { opacity: .75; }
.cinema__skip { padding: 10px 14px; border: 1px solid rgb(255 249 236 / .4); background: rgb(18 20 16 / .4); backdrop-filter: blur(8px); font-size: 12px; min-height: 44px; display: inline-flex; align-items: center; gap: 20px; white-space: nowrap; }
.cinema__skip:hover { background: rgb(18 20 16 / .75); }
.cinema__caption { position: absolute; left: var(--pad); bottom: 145px; pointer-events: none; text-shadow: 0 2px 18px rgb(0 0 0 / .3); }
.cinema__eyebrow { font-size: 11px; font-weight: 400; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 12px; }
.cinema__caption h3 { font-size: clamp(40px, 4.7vw, 72px); line-height: 1; }
.cinema__bottom { position: absolute; left: var(--pad); right: var(--pad); bottom: max(23px, env(safe-area-inset-bottom)); }
.cinema__controls { display: none; justify-content: space-between; align-items: center; gap: 24px; border-top: 1px solid rgb(255 249 236 / .32); padding-top: 13px; }
.is-enhanced .cinema__controls { display: flex; }
.cinema__chapters { display: flex; flex-wrap: wrap; gap: 8px; }
.cinema__chapters button { min-height: 44px; padding: 8px 15px; font-size: 12px; border: 1px solid transparent; border-radius: 2px; color: #fff9ec; }
.cinema__chapters button:hover { border-color: rgb(255 249 236 / .5); }
.cinema__chapters button[aria-pressed="true"] { background: #eee2cd; color: #25281f; }
.cinema__meta { display: flex; gap: 20px; align-items: center; justify-content: space-between; margin-top: 10px; font-size: 11px; color: #f2eadd; }
.cinema__meta [data-cinema-count] { font-variant-numeric: tabular-nums; letter-spacing: .1em; margin-left: auto; white-space: nowrap; }
.cinema__instruction { display: none; }
.is-enhanced .cinema__instruction { display: block; }
.cinema__instruction button { text-decoration: underline; padding: 8px; min-height: 44px; }
.cinema__progress { position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: rgb(255 255 255 / .14); }
.cinema__progress i { display: block; width: 100%; height: 100%; background: #e9d3a8; transform: scaleX(var(--cinema-progress)); transform-origin: left; }
/* Normal playback (also the no-JS/reduced-motion fallback) stays in document flow. */
.cinema__world:not(.is-scroll) .cinema__viewport { height: auto; min-height: 0; padding: 95px var(--pad) 24px; }
.cinema__world:not(.is-scroll) .cinema__media { position: relative; aspect-ratio: 16 / 9; z-index: 0; }
.cinema__world:not(.is-scroll) .cinema__video { object-fit: contain; }
.cinema__world:not(.is-scroll) .cinema__viewport::after, .cinema__world:not(.is-scroll) .cinema__caption { display: none; }
.cinema__world:not(.is-scroll) .cinema__bottom { position: static; margin-top: 18px; }
.cinema__world:not(.is-scroll) .cinema__progress { display: none; }
@media(max-width: 860px) {
  .cinema__world { --cinema-top: 80px; }
  .cinema__viewport { min-height: 570px; }
  .cinema__topline { top: 20px; gap: 10px; }
  .cinema__topline p { font-size: 9px; letter-spacing: .13em; max-width: 155px; }
  .cinema__topline p span { display: none; }
  .cinema__skip { font-size: 11px; padding: 8px 10px; gap: 10px; }
  .cinema__caption { bottom: 178px; }
  .cinema__caption h3 { font-size: clamp(32px, 8vw, 52px); }
  .cinema__eyebrow { font-size: 10px; margin-bottom: 8px; }
  .cinema__controls { gap: 10px; flex-wrap: wrap; }
  .cinema__chapters { gap: 1px; flex: 1; }
  .cinema__chapters button { font-size: 11px; padding: 7px 9px; }
  .cinema__meta { flex-wrap: wrap; gap: 4px 12px; font-size: 10px; }
  .cinema__meta > p:last-child { width: 100%; }
  .cinema__bottom { bottom: max(20px, env(safe-area-inset-bottom)); }
}
/* Preserve the supplied landscape composition on portrait phones. */
@media(max-width: 860px) and (orientation: portrait) {
  .is-scroll .cinema__media { inset: 82px 0 auto; aspect-ratio: 16 / 9; }
  .is-scroll .cinema__poster, .is-scroll .cinema__video { object-fit: contain; }
  .is-scroll .cinema__viewport::after { background: none; }
  .cinema__caption { bottom: 188px; }
}
@media(max-width: 480px) {
  .cinema__controls { align-items: flex-start; }
  .cinema__chapters { flex-basis: 100%; justify-content: space-between; }
}
@media(orientation: landscape) and (max-height: 600px) {
  .cinema__viewport { min-height: 320px; }
  .cinema__caption { bottom: 117px; }
  .cinema__caption h3 { font-size: 35px; }
  .cinema__topline { top: 12px; }
  .cinema__bottom { bottom: 14px; }
}

/* The header leaves only while the interior sequence is pinned. */
#nav.nav { transition: transform .28s ease, padding .5s var(--ease-out), background-color .5s, backdrop-filter .5s, border-color .5s; }
#nav.nav.is-tour-hidden { transform: translateY(-110%); pointer-events: none; }
@media (prefers-reduced-motion: reduce) { #nav.nav { transition: none; } }
/* A quieter size for the separate, narrated film below FAQ. */
#walk .walk__video { width: 88%; max-width: 1080px; margin-inline: auto; }
@media (max-width: 600px) { #walk .walk__video { width: 92%; } }

/* Each room owns its footage and fallback; no shared montage timestamps. */
.cinema__scene { position: absolute; inset: 0; }
.cinema__scene[hidden] { display: none; }
.cinema__scene .cinema__poster { opacity: 1; }
.cinema__scene .cinema__video { opacity: 0; pointer-events: none; }
.is-scroll .cinema__scene.is-ready .cinema__video { opacity: 1; }
.is-scroll .cinema__scene.is-ready .cinema__poster { opacity: 0; }
.cinema__world[data-mode="stills"] .cinema__caption { display: block; position: relative; left: auto; bottom: auto; margin-top: 24px; }
.cinema__world[data-mode="stills"] .cinema__caption h3 { font-size: clamp(30px, 4vw, 56px); }
/* The selected source takes are 3:2; retain their entire composition on phones. */
@media(max-width: 860px) and (orientation: portrait) {
  .is-scroll .cinema__media { aspect-ratio: 3 / 2; }
}
