:root{--fx-duration-fast:0.3s;--fx-duration-base:0.5s;--fx-duration-pulse:2s;--fx-duration-float:3s;--fx-duration-bounce:1s;--fx-duration-shimmer:1.5s;--fx-duration-shine:0.5s;--fx-ease-standard:ease-out;--fx-ease-soft:ease-in-out;--fx-card-ease:cubic-bezier(0.4,0,0.2,1);--fx-gradient-primary:linear-gradient(135deg,#667eea,#764ba2);--fx-gradient-gold:linear-gradient(135deg,#f5af19,#f12711);--fx-gradient-green:linear-gradient(135deg,#11998e,#38ef7d);--fx-gradient-shimmer:linear-gradient(90deg,transparent,hsla(0,0%,100%,.1) 50%,transparent);--fx-gradient-shine:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2) 50%,transparent);--fx-glass-light-bg:hsla(0,0%,100%,.1);--fx-glass-light-border:hsla(0,0%,100%,.2);--fx-glass-dark-bg:rgba(0,0,0,.3);--fx-glass-dark-border:hsla(0,0%,100%,.1);--fx-card-hover-shadow-light:0 12px 40px rgba(0,0,0,.15);--fx-card-hover-shadow-dark:0 12px 40px rgba(0,0,0,.4)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes gentlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes glowPulse{0%,to{box-shadow:0 0 5px rgba(59,130,246,.5)}50%{box-shadow:0 0 20px rgba(59,130,246,.8)}}@keyframes rotateIcon{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-fade-in-up{animation:fadeInUp var(--fx-duration-base) var(--fx-ease-standard) forwards}.animate-fade-in-left{animation:fadeInLeft var(--fx-duration-base) var(--fx-ease-standard) forwards}.animate-fade-in-right{animation:fadeInRight var(--fx-duration-base) var(--fx-ease-standard) forwards}.animate-scale-in{animation:scaleIn var(--fx-duration-fast) var(--fx-ease-standard) forwards}.animate-pulse{animation:gentlePulse var(--fx-duration-pulse) var(--fx-ease-soft) infinite}.animate-shimmer{background:var(--fx-gradient-shimmer);background-size:200% 100%;animation:shimmer var(--fx-duration-shimmer) infinite}.animate-float{animation:float var(--fx-duration-float) var(--fx-ease-soft) infinite}.animate-glow{animation:glowPulse var(--fx-duration-pulse) var(--fx-ease-soft) infinite}.animate-bounce{animation:bounce var(--fx-duration-bounce) var(--fx-ease-soft) infinite}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-400{animation-delay:.4s}.animate-delay-500{animation-delay:.5s}.gradient-text{background:var(--fx-gradient-primary);-webkit-background-clip:text;background-clip:text}.gradient-text,.gradient-text-gold{-webkit-text-fill-color:transparent}.gradient-text-gold{background:var(--fx-gradient-gold);-webkit-background-clip:text;background-clip:text}.gradient-text-green{background:var(--fx-gradient-green);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass{background:var(--fx-glass-light-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--fx-glass-light-border)}@media (prefers-color-scheme:dark){.glass{background:var(--fx-glass-dark-bg);border:1px solid var(--fx-glass-dark-border)}}.card-hover{transition:all var(--fx-duration-fast) var(--fx-card-ease)}.card-hover:hover{transform:translateY(-4px);box-shadow:var(--fx-card-hover-shadow-light)}@media (prefers-color-scheme:dark){.card-hover:hover{box-shadow:var(--fx-card-hover-shadow-dark)}}.shine-effect{position:relative;overflow:hidden}.shine-effect:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--fx-gradient-shine);transition:left var(--fx-duration-shine) ease}.shine-effect:hover:before{left:100%}