:root{--primary: #4f46e5;--primary-dark: #4338ca;--secondary: #a855f7;--accent: #ec4899}@keyframes blob{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}to{transform:translate(0) scale(1)}}.animate-blob{animation:blob 7s infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float{animation:float 6s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #4f46e54d}50%{box-shadow:0 0 40px #4f46e599}}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@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 slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-scaleIn{animation:scaleIn .3s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fadeIn{animation:fadeIn .2s ease-out forwards}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-gradient{background-size:200% 200%;animation:gradient-shift 8s ease infinite}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.animate-shake:hover{animation:shake .5s ease-in-out}@keyframes ripple{0%{width:0;height:0;opacity:1}to{width:300px;height:300px;opacity:0}}@keyframes bounce-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);background-size:1000px 100%;animation:shimmer 2s infinite}@keyframes ripple{0%{transform:scale(0);opacity:1}to{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:#ffffff80;transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple-effect:active:after{width:300px;height:300px}@keyframes card-shine{0%{transform:translate(-100%) translateY(-100%) rotate(30deg)}to{transform:translate(100%) translateY(100%) rotate(30deg)}}.card-shine{position:relative;overflow:hidden}.card-shine:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transform:translate(-100%) translateY(-100%) rotate(30deg)}.card-shine:hover:before{animation:card-shine .8s ease-in-out}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#cbd5e1,#94a3b8);border-radius:6px;border:2px solid #f1f5f9}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#94a3b8,#64748b)}html{scroll-behavior:smooth;overflow-x:hidden}body{overflow-x:hidden}.typing-cursor:after{content:"|";animation:blink 1s step-start infinite;margin-left:2px}@keyframes blink{50%{opacity:0}}*{transition-timing-function:cubic-bezier(.4,0,.2,1)}.parallax{transform:translateZ(0);will-change:transform}.glass{background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.hover-lift{transition:all .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #00000026}@keyframes border-spin{to{transform:rotate(360deg)}}.gradient-border{position:relative;overflow:hidden}.gradient-border:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(45deg,#4f46e5,#a855f7,#ec4899,#4f46e5);background-size:300% 300%;animation:gradient-shift 4s ease infinite;border-radius:inherit;z-index:-1;opacity:0;transition:opacity .3s ease}.gradient-border:hover:before{opacity:1}html{font-size:clamp(14px,.875rem + .3125vw,18px)}body{line-height:clamp(1.5,1.4 + .2vw,1.75)}@media(min-width:768px){*{cursor:none!important}}.custom-cursor-dot{position:fixed;width:12px;height:12px;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);border-radius:50%;pointer-events:none;z-index:99999;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 0 20px #667eeacc,0 0 40px #764ba266,inset 0 0 10px #ffffff80;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 20px #667eeacc,0 0 40px #764ba266,inset 0 0 10px #ffffff80}50%{box-shadow:0 0 30px #667eea,0 0 60px #764ba299,inset 0 0 15px #ffffffb3}}.custom-cursor-inner-ring{position:fixed;width:24px;height:24px;border:2px solid rgba(102,126,234,.8);border-radius:50%;pointer-events:none;z-index:99998;transition:all .3s cubic-bezier(.175,.885,.32,1.275);background:radial-gradient(circle,rgba(102,126,234,.2) 0%,transparent 70%);box-shadow:0 0 15px #667eea99,inset 0 0 10px #667eea4d}.custom-cursor-circle{position:fixed;width:40px;height:40px;border:2px solid rgba(102,126,234,.4);border-radius:50%;pointer-events:none;z-index:99997;transition:all .35s cubic-bezier(.175,.885,.32,1.275);background:radial-gradient(circle,rgba(102,126,234,.1) 0%,transparent 70%);animation:rotate-ring 8s linear infinite;border-style:dashed;border-spacing:5px}@keyframes rotate-ring{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.custom-cursor-glow{position:fixed;width:60px;height:60px;border-radius:50%;pointer-events:none;z-index:99996;transition:all .4s cubic-bezier(.175,.885,.32,1.275);background:radial-gradient(circle,rgba(102,126,234,.3) 0%,rgba(118,75,162,.2) 30%,rgba(240,147,251,.1) 60%,transparent 100%);filter:blur(20px);animation:pulse-glow 3s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}.custom-cursor-particle{position:fixed;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;pointer-events:none;z-index:99995;transition:opacity .3s ease-out;box-shadow:0 0 10px #667eea99;animation:particle-float 1s ease-out forwards}@keyframes particle-float{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) translateY(-20px) scale(.5)}}h1,.text-5xl,.text-6xl,.text-7xl{font-size:clamp(2rem,1.5rem + 3vw,4.5rem)!important;line-height:1.1!important}h2,.text-4xl{font-size:clamp(1.75rem,1.5rem + 2vw,3rem)!important;line-height:1.2!important}h3,.text-3xl{font-size:clamp(1.5rem,1.25rem + 1.5vw,2.25rem)!important;line-height:1.25!important}h4,.text-2xl{font-size:clamp(1.25rem,1.125rem + 1vw,1.875rem)!important;line-height:1.3!important}.text-xl{font-size:clamp(1.125rem,1rem + .75vw,1.5rem)!important}.text-lg{font-size:clamp(1rem,.95rem + .5vw,1.25rem)!important}.text-base{font-size:clamp(.875rem,.85rem + .25vw,1.125rem)!important}.text-sm{font-size:clamp(.75rem,.7rem + .2vw,.95rem)!important}.text-xs{font-size:clamp(.65rem,.6rem + .15vw,.85rem)!important}@media(max-width:640px){.px-4{padding-left:clamp(1rem,2vw,1.5rem)!important;padding-right:clamp(1rem,2vw,1.5rem)!important}.py-4{padding-top:clamp(1rem,2vw,1.5rem)!important;padding-bottom:clamp(1rem,2vw,1.5rem)!important}.gap-4{gap:clamp(.75rem,1.5vw,1.25rem)!important}}@media(hover:none)and (pointer:coarse){.hover-lift:active{transform:translateY(-4px) scale(1.01)}button,a{min-height:44px;min-width:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}@media print{nav,.no-print{display:none!important}section{page-break-inside:avoid}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.animate-fadeInUp{animation:fadeInUp .6s ease-out forwards}.animate-fadeInDown{animation:fadeInDown .6s ease-out forwards}.animate-fadeInLeft{animation:fadeInLeft .6s ease-out forwards}.animate-fadeInRight{animation:fadeInRight .6s ease-out forwards}@keyframes zoomIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes zoomOut{0%{opacity:0;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}.animate-zoomIn{animation:zoomIn .5s ease-out forwards}.animate-zoomOut{animation:zoomOut .5s ease-out forwards}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg) scale(.5)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes rotateInUpLeft{0%{opacity:0;transform:rotate3d(0,0,1,45deg);transform-origin:left bottom}to{opacity:1;transform:rotate3d(0,0,1,0);transform-origin:left bottom}}.animate-rotateIn{animation:rotateIn .8s ease-out forwards}.animate-rotateInUpLeft{animation:rotateInUpLeft .8s ease-out forwards}@keyframes flipInX{0%{opacity:0;transform:perspective(400px) rotateX(90deg)}to{opacity:1;transform:perspective(400px) rotateX(0)}}@keyframes flipInY{0%{opacity:0;transform:perspective(400px) rotateY(90deg)}to{opacity:1;transform:perspective(400px) rotateY(0)}}.animate-flipInX{animation:flipInX .6s ease-out forwards;backface-visibility:visible}.animate-flipInY{animation:flipInY .6s ease-out forwards;backface-visibility:visible}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}.animate-bounceIn{animation:bounceIn .8s ease-out forwards}@keyframes elasticIn{0%{opacity:0;transform:scale(0)}55%{opacity:1;transform:scale(1.15)}65%{transform:scale(.95)}75%{transform:scale(1.05)}to{transform:scale(1)}}.animate-elasticIn{animation:elasticIn 1s ease-out forwards}@keyframes wave{0%,to{transform:rotate(0)}10%,30%{transform:rotate(-10deg)}20%,40%{transform:rotate(10deg)}}.animate-wave{animation:wave 2s ease-in-out infinite;transform-origin:70% 70%;display:inline-block}@keyframes glow{0%,to{text-shadow:0 0 10px rgba(79,70,229,.5),0 0 20px rgba(79,70,229,.3),0 0 30px rgba(79,70,229,.2)}50%{text-shadow:0 0 20px rgba(79,70,229,.8),0 0 30px rgba(79,70,229,.6),0 0 40px rgba(79,70,229,.4)}}.animate-glow{animation:glow 2s ease-in-out infinite}@keyframes progressBar{0%{width:0%}to{width:100%}}.animate-progressBar{animation:progressBar 1.5s ease-out forwards}@keyframes backgroundPan{0%{background-position:0% center}to{background-position:-200% center}}.animate-backgroundPan{animation:backgroundPan 3s linear infinite}@keyframes slideAndFade{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-slideAndFade{animation:slideAndFade .6s ease-out forwards}@keyframes pulsateBorder{0%,to{border-color:#4f46e54d;box-shadow:0 0 #4f46e566}50%{border-color:#4f46e5cc;box-shadow:0 0 0 10px #4f46e500}}.animate-pulsateBorder{animation:pulsateBorder 2s ease-in-out infinite}@keyframes typing{0%{width:0}to{width:100%}}.animate-typing{overflow:hidden;white-space:nowrap;border-right:2px solid;animation:typing 3.5s steps(40,end),blink .75s step-end infinite}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.stagger-6{animation-delay:.6s}.stagger-7{animation-delay:.7s}.stagger-8{animation-delay:.8s}@keyframes kenBurns{0%{transform:scale(1) translate(0)}to{transform:scale(1.1) translate(10px,10px)}}.animate-kenBurns{animation:kenBurns 20s ease-in-out infinite alternate}
