/* Cloudflare Pages fallback: native scroll-driven motion, no JavaScript required. */
@supports (animation-timeline: view()) {
  .intro-title,
  .intro-text,
  .feature-photo,
  .feature-copy,
  .menu-heading,
  .set-card,
  .menu-block,
  .events-heading,
  .event-list article,
  .gallery-heading,
  .gallery-note,
  .gallery-grid figure,
  .access-content,
  .access-mark {
    animation-name: sepia-scroll-reveal;
    animation-duration: 1ms;
    animation-fill-mode: both;
    animation-timing-function: linear;
    animation-timeline: view();
    animation-range: entry 0% entry 75%;
  }
}

@keyframes sepia-scroll-reveal {
  from {
    opacity: 0.08;
    filter: blur(3px);
    transform: translateY(34px) scale(0.985);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}

/* The owner explicitly requested motion on this public version. */
html body .hero-copy { animation: hero-arrive 1.25s cubic-bezier(.2,.75,.25,1) both !important; }
html body .hero h1 { animation: hero-glow 5s ease-in-out infinite alternate !important; }
html body .access-mark span { animation: mark-breathe 4.5s ease-in-out infinite !important; }
html body .feature-photo img,
html body .gallery-grid img { transition: transform 1.1s cubic-bezier(.2,.75,.25,1), filter .8s ease !important; }
