/* Core scroll pinning + reveal styles */

/* Simplified: normal flow, no sticky, no wrappers adding height */
.scroll-wrapper { position: relative; height: auto; margin: 2rem 0; }
.module { position: relative; display: block; transform: none; height: auto; }
.module > .module__pin,
.module > .generic__pin { display: block; padding: 1rem 0; }

/* Media sizing */
.module video,
.module img,
.module canvas {
  max-width: min(100%, 960px);
  width: 100%;
  height: auto;
  display: block;
}

.generic__media { position: relative; max-width: min(100%, 960px); margin: 0 auto; }
.generic__video { position: relative; z-index: 1; display: block; width: 100%; height: auto; }
.module .generic__still { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; display: none; z-index: 2; }
.module .generic__still.is-visible { display: block; }

/* Copy block starts hidden; reveals when near end */
.module .module__copy {
  max-width: 840px;
  margin: 1.5rem auto 0 auto;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 300ms ease, transform 300ms ease;
}

.module .module__copy.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Only animate when reduced motion is not preferred */
@media (prefers-reduced-motion: reduce) {
  .scroll-wrapper { height: auto; }
  .module { position: static; height: auto; transform: none; }
  .module .module__copy { opacity: 1; transform: none; transition: none; }
}
