@font-face{font-family:biglove;src:url(/fonts/biglove.woff2)format("woff2");font-display:swap}:root{color-scheme:light dark;--bg:light-dark(#ffffff, #21252b);--surface:light-dark(#ebebec, #2f343e);--code-bg:light-dark(#fafafa, #282c33);--border:light-dark(#c9c9ca, #464b57);--text:light-dark(#242529, #dce0e5);--muted:light-dark(#58585a, #a9afbc);--accent:light-dark(#4a62cf, #74ade8);--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}[hidden]{display:none!important}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:1.0625rem/1.6 var(--font)}@media(min-width:40rem){p,li{text-align:justify;hyphens:auto}}a{color:var(--accent)}img{max-width:100%;height:auto}.site-header{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1rem;padding:.5rem 1rem;background:var(--surface);border-bottom:1px solid var(--border)}.site-nav,.site-tools{display:flex;align-items:center;gap:1.25rem}.site-nav a{color:var(--text);text-decoration:none}.site-nav a:hover{text-decoration:underline}.site-nav a[aria-current=page]{font-weight:700}.site-nav .brand{font:1.6rem/1 biglove,var(--font)}.site-nav .brand[aria-current=page]{font-weight:400}.site-tools a,.site-tools button{color:var(--text);display:flex}.site-tools svg{width:1.3rem;height:1.3rem}.site-tools .theme-toggle{align-self:stretch;align-items:center;margin-left:-.25rem;padding:0 0 0 1.25rem;border:0;border-left:1px solid var(--border);background:0 0;cursor:pointer}.theme-toggle .icon-sun{display:none}.site-tools .theme-toggle svg{width:18px;height:18px}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}:not(pre)>code{padding:.1em .35em;background:var(--code-bg);border:1px solid var(--border);border-radius:6px;font:.9em var(--mono);overflow-wrap:anywhere}:root{--code-fg:light-dark(#242529, #acb2be);--line-number:light-dark(#b4b4bb, #4e5a5f);--syn-comment:light-dark(#a2a3a7, #5d636f);--syn-keyword:light-dark(#a449ab, #b477cf);--syn-function:light-dark(#5b79e3, #73ade9);--syn-type:light-dark(#3882b7, #6eb4bf);--syn-string:light-dark(#649f57, #a1c181);--syn-number:light-dark(#ad6e25, #bf956a);--syn-constant:light-dark(#c18401, #dfc184);--syn-property:light-dark(#d3604f, #d07277);--syn-attribute:light-dark(#5c78e2, #74ade8);--syn-punct:light-dark(#4d4f52, #b2b9c6);--syn-diff-add:light-dark(#50a14f, #98c379);--syn-diff-del:light-dark(#e45649, #e06c75)}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cp,.chroma .cpf,.chroma .cs,.chroma .ch{color:var(--syn-comment);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .ow{color:var(--syn-keyword)}.chroma .kt,.chroma .nc,.chroma .nn,.chroma .nb,.chroma .bp,.chroma .ne,.chroma .o{color:var(--syn-type)}.chroma .nf,.chroma .fm,.chroma .nx{color:var(--syn-function)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .s1{color:var(--syn-string)}.chroma .se,.chroma .sr,.chroma .ss{color:var(--syn-number)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--syn-number)}.chroma .no,.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:var(--syn-constant)}.chroma .na,.chroma .nd,.chroma .nl,.chroma .nt{color:var(--syn-attribute)}.chroma .py{color:var(--syn-property)}.chroma .p{color:var(--syn-punct)}.chroma .gd{color:var(--syn-diff-del)}.chroma .gi{color:var(--syn-diff-add)}.chroma .ge{font-style:italic}.chroma .gs{font-weight:700}.wrap{max-width:45rem;margin:0 auto;padding:2rem 1.25rem 4rem}h1{margin:0 0 1rem;font-size:2rem;line-height:1.25}.prose h2{margin:2em 0 .5em;font-size:1.5rem}.prose pre{overflow-x:auto;padding:.9rem 1rem;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;font:.875rem/1.6 var(--mono);color:var(--code-fg)}.prose pre{background:var(--code-bg)!important}.prose pre code{background:0 0;border:0;padding:0}.repos ul{margin:.4rem 0 1rem}.repos li{margin:.4rem 0;overflow-wrap:anywhere}