@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(Regular-subset.8549a625.woff2)format("woff2");src:url(InterVariable-subset.0e59ed89.woff2)format("woff2-variations")}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:swap;src:url(Italic-subset.65e1f34f.woff2)format("woff2");src:url(InterVariable-Italic-subset.1ace4d5f.woff2)format("woff2-variations")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(Bold-subset.d22c0dea.woff2)format("woff2");src:url(InterVariable-subset.0e59ed89.woff2)format("woff2-variations")}@font-face{font-family:Inter;font-style:italic;font-weight:700;font-display:swap;src:url(BoldItalic-subset.16632769.woff2)format("woff2");src:url(InterVariable-Italic-subset.1ace4d5f.woff2)format("woff2-variations")}.highlight{background:#fff;background-color:var(--color-code-background);color:#24292e}.highlight .c{font-style:italic}.highlight .err{color:#b31d28;background-color:#e3d2d2}.highlight .hll{background:oklch(.85 .19 81.96/.5)}.highlight .ow,.highlight .o{color:#005cc5;font-weight:700}.highlight .cm{font-style:italic}.highlight .cp{font-weight:700}.highlight .c1{font-style:normal}.highlight .cs{font-style:italic;font-weight:700}.highlight .ge{color:#24292e;font-style:italic}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{color:#24292e;font-weight:700}.highlight .gh,.highlight .gu{color:#005cc5;font-weight:700}.highlight .nb{color:#0086b3}.highlight .nc{font-weight:700}.highlight .nc,.highlight .nf,.highlight .ni{color:#6f42c1}.highlight .nn{color:#555}.highlight .nt{color:#22863a}.highlight .w{color:#bbb}.highlight .sr{color:#032f62}.highlight .ss{color:#e36209}.highlight .na,.highlight .no,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi,.highlight .il,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .m{color:#005cc5}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .s1{color:#032f62}.highlight .c,.highlight .cm,.highlight .cp,.highlight .c1,.highlight .cs,.highlight .bp{color:#6a737d}.highlight .gt,.highlight .gr{color:#b31d28}.highlight .gd,.highlight .gd .x{color:#b31d28;background-color:#ffeef0}.highlight .gi,.highlight .gi .x{color:#000}.highlight .ne{color:#22863a;background-color:#f0fff4}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kp,.highlight .kr{color:#d73a49;font-weight:700}.highlight .kt{color:#458;font-weight:700}@media (prefers-color-scheme:dark){.highlight{color:#c9d1d9;background:#0d1117;background-color:var(--color-code-background)}.highlight .c{font-style:italic}.highlight .err{color:#d73a49;background-color:#e3d2d2}.highlight .hll{background:#2a456f}.highlight .ow,.highlight .o{color:#005cc5;font-weight:700}.highlight .cm{font-style:italic}.highlight .cp{font-weight:700}.highlight .c1{font-style:normal}.highlight .cs{font-style:italic;font-weight:700}.highlight .ge{color:#c9d1d9;font-style:italic}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{color:#c9d1d9;font-weight:700}.highlight .gh,.highlight .gu{color:#1f6feb;font-weight:700}.highlight .nb{color:#0086b3}.highlight .nc{font-weight:700}.highlight .nc,.highlight .nf,.highlight .ni{color:#d2a8ff}.highlight .nn{color:#555}.highlight .nt{color:#7ee787}.highlight .w{color:#bbb}.highlight .sr{color:#a5d6ff}.highlight .ss{color:#ffa657}.highlight .na,.highlight .no,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi,.highlight .il,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .m{color:#79c0ff}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .s1{color:#a5d6ff}.highlight .c,.highlight .cm,.highlight .cp,.highlight .c1,.highlight .cs,.highlight .bp{color:#8b949e}.highlight .gt,.highlight .gr{color:#a00}.highlight .gd,.highlight .gd .x{color:#ffdcd7;background-color:#67060c}.highlight .gi,.highlight .gi .x{color:#aff5b4;background-color:#033a16}.highlight .ne{color:#d73a49;font-weight:700}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kp,.highlight .kr{color:#ff7b72;font-weight:700}.highlight .kt{color:#458;font-weight:700}}*{margin:0;padding:0}:root{--font-monospace:ui-monospace,"Cascadia Code","Source Code Pro",Menlo,Consolas,monospace;font-feature-settings:"liga","calt","ss01","ss02","ss03","dlig";--color-fg:#3c3c3c;--color-bg:#fff;--color-grey0:#444;--color-grey1:#666;--color-grey5:#efefef;--color-grey6:#7575754d;--color-grey7:#fafafa;--color-black:#000;--color-orange0:#ff5722;--color-orange1:#ffc107;--color-orange2:#ff9800;--color-orange3:#ff57224d;--color-blue0:#00a;--color-blue1:#8085c1;--color-red0:#9d765b1c;--color-link-visited:#a0a;--color-link:var(--color-orange2);--color-link-hover:var(--color-orange0);--color-meta-date:var(--color-orange0);--color-code-background:var(--color-grey7);font-family:Inter,ui-rounded,system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--color-fg:#c0d0e7;--color-bg:#0c1118;--color-grey0:#4784d9;--color-grey1:#a0b5d3;--color-grey5:#0e1a2b;--color-grey6:#31507f;--color-grey7:#0e1a2b;--color-black:#000;--color-orange0:#ff5722;--color-orange1:#ffc107;--color-orange2:#ff9800;--color-orange3:#ff57224d;--color-blue0:#00a;--color-blue1:#8085c1;--color-red0:var(--color-grey6);--color-link-visited:var(--color-grey6);--color-link:var(--color-fg);--color-link-hover:var(--color-grey0);--color-meta-date:var(--color-grey1);--color-code-background:var(--color-grey5)}}body{background-color:var(--color-bg);color:var(--color-fg);text-wrap:pretty;font-size:100%;font-style:normal;font-weight:400}blockquote{text-wrap:balance}h1,h2,h3,h4,h5,h6{font-weight:700}h1,h2,h4,h5{color:var(--color-grey0);font-weight:700}h1{margin-top:1rem;font-size:2.5rem;line-height:1.3}h2{margin-top:1rem;font-size:2.5rem;line-height:1.25}h3{text-align:center;letter-spacing:1px;text-transform:uppercase;margin:2rem 0 1rem;font-size:1.2rem;font-weight:400}h4{margin:2rem 0 1rem;font-size:1.24rem}.post-title{color:var(--color-orange0)}p{word-wrap:break-word;margin-top:2rem;margin-bottom:0}p:first-child{margin-top:1.9375rem}a{color:var(--color-link)}a:visited{color:var(--color-link-visited)}a:hover,a:focus,a:active,a:visited:hover,a:visited:focus,a:visited:active{color:var(--color-link-hover)}.is-external-link:after,a[target=_blank]:after,a[rel~=noopener]:after{content:" ↗️"}ul.posts{margin:3rem 0;list-style-type:none}ul.posts li{justify-content:space-between;align-items:baseline;padding:.675rem 0;display:flex}ul.posts a{font-size:1.2em}ul.posts .meta{color:var(--color-grey1);flex-shrink:0;margin:0}.site{max-width:48.875rem;margin:auto}header{text-align:left}header a{text-decoration:none}header h1.site-title a{color:var(--color-orange1)}header h1.site-title a:hover,header h1.site-title a:focus,header h1.site-title a:active{color:var(--color-orange0)}.meta{color:var(--color-meta-date);font-feature-settings:"liga","calt","ss01","ss02","ss03","dlig","tnum";margin:30px auto 0;font-size:.8rem;display:block}pre{font-family:var(--font-monospace);margin:0 auto;font-weight:400;overflow:auto}code{font-family:var(--font-monospace);font-feature-settings:"dlig" 0,"liga" off;font-weight:400}figure.highlight,div.highlighter-rouge{background-color:var(--color-grey7);border:1px solid var(--color-grey6);box-shadow:2px 2px var(--color-grey6);border-radius:3px;margin:1.92rem 0;padding:.5rem 1rem;line-height:1.3}figure.highlight .gutter pre{padding-right:10px}.cp_embed_wrapper{margin-top:1.92rem}.post ul,.post ol{margin-top:1rem}.post code{white-space:nowrap;padding-top:2px;font-size:.9rem}.post h2 code,.post h3 code,.post h4 code{font-size:inherit;padding-top:unset;white-space:normal}.post li code,.post p code{background-color:var(--color-red0);text-shadow:0px 1px var(--color-bg);border-radius:2px;padding:3px 3px 1px}.post pre code{white-space:pre;border:none;font-size:.9rem;line-height:1.3}.post{text-align:left;line-height:1.55}@media screen and (max-width:800px){body{padding:0 1.5rem}header{text-align:left}}@media screen and (max-width:1440px){body{padding:0 4rem}.site{max-width:43.75rem}pre code{line-height:1.6rem}}@media screen and (max-width:500px){body{padding:0 5px}.post{line-height:1.4}.post ul,.post ol{margin-left:2.5rem}ul.posts a{font-size:1.1rem}.site{padding:0 .1rem}h1,h2{font-size:2rem}h3{text-align:left;font-size:1.2rem}h4{font-size:1.2rem}.post code{white-space:normal}}.smallcaps{letter-spacing:1px;text-transform:uppercase}#markdown-toc{margin-top:2rem}#markdown-toc li{list-style:none}#markdown-toc li ul,#markdown-toc li ol{margin:0 0 1rem 1rem}blockquote{border-left:5px var(--color-orange1)solid;margin-top:1.9375rem;margin-bottom:1.9375rem;padding:0 .96875rem;font-style:italic}blockquote p,blockquote p:first-child,blockquote ul,blockquote ol{margin:0}.image{max-width:100%}hr{margin:1.5rem 0}.site .prev-next-nav,.site .footer{border-top:2px solid var(--color-grey5);margin-top:2rem;padding:2rem 0 0}.site .prev-next-nav{flex-wrap:wrap;justify-content:space-between;display:flex}.site .footer{color:var(--color-grey1);margin-bottom:2rem;line-height:1.4;overflow:hidden}.site .footer .contact{float:left;max-width:50%;margin-right:3rem}.site .footer .contact a{color:var(--color-blue1)}.site .footer .contact a:hover,.site .footer .contact a:focus,.site .footer .contact a:active{color:var(--color-blue0)}.site .footer .links a{line-height:1.8}sup{font-size:inherit;font-feature-settings:"numr" 1,"sups" 1;vertical-align:baseline}sup:has(a.footnote){text-align:right;width:.5rem;font-size:1.25rem;font-weight:500;line-height:0;display:inline-block}.footnotes sup{font-feature-settings:"numr" 0,"sups" 0;vertical-align:super;font-size:smaller}@media screen and (max-width:800px){.site .footer .contact{float:none;max-width:100%;margin:1rem 0}.footer{text-align:center}}.caption .image{margin-top:.5rem}.image img{margin:auto;display:block}.caption{margin-top:0;margin-bottom:1.5rem;font-size:.8rem}.caption>p{margin-top:0}@media screen and (max-width:500px){.caption{margin-top:0;margin-bottom:1.9375rem}.caption code{white-space:nowrap}}.old-text{color:var(--color-grey5);text-decoration:line-through}section p:first-child{margin-top:0!important}section{margin-top:1.9375rem}.aside{box-shadow:3px 3px var(--color-orange3);border:1px solid var(--color-orange0);border-radius:3px;padding:10px}.aside p{margin-top:0!important}.aside h3{text-align:left;margin:0 0 .9rem!important;font-size:1.1rem!important}.sad-container{text-align:center;margin-top:2rem}.sad{font-size:8vh;display:inline-block;transform:rotate(90deg)}.error h3{text-transform:unset;font-weight:700}