/* One scroll stop per image group, using the same reveal progress as the dinner scene. */
body.apple-edition .panel.scroll-gallery-panel {
  position: relative;
  display: block;
  height: calc(var(--gallery-count) * 100svh);
  min-height: 100svh;
  max-height: none;
  padding: 0;
  overflow: visible;
  isolation: isolate;
}
body.apple-edition .scroll-gallery-panel::before,
body.apple-edition .scroll-gallery-panel::after { display: none; }
.apple-edition .scroll-gallery-panel > .scroll-gallery-stage {
  position: sticky;
  top: 0;
  width: 100%;
  max-width: none;
  height: 100svh;
  overflow: hidden;
  isolation: isolate;
}
.apple-edition .scroll-gallery-images,
.apple-edition .scroll-gallery-images > img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  max-width: none; max-height: none; margin: 0;
}
.apple-edition .scroll-gallery-images { z-index: 0; }
.apple-edition .scroll-gallery-images > img {
  display: block; object-fit: cover; object-position: var(--image-focus, 50% 50%);
  background-size: cover; background-position: center;
  border-radius: 0; box-shadow: none;
  clip-path: inset(0 var(--mask-right, calc(100% - var(--slide-reveal))) 0 var(--mask-left, 0%));
}
.apple-edition .scroll-gallery-images > img[data-wipe="right"] { --mask-right: 0%; --mask-left: calc(100% - var(--slide-reveal)); }
.apple-edition .scroll-gallery-bands > img { top: calc(var(--band-index) * 100% / var(--gallery-rows)); bottom: auto; height: calc(100% / var(--gallery-rows)); }
.apple-edition .scroll-gallery-stage::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: var(--gallery-shade); pointer-events: none;
}
.apple-edition #ascension {
  padding: 0;
  --gallery-shade: linear-gradient(180deg, #030a1710 20%, #030a1733 50%, #030a17e8 100%);
}
.apple-edition #ascension .photo-copy {
  position: absolute; inset: auto 0 0; z-index: 2;
  width: 100%; max-width: none; margin: 0;
  padding: 56px clamp(28px, 5.2vw, 100px) clamp(38px, 7svh, 88px);
}
/* Static mode keeps every image visible without a multi-screen scroll track. */
body.apple-edition.motion-off .scroll-gallery-panel { height: 100svh; }
.apple-edition.motion-off .scroll-gallery-images > img {
  clip-path: inset(0 calc(100% - (var(--slide-index) + 1) * 100% / var(--gallery-count)) 0 calc(var(--slide-index) * 100% / var(--gallery-count)));
}
.apple-edition.motion-off .scroll-gallery-bands > img { left: calc(var(--slide-index) * 100% / var(--gallery-count)); width: calc(100% / var(--gallery-count)); clip-path: none; }
@media (prefers-reduced-motion: reduce), print {
  body.apple-edition .panel.scroll-gallery-panel { height: 100svh; }
  .apple-edition .scroll-gallery-images > img {
    clip-path: inset(0 calc(100% - (var(--slide-index) + 1) * 100% / var(--gallery-count)) 0 calc(var(--slide-index) * 100% / var(--gallery-count)));
  }
  .apple-edition .scroll-gallery-bands > img { left: calc(var(--slide-index) * 100% / var(--gallery-count)); width: calc(100% / var(--gallery-count)); clip-path: none; }
}
@media print {
  body.apple-edition .panel.scroll-gallery-panel { height: 190mm; min-height: 0; }
  .apple-edition .scroll-gallery-panel > .scroll-gallery-stage { position: relative; height: 190mm; }
}
