/* One stationary viewport per complete sequence, on desktop and on phones. */
.kitchen-story.is-scroll, .detail-story.is-detail-scroll { height: 580svh; }
.is-scroll .story-pin, .is-detail-scroll .detail-pin {
  position: sticky; top: 90px; height: calc(100svh - 116px);
  display: flex; flex-direction: column;
}
.is-scroll .story-window, .is-detail-scroll .detail-stage {
  position: relative; flex: 1; min-height: 0; overflow: clip; padding: 0;
  border-radius: 18px;
}
.is-scroll .story-track { display: block; height: 100%; }
.is-scroll .kitchen-scene, .is-detail-scroll .detail-scene {
  position: absolute; inset: 0; display: block; height: 100%; width: 100%;
  opacity: 1; visibility: var(--chapter-visible, hidden); transition: none;
}
.is-scroll .kitchen-scene { transform: translate3d(var(--scene-offset, 0px), 0, 0); }
.is-detail-scroll .detail-scene { transform: translate3d(0, var(--detail-offset, 0px), 0); }
.is-scroll .scene-surface, .is-detail-scroll .detail-surface {
  display: block; position: relative; inset: auto; top: auto;
  height: 100%; min-height: 0; width: 100%;
  overflow: hidden; border-radius: 18px; isolation: isolate;
  transform: none; opacity: 1;
}
.is-scroll .scene-photo, .is-detail-scroll .detail-photo {
  position: absolute; inset: 0; height: 100%; width: 100%; aspect-ratio: auto;
  transform: none; border-radius: 18px;
}
.is-scroll .scene-photo img, .is-detail-scroll .detail-photo img { height: 100%; width: 100%; object-fit: cover; transform: none !important; }
.is-scroll .scene-surface::after, .is-detail-scroll .detail-surface::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, transparent 30%, #0003 55%, #000d);
  opacity: calc(.3 + var(--chapter-copy, 0) * .7);
}
.is-scroll .scene-copy, .is-detail-scroll .detail-copy {
  position: absolute; inset: auto 38px 34px; z-index: 2; padding: 0;
  opacity: var(--chapter-copy, 0); transform: translateY(var(--chapter-copy-y, 30px));
  pointer-events: none;
}
.is-scroll .scene-copy > *, .is-detail-scroll .detail-copy > * { opacity: 1; transform: none; }
.is-detail-scroll .detail-copy h3 { color: #fff9f2; }
.is-detail-scroll .detail-copy p { color: #ddd5cc; max-width: none; }
.is-scroll .scene-photo::after { display: none; }
.is-scroll .story-controls, .is-detail-scroll .detail-controls { min-height: 58px; flex: none; }
.is-scroll .story-heading, .is-detail-scroll .experience-heading { flex: none; margin-bottom: 20px; }
.is-scroll .zoom-label, .is-detail-scroll .zoom-label { z-index: 3; top: 16px; right: 16px; bottom: auto; }

.is-team-scroll { height: 530svh; }
.is-team-scroll.team-page-sequence { margin-top: var(--page-space); }
.is-team-scroll .team-pin {
  position: sticky; top: 90px; height: calc(100svh - 116px);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px;
}
.is-team-scroll .team-portraits, .is-team-scroll .sub-people {
  position: relative; display: block; margin: 0; width: min(420px, 100%);
  height: min(620px, calc(100% - 60px)); overflow: clip; border-radius: 16px;
}
.is-team-scroll .team-person, .is-team-scroll .sub-people > article {
  position: absolute; inset: 0; height: 100%; width: 100%; max-width: none;
  display: block; margin: 0; opacity: 1; visibility: var(--person-visible, hidden);
  transform: translate3d(var(--person-slide, 0px), 0, 0); animation: none; transition: none;
}
.is-team-scroll .portrait-image, .is-team-scroll .sub-portrait { height: 100%; width: 100%; margin: 0; aspect-ratio: auto; }
.is-team-scroll .sub-people .sub-portrait { height: calc(100% - 52px); }
.is-team-scroll .sub-people > article > p { margin-top: 16px; text-align: center; }
.is-team-scroll figcaption, .is-team-scroll .portrait-caption {
  opacity: var(--person-copy, 0); transform: translateY(var(--person-copy-y, 24px)); animation: none;
}
.team-sequence-nav { display: flex; gap: 24px; }
.team-sequence-nav button { border: 0; border-bottom: 1px solid transparent; background: none; padding: 10px 0; font-size: 12px; color: #999; }
.team-sequence-nav button[aria-current='true'] { color: #fff; border-color: #e30614; }
.rating-value > .rating-number { color: #ed2430; }
.is-rating-scroll .reviews-panel { position: sticky; opacity: 1; transform: none; transition: none; }

@media (max-width: 760px) {
  .kitchen-story.is-scroll, .detail-story.is-detail-scroll { height: 620svh; }
  .is-scroll .story-pin, .is-detail-scroll .detail-pin { top: 82px; height: calc(100svh - 170px); }
  .is-scroll .story-heading, .is-detail-scroll .experience-heading { margin-bottom: 16px; }
  .is-scroll .story-heading h2, .is-detail-scroll .experience-heading h2 { font-size: clamp(24px, 7vw, 32px); line-height: 1.12; margin-top: 10px; }
  .is-scroll .story-controls, .is-detail-scroll .detail-controls { min-height: 44px; padding-top: 4px; }
  .is-scroll .scene-copy, .is-detail-scroll .detail-copy { inset: auto 22px 26px; }
  .is-scroll .scene-copy h3, .is-detail-scroll .detail-copy h3 { font-size: clamp(28px, 8vw, 38px); }
  .is-scroll .scene-copy p, .is-detail-scroll .detail-copy p { font-size: 14px; margin-top: 12px; line-height: 1.5; }
  .is-team-scroll .team-pin { top: 82px; height: calc(100svh - 170px); gap: 12px; }
  .is-team-scroll .team-portraits, .is-team-scroll .sub-people { width: min(360px, 100%); height: calc(100% - 52px); }
  .is-rating-scroll .reviews-panel { gap: 22px; padding-block: 24px; }
  .is-rating-scroll .reviews-copy h2 { font-size: 34px; margin-block: 12px; }
  .is-rating-scroll .reviews-copy .eyebrow { font-size: 10px; }
  .is-rating-scroll .reviews-score .text-link { margin-top: 12px; }
}
@media (max-width: 760px) and (max-height: 700px) {
  .is-scroll .story-heading .eyebrow, .is-detail-scroll .experience-heading .eyebrow { font-size: 9px; }
  .is-scroll .scene-copy, .is-detail-scroll .detail-copy { inset: auto 20px 20px; }
  .is-scroll .scene-copy h3, .is-detail-scroll .detail-copy h3 { font-size: 27px; }
  .is-scroll .scene-index, .is-detail-scroll .detail-number { margin-bottom: 8px; }
  .is-rating-scroll .reviews-panel { padding-block: 14px; gap: 12px; }
  .is-rating-scroll .reviews-copy h2 { font-size: 26px; margin-block: 8px; }
  .is-rating-scroll .reviews-copy .text-link, .is-rating-scroll .reviews-score .text-link { font-size: 12px; padding-block: 7px; margin-top: 4px; }
  .is-rating-scroll .rating-value { font-size: 60px; }
  .is-rating-scroll .rating-stars { margin-block: 10px 6px; }
}
