@keyframes pulse-ring{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(16,185,129,.4)}70%{transform:scale(1);box-shadow:0 0 0 8px rgba(16,185,129,0)}100%{transform:scale(.95);box-shadow:0 0 0 0 rgba(16,185,129,0)}}@keyframes marker-pulse{0%{transform:scale(1);opacity:.8}100%,70%{transform:scale(2.2);opacity:0}}@keyframes tooltipFadeIn{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes floatSlow{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes fadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.reveal-on-scroll{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.16, 1, .3, 1),transform .6s cubic-bezier(.16, 1, .3, 1);will-change:opacity,transform}.reveal-on-scroll.revealed{opacity:1;transform:translateY(0)}.delay-1{transition-delay:0.1s}.delay-2{transition-delay:0.2s}.delay-3{transition-delay:0.3s}.delay-4{transition-delay:0.4s}.floating-stat-card.top-right{animation:6s ease-in-out infinite floatSlow}.floating-stat-card.bottom-left{animation:7s ease-in-out 1s infinite floatSlow}.btn:active{transform:scale(.98)}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}.reveal-on-scroll{opacity:1!important;transform:none!important}.floating-stat-card{animation:none!important}}