:root{--bg:#0a0a0f;--bg2:#111118;--bg3:#18181f;--bg4:#202028;--surface:#1c1c25;--border:hsla(0,0%,100%,.07);--border2:hsla(0,0%,100%,.12);--text:#f0f0f5;--text2:#9090a8;--text3:#5a5a72;--accent:#7c6aff;--accent2:#a394ff;--accent-glow:rgba(124,106,255,.18);--green:#22d17a;--green-bg:rgba(34,209,122,.1);--amber:#f59e0b;--amber-bg:rgba(245,158,11,.1);--red:#ef4444;--red-bg:rgba(239,68,68,.1);--blue:#38bdf8;--blue-bg:rgba(56,189,248,.1);--radius:16px;--radius-sm:10px;--font-display:"Syne",sans-serif;--font-body:"DM Sans",sans-serif;--font-mono:"DM Mono",monospace;--shadow:0 4px 24px rgba(0,0,0,.4);--shadow-lg:0 12px 48px rgba(0,0,0,.5)}[data-theme=light]{--bg:#f2f2f8;--bg2:#e8e8f2;--bg3:#dfdff0;--bg4:#d4d4e8;--surface:#fff;--border:rgba(0,0,0,.07);--border2:rgba(0,0,0,.13);--text:#0f0f1a;--text2:#4a4a6a;--text3:#88a;--accent:#5b47f0;--accent2:#7c6aff;--accent-glow:rgba(91,71,240,.13);--green:#16a34a;--green-bg:rgba(22,163,74,.09);--amber:#d97706;--amber-bg:rgba(217,119,6,.09);--red:#dc2626;--red-bg:rgba(220,38,38,.09);--blue:#0284c7;--blue-bg:rgba(2,132,199,.09);--shadow:0 4px 24px rgba(0,0,0,.1);--shadow-lg:0 12px 48px rgba(0,0,0,.15)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;transition:background .3s ease,color .3s ease;overflow-x:hidden}body:after{content:"";position:fixed;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:52px 52px;pointer-events:none;z-index:0;-webkit-mask-image:radial-gradient(ellipse 85% 55% at 50% 0,#000 30%,transparent 100%);mask-image:radial-gradient(ellipse 85% 55% at 50% 0,#000 30%,transparent 100%)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:100px}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes orbPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.2);opacity:.3}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);background-size:400px 100%;animation:shimmer 1.4s ease infinite;border-radius:8px}