:root{--fg: #1a1a1a;--fg-muted: #6b6b6b;--fg-dim: #9a9a9a;--bg: #fdfdfd;--bg-subtle: #f4f4f4;--accent: #0b5fff;--accent-hover: #0044cc;--border: #e4e4e4;--border-strong: #cfcfcf;--code-bg: #f6f6f6;--code-border: #e4e4e4;--selection-bg: #0b5fff;--selection-fg: #ffffff;--focus: #0b5fff;--chart-accent: #0b5fff;--chart-fg: #1a1a1a;--chart-muted: #6b6b6b;--chart-border: #e4e4e4;--chart-secondary: #1a1a1a;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--measure: 38em;--measure-wide: 52em}@media (prefers-color-scheme: dark){:root{--fg: #eaeaea;--fg-muted: #a8a8a8;--fg-dim: #777;--bg: #0f1114;--bg-subtle: #1a1d22;--accent: #7aa8ff;--accent-hover: #b3ccff;--border: #2a2e35;--border-strong: #3a3f48;--code-bg: #161a20;--code-border: #2a2e35;--selection-bg: #7aa8ff;--selection-fg: #0f1114;--focus: #b3ccff;--chart-accent: #7aa8ff;--chart-fg: #eaeaea;--chart-muted: #a8a8a8;--chart-border: #2a2e35;--chart-secondary: #eaeaea}}html[data-theme=light]{--fg: #1a1a1a;--fg-muted: #6b6b6b;--fg-dim: #9a9a9a;--bg: #fdfdfd;--bg-subtle: #f4f4f4;--accent: #0b5fff;--accent-hover: #0044cc;--border: #e4e4e4;--border-strong: #cfcfcf;--code-bg: #f6f6f6;--code-border: #e4e4e4;--selection-bg: #0b5fff;--selection-fg: #ffffff;--focus: #0b5fff;--chart-accent: #0b5fff;--chart-fg: #1a1a1a;--chart-muted: #6b6b6b;--chart-border: #e4e4e4;--chart-secondary: #1a1a1a}html[data-theme=dark]{--fg: #eaeaea;--fg-muted: #a8a8a8;--fg-dim: #777;--bg: #0f1114;--bg-subtle: #1a1d22;--accent: #7aa8ff;--accent-hover: #b3ccff;--border: #2a2e35;--border-strong: #3a3f48;--code-bg: #161a20;--code-border: #2a2e35;--selection-bg: #7aa8ff;--selection-fg: #0f1114;--focus: #b3ccff;--chart-accent: #7aa8ff;--chart-fg: #eaeaea;--chart-muted: #a8a8a8;--chart-border: #2a2e35;--chart-secondary: #eaeaea}html[data-theme=dracula]{--dracula-background: #282a36;--dracula-current-line: #44475a;--dracula-foreground: #f8f8f2;--dracula-comment: #6272a4;--dracula-cyan: #8be9fd;--dracula-green: #50fa7b;--dracula-orange: #ffb86c;--dracula-pink: #ff79c6;--dracula-purple: #bd93f9;--dracula-red: #ff5555;--dracula-yellow: #f1fa8c;--fg: var(--dracula-foreground);--fg-muted: #b5b8c8;--fg-dim: #9fa4b8;--bg: var(--dracula-background);--bg-subtle: var(--dracula-current-line);--accent: var(--dracula-cyan);--accent-hover: var(--dracula-pink);--border: var(--dracula-current-line);--border-strong: var(--dracula-comment);--code-bg: var(--dracula-current-line);--code-border: var(--dracula-comment);--selection-bg: var(--dracula-orange);--selection-fg: var(--dracula-background);--focus: var(--dracula-yellow);--chart-accent: var(--dracula-green);--chart-fg: var(--dracula-foreground);--chart-muted: #b5b8c8;--chart-border: var(--dracula-current-line);--chart-secondary: var(--dracula-purple)}*,*::before,*::after{box-sizing:border-box}html{font-size:18px;scroll-behavior:smooth;text-size-adjust:100%}body{font-family:var(--font-serif);line-height:1.65;color:var(--fg);background:var(--bg);margin:0;padding:0;font-feature-settings:"kern","liga","calt";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.site-header,main,footer{max-width:var(--measure-wide);margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}.site-header{padding-top:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:3rem}.site-header nav{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.site-title{font-family:var(--font-sans);font-weight:700;font-size:1.2rem;color:var(--fg);text-decoration:none;letter-spacing:-.01em}.site-title:hover{color:var(--accent)}.theme-switcher{display:flex;align-items:baseline;gap:.5rem;color:var(--fg-muted);font-family:var(--font-sans);font-size:.78rem;line-height:1.3}.theme-switcher select{width:10.5rem;max-width:45vw;color:var(--fg);background-color:var(--bg);border:1px solid var(--border-strong);border-radius:3px;font:inherit;padding:.3em 1.65em .3em .5em}.theme-switcher select:hover{border-color:var(--accent)}.theme-switcher select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}html[data-theme=light] .theme-switcher select{color-scheme:light}html[data-theme=dark] .theme-switcher select,html[data-theme=dracula] .theme-switcher select{color-scheme:dark}@media (prefers-color-scheme: dark){html:not([data-theme]) .theme-switcher select{color-scheme:dark}}html[data-theme=light] ::selection,html[data-theme=dark] ::selection,html[data-theme=dracula] ::selection{color:var(--selection-fg);background:var(--selection-bg)}main{margin-top:0;margin-bottom:4rem}footer{border-top:1px solid var(--border);padding-top:1.5rem;padding-bottom:3rem;color:var(--fg-muted);font-size:.9rem;font-family:var(--font-sans)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;letter-spacing:-.015em;line-height:1.25;margin-top:2em;margin-bottom:.5em;color:var(--fg)}h1{font-size:2rem;margin-top:0}h2{font-size:1.45rem}h3{font-size:1.18rem}h4{font-size:1rem}p,ul,ol,blockquote,pre,table{margin:1em 0}p,ul,ol,blockquote{max-width:var(--measure)}a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em;transition:color 120ms ease}a:hover{color:var(--accent-hover)}strong{font-weight:700}em{font-style:italic}blockquote{border-left:3px solid var(--border-strong);padding-left:1em;margin-left:0;color:var(--fg-muted);font-style:italic}hr{border:0;border-top:1px solid var(--border);margin:3em 0}ul,ol{padding-left:1.2em}li{margin:.3em 0}li p{margin:.3em 0}li ul,li ol{margin:.3em 0}code{font-family:var(--font-mono);font-size:.88em;background:var(--code-bg);border:1px solid var(--code-border);border-radius:3px;padding:.08em .35em}pre{font-family:var(--font-mono);font-size:.85em;background:var(--code-bg);border:1px solid var(--code-border);border-radius:4px;padding:.9em 1em;overflow-x:auto;line-height:1.5}pre code{background:none;border:0;padding:0;font-size:1em}table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:.88rem;margin:1.5em 0}thead{background:var(--bg-subtle);border-bottom:2px solid var(--border-strong)}th,td{padding:.55em .75em;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}th{font-weight:700;letter-spacing:-.005em}tbody tr:hover{background:var(--bg-subtle)}.intro{margin-bottom:4rem}.intro h1{font-size:2.5rem;margin-bottom:.25em}.intro .tagline{color:var(--fg-muted);font-size:1.05rem;margin-top:0}.post-list h2{font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);font-weight:700;margin-bottom:1em;padding-bottom:.5em;border-bottom:1px solid var(--border)}.post-list ul{list-style:none;padding:0;margin:0}.post-list li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.8em 0;border-bottom:1px solid var(--border)}.post-list li:last-child{border-bottom:0}.post-list li a{font-family:var(--font-sans);font-weight:500;color:var(--fg);text-decoration:none;font-size:1.05rem;line-height:1.3;flex:1}.post-list li a:hover{color:var(--accent);text-decoration:underline}.post-list li time{color:var(--fg-dim);font-family:var(--font-sans);font-size:.85rem;white-space:nowrap;font-variant-numeric:tabular-nums}.post-header{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.post-header h1{font-size:2.1rem;line-height:1.2;margin-bottom:.35em}.post-meta{color:var(--fg-muted);font-family:var(--font-sans);font-size:.9rem;margin:0}.post-meta strong{color:var(--fg);font-weight:600}.post-meta time{font-variant-numeric:tabular-nums}.post-meta .reading-time{color:var(--fg-dim)}.post-content img{max-width:100%;height:auto;display:block;margin:1.5em auto;border-radius:4px}html[data-theme] .post-content svg .c-accent{fill:var(--chart-accent) !important;stroke:var(--chart-accent) !important}html[data-theme] .post-content svg .c-fg{fill:var(--chart-fg) !important;stroke:var(--chart-fg) !important}html[data-theme] .post-content svg circle.c-fg{fill:none !important;stroke:var(--chart-secondary) !important}html[data-theme] .post-content svg .c-muted{fill:var(--chart-muted) !important;stroke:var(--chart-muted) !important}html[data-theme] .post-content svg text.c-fg,html[data-theme] .post-content svg text.c-muted{stroke:none !important}html[data-theme] .post-content svg .c-border{fill:none !important;stroke:var(--chart-border) !important}@media (max-width: 34rem){.theme-switcher select{width:9.5rem}.post-content table{table-layout:fixed}.post-content th,.post-content td,.post-content p code,.post-content li code{overflow-wrap:anywhere;word-break:break-word}}