*,::after,::before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:18px;line-height:1.6;word-break:break-word;background:var(--theme)}article,aside,figcaption,figure,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;word-break:keep-all}button,input,textarea{padding:0;font:inherit;background:0 0;border:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme)inset}img{display:block;max-width:100%}:root{--main-width:780px;--main-padding:1.4em;--main-padding-bottom:3rem;--caption-padding:calc(0.25 * var(--main-padding));--header-top-gap:2rem;--header-bottom-gap:2rem;--header-menu-side-gap:0.5rem;--header-menu-top-gap:1rem;--h1-margin-top:2rem;--h1-margin-bottom:1.5rem;--h2-margin-top:1.5rem;--h2-margin-bottom:1rem;--hx-margin-top:1.5rem;--hx-margin-bottom:1rem;--p-margin-top:1rem;--p-margin-bottom:1rem;--code-margin-top:2rem;--code-margin-bottom:2rem;--h1-font-size:2.2rem;--h2-font-size:1.8rem;--hx-font-size:1.5em;--p-font-size:1.3rem;--p-line-height:1.6em;--caption-font-size:0.8em;--li-indent:1.5rem;--ul-margin-top:1rem;--ul-margin-bottom:1rem;--toc-margin-top:2rem;--toc-margin-bottom:3rem;--code-padding:1.5rem;--code-border-radius:5px;--copy-code-button-border-radius:7px;--social-icons-bottom-margin:1.3rem;--footer-height:2rem;--content-height:calc(100vh - var(--footer-height));--table-cell-padding:0.5rem;--table-margin-top:1.5rem;--table-margin-bottom:1.5rem}@media screen and (max-width:1024px){:root{--main-width:750px;--header-top-gap:1rem;--caption-padding:calc(0.25 * var(--main-padding))}}@media screen and (max-width:640px){:root{--header-top-gap:1rem;--social-icons-bottom-margin:0rem;--caption-padding:calc(2 * var(--main-padding))}}.flex{display:flex}.bold{font-weight:700}.italic{font-style:italic}.small{font-size:medium}.monospace{font-family:jetbrains mono,monospace}@font-face{font-family:jetbrains mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2"),url(/fonts/jetbrains-mono-latin-500-normal.woff)format("woff")}@font-face{font-family:jetbrains mono;font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/jetbrains-mono-latin-500-italic.woff2)format("woff2"),url(/fonts/jetbrains-mono-latin-500-italic.woff)format("woff")}@font-face{font-family:merriweather;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/merriweather-latin-500-normal.woff2)format("woff2"),url(/fonts/merriweather-latin-500-normal.woff)format("woff")}@font-face{font-family:merriweather;font-style:italic;font-display:swap;font-weight:500;src:url(/fonts/merriweather-latin-500-italic.woff2)format("woff2"),url(/fonts/merriweather-latin-500-italic.woff)format("woff")}@font-face{font-family:merriweather;font-style:bold;font-display:swap;font-weight:700;src:url(/fonts/merriweather-latin-700-normal.woff2)format("woff2"),url(/fonts/merriweather-latin-700-normal.woff)format("woff")}@font-face{font-family:merriweather;font-style:italic;font-display:swap;font-weight:700;src:url(/fonts/merriweather-latin-700-italic.woff2)format("woff2"),url(/fonts/merriweather-latin-700-italic.woff)format("woff")}html{scroll-behavior:smooth}body{font-family:merriweather,SystemUI;font-optical-sizing:auto;margin:auto;max-width:var(--main-width);padding-left:var(--main-padding);padding-right:var(--main-padding);color:var(--content-primary);background:var(--background)}.content{min-height:var(--content-height)!important}h1{margin-top:var(--h1-margin-top);margin-bottom:var(--h1-margin-bottom);font-size:var(--h1-font-size);font-style:bold!important}h2{margin-top:var(--h2-margin-top);margin-bottom:var(--h2-margin-bottom);font-size:var(--h2-font-size)}h3,h4,h5,h6{font-size:var(--hx-font-size);margin-top:var(--hx-margin-top);margin-bottom:var(--hx-margin-bottom)}p{margin-top:var(--p-margin-top);margin-bottom:var(--p-margin-bottom);font-size:var(--p-font-size)!important;line-height:var(--p-line-height)}ul{margin-top:var(--ul-margin-top);margin-bottom:var(--ul-margin-bottom);font-size:var(--p-font-size)}li{margin-left:var(--li-indent)}a{text-decoration:underline}.more{font-size:.9rem;text-decoration:none}.copy-code-button{background-color:var(--code-block-background);font-family:monospace;padding:3px 6px;font-size:.8em;border-radius:var(--code-border-radius);position:absolute;top:10px;right:10px;z-index:1;display:none;border:1px solid var(--code-border)}pre:hover .copy-code-button{display:block}pre{position:relative;padding:var(--code-padding);border:1px solid var(--code-border);overflow:scroll;border-radius:var(--code-border-radius);margin-top:var(--code-margin-top);margin-bottom:var(--code-margin-bottom);background-color:var(--code-block-background)!important;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;line-height:1.4em}pre::-webkit-scrollbar{display:none}code span{display:inline!important}code{-webkit-font-smoothing:antialiased;-moz-font-feature-settings:"liga=1, dlig=1";-ms-font-feature-settings:"liga","dlig";-webkit-font-feature-settings:"liga","dlig";-o-font-feature-settings:"liga","dlig";font-feature-settings:"liga","dlig";font-variant-ligatures:contextual;font-family:jetbrains mono,monospace;font-size:.9em;line-height:0}.katex-display{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none}.katex-display::-webkit-scrollbar{display:none}.footnotes{margin-top:3rem;border-style:none}hr{border:none;height:1px;background:var(--content-secondary);margin-top:2rem;margin-bottom:2rem}.header{padding-top:var(--header-top-gap);margin-bottom:var(--header-bottom-gap)}.header p{margin-top:var(--header-menu-top-gap);margin-right:var(--header-menu-side-gap)}.header-title{font-size:2.2rem;font-weight:700;margin-bottom:0;margin-top:0}footer{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;font-family:jetbrains mono,monospace}.post-line{margin-top:.9rem;margin-bottom:.9rem;display:flex;align-items:baseline}.tag-line{margin-bottom:.5rem;display:flex;align-items:baseline}.post-line p{margin-top:0;margin-bottom:0}.line-date{font-family:merriweather,monospace;font-size:.9rem;text-align:start;margin-bottom:.5rem;display:inline-flex;justify-content:start;color:var(--content-secondary)}.post-content{display:flex;flex-direction:column;justify-content:center;width:100%;gap:2}.line-title{margin:0;font-size:1.1rem}a{color:var(--a-color);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}.small a{color:var(--color-primary);font-size:.9rem}.small a:hover{text-decoration:underline;color:var(--a-color)}.tag-title{margin:0}.line-summary{font-size:small;margin-top:.2rem!important;color:var(--content-secondary)}.pagination{display:flex;align-items:center;margin-top:1rem;margin-bottom:0;justify-content:center}.pagination-control{min-width:3rem;margin-left:.5rem;margin-right:.5rem;text-align:center;align-items:center}.page-number{min-width:3rem;margin-left:.5rem;margin-right:.5rem;display:flex;align-items:center;justify-content:center;align-items:center;font-weight:700}.social-icons{padding:12px 0;margin-bottom:var(--social-icons-bottom-margin)}.social-icons a{text-decoration:none;color:var(--content-primary)}.social-icons a:hover{color:var(--a-color)}.social-icons a:not(:last-of-type){margin-inline-end:12px}.social-icons a svg{height:20px;width:20px}.single-intro-container{margin-top:1rem}.single-title{margin-bottom:.5rem}.single-readtime{display:flex;flex-direction:column;font-family:merriweather;margin-top:.5rem;color:var(--content-secondary)}.single-summary{margin-bottom:0;font-size:.9rem;color:var(--content-secondary)}.single-content{margin-bottom:5rem;font-size:1.1rem}.single-content>p{font-size:1rem}.single-tags{margin-top:-1rem;font-size:.9rem}.single-tags span{margin-right:.3rem}.single-pagination{margin-top:3rem;margin-bottom:3rem}.single-pagination a{margin-left:.4rem;margin-right:.4rem}.single-pagination hr{margin:0}.single-pagination-text{display:flex;justify-content:center;align-items:center;min-height:100%}.single-pagination-text a{color:var(--content-primary);font-size:1rem}.single-pagination-prev{min-width:50%;margin-top:1rem;margin-bottom:1rem;text-align:right}.single-pagination-next{min-width:50%;margin-top:1rem;margin-bottom:1rem;text-align:left}.single-pagination-container-next{display:flex;min-height:100%;padding:.5rem}.single-pagination-container-prev{display:flex;min-height:100%;padding:.5rem;float:right}.toc{font-size:var(--p-font-size);line-height:calc(.9 * var(--p-line-height));margin-top:var(--toc-margin-top);margin-bottom:var(--toc-margin-bottom)}.toc ul{margin-top:.1rem;margin-bottom:.1rem}font-style: italic; .toc li{margin-top:.1rem;margin-bottom:.1rem}.autonumber{counter-reset:h2-counter 0}.autonumber h2{counter-increment:h2-counter 1;counter-reset:h3-counter 0}.autonumber h3{counter-increment:h3-counter 1;counter-reset:h4-counter 0}.autonumber h4{counter-increment:h4-counter 1}.autonumber h2:before{content:counter(h2-counter)"\00a0\00a0"}.autonumber h3:before{content:counter(h2-counter)"." counter(h3-counter)"\00a0\00a0"}.autonumber h4:before{content:counter(h2-counter)"." counter(h3-counter)"." counter(h4-counter)"\00a0\00a0"}.dark .img-light{display:none!important}.light .img-dark{display:none!important}.img-small div{display:flex;align-items:center;justify-content:center}.img-small img{scale:80%}.img-full div{display:flex;align-items:center;justify-content:center}.img-full img{width:100vw!important;max-width:100vw!important}.caption-container{display:flex;justify-content:center}figcaption{color:var(--content-secondary);padding-left:var(--caption-padding);padding-right:var(--caption-padding);font-size:var(--caption-font-size);margin-top:1rem;margin-bottom:1rem}.not-found{display:flex;align-items:center;justify-content:center}.not-found div{text-align:center}.not-found div h1{font-size:6rem;margin-bottom:3rem}.breadcrumbs{font-size:.8em;margin-bottom:calc(-.5 * var(--h1-margin-top))}.breadcrumbs a{color:var(--content-secondary);text-decoration:underline}.back-to-top{text-align:center;font-size:small;margin-bottom:.5rem;font-family:jetbrains mono,monospace}p code,li code{background-color:var(--code-background);border-radius:5px;padding-top:2px;padding-bottom:2px;padding-left:5px;padding-right:6px}table{border-collapse:collapse;margin-top:var(--table-margin-top);margin-bottom:var(--table-margin-bottom);font-size:var(--p-font-size);line-height:var(--p-line-height);color:var(--content-primary)}th,td{padding:var(--table-cell-padding);border:1px solid var(--code-border);text-align:left}th{background-color:var(--code-background);font-weight:700}table code{background-color:var(--code-background);border-radius:3px;padding:2px}blockquote{margin:auto -1.2rem;border-left:solid 4px;font-style:italic;color:#757575}blockquote p{margin-left:1rem;margin-right:1rem}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--code-background:rgb(230, 233, 239);--code-border:rgb(188, 192, 204);--code-block-background:rgb(33, 35, 48);--code-block-border:rgb(81, 87, 109);--a-color:#226ac4}.dark{--content-primary:rgb(232, 236, 251);--content-secondary:rgb(165, 173, 206);--background:rgb(20, 20, 20);--code-background:rgb(33, 35, 48);--code-border:rgb(81, 87, 109);--a-color:#73a7e7}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--code-background:rgb(230, 233, 239);--code-border:rgb(188, 192, 204);--code-block-background:rgb(33, 35, 48);--code-block-border:rgb(81, 87, 109);--a-color:#226ac4}.dark{--content-primary:rgb(232, 236, 251);--content-secondary:rgb(165, 173, 206);--background:rgb(20, 20, 20);--code-background:rgb(33, 35, 48);--code-border:rgb(81, 87, 109);--a-color:#73a7e7}