.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg,var(--violet),var(--neon),var(--neon2));z-index:9999;pointer-events:none;box-shadow:0 0 8px rgba(168,85,247,.6)}

.reveal{opacity:0;transform:translateY(34px) scale(.96);filter:blur(6px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:none;filter:none}

.reveal-l{opacity:0;transform:translateX(-44px) scale(.97);filter:blur(6px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1)}
.reveal-l.visible{opacity:1;transform:none;filter:none}

.reveal-r{opacity:0;transform:translateX(44px) scale(.97);filter:blur(6px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1)}
.reveal-r.visible{opacity:1;transform:none;filter:none}

.stagger>*{opacity:0;transform:translateY(30px) scale(.96);filter:blur(4px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),filter .7s cubic-bezier(.16,1,.3,1)}
.stagger.visible>*:nth-child(1){opacity:1;transform:none;filter:none;transition-delay:.05s}
.stagger.visible>*:nth-child(2){opacity:1;transform:none;filter:none;transition-delay:.12s}
.stagger.visible>*:nth-child(3){opacity:1;transform:none;filter:none;transition-delay:.19s}
.stagger.visible>*:nth-child(4){opacity:1;transform:none;filter:none;transition-delay:.26s}
.stagger.visible>*:nth-child(5){opacity:1;transform:none;filter:none;transition-delay:.33s}
.stagger.visible>*:nth-child(6){opacity:1;transform:none;filter:none;transition-delay:.40s}
.stagger.visible>*:nth-child(7){opacity:1;transform:none;filter:none;transition-delay:.47s}
.stagger.visible>*:nth-child(8){opacity:1;transform:none;filter:none;transition-delay:.54s}
.stagger.visible>*:nth-child(9){opacity:1;transform:none;filter:none;transition-delay:.61s}
.stagger.visible>*:nth-child(10){opacity:1;transform:none;filter:none;transition-delay:.68s}

.sfx-parallax{will-change:transform}

@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-l,.reveal-r,.stagger>*{transition:none!important;filter:none!important;transform:none!important;opacity:1!important}
  .scroll-progress{display:none!important}
  .sfx-parallax{transform:none!important}
}
