html{scroll-behavior:smooth}.bg-grid-pattern{background-image:linear-gradient(to right,hsl(var(--border)) 1px,transparent 1px),linear-gradient(to bottom,hsl(var(--border)) 1px,transparent 1px);background-size:40px 40px}@keyframes float{0%,to{transform:translateY(0) translateX(0) rotate(0deg);opacity:.3}25%{transform:translateY(-20px) translateX(10px) rotate(5deg);opacity:.5}50%{transform:translateY(-40px) translateX(-10px) rotate(-5deg);opacity:.4}75%{transform:translateY(-20px) translateX(5px) rotate(3deg);opacity:.5}}.animate-float{animation:float 20s ease-in-out infinite}@keyframes gradient-float{0%,to{transform:translate(0) scale(1);opacity:.6}33%{transform:translate(30px,-30px) scale(1.1);opacity:.8}66%{transform:translate(-20px,20px) scale(.9);opacity:.7}}@keyframes gradient-mesh{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.bg-gradient-mesh{background:linear-gradient(135deg,hsl(var(--primary)/.03) 0,hsl(var(--primary)/.01) 50%,hsl(var(--primary)/.03) 100%);background-size:200% 200%;animation:gradient-mesh 15s ease infinite}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-shimmer{background:linear-gradient(90deg,transparent 0,hsl(var(--primary)/.1) 50%,transparent 100%);background-size:1000px 100%;animation:shimmer 3s infinite}@keyframes fadeInUpRefined{0%{opacity:0;transform:translateY(30px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInRefined{0%{opacity:0}to{opacity:1}}@keyframes slideInSubtle{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeInRefined 1.2s cubic-bezier(.25,.46,.45,.94) forwards}.animate-on-scroll,.animate-on-scroll-delay-1{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .6s cubic-bezier(.25,.46,.45,.94);will-change:opacity,transform}.animate-on-scroll-delay-1{transition-delay:.08s}.animate-on-scroll-delay-2{transition:opacity .5s ease,transform .6s cubic-bezier(.25,.46,.45,.94);transition-delay:.16s}.animate-on-scroll-delay-2,.animate-on-scroll-delay-3{opacity:0;transform:translateY(24px);will-change:opacity,transform}.animate-on-scroll-delay-3{transition:opacity .5s ease,transform .6s cubic-bezier(.25,.46,.45,.94);transition-delay:.24s}.animate-on-scroll-delay-1.visible,.animate-on-scroll-delay-2.visible,.animate-on-scroll-delay-3.visible,.animate-on-scroll.visible{opacity:1!important;transform:translateY(0)}.animate-on-scroll-delay-1.visible,.animate-on-scroll-delay-2.visible,.animate-on-scroll-delay-3.visible,.animate-on-scroll.visible{will-change:auto}.card-pop-hover{transform-origin:center center;transition:transform .3s cubic-bezier(.34,1.56,.64,1);backface-visibility:hidden;-webkit-backface-visibility:hidden}.card-pop-hover.group:hover{transform:scale(1.015) rotate(0deg)}.card-active.card-pop-active{transform:scale(1.02) rotate(0deg);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}a,button{transition:all .2s ease-in-out}section[id]{scroll-margin-top:80px}.landing-section-title{font-size:1.875rem;line-height:2.25rem;font-weight:800;letter-spacing:-.025em}@media (min-width:640px){.landing-section-title{font-size:2.25rem;line-height:2.5rem}}@media (min-width:1024px){.landing-section-title{font-size:3rem;line-height:1}}.landing-section-title{letter-spacing:-.02em;transform:translateZ(0)}.landing-section-subtitle{font-size:1.125rem;line-height:1.75rem;font-weight:500;color:hsl(var(--muted-foreground))}@media (min-width:640px){.landing-section-subtitle{font-size:1.25rem;line-height:1.75rem}}.landing-section-subtitle{line-height:1.7;transform:translateZ(0)}.landing-card{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;animation-duration:.3s}.landing-card:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@keyframes button-shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.accent-line{position:relative}.accent-line:after{content:"";position:absolute;bottom:-.5rem;left:50%;height:.375rem;width:4rem;--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from:transparent var(--tw-gradient-from-position);--tw-gradient-to:rgb(0 0 0/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:rgb(34 197 94/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#22c55e var(--tw-gradient-via-position),var(--tw-gradient-to);--tw-gradient-to:transparent var(--tw-gradient-to-position);animation:accent-pulse 2s ease-in-out infinite}@keyframes accent-pulse{0%,to{opacity:.6;transform:translateX(-50%) scaleX(1)}50%{opacity:1;transform:translateX(-50%) scaleX(1.2)}}.green-glow{box-shadow:0 0 20px rgba(34,197,94,.3)}.green-glow:hover{box-shadow:0 0 30px rgba(34,197,94,.5)}.card-hover-green{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;animation-duration:.3s;border-color:hsl(var(--border))}.card-hover-green:hover{border-color:rgb(34,197,94);--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transform:translateY(-4px)}.card-hover-green:hover:before{content:"";position:absolute;inset:0;border-radius:.75rem;background:linear-gradient(135deg,rgba(34,197,94,.05),transparent);pointer-events:none}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.animate-marquee{animation:marquee 30s linear infinite}@media (max-width:1024px){.animate-marquee{animation-duration:24s}}@media (max-width:640px){.animate-marquee{animation-duration:16s}}.animate-marquee:hover{animation-play-state:paused}