/* Content is visible by default, including when JavaScript is unavailable. */
@media (prefers-reduced-motion: no-preference) {
  /* Hide only until the deferred scene script installs each image's state. */
  html.scene-motion-pending .hero-composition > img:not([data-scroll-reveal]) {
    opacity: 0;
  }
}
@media print {
  html.scene-motion-pending .hero-composition > img { opacity: 1 !important; }
}
[data-scroll-reveal] {
  --reveal-distance: 24px;
  --reveal-duration: 680ms;
}
[data-scroll-reveal="pending"] {
  opacity: 0;
  translate: 0 var(--reveal-distance);
}
[data-scroll-reveal="entering"] {
  animation: scroll-reveal-in var(--reveal-duration) cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms) both;
}
@keyframes scroll-reveal-in {
  from { opacity: 0; translate: 0 var(--reveal-distance); }
  to { opacity: 1; translate: none; }
}
.motion-scene { scale: var(--scene-scale,1); transform-origin: center; }
.scene-motion-piece {
  --reveal-distance: 64px;
  --reveal-duration: 960ms;
  transform: translateY(var(--scene-y,0px));
}
.scene-motion-piece[data-scene-order="1"] { --reveal-distance: 40px; }
@media (max-width: 767px) {
  [data-scroll-reveal] { --reveal-distance: 16px; --reveal-duration: 520ms; }
  [data-scroll-reveal="entering"] { animation-delay: calc(var(--reveal-delay,0ms) * .5); }
  .scene-motion-piece { --reveal-distance: 30px; --reveal-duration: 740ms; }
  .scene-motion-piece[data-scene-order="1"] { --reveal-distance: 22px; }
}
@media (prefers-reduced-motion: reduce), print {
  [data-scroll-reveal] { animation: none !important; opacity: 1 !important; translate: none !important; }
  .motion-scene { scale: none !important; }
  .scene-motion-piece { transform: none !important; }
}
