*,::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(.25 * var(--main-padding));--header-top-gap:2rem;--header-bottom-gap:2rem;--header-menu-side-gap:.5rem;--header-menu-top-gap:1rem;--h1-margin-top:2rem;--h1-margin-bottom:1.5rem;--h2-margin-top:2rem;--h2-margin-bottom:1.5rem;--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:2em;--h2-font-size:1.8em;--hx-font-size:1.3em;--p-font-size:1em;--p-line-height:1.5em;--caption-font-size:.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:10px;--social-icons-bottom-margin:3rem;--footer-height:3rem;--content-height:calc(100vh - var(--footer-height));--table-cell-padding:.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(.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:monaspace}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-Light.woff2)format('woff2');font-weight:light;font-style:normal}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-LightItalic.woff2)format('woff2');font-weight:light;font-style:italic}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-SemiBold.woff2)format('woff2');font-weight:700;font-style:normal}@font-face{font-family:literata;src:url(/fonts/Literata/Literata-SemiBoldItalic.woff2)format('woff2');font-weight:700;font-style:italic}@font-face{font-family:monaspace;src:url(/fonts/Monaspace/MonaspaceArgon-Regular.woff)format('woff');font-weight:400;font-style:normal}@font-face{font-family:monaspace;src:url(/fonts/Monaspace/MonaspaceArgon-SemiBold.woff)format('woff');font-weight:700;font-style:normal}html{scroll-behavior:smooth}body{font-family:literata;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)}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);line-height:var(--p-line-height)}ul{margin-top:var(--ul-margin-top);margin-bottom:var(--ul-margin-bottom)}li{margin-left:var(--li-indent)}a{text-decoration:underline}pre{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-background)!important;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;line-height:1.3em}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:monaspace;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{font-family:monospace;margin-top:var(--header-menu-top-gap);margin-right:var(--header-menu-side-gap)}.header-title{font-size:2.6em;font-weight:700;margin-bottom:0;margin-top:0}footer{font-size:small;display:flex;justify-content:center;align-items:center;max-height:var(--footer-height)}footer a{font-family:monaspace;margin-left:.2rem;margin-right:.2rem}.post-line{margin-bottom:.5rem;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-size:small;font-family:monaspace;min-width:120px;max-width:120px;text-align:right;padding-right:1rem;margin-top:0;margin-bottom:0}.line-title{margin:0}.tag-title{margin:0}.line-summary{font-size:small;margin-top:.2rem!important;color:var(--content-secondary)}.list-container{padding-bottom:3rem}.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}.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;margin-bottom:2rem}.single-title{margin-bottom:.5rem}.single-readtime{margin-top:.5rem;color:var(--content-secondary)}.single-summary{margin-bottom:0;color:var(--content-secondary)}.single-content{margin-bottom:5rem}.single-tags{margin-top:-1rem}.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-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}.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-family:monaspace;font-size:.8em;margin-bottom:calc(-.5 * var(--h1-margin-top))}.giscus{margin-top:3rem}.back-to-top{text-align:center;font-family:monaspace;font-size:small;margin-bottom:2rem}p code{background-color:var(--code-background);border-radius:3px;padding:2px}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:1.5rem;margin-left:0;margin-right:0;border-left:solid 2px;color:var(--content-secondary)}blockquote p{margin-left:1rem;margin-right:1rem}:root{--bg-color-dark:rgb(0, 0, 0);--text-color-dark:rgb(208, 208, 208);--link-color-dark:rgb(204, 157, 95);--hover-color-dark:rgb(255, 255, 255);--bg-color-light:rgb(255, 255, 255);--text-color-light:rgb(0, 0, 0);--link-color-light:rgb(204, 157, 95);--hover-color-light:rgb(0, 0, 0);--code-bg-light:rgb(248, 249, 250);--code-border-light:rgb(183, 184, 185);--code-text-light:rgb(36, 41, 47);--code-comment-light:rgb(107, 114, 126);--code-keyword-light:rgb(207, 34, 46);--code-string-light:rgb(3, 147, 71);--code-number-light:rgb(5, 80, 174);--code-function-light:rgb(102, 57, 186);--code-operator-light:rgb(36, 41, 47);--code-bg-dark:rgb(22, 27, 34);--code-border-dark:rgb(87, 92, 99);--code-text-dark:rgb(230, 237, 243);--code-comment-dark:rgb(139, 148, 158);--code-keyword-dark:rgb(255, 123, 114);--code-string-dark:rgb(168, 255, 96);--code-number-dark:rgb(121, 192, 255);--code-function-dark:rgb(210, 168, 255);--code-operator-dark:rgb(255, 198, 109);--inline-code-bg-light:rgb(240, 240, 240);--inline-code-text-light:rgb(68, 68, 68);--inline-code-bg-dark:rgb(40, 44, 52);--inline-code-text-dark:rgb(220, 220, 220);--image-bg-universal:rgb(240, 240, 240);--image-bg-light-variant:rgb(250, 250, 250);--image-bg-dark-variant:rgb(60, 60, 60);--image-caption-light:rgb(107, 114, 126);--image-caption-dark:rgb(139, 148, 158);--content-third:#3c3836;--important-bg-color:rgb(241, 231, 189)}html[data-theme=dark]{--bg-color:var(--bg-color-dark);--text-color:var(--text-color-dark);--link-color:var(--link-color-dark);--hover-color:var(--hover-color-dark);--code-background:var(--code-bg-dark) !important;--code-border:rgb(87, 92, 99) !important;--code-text:var(--code-text-dark);--image-background:var(--image-bg-universal);--image-caption-color:var(--image-caption-dark)}html[data-theme=light]{--bg-color:var(--bg-color-light);--text-color:var(--text-color-light);--link-color:var(--link-color-light);--hover-color:var(--hover-color-light);--code-background:var(--code-bg-light) !important;--code-border:rgb(183, 184, 185) !important;--code-text:var(--code-text-light);--image-background:var(--image-bg-universal);--image-caption-color:var(--image-caption-light)}.highlight,.highlight pre,.highlight code,pre,code{background-color:inherit!important;border:none!important}pre{background-color:var(--code-background)!important;color:var(--code-text)!important;box-sizing:border-box!important}html[data-theme=light] pre,html[data-theme=light] .highlight pre{background-color:#f8f9fa!important;border:1px solid #b7b8b9!important;color:#24292f!important}html[data-theme=dark] pre,html[data-theme=dark] .highlight pre{background-color:#161b22!important;border:1px solid #575c63!important;color:#e6edf3!important}pre code{border:none!important;background-color:transparent!important}.highlight pre{border-width:1px!important;border-style:solid!important}.highlight,.highlight pre{box-sizing:border-box!important}p code,li code,td code,th code{padding:2px 4px;border-radius:3px;font-size:.9em}html[data-theme=light] p code,html[data-theme=light] li code,html[data-theme=light] td code,html[data-theme=light] th code{background-color:var(--inline-code-bg-light);color:var(--inline-code-text-light)}html[data-theme=dark] p code,html[data-theme=dark] li code,html[data-theme=dark] td code,html[data-theme=dark] th code{background-color:var(--inline-code-bg-dark);color:var(--inline-code-text-dark)}html[data-theme=light] .highlight .c,html[data-theme=light] .highlight .ch,html[data-theme=light] .highlight .cm,html[data-theme=light] .highlight .c1,html[data-theme=light] .highlight .cs{color:var(--code-comment-light);font-style:italic}html[data-theme=light] .highlight .k,html[data-theme=light] .highlight .kc,html[data-theme=light] .highlight .kd,html[data-theme=light] .highlight .kn,html[data-theme=light] .highlight .kp,html[data-theme=light] .highlight .kr,html[data-theme=light] .highlight .kt{color:var(--code-keyword-light);font-weight:700}html[data-theme=light] .highlight .s,html[data-theme=light] .highlight .sa,html[data-theme=light] .highlight .sb,html[data-theme=light] .highlight .sc,html[data-theme=light] .highlight .dl,html[data-theme=light] .highlight .sd,html[data-theme=light] .highlight .s2,html[data-theme=light] .highlight .se,html[data-theme=light] .highlight .sh,html[data-theme=light] .highlight .si,html[data-theme=light] .highlight .sx,html[data-theme=light] .highlight .sr,html[data-theme=light] .highlight .s1,html[data-theme=light] .highlight .ss{color:var(--code-string-light)}html[data-theme=light] .highlight .m,html[data-theme=light] .highlight .mb,html[data-theme=light] .highlight .mf,html[data-theme=light] .highlight .mh,html[data-theme=light] .highlight .mi,html[data-theme=light] .highlight .il,html[data-theme=light] .highlight .mo{color:var(--code-number-light)}html[data-theme=light] .highlight .n,html[data-theme=light] .highlight .na,html[data-theme=light] .highlight .nb,html[data-theme=light] .highlight .nc,html[data-theme=light] .highlight .no,html[data-theme=light] .highlight .nd,html[data-theme=light] .highlight .ni,html[data-theme=light] .highlight .ne,html[data-theme=light] .highlight .nf,html[data-theme=light] .highlight .nl,html[data-theme=light] .highlight .nn,html[data-theme=light] .highlight .nx,html[data-theme=light] .highlight .py,html[data-theme=light] .highlight .nt,html[data-theme=light] .highlight .nv,html[data-theme=light] .highlight .vc,html[data-theme=light] .highlight .vg,html[data-theme=light] .highlight .vi,html[data-theme=light] .highlight .vm{color:var(--code-function-light)}html[data-theme=light] .highlight .o,html[data-theme=light] .highlight .ow{color:var(--code-operator-light)}html[data-theme=dark] .highlight .c,html[data-theme=dark] .highlight .ch,html[data-theme=dark] .highlight .cm,html[data-theme=dark] .highlight .c1,html[data-theme=dark] .highlight .cs{color:var(--code-comment-dark);font-style:italic}html[data-theme=dark] .highlight .k,html[data-theme=dark] .highlight .kc,html[data-theme=dark] .highlight .kd,html[data-theme=dark] .highlight .kn,html[data-theme=dark] .highlight .kp,html[data-theme=dark] .highlight .kr,html[data-theme=dark] .highlight .kt{color:var(--code-keyword-dark);font-weight:700}html[data-theme=dark] .highlight .s,html[data-theme=dark] .highlight .sa,html[data-theme=dark] .highlight .sb,html[data-theme=dark] .highlight .sc,html[data-theme=dark] .highlight .dl,html[data-theme=dark] .highlight .sd,html[data-theme=dark] .highlight .s2,html[data-theme=dark] .highlight .se,html[data-theme=dark] .highlight .sh,html[data-theme=dark] .highlight .si,html[data-theme=dark] .highlight .sx,html[data-theme=dark] .highlight .sr,html[data-theme=dark] .highlight .s1,html[data-theme=dark] .highlight .ss{color:var(--code-string-dark)}html[data-theme=dark] .highlight .m,html[data-theme=dark] .highlight .mb,html[data-theme=dark] .highlight .mf,html[data-theme=dark] .highlight .mh,html[data-theme=dark] .highlight .mi,html[data-theme=dark] .highlight .il,html[data-theme=dark] .highlight .mo{color:var(--code-number-dark)}html[data-theme=dark] .highlight .n,html[data-theme=dark] .highlight .na,html[data-theme=dark] .highlight .nb,html[data-theme=dark] .highlight .nc,html[data-theme=dark] .highlight .no,html[data-theme=dark] .highlight .nd,html[data-theme=dark] .highlight .ni,html[data-theme=dark] .highlight .ne,html[data-theme=dark] .highlight .nf,html[data-theme=dark] .highlight .nl,html[data-theme=dark] .highlight .nn,html[data-theme=dark] .highlight .nx,html[data-theme=dark] .highlight .py,html[data-theme=dark] .highlight .nt,html[data-theme=dark] .highlight .nv,html[data-theme=dark] .highlight .vc,html[data-theme=dark] .highlight .vg,html[data-theme=dark] .highlight .vi,html[data-theme=dark] .highlight .vm{color:var(--code-function-dark)}html[data-theme=dark] .highlight .o,html[data-theme=dark] .highlight .ow{color:var(--code-operator-dark)}.highlight,.highlight pre,.highlight code{background-color:inherit!important}.code{overflow:scroll;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;line-height:1.3em}body{background-color:var(--bg-color);color:var(--text-color)}a{color:var(--link-color)}a:hover{color:var(--hover-color)}em{font-style:italic;color:var(--content-third)}.bibtex-string{font-family:monospace;white-space:pre;font-size:.9em;margin:0;padding:0}.publication-icons{padding:12px 0;margin-bottom:var(--publication-icons-bottom-margin)}.publication-icons a{text-decoration:none;display:inline-flex;align-items:center;gap:4px}.publication-icons a:not(:last-of-type){margin-inline-end:12px}.publication-icons a svg{height:20px;width:20px}.publication-icon-label{font-size:.9em;color:var(--link-color);font-weight:500;text-transform:lowercase;transition:color .2s ease}.publication-icons a:hover .publication-icon-label{color:var(--hover-color)}.image-caption{font-size:.8em;color:var(--image-caption-color);text-align:left;margin-top:.5rem;margin-bottom:.5rem}.image-block{background-color:var(--image-bg-light-variant);border-radius:15px;padding:10px;margin-left:5%;margin-right:5%;align-items:center}.image-block-light{background-color:var(--image-bg-light-variant);border-radius:15px;padding:10px;margin-left:5%;margin-right:5%;align-items:center}.image-block-dark{background-color:var(--image-bg-dark-variant);border-radius:15px;padding:10px;margin-left:5%;margin-right:5%;align-items:center}img{background-color:var(--image-background);border-radius:8px;padding:8px}img.image-block-light,.image-block-light img{background-color:var(--image-bg-light-variant)}img.image-block-dark,.image-block-dark img{background-color:var(--image-bg-dark-variant)}#dark-mode-toggle{position:absolute;top:3rem;right:1rem;z-index:1000}header{position:relative}@media(max-width:768px){#dark-mode-toggle{top:.5rem;right:.5rem}}.highlight pre{border-radius:0 0 10px 10px;margin:0 0 0}.responsive-iframe{width:100%;height:calc(100vw * 9/16/2);border:none}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--code-background:rgb(249, 249, 249);--code-border:rgb(229, 229, 229)}.dark{--content-primary:rgb(218, 218, 218);--content-secondary:rgb(140, 140, 140);--background:rgb(20, 20, 20);--code-background:rgb(30, 30, 30);--code-border:rgb(50, 50, 50)}:root{--content-primary:rgb(0, 0, 0);--content-secondary:rgb(0, 0, 0);--background:rgb(255, 255, 255);--code-background:rgb(255, 255, 255);--code-border:rgb(0, 0, 0);--link-color:rgb(204, 157, 95);--content-third:rgb(204, 157, 95);--link-hover-color:rgb(0, 0, 0)}.dark{--content-primary:rgb(208, 208, 208);--content-secondary:rgb(208, 208, 208);--background:rgb(0, 0, 0);--code-background:rgb(0, 0, 0);--code-border:rgb(255, 255, 255);--link-color:rgb(204, 157, 95);--link-hover-color:rgb(255, 255, 255);--content-third:rgb(204, 157, 95);--math-color:rgb(204, 157, 95)}