@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes glow{0%,to{box-shadow:0 0 20px #3b82f680}50%{box-shadow:0 0 30px #3b82f6cc}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes countUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fadeInUp{animation:fadeInUp .6s ease-out forwards}.animate-fadeInDown{animation:fadeInDown .6s ease-out forwards}.animate-fadeIn{animation:fadeIn .8s ease-out forwards}.animate-slideInLeft{animation:slideInLeft .6s ease-out forwards}.animate-slideInRight{animation:slideInRight .6s ease-out forwards}.animate-scaleIn{animation:scaleIn .5s ease-out forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}.gradient-animated{background:linear-gradient(-45deg,#667eea,#764ba2,#f093fb,#4facfe);background-size:400% 400%;animation:gradient 15s ease infinite}.shimmer{background:linear-gradient(to right,#f0f0f0,#e0e0e0,#f0f0f0 40%,#f0f0f0);background-size:2000px 100%;animation:shimmer 2s linear infinite}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px #00000026}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 30px #3b82f699}.hover-rotate{transition:transform .3s ease}.hover-rotate:hover{transform:rotate(5deg)}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-ripple:active:after{width:300px;height:300px}.spinner{border:3px solid rgba(0,0,0,.1);border-top-color:#3b82f6;border-radius:50%;width:40px;height:40px;animation:spin .8s linear infinite}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.transition-bounce{transition:all .5s cubic-bezier(.68,-.55,.265,1.55)}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s,transform .3s}.page-exit{opacity:1}.page-exit-active{opacity:0;transition:opacity .2s}.animate-on-scroll{opacity:0;transform:translateY(30px)}.animate-on-scroll.visible{opacity:1;transform:translateY(0);transition:opacity .6s ease-out,transform .6s ease-out}.stagger-children>*{opacity:0;transform:translateY(20px)}.stagger-children.animate>*:nth-child(1){animation:fadeInUp .6s ease-out .1s forwards}.stagger-children.animate>*:nth-child(2){animation:fadeInUp .6s ease-out .2s forwards}.stagger-children.animate>*:nth-child(3){animation:fadeInUp .6s ease-out .3s forwards}.stagger-children.animate>*:nth-child(4){animation:fadeInUp .6s ease-out .4s forwards}.stagger-children.animate>*:nth-child(5){animation:fadeInUp .6s ease-out .5s forwards}.stagger-children.animate>*:nth-child(6){animation:fadeInUp .6s ease-out .6s forwards}.counter-animate{animation:countUp 1s ease-out forwards}.glass-morph{background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.text-gradient-animate{background:linear-gradient(45deg,#667eea,#764ba2,#f093fb,#4facfe);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient 5s ease infinite}.flip-card{perspective:1000px}.flip-card-inner{transition:transform .6s;transform-style:preserve-3d}.flip-card:hover .flip-card-inner{transform:rotateY(180deg)}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}.typing-animation{overflow:hidden;border-right:2px solid #333;white-space:nowrap;animation:typing 3.5s steps(40,end),blink .75s step-end infinite}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.checkmark-animate{stroke-dasharray:100;stroke-dashoffset:100;animation:checkmark .6s ease-out forwards}@keyframes progress{0%{width:0%}to{width:var(--progress-width)}}.progress-animate{animation:progress 1s ease-out forwards}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti{animation:confetti-fall 3s linear forwards}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
