:root{--background:#0a0a0a;--foreground:#fff;--purple-glow:#9333ea;--purple-light:#c084fc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--foreground);background:var(--background);overflow-x:hidden}::selection{background:rgba(147,51,234,.4);color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0a0a0a}::-webkit-scrollbar-thumb{background:#9333ea;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a855f7}.text-gradient{background:linear-gradient(135deg,#fff,#c084fc 50%,#9333ea);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-purple{background:linear-gradient(135deg,#9333ea,#c084fc 50%,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glow-purple{box-shadow:0 0 30px rgba(147,51,234,.4),0 0 60px rgba(147,51,234,.2)}.glow-text{text-shadow:0 0 40px rgba(147,51,234,.6)}.noise-overlay{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E")}.grid-bg{background-image:linear-gradient(rgba(147,51,234,.05) 1px,transparent 0),linear-gradient(90deg,rgba(147,51,234,.05) 1px,transparent 0);background-size:60px 60px}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.shimmer{background:linear-gradient(90deg,transparent,rgba(147,51,234,.3) 50%,transparent);background-size:200% 100%;animation:shimmer 3s infinite}