/* Scroll motion is progressive enhancement; the document remains readable without it. */
.garden-video {
  opacity: 0;
  pointer-events: none;
  transition: opacity .5s ease;
}
.video-ready .garden-video { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .hero-journey { height: calc(max(100svh, 680px) + 145svh); }
  .motion-ready .hero {
    position: sticky;
    top: 0;
    height: max(100svh, 680px);
    min-height: 0;
    max-height: none;
  }
  .motion-ready .hero .garden {
    transform: translate3d(0, var(--garden-y, 0px), 0) scale(var(--garden-scale, 1.025));
    transform-origin: center;
    will-change: transform;
  }
  .motion-ready .hero .garden-video { transform: none; will-change: auto; }
  .motion-ready .hero-copy {
    transform: translate3d(0, var(--copy-y, 0px), 0);
    opacity: var(--copy-opacity, 1);
    will-change: transform, opacity;
  }
  .motion-ready .scroll-note { opacity: var(--hint-opacity, 1); }

  .motion-ready .reveal {
    --reveal-x: 0px;
    --reveal-y: 36px;
    --reveal-scale: .985;
    opacity: 0;
    transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale));
    transition: opacity .8s ease, transform 1.05s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }
  .motion-ready .reveal.visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
  .motion-ready .section.reveal,
  .motion-ready .section-heading.reveal { opacity: 1; transform: none; }
  .motion-ready .reveal-part {
    opacity: 0;
    transform: translate3d(0, 26px, 0);
    transition: opacity .8s ease, transform 1s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--part-delay, 0ms);
  }
  .motion-ready .visible > .reveal-part {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
  .motion-ready .story-item { --reveal-x: 24px; --reveal-y: 22px; }
  .motion-ready .story-item:nth-child(even) { --reveal-x: -18px; }
  .motion-ready .timeline { position: relative; }
  .motion-ready .timeline::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: -1px;
    width: 1px;
    background: linear-gradient(#d8b780, #b9774d);
    transform: scaleY(var(--story-progress, 0));
    transform-origin: top;
  }
  .motion-ready .story-item::before {
    transform: scale(.3);
    transition: transform .7s cubic-bezier(.34, 1.56, .64, 1) .18s;
  }
  .motion-ready .story-item.visible::before { transform: scale(1); }
  .motion-ready .schedule-item { --reveal-x: 20px; --reveal-y: 28px; }
  .motion-ready .schedule-icon {
    transform: scale(.8) rotate(-12deg);
    transition: transform .9s cubic-bezier(.22, 1, .36, 1) .1s;
  }
  .motion-ready .visible .schedule-icon { transform: scale(1) rotate(0); }
  .motion-ready .garden-vignette { --reveal-y: 32px; --reveal-scale: .88; }
  .motion-ready .garden-vignette img {
    transform: translate3d(0, var(--flowers-y, 0px), 0) scale(1.12);
  }
  .motion-ready .fine-divider::before,
  .motion-ready .fine-divider::after {
    transform: scaleX(0);
    transition: transform 1.2s cubic-bezier(.22, 1, .36, 1) .35s;
  }
  .motion-ready .fine-divider::before { transform-origin: right; }
  .motion-ready .fine-divider::after { transform-origin: left; }
  .motion-ready .visible .fine-divider::before,
  .motion-ready .visible .fine-divider::after { transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-part { opacity: 1 !important; transform: none !important; }
  .hero-copy, .scroll-note { opacity: 1 !important; transform: none !important; }
  .hero .garden { transform: none !important; }
  .garden-video { display: none; }
}

@media print {
  .hero-journey { height: auto !important; }
  .hero { position: relative !important; }
  .garden-video { display: none; }
  .reveal, .reveal-part, .hero-copy { opacity: 1 !important; transform: none !important; }
}
