@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%) 0 0/1000px 100%;animation:3s infinite shimmer}.card-shine{position:relative;overflow:hidden}.card-shine:before{content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.card-shine:hover:before{left:100%}.glow{box-shadow:0 0 20px rgba(59,130,246,.3),0 0 40px rgba(59,130,246,.2),0 0 60px rgba(59,130,246,.1)}.glow-hover{transition:all .3s cubic-bezier(.16,1,.3,1)}.glow-hover:hover{box-shadow:0 0 30px rgba(59,130,246,.4),0 0 60px rgba(59,130,246,.3),0 0 90px rgba(59,130,246,.2)}.card-3d{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.16,1,.3,1)}.card-3d:hover{transform:translateY(-8px)rotateX(2deg)}@keyframes gradient-border{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.gradient-border{background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--secondary)),hsl(var(--accent)),hsl(var(--primary)));background-size:200% 200%;animation:3s infinite gradient-border;position:relative}@keyframes page-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.5s cubic-bezier(.16,1,.3,1) page-enter}.btn-modern{transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.btn-modern:before{content:"";background:rgba(255,255,255,.1);border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn-modern:hover:before{width:300px;height:300px}@keyframes magnetic{0%,to{transform:translate(0)}25%{transform:translate(2px,-2px)}75%{transform:translate(-2px,2px)}}.magnetic:hover{animation:.3s ease-in-out magnetic}.backdrop-premium{-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);background-color:rgba(255,255,255,.72)}.dark .backdrop-premium{background-color:rgba(17,24,39,.72)}@keyframes pulse-glow{0%,to{opacity:1;box-shadow:0 0 rgba(59,130,246,.4)}50%{opacity:.8;box-shadow:0 0 0 10px rgba(59,130,246,0)}}.pulse-glow{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse-glow}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.float{animation:3s ease-in-out infinite float}@keyframes chart-appear{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.chart-bar{transform-origin:bottom;animation:.6s cubic-bezier(.16,1,.3,1) backwards chart-appear}@keyframes skeleton{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,hsl(var(--muted))0%,hsl(var(--muted)/.5)50%,hsl(var(--muted))100%);background-size:200px 100%;animation:1.5s ease-in-out infinite skeleton}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(4)}}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";pointer-events:none;background:rgba(255,255,255,.5);border-radius:50%;width:20px;height:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.ripple:active:after{animation:.6s ease-out ripple}@keyframes tilt{0%{transform:perspective(1000px)rotateX(0)rotateY(0)}to{transform:perspective(1000px)rotateX(var(--rx))rotateY(var(--ry))}}.tilt-hover{transition:transform .3s cubic-bezier(.16,1,.3,1)}@keyframes gradient-text{0%{background-position:0%}to{background-position:200%}}.text-gradient-animated{background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--secondary)),hsl(var(--accent)),hsl(var(--primary)));-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite gradient-text}.scroll-shadow{position:relative}.scroll-shadow:before{content:"";opacity:0;background:linear-gradient(90deg,transparent,rgba(0,0,0,.1),transparent);height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.scroll-shadow.scrolled:before{opacity:1}@keyframes spotlight{0%,to{opacity:.3}50%{opacity:.6}}.spotlight{position:relative}.spotlight:before{content:"";background:radial-gradient(circle at var(--x,50%)var(--y,50%),rgba(59,130,246,.1),transparent 50%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;top:-100px;bottom:-100px;left:-100px;right:-100px}.spotlight:hover:before{opacity:1;animation:3s ease-in-out infinite spotlight}
