@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;700&display=swap";
:root,[data-theme=dark]{--bg-primary:#0a0a0a;--bg-secondary:#111;--bg-tertiary:#1a1a1a;--text-primary:#f0ede6;--text-secondary:#7a7972;--text-muted:#3d3d38;--accent:#0039c7;--accent-dim:#002080;--accent-subtle:#000e3a;--data-blue:#3b8bd4;--data-green:#4a9b6f;--data-amber:#d4841a;--grain-opacity:.04}[data-theme=light]{--bg-primary:#f4f1ea;--bg-secondary:#eae7df;--bg-tertiary:#dedad1;--text-primary:#121210;--text-secondary:#5c5a54;--text-muted:#a8a59e;--accent:#0039c7;--accent-dim:#002899;--accent-subtle:#e6ecff;--data-blue:#2563ab;--data-green:#2d7a50;--data-amber:#b86a0a;--grain-opacity:.025}:root{--font-mono:"IBM Plex Mono", monospace;--type-display:clamp(48px, 8vw, 96px);--type-title:32px;--type-heading:20px;--type-body:14px;--type-label:11px;--type-micro:9px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:32px;--space-xl:64px;--space-2xl:128px;--border-thin:.5px solid var(--text-muted);--border-accent:.5px solid var(--accent);--radius-sm:8px;--radius-pill:999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--type-body);-webkit-font-smoothing:antialiased;line-height:1.6;transition:background .25s,color .25s}body:before{content:"";opacity:var(--grain-opacity);pointer-events:none;z-index:9999;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)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}main{padding-top:0}img{max-width:100%;display:block}@keyframes data-load{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes line-expand{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(8px)}.reveal.visible{opacity:1;transform:translateY(0)}.container{max-width:1440px;margin:0 auto;padding:0 40px}@media (max-width:768px){.container{padding:0 20px}}
