code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}@font-face{font-family:Albertus var;font-weight:100 900;font-display:swap;font-style:normal;src:url(/fonts/AlbertusMTStd.woff2) format("woff2")}:root{--bg: #fff;--text: #444;--heading: #1c1c1c;--link: #08819f;--muted: #767676;--border: #ddd;--code-bg: #f5f5f5;--code-text: #222;--font-serif: "Gentium Book Plus", "Gentium Book Basic", georgia, "Times New Roman", serif;--font-mono: "Ubuntu Mono", "SFMono-Regular", menlo, consolas, "Liberation Mono", monospace;--font-logo: "Albertus var", georgia, serif;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #111;--text: #e6e6e6;--heading: #fff;--link: #6dd6ff;--muted: #9aa0a6;--border: #333;--code-bg: #1c1c1c;--code-text: #e6e6e6}}*{box-sizing:border-box}html{text-size-adjust:100%;font-size:18px}@media(width>=640px){html{font-size:20px}}body{margin:0;color:var(--text);font-family:var(--font-serif);line-height:1.55;background:var(--bg);-webkit-font-smoothing:antialiased}::selection{color:var(--bg);background:var(--heading)}.page{width:100%;max-width:44rem;min-height:100dvh;margin:0 auto;padding:0 1.25rem;display:flex;flex-direction:column}main{flex:1}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.15em}a:focus-visible{outline:2px solid var(--link);outline-offset:2px}h1,h2,h3,h4{margin:0;color:var(--heading);font-weight:400;line-height:1.25}h1{font-size:2.2rem}p{margin:1em 0}.site-header{display:flex;justify-content:space-between;align-items:center;padding:1.75rem 0 2.5rem}.site-header .logo{color:var(--heading);font-family:var(--font-logo);font-size:2rem;line-height:1}.site-header .logo:hover{text-decoration:none;opacity:.7}.site-header nav{display:flex;gap:1.25rem}.site-header nav a{color:var(--muted);font-size:.9rem}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--heading);text-decoration:none}.site-footer{margin-top:4rem;padding-bottom:2rem;color:var(--muted);font-size:.8rem}.site-footer p{margin:0}.intro{margin-bottom:3rem}.intro h1{font-size:2.6rem}.intro p{margin:.75em 0 0}.intro .intro-links{margin-top:1rem}.intro .intro-links span{margin:0 .5em;color:var(--muted)}.section-heading{margin-bottom:.5rem;padding-bottom:.4rem;font-size:1.3rem;border-bottom:1px solid var(--border)}.post-list{margin:0;padding:0;list-style:none}.post-list li{margin:0}.post-list .post-row{display:flex;justify-content:space-between;align-items:baseline;gap:1.25rem;padding:.45rem 0}.post-list .post-row:hover{text-decoration:none}.post-list .post-title{color:var(--link)}.post-list .post-row:hover .post-title{text-decoration:underline;text-underline-offset:.15em}.post-list time{flex-shrink:0;color:var(--muted);font-size:.8rem;white-space:nowrap}@media(width<480px){.post-list .post-row{flex-direction:column;gap:0}}.meta{color:var(--muted);font-size:.8rem}.post-header{margin-bottom:2rem}.post-header h1{font-size:2.2rem}.post-header .meta{margin:.5rem 0 0}.back{margin-top:3rem;font-size:.9rem}.prose{overflow-wrap:break-word}.prose h1,.prose h2{margin:2.25rem 0 0;font-size:1.6rem}.prose h3{margin:2rem 0 0;font-size:1.3rem}.prose h4{margin:1.5rem 0 0;font-size:1.1rem;font-weight:700}.prose h1+p,.prose h2+p,.prose h3+p,.prose h4+p{margin-top:.6em}.prose ul,.prose ol{margin:1em 0;padding-left:1.5rem}.prose li{margin-bottom:.4rem}.prose blockquote{margin:1em 0;padding-left:1rem;color:var(--muted);font-style:italic;border-left:3px solid var(--border)}.prose hr{height:1px;margin:2.5rem 0;border:0;background:var(--border)}.prose img{display:block;max-width:100%;height:auto;margin:0 auto}.prose figure{margin:1.75rem 0;text-align:center}.prose figcaption{margin-top:.5rem;color:var(--muted);font-size:.8rem;font-style:italic}.prose table{display:block;max-width:100%;margin:1em 0;overflow-x:auto;border-collapse:collapse}.prose th,.prose td{padding:.35rem .75rem;border:1px solid var(--border)}code,pre{font-family:var(--font-mono)}:not(pre)>code{padding:.15em .35em;color:var(--code-text);font-size:.9em;background:var(--code-bg);border-radius:3px}pre,pre[class*=language-]{margin:1.25rem 0;padding:1em;overflow-x:auto;color:var(--code-text);font-size:.85rem;line-height:1.4;text-shadow:none;background:var(--code-bg);border-radius:3px}pre code,pre[class*=language-] code,code[class*=language-]{padding:0;color:inherit;font-size:inherit;text-shadow:none;background:transparent}@media(prefers-color-scheme:light){.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#6a737d}.token.punctuation{color:#333}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#b3261e}.token.boolean,.token.number{color:#b45309}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#1a7f37}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#6b4f2c;background:transparent}.token.atrule,.token.attr-value,.token.keyword{color:#0550ae}.token.function,.token.class-name{color:#8250df}.token.regex,.token.important,.token.variable{color:#b45309}}
