:root{--color-bg: #0f0f10;--color-surface: #17171a;--color-border: #2a2a30;--color-text: #d4d4d8;--color-text-muted: #71717a;--color-accent: #7dd3b0;--color-link: #93c5fd;--color-code-bg: #1e1e24;--font-body: "Georgia", "Times New Roman", serif;--font-mono: "Fira Code", "Cascadia Code", "Consolas", monospace;--font-ui: system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--content-width: 68ch;--site-padding: clamp(1rem, 5vw, 2.5rem)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-lg);line-height:1.75}img,svg{display:block;max-width:100%}.site-wrapper{min-height:100dvh;display:flex;flex-direction:column}.site-header{padding:var(--space-4) var(--site-padding);border-bottom:1px solid var(--color-border)}.site-nav{max-width:var(--content-width);margin:0 auto;display:flex;align-items:baseline;gap:var(--space-6)}.nav-home{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;letter-spacing:.08em;text-transform:lowercase;color:var(--color-accent);text-decoration:none}.nav-links{display:flex;gap:var(--space-4)}.nav-links a{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;transition:color .15s}.nav-links a:hover{color:var(--color-text)}.content{flex:1;padding:var(--space-12) var(--site-padding);max-width:calc(var(--content-width) + 2 * var(--site-padding));margin:0 auto;width:100%}.site-footer{padding:var(--space-6) var(--site-padding);border-top:1px solid var(--color-border);text-align:center;font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-text-muted)}h1,h2,h3,h4,h5,h6{font-family:var(--font-ui);font-weight:600;line-height:1.25;color:#f4f4f5;margin-top:var(--space-8);margin-bottom:var(--space-3)}h1{font-size:var(--text-3xl);margin-top:0}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin:0 0 var(--space-4)}a{color:var(--color-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .15s}a:hover{color:#bfdbfe}strong{color:#f4f4f5;font-weight:600}em{font-style:italic}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-8) 0}ul,ol{padding-left:var(--space-6);margin:0 0 var(--space-4)}li{margin-bottom:var(--space-1)}blockquote{margin:var(--space-6) 0;padding-left:var(--space-4);border-left:3px solid var(--color-accent);color:var(--color-text-muted);font-style:italic}code{font-family:var(--font-mono);font-size:.875em;background:var(--color-code-bg);color:#a5f3c4;padding:.15em .4em;border-radius:3px}pre{background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:6px;padding:var(--space-4) var(--space-6);overflow-x:auto;margin:var(--space-6) 0;line-height:1.6}pre code{background:none;padding:0;color:var(--color-text);font-size:var(--text-sm)}.note-header{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}.note-title{margin:0 0 var(--space-3)}.note-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-muted)}.note-stage{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-1) var(--space-3);border-radius:999px;font-size:var(--text-xs)}.note-date{font-variant-numeric:tabular-nums}.note-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;padding:0;margin:0}.note-tag{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);border-radius:3px;font-size:var(--text-xs);color:var(--color-text-muted)}a.internal{color:var(--color-accent);text-decoration-color:color-mix(in srgb,var(--color-accent) 40%,transparent)}a.internal:hover{text-decoration-color:var(--color-accent)}@media(max-width:640px){body{font-size:var(--text-base)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
