.scroll-animate{opacity:0;transition:all .6s cubic-bezier(.4,0,.2,1);transform:translateY(30px)}.scroll-animate.visible{opacity:1;transform:translateY(0)}.scroll-animate-left{opacity:0;transition:all .6s cubic-bezier(.4,0,.2,1);transform:translate(-50px)}.scroll-animate-left.visible{opacity:1;transform:translate(0)}.scroll-animate-right{opacity:0;transition:all .6s cubic-bezier(.4,0,.2,1);transform:translate(50px)}.scroll-animate-right.visible{opacity:1;transform:translate(0)}.scroll-animate-scale{opacity:0;transition:all .6s cubic-bezier(.4,0,.2,1);transform:scale(.8)}.scroll-animate-scale.visible{opacity:1;transform:scale(1)}.stagger-1{transition-delay:.1s}.stagger-2{transition-delay:.2s}.stagger-3{transition-delay:.3s}.stagger-4{transition-delay:.4s}.stagger-5{transition-delay:.5s}.stagger-6{transition-delay:.6s}.stagger-7{transition-delay:.7s}.stagger-8{transition-delay:.8s}.stagger-9{transition-delay:.9s}.stagger-10{transition-delay:1s}.stagger-11{transition-delay:1.1s}.stagger-12{transition-delay:1.2s}.hover-lift{transition:all .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{box-shadow:0 20px 25px -5px oklch(var(--foreground)/.15);transform:translateY(-8px)}.hover-scale{transition:transform .3s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.05)}.hover-rotate{transition:transform .3s cubic-bezier(.4,0,.2,1)}.hover-rotate:hover{transform:rotate(5deg)scale(1.1)}@keyframes pulse-subtle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes pulse-strong{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.pulse-subtle{animation:2s ease-in-out infinite pulse-subtle}.pulse-strong{animation:1.5s ease-in-out infinite pulse-strong}@keyframes bounce-light{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes bounce-strong{0%,to{transform:translateY(0)}25%{transform:translateY(-10px)}50%{transform:translateY(0)}75%{transform:translateY(-5px)}}.bounce-light{animation:2s ease-in-out infinite bounce-light}.bounce-strong{animation:2s ease-in-out infinite bounce-strong}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.fade-in{animation:.6s ease-out fade-in}.fade-out{animation:.6s ease-out fade-out}.fade-in-up{animation:.6s ease-out fade-in-up}.fade-in-down{animation:.6s ease-out fade-in-down}.fade-in-left{animation:.6s ease-out fade-in-left}.fade-in-right{animation:.6s ease-out fade-in-right}@keyframes slide-in-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.slide-in-up{animation:.6s ease-out slide-in-up}.slide-in-down{animation:.6s ease-out slide-in-down}.slide-in-left{animation:.6s ease-out slide-in-left}.slide-in-right{animation:.6s ease-out slide-in-right}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px oklch(var(--primary)/.3)}50%{box-shadow:0 0 40px oklch(var(--primary)/.6)}}@keyframes glow-strong{0%,to{box-shadow:0 0 30px oklch(var(--primary)/.4),0 0 60px oklch(var(--primary)/.2)}50%{box-shadow:0 0 50px oklch(var(--primary)/.8),0 0 100px oklch(var(--primary)/.4)}}.glow-pulse{animation:2s ease-in-out infinite glow-pulse}.glow-strong{animation:2s ease-in-out infinite glow-strong}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes gradient-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gradient-animate{background-size:200% 200%;animation:4s ease-in-out infinite gradient-shift}.gradient-rotate{animation:20s linear infinite gradient-rotate}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blink{0%,50%{border-color:#0000}51%,to{border-color:oklch(var(--foreground))}}.typewriter{white-space:nowrap;animation:3s steps(40,end) typewriter;overflow:hidden}.typewriter:after{content:"|";animation:1s infinite blink}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce-dots{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}}.loading-shimmer{background:linear-gradient(90deg,oklch(var(--muted))25%,oklch(var(--muted-foreground)/.1)50%,oklch(var(--muted))75%);background-size:200% 100%;animation:1.5s infinite shimmer}.loading-spin{animation:1s linear infinite spin}.loading-dots span{animation:1.4s ease-in-out infinite both bounce-dots}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.parallax-slow,.parallax-medium,.parallax-fast{will-change:transform;transform:translate(0,0)}.intersection-observer{opacity:0;transition:all .6s cubic-bezier(.4,0,.2,1)}.intersection-observer.is-intersecting{opacity:1;transform:translateY(0)}.gpu-accelerated{backface-visibility:hidden;perspective:1000px;will-change:transform;transform:translate(0,0)}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.parallax-slow,.parallax-medium,.parallax-fast{transform:none!important}}.dark .hover-lift:hover{box-shadow:0 20px 25px -5px oklch(var(--purple-secondary)/.3)}.dark .glow-pulse{animation-name:glow-pulse-dark}.dark .glow-strong{animation-name:glow-strong-dark}@keyframes glow-pulse-dark{0%,to{box-shadow:0 0 20px oklch(var(--purple-secondary)/.4)}50%{box-shadow:0 0 40px oklch(var(--purple-secondary)/.8)}}@keyframes glow-strong-dark{0%,to{box-shadow:0 0 30px oklch(var(--purple-secondary)/.6),0 0 60px oklch(var(--gradient-via)/.3)}50%{box-shadow:0 0 50px oklch(var(--purple-secondary)/1),0 0 100px oklch(var(--gradient-via)/.5)}}@media (max-width:768px){.scroll-animate,.scroll-animate-left,.scroll-animate-right,.scroll-animate-scale{transition-duration:.4s}.hover-lift:hover{transform:translateY(-4px)}.parallax-slow,.parallax-medium,.parallax-fast{transform:none}}
