@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleUp{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.fade-in{animation:fadeIn 0.6s ease-out}.fade-in-up{animation:fadeInUp 0.6s ease-out}.fade-in-down{animation:fadeInDown 0.6s ease-out}.slide-in-left{animation:slideInLeft 0.6s ease-out}.slide-in-right{animation:slideInRight 0.6s ease-out}.scale-up{animation:scaleUp 0.5s ease-out}.bounce{animation:bounce 0.6s ease}.pulse{animation:pulse 1s ease infinite}.shake{animation:shake 0.5s ease}.rotate{animation:rotate 1s linear infinite}.stagger-item{opacity:0;animation:fadeInUp 0.5s ease-out forwards}.stagger-item:nth-child(1){animation-delay:0.1s}.stagger-item:nth-child(2){animation-delay:0.2s}.stagger-item:nth-child(3){animation-delay:0.3s}.stagger-item:nth-child(4){animation-delay:0.4s}.stagger-item:nth-child(5){animation-delay:0.5s}.stagger-item:nth-child(6){animation-delay:0.6s}.stagger-item:nth-child(7){animation-delay:0.7s}.stagger-item:nth-child(8){animation-delay:0.8s}.counter{font-size:3rem;font-weight:700;color:#6366f1}.progress-fill-animate{animation:progressFill 1.5s ease-out forwards}@keyframes progressFill{from{width:0}}@keyframes checkmarkDraw{0%{stroke-dashoffset:100}100%{stroke-dashoffset:0}}.checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166;animation:checkmarkCircle 0.6s ease-out forwards}@keyframes checkmarkCircle{to{stroke-dashoffset:0}}.checkmark-check{stroke-dasharray:48;stroke-dashoffset:48;animation:checkmarkDraw 0.3s 0.6s ease-out forwards}.confetti{position:fixed;width:10px;height:10px;background:#6366f1;position:absolute;animation:confettiFall 3s ease-out forwards}@keyframes confettiFall{to{transform:translateY(100vh) rotate(360deg);opacity:0}}.scroll-reveal{opacity:0;transform:translateY(50px);transition:opacity 0.6s ease,transform 0.6s ease}.scroll-reveal.visible{opacity:1;transform:translateY(0)}.parallax{transition:transform 0.1s ease-out}.page-transition-enter{animation:fadeIn 0.5s ease-out}.page-transition-exit{animation:fadeOut 0.5s ease-out}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.number-counter{display:inline-block;font-variant-numeric:tabular-nums}.shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,0.1),transparent);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.glow-pulse{animation:glowPulse 2s ease-in-out infinite}@keyframes glowPulse{0%,100%{box-shadow:0 0 20px rgba(99,102,241,0.3)}50%{box-shadow:0 0 40px rgba(99,102,241,0.6)}}.flip{animation:flip 0.6s ease}@keyframes flip{0%{transform:perspective(400px) rotateY(0)}100%{transform:perspective(400px) rotateY(360deg)}}.zoom-in{animation:zoomIn 0.5s ease}@keyframes zoomIn{from{opacity:0;transform:scale(0.5)}to{opacity:1;transform:scale(1)}}.slide-up{animation:slideUp 0.5s ease}@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}.typewriter{overflow:hidden;border-right:2px solid #6366f1;white-space:nowrap;animation:typing 3s steps(40) 1s forwards,blink 0.75s step-end infinite}@keyframes typing{from{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}}
