.scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--stagger-index, 0) * .1s)}.scroll-reveal.visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}}.interactive-lift{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1)}.interactive-lift:hover{transform:translateY(-2px);box-shadow:0 8px 25px -5px #0000001a}@media(prefers-reduced-motion:reduce){.interactive-lift{transition:none}.interactive-lift:hover{transform:none}}.btn-interactive{transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),background-color .2s ease}.btn-interactive:hover{transform:scale(1.03)}.btn-interactive:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){.btn-interactive{transition:none}.btn-interactive:hover,.btn-interactive:active{transform:none}}@keyframes pulse-subtle{0%,to{box-shadow:0 0 20px #8b5cf64d}50%{box-shadow:0 0 30px #8b5cf680}}.animate-pulse-subtle{animation:pulse-subtle 2s cubic-bezier(.4,0,.6,1) infinite}@media(prefers-reduced-motion:reduce){.animate-pulse-subtle{animation:none}}@keyframes page-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.demo-page-transition{animation:page-fade-in .3s cubic-bezier(.16,1,.3,1) both}@media(prefers-reduced-motion:reduce){.demo-page-transition{animation:none}}
