@font-face{font-family:skorks text;src:url(/fonts/skorks-text-regular.woff2)format("woff2");font-display:swap}@font-face{font-family:skorks text;src:url(/fonts/skorks-text-italic.woff2)format("woff2");font-style:italic;font-display:swap}@font-face{font-family:skorks text;src:url(/fonts/skorks-text-bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:skorks text;src:url(/fonts/skorks-text-bold-italic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{color-scheme:light dark;--bg:#fbfaf6;--text:#1f1d1a;--muted:#7a7064;--rule:#e9e4d8;--accent:#8f2a2a;--code-bg:#f2eee5;--code-text:#2b2925;--code-keyword:#8f2a2a;--code-string:#3f6b33;--code-comment:#6b6256;--serif:"Skorks Text", Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg:#1b1916;--text:#e6e0d4;--muted:#a39a8c;--rule:#34302a;--accent:#e3907f;--code-bg:#262320;--code-text:#e6e0d4;--code-keyword:#e3907f;--code-string:#a9c99a;--code-comment:#9a917f}}*,::before,::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0 auto;max-width:716px;padding:0 18px;background:var(--bg);color:var(--text);font:19px/1.65 var(--serif);overflow-wrap:break-word}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4,h5,h6{margin:1.6em 0 .5em;line-height:1.25}h1{margin:0 0 .35em;font-size:34px;line-height:1.18}h2{font-size:24px}h3{font-size:21px}h4,h5,h6{font-size:19px}h1 a,h2 a{color:inherit;text-decoration:none}h1 a:hover,h2 a:hover{text-decoration:underline}p,ul,ol,pre,blockquote,table,figure{margin:0 0 1.1em}img{max-width:100%;height:auto}hr{border:0;border-top:1px solid var(--rule)}.ui,.skip,.site-header,.meta,.note,.tags,.pager,.comments summary,.comment-meta,.site-footer{font-family:var(--sans);font-size:14px;line-height:1.5}.meta,.note,.tags,.comment-meta time,.site-footer{color:var(--muted)}.skip{position:absolute;left:-9999px}.skip:focus{left:18px;top:8px;padding:6px 10px;background:var(--bg)}.site-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 20px;margin-bottom:34px;padding:22px 0 14px;border-bottom:1px solid var(--rule)}.wordmark{font:700 20px/1.2 var(--serif);color:var(--text);text-decoration:none}.site-header ul{display:flex;gap:20px;margin:0;padding:0;list-style:none}.site-header ul a{color:var(--text);text-decoration:none}.site-header a:hover,.site-header ul [aria-current]{color:var(--accent)}.intro{margin:0 0 1.6em;font:italic 19px/1.5 var(--serif)}.post-list{margin:0;padding:0;list-style:none}.post-list li{margin-bottom:1.6em}.post-list h2{margin:.1em 0 .25em}.post-list p{margin:0}.older{margin-top:2.6em;padding-top:.2em;border-top:1px solid var(--rule)}.browse{display:inline-block;margin-bottom:.6em;font-size:21px;font-weight:700}.years a{margin-right:10px}.archive{margin:0 0 1.5em;padding:0;list-style:none}.archive li{display:flex;align-items:baseline;gap:14px;margin-bottom:.35em;line-height:1.4}.archive time{flex:0 0 52px}.topics{display:flex;flex-wrap:wrap;gap:6px 22px;padding:0;list-style:none}.topics span{margin-left:5px}.post-head .meta{margin:0}.note{margin:.4em 0 0}.post-body{margin-top:1.8em}.post-body::after{content:"";display:table;clear:both}.tags{margin:2.2em 0 0}.pager{display:flex;justify-content:space-between;gap:24px;margin:1.6em 0 0;padding:1.2em 0 0;border-top:1px solid var(--rule)}.pager a{display:block;max-width:48%;text-decoration:none}.pager span{display:block;color:var(--muted)}.pager .next{margin-left:auto;text-align:right}blockquote{margin-left:0;padding-left:1em;border-left:3px solid var(--rule)}table{border-collapse:collapse}th,td{padding:4px 10px;border:1px solid var(--rule)}code,pre{font-family:var(--mono);background:var(--code-bg);color:var(--code-text)}code{padding:1px 4px;border-radius:3px;font-size:.8em}pre{padding:14px 16px;border-radius:4px;overflow-x:auto;font-size:14.5px;line-height:1.55}pre code{padding:0;font-size:inherit;background:0 0}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .kv,.chroma .nc,.chroma .nf,.chroma .nn,.chroma .nt,.chroma .ne,.chroma .gd{color:var(--code-keyword)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .s1,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .ss,.chroma .dl,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo,.chroma .kc,.chroma .gi{color:var(--code-string)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--code-comment);font-style:italic}.chroma .ge{font-style:italic}.chroma .gs,.chroma .gh,.chroma .gu{font-weight:700}.alignleft,img[src$="#floatleft"]{float:left;margin:.4em 1.2em .6em 0}.alignright,img[src$="#floatright"]{float:right;margin:.4em 0 .6em 1.2em}.aligncenter,img[src$="#center"]{display:block;margin:.7em auto}.image-attribution{display:block;font:11px/1.4 var(--sans);color:var(--muted)}.columns{display:flex;flex-wrap:wrap;gap:1em;justify-content:center;margin:1em 0;text-align:center}.column{flex:1;min-width:8rem}.column p{margin:.3em 0}.column img{float:none;display:inline-block;margin:0}.youtube-lite{position:relative;margin:0 0 1.1em;aspect-ratio:16/9;background:#000}.youtube-lite a,.youtube-lite img,.youtube-lite iframe{display:block;width:100%;height:100%;border:0;object-fit:cover}.youtube-lite svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.comments{margin-top:2em}.comments summary{color:var(--accent);cursor:pointer}.comments .note{margin-top:.6em}.comment-list{margin:0;padding:0;list-style:none;font-size:16.5px}.comment-list .comment-list{padding-left:22px;border-left:2px solid var(--rule)}.comment{margin-top:1.3em}.comment-meta{margin:0}.comment-author{font-weight:700}.comment-body p,.comment-body pre{margin:.2em 0 .6em}.site-footer{margin:3.5em 0 0;padding:1.2em 0 2.4em;border-top:1px solid var(--rule)}@media(max-width:600px){body{font-size:18px;line-height:1.6}h1{font-size:27px}h2{font-size:21px}.site-header{margin-bottom:28px}.site-header ul{gap:16px}.alignleft,.alignright{float:none;display:block;margin:.7em auto}.pager{flex-direction:column}.pager a{max-width:none}}