:root{--cursor-scale:1;--cursor-size:20px;--cursor-size-hover:40px;--cursor-border-width:2px;--cursor-border-width-hover:3px;--animation-duration-fast:0.2s;--animation-duration-normal:0.3s;--animation-duration-slow:0.4s;--animation-easing:cubic-bezier(0.4,0,0.2,1);--shadow-sm:0 10px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--shadow-md:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--scale-hover:1.05;--translate-y-hover:-5px}.custom-cursor{position:fixed;width:var(--cursor-size);height:var(--cursor-size);border:var(--cursor-border-width) solid hsl(var(--primary));border-radius:50%;pointer-events:none;z-index:9999;opacity:0;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:width var(--animation-duration-normal) var(--animation-easing),height var(--animation-duration-normal) var(--animation-easing),opacity var(--animation-duration-normal) ease,transform var(--animation-duration-fast) var(--animation-easing),border-width var(--animation-duration-normal) var(--animation-easing);will-change:transform,opacity}.custom-cursor.cursor-active,body.landing-page-active:hover .custom-cursor{opacity:1}body.landing-page-active .hover-scale-card:hover,body.landing-page-active a:hover,body.landing-page-active button:hover{cursor:none}body.landing-page-active:has(.hover-scale-card:hover) .custom-cursor,body.landing-page-active:has(a:hover) .custom-cursor,body.landing-page-active:has(button:hover) .custom-cursor{width:var(--cursor-size-hover);height:var(--cursor-size-hover);border-width:var(--cursor-border-width-hover)}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-right{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes card-fall{0%{opacity:0;transform:translateY(-100px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gradient{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes blob{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.animate-fade-in-up{animation:fade-in-up .6s ease-out forwards}.animate-fade-in-up-delay-1{animation:fade-in-up .8s ease-out .1s forwards;opacity:0}.animate-fade-in-up-delay-2{animation:fade-in-up .8s ease-out .3s forwards;opacity:0}.animate-fade-in-up-delay-3{animation:fade-in-up .8s ease-out .5s forwards;opacity:0}.animate-fade-in-up-delay-4{animation:fade-in-up .8s ease-out .7s forwards;opacity:0}.animate-slide-down{animation:slide-down .6s ease-out}.animate-fade-in-right{animation:fade-in-right .6s ease-out}.animate-fade-in-left{animation:fade-in-left .6s ease-out}.card-animate{animation:card-fall .8s ease-out forwards;opacity:0;will-change:transform,opacity}.hover-scale{transition:transform var(--animation-duration-normal) var(--animation-easing),box-shadow var(--animation-duration-normal) ease;will-change:transform}.hover-scale:hover{transform:scale(var(--scale-hover));box-shadow:var(--shadow-sm)}.hover-scale-card{transition:transform var(--animation-duration-slow) var(--animation-easing),box-shadow var(--animation-duration-slow) ease,border-color var(--animation-duration-normal) ease;cursor:pointer;will-change:transform}.hover-scale-card:hover{transform:scale(var(--scale-hover)) translateY(var(--translate-y-hover));box-shadow:var(--shadow-md);border-color:hsl(var(--primary))}.hover-slide{position:relative;overflow:hidden}.hover-slide:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s ease;pointer-events:none}.hover-slide:hover:before{left:100%}.animate-icon-float{animation:icon-float 3s ease-in-out infinite;will-change:transform}.animate-bounce-slow{animation:bounce-slow 2s ease-in-out infinite;will-change:transform}.animate-gradient{background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--primary)/.7),hsl(var(--primary)));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient 3s linear infinite;will-change:background-position}.animate-blob{animation:blob 7s infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}.bg-grid-pattern{background-image:linear-gradient(to right,hsl(var(--primary)/.1) 1px,transparent 1px),linear-gradient(to bottom,hsl(var(--primary)/.1) 1px,transparent 1px);background-size:50px 50px}body.landing-page-active{cursor:none}body.landing-page-active *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){.animate-blob,.animate-bounce-slow,.animate-gradient,.animate-icon-float,.custom-cursor,.hover-scale,.hover-scale-card,.hover-slide:before{animation:none!important;transition:none!important}html{scroll-behavior:auto}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-left{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-up{animation:fade-in-up .8s ease-out forwards}.animate-fade-in-left{animation:fade-in-left 1s cubic-bezier(.16,1,.3,1) forwards}.animate-bounce-slow{animation:bounce-slow 4s ease-in-out infinite}@keyframes bounce-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.glass{background:hsla(0,0%,100%,.03);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.1)}