/* ── KEYFRAMES ── */

@keyframes beamSweep {
  from { transform: rotate(-40deg); }
  to   { transform: rotate(40deg); }
}

@keyframes cineFade {
  from { opacity: 0; filter: blur(6px); transform: translateY(8px); }
  to   { opacity: 1; filter: blur(0);   transform: translateY(0); }
}

@keyframes glassReveal {
  from { opacity: .1; filter: blur(20px); letter-spacing: .5em; }
  to   { opacity: 1;  filter: blur(0);    letter-spacing: .08em; }
}

@keyframes scrollPulse {
  0%,  100% { transform: scaleY(1);   opacity: .35; }
  50%        { transform: scaleY(1.3); opacity: .65; }
}

@keyframes pvToggle {
  0%,  15%  { opacity: 0; backdrop-filter: blur(0px); }
  40%, 60%  { opacity: 1; backdrop-filter: blur(6px);  }
  85%, 100% { opacity: 0; backdrop-filter: blur(0px); }
}

/* ── SCROLL REVEAL (IntersectionObserver) ── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s ease, transform .8s ease;
}
.reveal.visible {
  opacity: 1;
  transform: none;
}
