@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes skeleton-shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-pulse{animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.skeleton-shimmer{animation:skeleton-shimmer 2s linear infinite;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.2) 20%,hsla(0,0%,100%,.5) 60%,hsla(0,0%,100%,0));background-size:1000px 100%}@keyframes card-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-card-in{animation:card-fade-in .4s ease-out forwards}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)}.gradient-bg-1{background:linear-gradient(135deg,#667eea,#764ba2)}.gradient-bg-2{background:linear-gradient(135deg,#f093fb,#f5576c)}.gradient-bg-3{background:linear-gradient(135deg,#4facfe,#00f2fe)}.gradient-bg-4{background:linear-gradient(135deg,#43e97b,#38f9d7)}@keyframes form-field-focus{0%{box-shadow:0 0 0 0 rgba(59,130,246,.5)}to{box-shadow:0 0 0 4px rgba(59,130,246,.1)}}.input-focus-animation:focus{animation:form-field-focus .3s ease-out}@keyframes spinner{to{transform:rotate(1turn)}}.spinner{animation:spinner 1s linear infinite}@keyframes stats-entrance{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.stats-card-enter{animation:stats-entrance .5s ease-out forwards}@keyframes ripple{to{transform:scale(4);opacity:0}}.button-ripple:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:hsla(0,0%,100%,.5);opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.button-ripple:focus:not(:active):after{animation:ripple 1s ease-out}