.fade-in{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.fade-in.visible{opacity:1;transform:translateY(0)}.fade-in-up{opacity:0;transform:translateY(40px);transition:opacity .8s ease-out,transform .8s ease-out}.fade-in-up.visible{opacity:1;transform:translateY(0)}.fade-in-left{opacity:0;transform:translateX(-40px);transition:opacity .8s ease-out,transform .8s ease-out}.fade-in-left.visible{opacity:1;transform:translateX(0)}.fade-in-right{opacity:0;transform:translateX(40px);transition:opacity .8s ease-out,transform .8s ease-out}.fade-in-right.visible{opacity:1;transform:translateX(0)}.scale-in{opacity:0;transform:scale(.9);transition:opacity .6s ease-out,transform .6s ease-out}.scale-in.visible{opacity:1;transform:scale(1)}.fade-in:first-child{transition-delay:0.1s}.fade-in:nth-child(2){transition-delay:0.2s}.fade-in:nth-child(3){transition-delay:0.3s}.fade-in:nth-child(4){transition-delay:0.4s}.fade-in:nth-child(5){transition-delay:0.5s}.fade-in:nth-child(6){transition-delay:0.6s}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes slide-in{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}.slide-in{animation:slide-in .5s ease-out forwards}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.bounce{animation:bounce 1s ease-in-out}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}.gradient-animated{background-size:200% 200%;animation:gradient-shift 5s ease infinite}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.rotate{animation:rotate 2s linear infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}.float{animation:float 3s ease-in-out infinite}@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.3) 50%,rgba(255,255,255,0) 100%);background-size:1000px 100%;animation:shimmer 2s infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;width:40px;height:40px;animation:spin .8s linear infinite}.hover-lift{transition:transform .3s ease-in-out,box-shadow .3s ease-in-out}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 20px rgba(0,0,0,.15)}@keyframes glow{0%,100%{box-shadow:0 0 5px rgba(99,102,241,.5)}50%{box-shadow:0 0 20px rgba(99,102,241,.8),0 0 30px rgba(99,102,241,.6)}}.glow{animation:glow 2s ease-in-out infinite}@keyframes page-load{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}body{animation:page-load .5s ease-out}.btn-press{transition:transform .1s ease-in-out}.btn-press:active{transform:scale(.95)}.underline-animated{position:relative;display:inline-block}.underline-animated::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:#6366f1;transition:width .3s ease-in-out}.underline-animated:hover::after{width:100%}.blur-fade-in{opacity:0;filter:blur(10px);transition:opacity .8s ease-out,filter .8s ease-out}.blur-fade-in.visible{opacity:1;filter:blur(0)}.color-transition{transition:color .3s ease-in-out,background-color .3s ease-in-out}@keyframes ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background-color:rgba(255,255,255,.5);transform:translate(-50%,-50%);animation:ripple .6s ease-out}@keyframes typewriter{from{width:0}to{width:100%}}.typewriter{overflow:hidden;white-space:nowrap;border-right:2px solid #6366f1;animation:typewriter 3s steps(40) 1s forwards}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.shake{animation:shake .5s ease-in-out}.zoom-hover{transition:transform .3s ease-in-out;overflow:hidden}.zoom-hover:hover{transform:scale(1.05)}.skew-hover{transition:transform .3s ease-in-out}.skew-hover:hover{transform:skewX(-2deg)}.transition-all{transition:all .3s ease-in-out}.transition-fast{transition:all .15s ease-in-out}.transition-slow{transition:all .6s ease-out}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}