html{scroll-behavior:smooth}.animate-on-scroll{opacity:0;transform:translateY(50px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}.animate-on-scroll.animate-in{opacity:1;transform:translateY(0)}.animate-on-scroll.animate-in>*{animation:fadeInUp .6s ease-out forwards}.animate-on-scroll.animate-in>:first-child{animation-delay:.1s}.animate-on-scroll.animate-in>:nth-child(2){animation-delay:.2s}.animate-on-scroll.animate-in>:nth-child(3){animation-delay:.3s}.animate-on-scroll.animate-in>:nth-child(4){animation-delay:.4s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hover-lift{transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.1)}@keyframes float{0%,to{transform:translateY(0)}25%{transform:translateY(-10px)}75%{transform:translateY(5px)}}.float-animation{animation:float 6s ease-in-out infinite}@keyframes pulseGradient{0%,to{background-size:100% 100%;opacity:.8}50%{background-size:120% 120%;opacity:1}}.pulse-gradient{animation:pulseGradient 3s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200px 100%;animation:shimmer 1.5s infinite}*{transition:color .2s ease,background-color .2s ease,transform .2s ease}.btn-enhanced{position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-enhanced:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-enhanced:hover:before{left:100%}.btn-enhanced:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.15)}@keyframes progressFill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.progress-animated{transform-origin:left center;animation:progressFill .5s ease-out}.icon-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.icon-hover:hover{transform:scale(1.1) rotate(5deg)}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.text-gradient-animated{background:linear-gradient(-45deg,#5c6957,#4a5749,#6b7a5c,#5c6957);background-size:400% 400%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 3s ease infinite}.modal-enter{opacity:0;transform:scale(.95)}.modal-enter-active{transition:opacity .3s,transform .3s}.modal-enter-active,.modal-exit{opacity:1;transform:scale(1)}.modal-exit-active{opacity:0;transform:scale(.95);transition:opacity .3s,transform .3s}.backdrop-enter{opacity:0;backdrop-filter:blur(0)}.backdrop-enter-active{opacity:1;backdrop-filter:blur(8px);transition:opacity .3s,backdrop-filter .3s}@media (max-width:768px){.touch-target{position:relative}.touch-target:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(92,105,87,.1);transform:translate(-50%,-50%);transition:width .3s,height .3s}.touch-target:active:after{width:100px;height:100px}}@media (prefers-reduced-motion:reduce){.animate-on-scroll,.btn-enhanced,.hover-lift,.icon-hover{animation:none!important;transition:none!important}html{scroll-behavior:auto}}@media (prefers-contrast:high){.text-gradient-animated{-webkit-text-fill-color:currentColor;background:none}.pulse-gradient{animation:none}}