@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 50%,transparent);background-size:1000px 100%;animation:shimmer 3s infinite}.card-shine{position:relative;overflow:hidden}.card-shine:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}.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%}50%{background-position:100% 50%}to{background-position:0 50%}}.gradient-border{position:relative;background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--secondary)),hsl(var(--accent)),hsl(var(--primary)));background-size:200% 200%;animation:gradient-border 3s ease infinite}@keyframes page-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:page-enter .5s cubic-bezier(.16,1,.3,1)}.btn-modern{position:relative;overflow:hidden;transition:all .3s cubic-bezier(.16,1,.3,1)}.btn-modern:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.1);transform:translate(-50%,-50%);transition:width .6s,height .6s}.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:magnetic .3s ease-in-out}.backdrop-premium{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 0 0 rgba(59,130,246,.4)}50%{opacity:.8;box-shadow:0 0 0 10px rgba(59,130,246,0)}}.pulse-glow{animation:pulse-glow 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.float{animation:float 3s ease-in-out infinite}@keyframes chart-appear{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.chart-bar{transform-origin:bottom;animation:chart-appear .6s cubic-bezier(.16,1,.3,1) backwards}@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:skeleton 1.5s ease-in-out infinite}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;background:rgba(255,255,255,.5);border-radius:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none}.ripple:active:after{animation:ripple .6s ease-out}@keyframes tilt{0%{transform:perspective(1000px) rotateX(0deg) rotateY(0deg)}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)));background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-text 3s linear infinite}.scroll-shadow{position:relative}.scroll-shadow:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.1),transparent);opacity:0;transition:opacity .3s}.scroll-shadow.scrolled:before{opacity:1}@keyframes spotlight{0%,to{opacity:.3}50%{opacity:.6}}.spotlight{position:relative}.spotlight:before{content:"";position:absolute;inset:-100px;background:radial-gradient(circle at var(--x,50%) var(--y,50%),rgba(59,130,246,.1),transparent 50%);opacity:0;transition:opacity .3s;pointer-events:none}.spotlight:hover:before{opacity:1;animation:spotlight 3s ease-in-out infinite}