@charset "UTF-8";body,body *{line-height:calc(2px + 2.5ex + 2px)}.highlight .gu,a:hover{text-decoration:underline}h1,h2,h3{font-weight:500;margin-top:1ex;margin-bottom:1ex}body,h2>a.pilcrow{color:var(--color-text)}footer,nav{overflow:auto}img,table{height:auto}#four-oh-four,#greeting,footer{text-align:center}.footnotes>ol .footnote-back,body,ul.post-list,ul.post-list>li{font-size:var(--font-size-level-4)}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-display:block;font-weight:100;src:url("/assets/fonts/ibm-plex-mono-latin-100-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-display:block;font-weight:100;src:url("/assets/fonts/ibm-plex-serif-latin-100-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:block;font-weight:100;src:url("/assets/fonts/ibm-plex-mono-latin-100-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:block;font-weight:100;src:url("/assets/fonts/ibm-plex-serif-latin-100-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-display:block;font-weight:200;src:url("/assets/fonts/ibm-plex-mono-latin-200-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-display:block;font-weight:200;src:url("/assets/fonts/ibm-plex-serif-latin-200-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:block;font-weight:200;src:url("/assets/fonts/ibm-plex-mono-latin-200-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:block;font-weight:200;src:url("/assets/fonts/ibm-plex-serif-latin-200-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-display:block;font-weight:300;src:url("/assets/fonts/ibm-plex-mono-latin-300-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-display:block;font-weight:300;src:url("/assets/fonts/ibm-plex-serif-latin-300-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:block;font-weight:300;src:url("/assets/fonts/ibm-plex-mono-latin-300-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:block;font-weight:300;src:url("/assets/fonts/ibm-plex-serif-latin-300-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-display:block;font-weight:400;src:url("/assets/fonts/ibm-plex-mono-latin-400-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-display:block;font-weight:400;src:url("/assets/fonts/ibm-plex-serif-latin-400-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:block;font-weight:400;src:url("/assets/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:block;font-weight:400;src:url("/assets/fonts/ibm-plex-serif-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-display:block;font-weight:500;src:url("/assets/fonts/ibm-plex-mono-latin-500-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-display:block;font-weight:500;src:url("/assets/fonts/ibm-plex-serif-latin-500-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:block;font-weight:500;src:url("/assets/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:block;font-weight:500;src:url("/assets/fonts/ibm-plex-serif-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-display:block;font-weight:600;src:url("/assets/fonts/ibm-plex-mono-latin-600-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-display:block;font-weight:600;src:url("/assets/fonts/ibm-plex-serif-latin-600-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:block;font-weight:600;src:url("/assets/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:block;font-weight:600;src:url("/assets/fonts/ibm-plex-serif-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-display:block;font-weight:700;src:url("/assets/fonts/ibm-plex-mono-latin-700-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:italic;font-display:block;font-weight:700;src:url("/assets/fonts/ibm-plex-serif-latin-700-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-display:block;font-weight:700;src:url("/assets/fonts/ibm-plex-mono-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:block;font-weight:700;src:url("/assets/fonts/ibm-plex-serif-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.highlight .hll{background-color:#073642}.highlight{background:#002b36;color:#839496}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs{color:#586e75;font-style:italic}.highlight .err{color:#839496;background-color:#dc322f}.highlight .esc,.highlight .g,.highlight .go,.highlight .l,.highlight .ld,.highlight .n,.highlight .na,.highlight .nx,.highlight .p,.highlight .py,.highlight .w,.highlight .x{color:#839496}.highlight .gi,.highlight .k,.highlight .kp,.highlight .kr,.highlight .ow{color:#859900}.highlight .cpf,.highlight .o,.highlight .sd{color:#586e75}.highlight .cp{color:#d33682}.highlight .gd,.highlight .gr{color:#dc322f}.highlight .ge{color:#839496;font-style:italic}.highlight .gh,.highlight .gs{color:#839496;font-weight:700}.highlight .gp{color:#268bd2;font-weight:700}.highlight .gu{color:#839496}.highlight .bp,.highlight .fm,.highlight .gt,.highlight .nb,.highlight .nc,.highlight .nd,.highlight .ne,.highlight .nf,.highlight .ni,.highlight .nl,.highlight .nn,.highlight .no,.highlight .nt,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi,.highlight .vm{color:#268bd2}.highlight .dl,.highlight .il,.highlight .kc,.highlight .kd,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sa,.highlight .sb,.highlight .sc,.highlight .se,.highlight .sh,.highlight .si,.highlight .ss,.highlight .sx{color:#2aa198}.highlight .kn,.highlight .sr{color:#cb4b16}.highlight .kt{color:#b58900}:root{--font-size-base:1rem;--font-size-ratio:1.25;--font-size-level-6:calc(var(--font-size-base) * pow(var(--font-size-ratio), -1));--font-size-level-5:calc(var(--font-size-base) * pow(var(--font-size-ratio), -0.5));--font-size-level-4:calc(var(--font-size-base) * pow(var(--font-size-ratio), 0));--font-size-level-3:calc(var(--font-size-base) * pow(var(--font-size-ratio), 1));--font-size-level-2:calc(var(--font-size-base) * pow(var(--font-size-ratio), 2));--font-size-level-1:calc(var(--font-size-base) * pow(var(--font-size-ratio), 3));--color-text:#cdcdcd;--color-background:#1e1e1e;--color-text-light:#ababab;--color-border-dark:#f1f1f1;--color-border-light:#727272;--color-link:#5278cd;font-size:clamp(.9em, 4vw, 1.25em)}.footnotes,.posted,.static_disqus_note,article sup,figure.code-block>div.highlight,ul.post-list>li>.date{font-size:var(--font-size-level-5)}body{font-family:"IBM Plex Serif",serif;background-color:var(--color-background);text-rendering:optimizeLegibility;margin:auto;padding:1ch;max-width:75ch}a{color:var(--color-link);text-decoration:none}a>code,h1>code{background-color:transparent}img{max-width:100%;object-fit:contain}h1{font-size:var(--font-size-level-1)}#four-oh-four,h2{font-size:var(--font-size-level-2)}h3{font-size:var(--font-size-level-3)}h2>a.pilcrow{user-select:none;-webkit-user-select:none;opacity:.25;padding-left:.5ch}.posted,figure.code-block>figcaption,ul.post-list>li>.date{color:var(--color-text-light)}h2>a.pilcrow:hover{opacity:1}h2>a.pilcrow::after{content:"§"}article sup{line-height:0}footer{border-top:1px solid var(--color-border-dark);font-size:var(--font-size-level-6);font-style:italic}header>h1{margin-bottom:0}nav{text-transform:uppercase;font-size:var(--font-size-level-3);display:flex;justify-content:space-between;border-bottom:1px solid var(--color-border-dark)}nav>.name-link{flex:1 0}nav>div.links{text-transform:lowercase;display:flex;justify-content:flex-end;margin-left:.5ch}nav>div.links>.sep,ul.post-list>li>.sep{user-select:none;-webkit-user-select:none}nav>div.links>div.link{padding:0 .25ch}nav>div.links>div.link:first-child{padding-left:0}nav>div.links>div.link:last-child{padding-right:0}article p{hyphens:auto}article h1>code,article h2>code,article h3>code,article p>code{white-space:pre-wrap;word-break:break-all}code,kbd,pre{font-family:"IBM Plex Mono",monospace}table,tbody,td,tfoot,th,thead,tr{margin:0;padding:0;font-size:100%;font:inherit}table{border-collapse:collapse;margin:0 auto}table>thead{border-bottom:1px solid var(--color-border-light)}table td,table th{padding:.25ex 1ch}blockquote{padding-left:2ch;font-style:italic;border-left:.25ch solid gray;margin-left:2ch}article ul li p{margin:0}ul.post-list{padding:0;margin:.75ex 0 0}ul.post-list>li{list-style:none;margin:.5ex 0}ul.post-list>li>.date{font-style:italic;text-align:right}figure.code-block{display:flex;flex-direction:column;margin:1em 0;align-items:stretch;overflow-x:auto}figure.code-block>div.highlight{overflow-x:auto;border-radius:10px;padding:0 1em}figure.code-block>div.highlight>pre>code{overflow-x:auto;word-wrap:normal;white-space:pre}figure.code-block>figcaption{text-align:center;font-size:var(--font-size-level-6);margin:1ex 0}figure.code-block>figcaption p{display:inline}.posted{font-style:italic;text-align:left}#greeting{font-size:var(--font-size-level-3)}.footnotes>hr{border:0;border-top:1px solid var(--color-border-light)}.footnotes>ol,.static-disqus-post .static-disqus-post{padding-left:4ch}.footnotes>ol .footnote-back{font-weight:700}.footnotes>ol p{margin-top:1ex;margin-bottom:1ex}.static_disqus_note{font-style:italic}.static-disqus-post-header{padding:0 1ch;font-size:var(--font-size-level-4)}.static-disqus-post-body{padding:0 2ch;font-size:var(--font-size-level-4);border-left:.5ch solid var(--color-border-light)}.static-disqus-post-body *{margin:1ex 0}.static-disqus-post-body br{line-height:0}.static-disqus-post-spacer{margin:0 .5ch}