/* PlausiDen reveal-on-scroll animations.
 *
 * Previously: `.reveal` defaulted to `opacity: 0` and an
 * IntersectionObserver flipped it to `1` on scroll. The result on
 * mobile was a hero + a blank middle until the user scrolled past
 * each band — a real UX failure. Content visibility shouldn't
 * depend on scroll behavior we can't guarantee.
 *
 * Now: `.reveal` is a no-op (kept as a class so the existing
 * markup compiles without a sweep). Content is always visible.
 * The reveal-on-scroll wiring in menu.js still runs but has no
 * visual effect.
 */

/* The `.reveal` / `.is-visible` pair and its stagger helpers lived here.
 * Both states declared the same thing — opacity 1, no transform — because the
 * rule was neutered after an earlier version left content invisible on mobile
 * when the observer did not fire. What remained was an IntersectionObserver
 * walking 34 elements on every page load to produce no visual change at all.
 *
 * Scroll reveal now lives in motion.css as `.pd-reveal`, driven by CSS
 * scroll-timeline with its hidden start state inside
 * `@supports (animation-timeline: view())`. No JavaScript is involved in
 * making text visible, which is the property that matters. */

/* Hero fade-in on load — independent of scroll. */
@keyframes pd-fade-in-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.animate-fade-in-up {
  animation: pd-fade-in-up 800ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.animate-fade-in-up.delay-1 { animation-delay: 100ms; }
.animate-fade-in-up.delay-2 { animation-delay: 200ms; }
.animate-fade-in-up.delay-3 { animation-delay: 300ms; }
.animate-fade-in-up.delay-4 { animation-delay: 400ms; }

/* Subtle pulse for the small hero accent dot. */
@keyframes pd-pulse-soft {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.6; }
}

.animate-pulse-soft {
  animation: pd-pulse-soft 2.4s ease-in-out infinite;
}

/* Reduced-motion users get the final state instantly with no animation. */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .animate-fade-in-up,
  .animate-pulse-soft {
    animation: none;
  }
}
