@import "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600&display=swap";
:root{--bg-primary:#fafafa;--bg-secondary:#fff;--bg-tertiary:#f5f5f5;--bg-elevated:#ededed;--bg-card:#fff;--bg-card-hover:#f5f5f5;--text-primary:#262626;--text-secondary:#737373;--text-tertiary:#a3a3a3;--text-disabled:#d4d4d4;--border-primary:#e5e5e5;--border-secondary:#d4d4d4;--brand:#006d5a;--brand-rgb:0, 109, 90;--code-bg:#0000000d;--cat-stable-text:#0f766e;--cat-portfolio-text:#6d28d9;--cat-token-text:#1d4ed8;--cat-contract-text:#26109d;--cat-user-text:#92400e;--cat-group-text:#9a8264;--badge-primary-text:#006350;--badge-secondary-text:#6d28d9;--badge-accent-text:#16a34a;--badge-error-text:#b91c1c;--badge-warning-text:#92400e}[data-theme=dark]{--bg-primary:#141414;--bg-secondary:#0a0a0a;--bg-tertiary:#262626;--bg-elevated:#333;--bg-card:#262626;--bg-card-hover:#2e2e2e;--text-primary:#f5f5f5;--text-secondary:#a3a3a3;--text-tertiary:#737373;--text-disabled:#525252;--border-primary:#404040;--border-secondary:#525252;--brand:#a1ff75;--brand-rgb:161, 255, 117;--code-bg:#ffffff0d;--cat-stable-text:#2dd4bf;--cat-portfolio-text:#c4b5fd;--cat-token-text:#93c5fd;--cat-contract-text:#22d3ee;--cat-user-text:#fbbf24;--cat-group-text:#d4c4a8;--badge-primary-text:#2e998b;--badge-secondary-text:#a78bfa;--badge-accent-text:#4ade80;--badge-error-text:#ef4444;--badge-warning-text:#f59e0b}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow-anchor:none;scrollbar-gutter:stable;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);max-width:100vw;color:var(--text-primary);font-family:Satoshi,Segoe UI,sans-serif;transition:background .2s,color .2s;overflow-x:hidden}a{color:inherit;text-decoration:none;transition:color .2s}a:hover{color:var(--brand)}code{background:var(--code-bg);border-radius:4px;padding:2px 6px;font-family:Geist Mono,JetBrains Mono,Fira Code,Courier New,monospace;font-size:.9em}::selection{background:rgba(var(--brand-rgb), .25);color:var(--text-primary)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@keyframes reveal-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.reveal{animation:.32s cubic-bezier(.16,1,.3,1) both reveal-up;animation-delay:calc(min(var(--reveal-i,0), 10) * 40ms)}[data-animations=off] .reveal{animation:none}@media (prefers-reduced-motion:reduce){.reveal{animation:none}}
