@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-5deg) scale(.95)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes blurIn{0%{opacity:0;filter:blur(10px)}to{opacity:1;filter:blur(0)}}.animate-fadeIn{animation:fadeIn .5s ease-out forwards}.animate-slideUp{animation:slideUp .6s cubic-bezier(.4,0,.2,1) forwards}.animate-slideDown{animation:slideDown .6s cubic-bezier(.4,0,.2,1) forwards}.animate-slideLeft{animation:slideLeft .6s cubic-bezier(.4,0,.2,1) forwards}.animate-slideRight{animation:slideRight .6s cubic-bezier(.4,0,.2,1) forwards}.animate-scaleIn{animation:scaleIn .5s cubic-bezier(.68,-.55,.265,1.55) forwards}.animate-rotateIn{animation:rotateIn .6s cubic-bezier(.68,-.55,.265,1.55) forwards}.animate-blurIn{animation:blurIn .8s ease-out forwards}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.animate-shimmer:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);background-size:200% 100%;animation:shimmer 2s ease-in-out infinite}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-gradientShift{background-size:200% 200%;animation:gradientShift 10s ease infinite}@keyframes backgroundPulse{0%,to{opacity:1}50%{opacity:.8}}.animate-backgroundPulse{animation:backgroundPulse 3s ease-in-out infinite}@keyframes wave{0%{transform:translate(0) translateZ(0) scaleY(1)}50%{transform:translate(-25%) translateZ(0) scaleY(.55)}to{transform:translate(-50%) translateZ(0) scaleY(1)}}.animate-wave{animation:wave 10s linear infinite}@keyframes typewriter{0%{width:0}to{width:100%}}.animate-typewriter{animation:typewriter 2s steps(40,end) forwards;border-right:2px solid}@keyframes fadeWords{0%,to{opacity:1}50%{opacity:.3}}.animate-fadeWords{animation:fadeWords 3s ease-in-out infinite}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}to{transform:translate(0)}}.animate-glitch{animation:glitch .3s ease-in-out infinite}.stagger-children>*{animation-delay:calc(var(--stagger-delay, .1s) * var(--stagger-index, 0))}.hover-lift{transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 20px #0000001a}.hover-scale{transition:transform .3s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s cubic-bezier(.4,0,.2,1)}.hover-glow:hover{box-shadow:0 0 20px #3b82f680}@keyframes skeleton{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0,#e0e0e0 20%,#f0f0f0 40% 100%);background-size:200% 100%;animation:skeleton 1.5s ease-in-out infinite}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.reveal.revealed{opacity:1;transform:translateY(0)}.parallax{will-change:transform;transition:transform .1s ease-out}html.smooth-scroll{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.animate-fadeIn,.animate-slideUp,.animate-slideDown,.animate-slideLeft,.animate-slideRight,.animate-scaleIn,.animate-rotateIn,.animate-blurIn{will-change:opacity,transform}.hover-lift,.hover-scale{will-change:transform}.animate-gradientShift{will-change:background-position}
