@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in{animation:fadeIn 1s ease-out}.animate-fade-in-delay{animation:fadeIn 1s ease-out .3s both}.animate-fade-in-delay-2{animation:fadeIn 1s ease-out .6s both}.animate-slide-left{animation:slideInFromLeft .8s ease-out}.animate-slide-right{animation:slideInFromRight .8s ease-out}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}a{transition:all .2s ease}.feature-card{transition:all .3s ease}.feature-card:hover{transform:translateY(-5px)}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.3);transition:width .6s,height .6s;transform:translate(-50%,-50%)}.btn-ripple:active:before{width:300px;height:300px}.form-input:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.spinner{border:4px solid #f3f4f6;border-top-color:#3b82f6;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-8px);box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.text-gradient{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (max-width:768px){.animate-fade-in,.animate-fade-in-delay,.animate-fade-in-delay-2{animation-duration:.6s}.feature-card:hover{transform:none}}.fade-in-section{opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .6s ease-out,transform .6s ease-out;will-change:opacity,visibility}.fade-in-section.is-visible{opacity:1;transform:none;visibility:visible}#mobile-menu{transition:max-height .3s ease-out,opacity .3s ease-out;max-height:500px;opacity:1}#mobile-menu.hidden{max-height:0;opacity:0;overflow:hidden}#mobile-menu-btn svg{transition:transform .3s ease-out}