@keyframes pulse{0%,to{box-shadow:0 4px 15px -3px rgba(0,0,0,.3),0 4px 6px -2px rgba(0,0,0,.15)}50%{box-shadow:0 6px 20px -3px rgba(0,0,0,.4),0 6px 10px -2px rgba(0,0,0,.2)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-2px)}20%,40%,60%,80%{transform:translateX(2px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shinerepeat{0%{opacity:0;transform:rotate(0deg) translateX(-100%)}50%{opacity:1}to{opacity:0;transform:rotate(0deg) translateX(100%)}}.animate-pulse{animation:pulse 3s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-shake:hover{animation-iteration-count:1}.animate-fade-in{animation:fade-in .6s ease-out forwards;opacity:0}.animate-shinerepeat{overflow:hidden;position:relative}.animate-shinerepeat .button-shine{animation:shinerepeat 3s ease-out infinite;display:block}.animation-delay-200{animation-delay:.2s}.cta-button{overflow:hidden;position:relative}.cta-button:after{background-image:radial-gradient(circle,hsla(0,0%,100%,.5) 10%,transparent 10.01%);background-position:50%;background-repeat:no-repeat;content:"";height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transform:scale(10);transition:transform .3s,opacity .5s;width:100%}.cta-button:active:after{opacity:.3;transform:scale(0);transition:0s}.cta-button--glow,.cta-button--gradient{background-position:0 0;background-size:200% 200%;transition:background-position .3s ease}.cta-button--glow:hover,.cta-button--gradient:hover{background-position:100% 0}.cta-button--glass{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.cta-button:focus{outline:none}.cta-button:focus-visible{box-shadow:0 0 0 4px rgba(59,130,246,.5)}.cta-button--loading{color:transparent;pointer-events:none}.cta-button--loading:before{animation:spin .6s linear infinite;border-color:currentcolor currentcolor transparent transparent;border-radius:50%;border-style:solid;border-width:2px;bottom:0;content:"";height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.cta-button{touch-action:manipulation}@media (prefers-reduced-motion:reduce){.animate-bounce,.animate-fade-in,.animate-pulse,.animate-shake{animation:none!important}.cta-button,.cta-button *{transition:none!important}}@media (prefers-contrast:high){.cta-button{border:2px solid!important}.cta-button--glass{background:hsla(0,0%,100%,.9)!important;color:#000!important}}@media print{.cta-button{animation:none!important;box-shadow:none!important;text-decoration:underline}.cta-button:after,.cta-button:before{display:none!important}}@media (hover:none) and (pointer:coarse){.cta-button:active{transform:scale(.95)}}@media (hover:hover) and (pointer:fine){.cta-button{transition:all .3s cubic-bezier(.4,0,.2,1)}}.cta-button--gradient.hover-shine:before{background:linear-gradient(45deg,transparent 30%,hsla(0,0%,100%,.5) 50%,transparent 70%);background-position:200% 200%;background-size:200% 200%;border-radius:9999px;bottom:-2px;content:"";left:-2px;opacity:0;position:absolute;right:-2px;top:-2px;transition:opacity .3s ease;z-index:-1}.cta-button--gradient.hover-shine:hover:before{animation:sparkle 1.5s ease-out;opacity:1}@keyframes sparkle{0%{background-position:200% 200%}to{background-position:-200% -200%}}.cta-button--glow{position:relative}.cta-button--glow:after{background:inherit;border-radius:9999px;content:"";filter:blur(15px);inset:-4px;opacity:0;position:absolute;transition:opacity .3s ease;z-index:-1}.cta-button--glow:hover:after{animation:glow-pulse 2s ease-out infinite;opacity:.6}@keyframes glow-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.3;transform:scale(1.05)}}