*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{transition:opacity .3s ease-in-out}[class*=animate-]:not([class*=animate-spin]){backface-visibility:hidden;perspective:1000px;will-change:transform,opacity}.feature-card,.hero-content,.testimonial-item{contain-intrinsic-size:200px;content-visibility:auto}.card{contain:layout style}img{contain-intrinsic-size:48px 48px;content-visibility:auto}.animate-spin{transform-style:preserve-3d;will-change:transform;animation:1s linear infinite spin}.animate-fade-in{opacity:0;animation:.5s ease-in forwards fadeIn}.animate-fade-in-slow{opacity:0;animation:1s ease-in forwards fadeIn}.animate-slide-down{animation:.5s ease-out slideDown}.animate-slide-up{animation:.5s ease-out slideUp}.animate-slide-left{animation:.5s ease-out slideLeft}.animate-slide-right{animation:.5s ease-out slideRight}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.animate-slide-in{animation:.6s ease-out forwards slide-in}.animate-float{animation:2s ease-in-out infinite float}.animate-custom-bounce{animation:1.5s ease-in-out infinite custom-bounce}.animate-fade-up,.animate-fade-up-smooth{opacity:0;transform:translateY(20px)}.smooth-enter{opacity:.8;transition:all 1.5s cubic-bezier(.23,1,.32,1);transform:translateY(10px)}.smooth-enter.active{opacity:1;transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%{opacity:0;transform:translateY(0)scale(1)}50%{opacity:1;transform:translateY(-20px)scale(1.2)}to{opacity:0;transform:translateY(-40px)scale(.8)}}@keyframes custom-bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-15%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:translateY(15%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes flow-right{0%{opacity:0;left:-4px}10%{opacity:1}90%{opacity:1}to{opacity:0;left:28px}}.animate-flow-right{animation:2s ease-in-out infinite flow-right}
.bg-dot-pattern{background-image:radial-gradient(#0000001a 1px,#0000 0);background-size:24px 24px}.dark .bg-dot-pattern{background-image:radial-gradient(#ffffff1a 1px,#0000 0)}
