:root{--bg:#08080a;--bg-elevated:#0c0c0e;--card:#0c0c0e;--card-hover:#121215;--border:#ffffff14;--border-strong:#ffffff26;--text-primary:#fff;--text-secondary:#a1a1aa;--text-muted:#71717a;--text-faint:#52525b;--accent:#10b981;--accent-strong:#059669;--accent-2:#34d399;--accent-bg:#10b98114;--success:#10b981;--success-bg:#10b98114;--warning:#f59e0b;--warning-bg:#f59e0b14;--danger:#ef4444;--danger-bg:#ef444414;--info:#06b6d4;--info-bg:#06b6d414;--radius:6px;--radius-lg:12px;--shadow-card:none;--shadow-hover:0 4px 12px #0006;--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--transition:.18s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;padding:0;font-size:14px;line-height:1.5}body{background-image:radial-gradient(1200px 600px at 80% -10%,#a78bfa0f,#0000 60%),radial-gradient(900px 500px at -10% 100%,#7c3aed0d,#0000 60%);background-attachment:fixed}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}code,pre,.mono{font-family:var(--font-mono);font-feature-settings:"cv02", "cv03", "cv04", "cv11"}.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.heading-display{font-family:var(--font-sans);letter-spacing:-.03em;font-weight:700;line-height:1.15}.label-uppercase{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px;font-weight:600}.prose-measure{max-width:65ch;line-height:1.65}::selection{color:var(--text-primary);background:#a78bfa4d}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#ffffff1f}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:.3s ease-out both fadeIn}.slide-up{animation:.4s cubic-bezier(.2,.8,.2,1) both slideUp}.live-dot{animation:2s ease-in-out infinite pulse}
