.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration) var(--ease-cine), transform var(--duration) var(--ease-cine);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.reveal--delay { transition-delay: 0.15s; }
.reveal--delay-2 { transition-delay: 0.3s; }
.reveal--delay-3 { transition-delay: 0.45s; }

.reveal-scale {
  opacity: 0;
  transform: scale(1.03) translateY(16px);
  transition: opacity var(--duration) var(--ease-cine), transform var(--duration) var(--ease-cine);
}

.scene-about .reveal-scale {
  transform: scale(1.015) translateY(28px);
  transition-duration: 1.5s;
}

.scene-about .reveal {
  transform: translateY(20px);
  transition-duration: 1.35s;
}

.reveal-scale.is-visible {
  opacity: 1;
  transform: none;
}

[data-parallax] {
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  body::after { animation: none; opacity: 0.015; }

  .reveal,
  .reveal-scale {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .scene-hero__light,
  .scene-hero__light--secondary,
  .scene-hero__glow,
  .scene-hero__cinelight,
  .scene-hero__halation,
  .scene-hero__film,
  .scene-hero__particles,
  .scene-hero__particles--far,
  .scene-hero__haze,
  .scene-hero__depth,
  .scene-hero__bloom,
  .scene-hero__grain,
  .scene-hero__media img,
  .scene-hero__scroll span,
  .scene-about__photo--drift,
  .scene-about__photo--float-mic,
  .scene-about__photo--float-embrace,
  .scene-about__atmosphere,
  .scene-about__cinema,
  .scene-atmosphere__figure.is-active .scene-atmosphere__media img,
  .voice-wave__bar,
  .reel-card__ring {
    animation: none !important;
  }

  .scene-hero__media { transform: scale(1.08) !important; }

  [data-parallax],
  [data-hero-parallax] { transform: none !important; }

  .moments-grid__item:hover img { transform: none; }
}
