.btn-sparkle{position:relative;overflow:hidden}.btn-sparkle:before,.btn-sparkle:after{content:"✨";position:absolute;font-size:1rem;opacity:0%;pointer-events:none;animation:sparkle 1s ease-out}.btn-sparkle:hover:before{top:20%;left:10%;animation-delay:0s}.btn-sparkle:hover:after{top:60%;right:15%;animation-delay:.2s}@keyframes sparkle{0%{opacity:0%;transform:translateY(0) scale(0)}50%{opacity:100%}to{opacity:0%;transform:translateY(-20px) scale(1.5)}}.btn-liquid{position:relative;overflow:hidden;transition:transform var(--app-duration-fast) var(--app-easing-spring)}.btn-liquid:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:radial-gradient(circle,rgb(255 255 255 / 30%),transparent);transform:translate(-50%,-50%);transition:width .3s ease-out,height .3s ease-out}.btn-liquid:hover:before{width:300px;height:300px}.btn-liquid:hover{transform:scale(1.05)}.shine-effect,.btn-shine{position:relative;overflow:hidden}.shine-effect:before,.btn-shine:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--app-overlay-shine),transparent);transition:left .3s ease-out}.shine-effect:hover:before,.btn-shine:hover:before{left:100%}.shine-continuous{position:relative;overflow:hidden}.shine-continuous:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgb(255 255 255 / 40%),transparent);animation:shine-sweep 3s infinite;animation-delay:1s}@keyframes shine-sweep{0%{left:-100%}to{left:200%}}.text-shimmer{background:linear-gradient(90deg,var(--app-text-primary) 0%,var(--color-primary-400) 50%,var(--app-text-primary) 100%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:none}@keyframes shimmer-text{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.text-shimmer-hover{background:linear-gradient(90deg,currentColor 0%,var(--color-primary-400) 50%,currentColor 100%);background-size:200% 100%;background-position:0% 50%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:background-position .6s ease-out}.text-shimmer-hover:hover{background-position:100% 50%}.border-draw{position:relative}.border-draw:before,.border-draw:after{content:"";position:absolute;width:0;height:0;transition:width .3s ease-out,height .3s ease-out .3s}.border-draw:before{top:0;left:0;border-top:2px solid var(--color-primary-600);border-left:2px solid var(--color-primary-600)}.border-draw:after{bottom:0;right:0;border-bottom:2px solid var(--color-primary-600);border-right:2px solid var(--color-primary-600)}.border-draw:hover:before,.border-draw:hover:after{width:100%;height:100%}.border-gradient-rotate{position:relative;border:2px solid transparent;background:var(--app-surface-0);background-clip:padding-box}.border-gradient-rotate:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:var(--app-gradient-primary);z-index:var(--app-z-behind);animation:none}@keyframes rotate-gradient{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}.icon-bounce:hover{animation:icon-bounce-animation .6s ease-out}@keyframes icon-bounce-animation{0%,to{transform:translateY(0)}25%{transform:translateY(-10px)}50%{transform:translateY(-5px)}75%{transform:translateY(-7px)}}.icon-wiggle:hover{animation:icon-wiggle-animation .5s ease-in-out}@keyframes icon-wiggle-animation{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.icon-spin:hover{animation:icon-spin-animation .6s ease-out}@keyframes icon-spin-animation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-pulse{animation:icon-pulse-animation 2s ease-in-out infinite}@keyframes icon-pulse-animation{0%,to{transform:scale(1);opacity:100%}50%{transform:scale(1.1);opacity:80%}}.glow-pulse{animation:glow-pulse-animation 2s ease-in-out infinite}@keyframes glow-pulse-animation{0%,to{box-shadow:var(--shadow-lg),0 0 20px #2563eb4d}50%{box-shadow:var(--shadow-xl),0 0 40px #2563eb99}}.glow-rainbow{animation:glow-rainbow-animation 3s ease-in-out infinite}@keyframes glow-rainbow-animation{0%{box-shadow:0 0 20px #2563eb7f}33%{box-shadow:0 0 20px #22c55e7f}66%{box-shadow:0 0 20px #b88c2a7f}to{box-shadow:0 0 20px #2563eb7f}}.success-checkmark{display:inline-block;width:60px;height:60px;border-radius:50%;background:var(--app-success);position:relative;animation:success-pop .6s cubic-bezier(.34,1.56,.64,1)}.success-checkmark:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;color:#fff;font-weight:700;animation:checkmark-draw .4s ease-out .3s both}@keyframes success-pop{0%{transform:scale(0) rotate(0)}50%{transform:scale(1.2) rotate(180deg)}to{transform:scale(1) rotate(360deg)}}@keyframes checkmark-draw{0%{opacity:0%;transform:translate(-50%,-50%) scale(0)}to{opacity:100%;transform:translate(-50%,-50%) scale(1)}}.success-ring{position:relative;animation:success-pop .6s cubic-bezier(.34,1.56,.64,1)}.success-ring:before{content:"";position:absolute;inset:-10px;border:3px solid var(--app-success);border-radius:50%;animation:ring-expand .8s ease-out}@keyframes ring-expand{0%{transform:scale(0);opacity:100%}to{transform:scale(1.5);opacity:0%}}.loading-spinner-premium{width:2.5rem;height:2.5rem;border:.1875rem solid transparent;border-top:.1875rem solid var(--color-primary-600);border-right:.1875rem solid var(--color-secondary-600);border-radius:50%;animation:spin-gradient 1s linear infinite}@keyframes spin-gradient{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-dots-pulse{display:inline-flex;gap:8px}.loading-dots-pulse span{width:10px;height:10px;border-radius:50%;background:var(--color-primary-600);animation:dot-pulse 1.4s ease-in-out infinite}.loading-dots-pulse span:nth-child(1){animation-delay:0s}.loading-dots-pulse span:nth-child(2){animation-delay:.2s}.loading-dots-pulse span:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,80%,to{transform:scale(.8);opacity:50%}40%{transform:scale(1.2);opacity:100%}}.loading-wave{display:inline-flex;gap:4px}.loading-wave span{width:4px;height:20px;background:var(--color-primary-600);border-radius:var(--radius-full);animation:wave-bounce 1s ease-in-out infinite}.loading-wave span:nth-child(1){animation-delay:0s}.loading-wave span:nth-child(2){animation-delay:.1s}.loading-wave span:nth-child(3){animation-delay:.2s}.loading-wave span:nth-child(4){animation-delay:.3s}@keyframes wave-bounce{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.5)}}.badge-pulse{animation:badge-pulse-animation 2s ease-in-out infinite}@keyframes badge-pulse-animation{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.badge-notification{position:relative}.badge-notification:after{content:"";position:absolute;top:-4px;right:-4px;width:10px;height:10px;background:var(--app-error);border-radius:50%;border:2px solid var(--app-surface-0);animation:notification-pulse 2s ease-in-out infinite}@keyframes notification-pulse{0%,to{transform:scale(1);opacity:100%}50%{transform:scale(1.2);opacity:80%}}.hover-lift{transition:transform var(--app-duration-normal) var(--app-easing-spring),box-shadow var(--app-duration-normal) var(--app-easing-smooth)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.hover-lift-subtle{transition:transform var(--app-duration-normal) var(--app-easing-spring),box-shadow var(--app-duration-normal) var(--app-easing-smooth)}.hover-lift-subtle:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--app-duration-normal) var(--app-easing-spring)}.hover-scale:hover{transform:scale(1.02)}.hover-scale-lg{transition:transform var(--app-duration-normal) var(--app-easing-spring)}.hover-scale-lg:hover{transform:scale(1.05)}.card-glow-border:hover{box-shadow:var(--shadow-xl),inset 0 0 0 2px var(--color-primary-600),0 0 30px #2563eb66;transition:all var(--app-duration-normal) var(--app-easing-smooth)}.card-flip-perspective{transition:transform var(--app-duration-normal) var(--app-easing-smooth)}.card-flip-perspective:hover{transform:perspective(var(--app-perspective-card)) rotateY(5deg) rotateX(2deg)}.card-expand-bg{position:relative;overflow:hidden}.card-expand-bg:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:var(--color-primary-100);transform:translate(-50%,-50%);transition:width .3s ease-out,height .3s ease-out;z-index:var(--app-z-base)}.card-expand-bg:hover:before{width:500px;height:500px}.card-expand-bg>*{position:relative;z-index:var(--app-z-above)}.btn-neon{text-shadow:0 0 10px currentColor;box-shadow:0 0 10px currentColor,0 0 20px currentColor,0 0 40px currentColor;transition:all var(--app-duration-normal) var(--app-easing-smooth)}.btn-neon:hover{text-shadow:0 0 20px currentColor;box-shadow:0 0 20px currentColor,0 0 40px currentColor,0 0 80px currentColor}.btn-gradient-shift{background:linear-gradient(45deg,var(--color-primary-600),var(--color-secondary-600));background-size:200% 200%;background-position:0% 50%;transition:background-position .6s ease-out}.btn-gradient-shift:hover{background-position:100% 50%}.btn-morph{border-radius:var(--radius-full);transition:border-radius var(--app-duration-normal) var(--app-easing-smooth),transform var(--app-duration-fast) var(--app-easing-spring)}.btn-morph:hover{border-radius:var(--radius-s);transform:scale(1.05)}.text-typing{overflow:hidden;border-right:2px solid var(--color-primary-600);white-space:nowrap;animation:typing 3s steps(40) 1s both,blink-caret .75s step-end infinite}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{50%{border-color:transparent}}.text-glitch{position:relative;display:inline-block}.text-glitch:hover:before,.text-glitch:hover:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.text-glitch:hover:before{animation:glitch-1 .3s infinite;color:var(--color-primary-600);z-index:var(--app-z-behind)}.text-glitch:hover:after{animation:glitch-2 .3s infinite;color:var(--color-secondary-600);z-index:var(--app-z-behind-deep)}@keyframes glitch-1{0%,to{transform:translate(0)}33%{transform:translate(-2px,2px)}66%{transform:translate(2px,-2px)}}@keyframes glitch-2{0%,to{transform:translate(0)}33%{transform:translate(2px,-2px)}66%{transform:translate(-2px,2px)}}.cursor-trail-dot{position:fixed;width:8px;height:8px;background:var(--color-primary-600);border-radius:50%;pointer-events:none;z-index:var(--app-z-cursor-trail);animation:trail-fade 1s ease-out forwards}@keyframes trail-fade{0%{transform:scale(1);opacity:100%}to{transform:scale(0);opacity:0%}}.link-underline-center{position:relative;text-decoration:none}.link-underline-center:after{content:"";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background:currentColor;transition:width .3s ease-out,left .3s ease-out}.link-underline-center:hover:after{width:100%;left:0}.link-underline-left{position:relative;text-decoration:none}.link-underline-left:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:currentColor;transition:width .3s ease-out}.link-underline-left:hover:after{width:100%}@media(width>=48em){.btn-liquid:before,.shine-effect:before,.btn-shine:before,.card-expand-bg:before{transition-duration:.6s}.text-shimmer{animation:shimmer-text 3s ease-in-out infinite}.border-gradient-rotate:before{animation:rotate-gradient 3s linear infinite}}@media(prefers-reduced-motion:reduce){.btn-sparkle:before,.btn-sparkle:after,.shine-continuous:after,.text-shimmer,.icon-bounce,.icon-wiggle,.icon-pulse,.glow-pulse,.badge-pulse,.loading-dots-pulse span,.loading-wave span{animation:none}.btn-liquid:before,.shine-effect:before,.btn-shine:before,.border-draw:before,.border-draw:after,.card-expand-bg:before{transition:none}}
