@import"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap";:root{--width: 720px;--font-main: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-secondary: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-scale: .875em;--background-color: #e8e8e8;--heading-color: #222;--text-color: #444;--link-color: #3273dc;--visited-color: #8b6fcb;--code-background-color: #f2f2f2;--code-color: #222;--blockquote-color: #222}img{width:100%;height:auto;max-height:500px;object-fit:contain}body{font-family:var(--font-secondary);font-size:var(--font-scale);font-weight:400;margin:auto;padding:20px;max-width:var(--width);text-align:left;background-color:var(--background-color);word-wrap:break-word;overflow-wrap:break-word;line-height:1.2;color:var(--text-color)}h1,h2,h3,h4,h5,h6{font-family:var(--font-main);color:var(--heading-color);font-weight:500;letter-spacing:-.01em}h1{font-size:1.5em;font-weight:500}a{color:var(--link-color);cursor:pointer;text-decoration:none}a:hover{text-decoration:underline}nav a{margin-right:8px}strong,b{color:var(--heading-color)}button{margin:0;cursor:pointer}time{font-family:var(--font-mono);font-style:normal;font-size:15px}main{line-height:1.6}table{width:100%}hr{border:0;border-top:1px dashed}img{max-width:100%}code{font-family:var(--font-mono);font-size:.9em;padding:.1em .35em;background-color:var(--code-background-color);color:var(--code-color);border-radius:3px}pre code{font-size:inherit;padding:0;border-radius:0;background:transparent}blockquote{border-left:1px solid #999;color:var(--code-color);padding-left:20px;font-style:italic}footer{padding:25px 0;text-align:center}.title:hover{text-decoration:none}.title h1{font-size:2em}.inline{width:auto!important}.highlight,.code{padding:1px 15px;background-color:var(--code-background-color);color:var(--code-color);border-radius:3px;margin-block-start:1em;margin-block-end:1em;overflow-x:auto}ul{list-style-type:none}a:visited{color:var(--visited-color)}.home-link,.home-link:visited{color:var(--heading-color)}.pw-form{display:flex;flex-direction:row;gap:8px;align-items:center}.pw-form input{font-family:var(--font-main);font-size:1em;padding:6px 8px;background-color:var(--code-background-color);color:var(--code-color);border:1px solid #ccc;border-radius:3px;flex:1;max-width:280px}.pw-form button{font-family:var(--font-main);font-size:1em;padding:6px 12px;background-color:var(--code-background-color);color:var(--code-color);border:1px solid #ccc;border-radius:3px}.pw-error{color:#b00020;margin-top:8px}body.on-post>header,body.on-post>header+br{display:none}header>div{display:flex;flex-wrap:wrap;gap:.9em}.archived-header{margin:0 0 .25em;font-size:1.1em;color:var(--heading-color)}ul.blog-posts{list-style-type:none;padding:0;margin:0;line-height:1.4}ul.blog-posts li{display:flex;align-items:baseline;gap:1em;padding:0}.post-date{flex:0 0 11ch;font-family:var(--font-mono);color:#888;font-size:.9em;white-space:nowrap}.post-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prose{line-height:1.6;color:var(--text-color)}.post-meta{font-family:var(--font-main);color:#888;font-size:.95em}.prose .post-toc{margin:1.25em 0 2em;padding:.75em 1em;border-left:2px solid #ddd;background:#00000005;font-size:.95em}.prose .post-toc ol{list-style:none;padding:0;margin:0}.prose .post-toc li{margin:.15em 0;line-height:1.4;padding:0}.prose .post-toc li.toc-l3{padding-left:1.5em;font-size:.95em}.prose .post-toc a,.prose .post-toc a:visited{color:var(--text-color);text-decoration:none}.prose .post-toc a:hover{color:var(--link-color)}.prose h1,.prose h2,.prose h3,.prose h4{margin-top:1.5em;margin-bottom:.5em}.prose p{margin:1em 0}.prose a:visited{color:var(--visited-color)}.prose ul,.prose ol{list-style-type:disc;padding-left:1.5em}.prose ol{list-style-type:decimal}.prose figure{margin:1.5em auto}.prose figure>img,.prose figure>pre{margin:0}.prose figure>img{display:block;margin-left:auto;margin-right:auto;max-width:100%}.prose figcaption{margin-top:.6em;font-size:.85em;line-height:1.5;color:#888}.prose pre{padding:14px 16px;margin:1.25em 0;background-color:var(--code-background-color);color:var(--code-color);border-radius:6px;overflow-x:auto;line-height:1.5;font-size:.85em}.prose .hljs{color:var(--code-color);background:transparent}.prose .hljs-comment,.prose .hljs-quote{color:#6a737d;font-style:italic}.prose .hljs-keyword,.prose .hljs-selector-tag,.prose .hljs-literal,.prose .hljs-meta .hljs-keyword{color:#d73a49}.prose .hljs-string,.prose .hljs-doctag,.prose .hljs-regexp{color:#032f62}.prose .hljs-number,.prose .hljs-symbol,.prose .hljs-bullet{color:#005cc5}.prose .hljs-built_in,.prose .hljs-type,.prose .hljs-class .hljs-title,.prose .hljs-title,.prose .hljs-section,.prose .hljs-name,.prose .hljs-selector-id,.prose .hljs-selector-class{color:#6f42c1}.prose .hljs-attr,.prose .hljs-attribute,.prose .hljs-variable,.prose .hljs-template-variable,.prose .hljs-params{color:#24292e}.prose .hljs-tag,.prose .hljs-meta{color:#22863a}.prose .hljs-emphasis{font-style:italic}.prose .hljs-strong{font-weight:600}.prose .hljs-deletion{color:#b31d28;background:#ffeef0}.prose .hljs-addition{color:#22863a;background:#f0fff4}.prose img{width:100%;height:auto;max-height:500px;object-fit:contain;margin:1em 0}.post-header{margin-bottom:1em}.post-header h1{height:auto;font-size:2em;margin-top:0;margin-bottom:.25em}.sn-ref{color:var(--link-color);font-size:.7em;margin-left:1px;cursor:default;vertical-align:baseline;position:relative;top:-.5em;line-height:0}.fn-def{font-size:.75em;line-height:1.4;color:var(--text-color);background:none;margin:.25em 0}.fn-def+.fn-def{margin-top:0}.fn-num{color:var(--link-color);font-size:.7em;vertical-align:super;line-height:0;margin-right:.25em}.sn-note{display:none}.sn-num{color:var(--link-color);font-size:.7em;vertical-align:super;line-height:0;margin-right:.25em}@media (min-width: 1100px){.fn-def{display:none}.sn-note{display:block;float:right;clear:right;width:220px;margin:.2em -260px .6em 0;font-size:.8em;line-height:1.45;color:var(--text-color)}}
