:root{--max-width: 42rem;--font-body: "Source Serif 4", Charter, "Bitstream Charter", Georgia, serif;--font-heading: "Source Sans 3", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", SFMono-Regular, Consolas, monospace;--font-size: 1.1875rem;--line-height: 1.58;--bg: #fff;--fg: #1a1a1a;--muted: #555;--border: #ccc;--accent: #36c;--accent-hover: #5588cc;--surface: #f8f8f8;--tag-bg: #eee;--tag-fg: #444;--pagefind-ui-font: "Source Sans 3", system-ui, sans-serif;--pagefind-ui-primary: var(--accent);--pagefind-ui-border: var(--border);--pagefind-ui-background: var(--bg)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);font-size:var(--font-size);color:var(--fg);background:var(--bg);line-height:var(--line-height);max-width:var(--max-width);margin:0 auto;padding:2.5rem 2rem 3rem}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600}h1{font-size:1.5em;margin-bottom:.5rem;line-height:1.25}h2{font-size:1.2em;margin:1.5rem 0 .5rem;line-height:1.3}h3{font-size:1.05em;margin:1.25rem 0 .25rem;line-height:1.35}p{margin-bottom:1rem}code,pre{font-family:var(--font-mono);font-size:.875em}code{background:var(--surface);padding:.1em .35em;border-radius:.2em}pre{background:var(--surface);padding:1rem;border-radius:.3rem;overflow-x:auto;margin-bottom:1rem}pre code{background:none;padding:0}a{color:var(--accent);text-decoration:none;text-underline-offset:.15em}a:hover{color:var(--accent-hover);text-decoration:underline}nav{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem}@media(max-width:640px){nav{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.4rem 0;align-items:baseline}nav .site-name{grid-column:1;grid-row:1}nav .nav-overflow{grid-column:2;grid-row:1;justify-self:end}nav .nav-links{grid-column:1 / -1;grid-row:2}}.site-name{font-family:var(--font-heading);font-weight:700;color:var(--fg)}.site-name:hover{color:var(--fg)}.nav-links{display:flex;flex-wrap:wrap;gap:0 1.5rem;font-family:var(--font-heading);font-size:.9375em}.nav-overflow{display:none}@media(max-width:640px){.nav-links .nav-collapsible{display:none}.nav-overflow{display:inline-block;position:relative;font-family:var(--font-heading);font-size:.9375em}.nav-overflow summary{cursor:pointer;list-style:none;color:var(--accent);font-weight:600;letter-spacing:.1em}.nav-overflow summary::-webkit-details-marker{display:none}.nav-overflow .nav-dropdown{position:absolute;right:0;top:1.5em;background:var(--bg);border:1px solid var(--border);border-radius:.3rem;padding:.5rem 0;min-width:8rem;box-shadow:0 2px 8px #0000001a;z-index:10}.nav-overflow .nav-dropdown a{display:block;padding:.35rem 1rem;white-space:nowrap}.nav-overflow .nav-dropdown a:hover{background:var(--surface)}}.tag{display:inline-block;font-family:var(--font-heading);font-variant:small-caps;text-transform:lowercase;letter-spacing:.03em;font-size:.8em;padding:.125em .5em;background:var(--tag-bg);color:var(--tag-fg);border-radius:.2em;margin:.125em .25em;line-height:1.6}.muted{color:var(--muted)}.entry-list{list-style:none}.entry-list li{padding:.5rem 0;border-bottom:1px solid var(--border)}.entry-list li:last-child{border-bottom:none}blockquote{margin:1rem 0;padding:.75rem 1rem;border-left:3px solid var(--border);background:var(--surface)}article{line-height:var(--line-height)}article h2{margin-top:2rem;border-bottom:1px solid var(--border);padding-bottom:.2em}article ul,article ol{margin-left:1.5rem;margin-bottom:1rem}article p{margin-bottom:1rem}article li{margin-bottom:.25rem}#search{margin-bottom:1.5rem}.pagefind-ui__search-input{font-family:var(--font-heading)!important;font-size:.9375rem!important;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:.25rem!important;color:var(--fg)!important}footer{margin-top:3rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.8125rem;font-family:var(--font-heading)}@media(max-width:640px){body{padding:1.5rem 1.25rem 2.5rem;font-size:calc(var(--font-size) - .0625rem)}h1{font-size:1.3em}h2{font-size:1.1em}nav{gap:.375rem 1rem}}
