:root{--animation-duration-fast:0.2s;--animation-duration-normal:0.3s;--animation-duration-slow:0.5s;--animation-duration-slower:0.8s;--easing-ease:ease;--easing-ease-in:ease-in;--easing-ease-out:ease-out;--easing-ease-in-out:ease-in-out;--easing-bounce:cubic-bezier(0.68, -0.55, 0.265, 1.55);--easing-smooth:cubic-bezier(0.25, 0.46, 0.45, 0.94)}@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 fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleUp{from{transform:scale(1)}to{transform:scale(1.05)}}@keyframes slideInUp{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes bounce{0%,100%,20%,53%,80%{transform:translateY(0)}40%,43%{transform:translateY(-10px)}70%{transform:translateY(-5px)}90%{transform:translateY(-2px)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--animation-duration-normal) var(--easing-ease) forwards}.animate-fade-in-up{animation:fadeInUp var(--animation-duration-normal) var(--easing-ease) forwards}.animate-fade-in-down{animation:fadeInDown var(--animation-duration-normal) var(--easing-ease) forwards}.animate-fade-in-left{animation:fadeInLeft var(--animation-duration-normal) var(--easing-ease) forwards}.animate-fade-in-right{animation:fadeInRight var(--animation-duration-normal) var(--easing-ease) forwards}.animate-scale-in{animation:scaleIn var(--animation-duration-normal) var(--easing-bounce) forwards}.animate-pulse{animation:pulse 2s infinite}.hover-scale{transition:transform var(--animation-duration-fast) var(--easing-ease)}.hover-scale:hover{transform:scale(1.05)}.hover-lift{transition:transform var(--animation-duration-fast) var(--easing-ease)}.hover-lift:hover{transform:translateY(-5px)}.hover-glow{transition:box-shadow var(--animation-duration-normal) var(--easing-ease)}.hover-glow:hover{box-shadow:0 0 20px rgba(37,99,235,.3)}.scroll-animate{opacity:0;transform:translateY(30px);transition:all var(--animation-duration-slower) var(--easing-smooth)}.scroll-animate.animate{opacity:1;transform:translateY(0)}.scroll-animate-left{opacity:0;transform:translateX(-30px);transition:all var(--animation-duration-slower) var(--easing-smooth)}.scroll-animate-left.animate{opacity:1;transform:translateX(0)}.scroll-animate-right{opacity:0;transform:translateX(30px);transition:all var(--animation-duration-slower) var(--easing-smooth)}.scroll-animate-right.animate{opacity:1;transform:translateX(0)}.scroll-animate-scale{opacity:0;transform:scale(.8);transition:all var(--animation-duration-slower) var(--easing-smooth)}.scroll-animate-scale.animate{opacity:1;transform:scale(1)}.loading-spinner{width:40px;height:40px;border:4px solid var(--light-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.loading-dots{display:inline-block}.loading-dots::after{content:'';animation:dots 1.5s steps(4,end) infinite}@keyframes dots{0%,20%{content:''}40%{content:'.'}60%{content:'..'}100%,80%{content:'...'}}.header.scrolled{background-color:rgba(255,255,255,.95);backdrop-filter:blur(10px);box-shadow:var(--shadow-md)}.btn{position:relative;overflow:hidden;transition:all var(--animation-duration-normal) var(--easing-ease)}.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left var(--animation-duration-slow) var(--easing-ease)}.btn:hover::before{left:100%}.card{transition:all var(--animation-duration-normal) var(--easing-ease)}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.form-group{position:relative}.form-input{transition:all var(--animation-duration-fast) var(--easing-ease)}.form-input:focus{transform:scale(1.02);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.form-label{transition:all var(--animation-duration-fast) var(--easing-ease)}.form-input:focus+.form-label,.form-input:not(:placeholder-shown)+.form-label{transform:translateY(-20px) scale(.8);color:var(--primary-color)}.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}.gpu-accelerated{transform:translateZ(0);will-change:transform,opacity}@media (max-width:767px){.scroll-animate,.scroll-animate-left,.scroll-animate-right,.scroll-animate-scale{transition-duration:var(--animation-duration-normal)}}@keyframes heroFadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes heroBackgroundFloat{0%,100%{transform:translate(0,0) rotate(0)}33%{transform:translate(30px,-30px) rotate(120deg)}66%{transform:translate(-20px,20px) rotate(240deg)}}@keyframes servicesBackgroundFloat{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(-20px,-20px) rotate(180deg)}}@keyframes serviceCardSlideUp{from{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes serviceIconFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes serviceIconPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,.4)}50%{transform:scale(1.05);box-shadow:0 0 0 10px rgba(37,99,235,0)}}@keyframes serviceCardShimmer{0%{left:-100%}100%{left:100%}}@keyframes serviceCardBounce{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-3px)}}.service-card-animate{animation:serviceCardSlideUp var(--animation-duration-slower) var(--easing-smooth) forwards;opacity:0;transform:translateY(50px) scale(.95)}.service-card-animate:first-child{animation-delay:.1s}.service-card-animate:nth-child(2){animation-delay:.2s}.service-card-animate:nth-child(3){animation-delay:.3s}.service-card-animate:nth-child(4){animation-delay:.4s}.service-icon-float{animation:serviceIconFloat 3s ease-in-out infinite}.service-icon-pulse{animation:serviceIconPulse 2s ease-in-out infinite}@keyframes heroButtonShimmer{0%{left:-100%}100%{left:100%}}.hero-animate-1{animation:heroFadeInUp 1s ease .2s forwards;opacity:0;transform:translateY(30px)}.hero-animate-2{animation:heroFadeInUp 1s ease .5s forwards;opacity:0;transform:translateY(30px)}.hero-animate-3{animation:heroFadeInUp 1s ease .8s forwards;opacity:0;transform:translateY(30px)}@keyframes timelineGrow{from{height:0}to{height:100%}}.timeline__line.animate{animation:timelineGrow 2s ease-out forwards}@keyframes methodologyStepSlideIn{from{opacity:0;transform:translateX(-50px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes methodologyStepSlideInRight{from{opacity:0;transform:translateX(50px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}.methodology-step.scroll-animate-left{animation:methodologyStepSlideIn var(--animation-duration-slower) var(--easing-smooth) forwards;opacity:0;transform:translateX(-50px) scale(.9)}.methodology-step.scroll-animate-right{animation:methodologyStepSlideInRight var(--animation-duration-slower) var(--easing-smooth) forwards;opacity:0;transform:translateX(50px) scale(.9)}@keyframes methodologyNumberPulse{0%,100%{transform:scale(1);box-shadow:0 8px 25px rgba(37,99,235,.3)}50%{transform:scale(1.05);box-shadow:0 12px 35px rgba(37,99,235,.4)}}.methodology-step__number.animate{animation:methodologyNumberPulse 2s ease-in-out infinite}@keyframes countUp{from{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.scroll-animate-up{opacity:0;transform:translateY(20px) scale(.8);transition:all var(--animation-duration-slower) var(--easing-bounce)}.scroll-animate-up.animate{animation:countUp var(--animation-duration-slower) var(--easing-bounce) forwards}.outcome-stat:first-child .scroll-animate-up{animation-delay:.1s}.outcome-stat:nth-child(2) .scroll-animate-up{animation-delay:.2s}.outcome-stat:nth-child(3) .scroll-animate-up{animation-delay:.3s}.outcome-stat:nth-child(4) .scroll-animate-up{animation-delay:.4s}@keyframes expertiseItemFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.expertise-item.animate{animation:expertiseItemFloat 3s ease-in-out infinite}.expertise-item:first-child{animation-delay:0s}.expertise-item:nth-child(2){animation-delay:1s}.expertise-item:nth-child(3){animation-delay:2s}@keyframes aboutBackgroundFloat{0%,100%{transform:translate(0,0) rotate(0)}33%{transform:translate(-20px,-20px) rotate(120deg)}66%{transform:translate(20px,20px) rotate(240deg)}}@keyframes benefitItemSlideIn{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.methodology-step__benefits li{opacity:0;animation:benefitItemSlideIn .5s ease forwards}.methodology-step__benefits li:first-child{animation-delay:.1s}.methodology-step__benefits li:nth-child(2){animation-delay:.2s}.methodology-step__benefits li:nth-child(3){animation-delay:.3s}@keyframes iconRotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.methodology-step__icon.animate svg{animation:iconRotate 2s ease-in-out}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}.scroll-animate,.scroll-animate-left,.scroll-animate-right,.scroll-animate-scale{opacity:1;transform:none}.loading-spinner{animation:none;border-top-color:var(--primary-color)}.hero::before{animation:none!important}.hero-animate-1,.hero-animate-2,.hero-animate-3,.hero__buttons,.hero__description,.hero__title{animation:none!important;opacity:1!important;transform:none!important}}