:root{--complimentary:#815205;--text:black;--code:black;--text-dim:#444;--link:#3366cc;--link-visited:#795cb2;--code-background:#f3f5f7;--code-border:#eaecf0;--code-border:transparent;--code-hl:#e6e6e6;--border-general:#cccfd4;--table-th:#e1e5ea;--table-tr:#edeff2;--toc-background:#f9f9f9;--toc-border:#aaa}@media(prefers-color-scheme:dark){:root{--complimentary:#815205;--text:#d8d8d8;--code:#cbcbcb;--text-dim:#a7a7a7;--link:#88a9e9;--link-visited:#a390ca;--code-background:#272727;--code-border:transparent;--code-hl:#5a5a5a;--border-general:#495057;--table-th:#414141;--table-tr:#343434;--toc-background:#343434;--toc-border:#495057}}#gitinfo-date{color:var(--text-dim);filter:opacity(40%);font-style:italic;font-size:.9em;white-space:nowrap}@media screen and (min-width:760px){#gitinfo-date{margin-left:30px}}html{color:var(--text);scroll-behavior:smooth}body{margin:auto;padding:0 1em 2em;font-family:inter,-apple-system,BlinkMacSystemFont,roboto,Helvetica,sans-serif;line-height:1.54;text-align:justify}@media screen and (min-width:760px){body{margin:auto;max-width:68vw}}@media screen and (min-width:1150px){body{margin:auto;max-width:62vw}}main{hyphens:none}p{margin:.7em 0}h1{font-weight:400;margin-bottom:0;font-size:2em;margin-top:0}h2{border-bottom:1px solid;border-color:var(--text-dim);margin-bottom:.5em;margin-top:1.2em;font-weight:400;font-size:1.65em}h3{font-size:1.3em;font-weight:700;margin-bottom:.5em;margin-top:1.2em;padding-bottom:0}h4{font-size:1.1em;margin-bottom:0;padding-bottom:0;font-style:oblique;font-weight:400}a{text-decoration:none;color:var(--link)}a:hover{text-decoration:underline}a:visited{color:var(--link-visited)}hr{border-style:dashed;color:var(--text-dim)}blockquote{border-left:.3rem solid var(--complimentary);font-style:oblique;margin:1.6rem 0;padding:0 1.4rem 0 1rem;line-height:1.6}blockquote p{margin:0}details{padding:0 0 0 14px;border-left:2px dashed var(--border-general)}mark{padding:0 2px}ul{padding-left:2rem}strong{font-weight:600}th{font-weight:500}.section-title{border:0}.post-list{color:var(--complimentary);padding-left:1em}@media screen and (min-width:760px){.post-list{max-width:60vw}}.bold-post-in-list{font-weight:600}@media screen and (max-width:760px){.katex{font-size:1.05em!important}}.footnotes{margin-top:60px}.terms{padding-left:16px}.menu{padding:0 4px 0 0;z-index:9999;text-align:left;margin-bottom:10px}.menu li{display:inline-block}.menu a{margin-right:1.1em;text-decoration:none;border-radius:5px}.menu a:visited{color:var(--link)}.menu a:hover{text-decoration:underline}.toc a{color:var(--text-dim)}.toc a:visited{color:var(--text-dim)}@media screen and (min-width:1150px){#tableOfContentContainer{position:fixed;left:20px;top:46px;max-width:15vw;width:15vw}#TableOfContents{opacity:.6;transition-duration:1s}#TableOfContents:hover{opacity:1}}.toc{animation-duration:1s;background:var(--toc-background)repeat;border:1px solid var(--toc-border);display:table;font-size:95%;margin-bottom:1em;padding:.4em 1.5em .4em .2em;width:auto;margin-top:auto}@media screen and (min-width:1150px){.toc{padding:0;background-color:transparent;font-size:80%;line-height:1.3;border-right:0;border-top:0;border-bottom:0;border-left:0}#TableOfContents{max-height:85vh;overflow-y:auto}#TableOfContents li{max-width:13vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.toc li,.toc ul,.toc ul li{list-style:outside none none}.toc ul li a{transition-duration:50ms}.active-toc{font-weight:700;transition-duration:50ms}@media screen and (min-width:1150px){#TableOfContents{margin-left:-32px}}#TableOfContents ul{padding-left:20px}.toc h3{margin-left:20px;margin-top:.5em;margin-bottom:.5em;font-weight:400}@keyframes images{from{opacity:0}to{opacity:1}}img{max-height:70vh;margin:.8em 0;animation-duration:1s;animation-name:images}.imgp{margin:auto;text-align:center}figure{margin:auto;text-align:center}.imgp img,figure img{border-radius:4px}figcaption{color:var(--text-dim);font-size:.96rem;text-align:center}figcaption h4{margin-top:0;font-weight:400}img,iframe,video{max-width:100%}.image-gallery,.image-gallery-img{list-style-type:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding-left:0}.image-gallery{margin:0 0 1.2rem}.image-gallery-img{margin:0 0 2.6rem}.image-gallery>li,.image-gallery-img>li{flex-basis:440px}.image-gallery li img,.image-gallery-img li img{object-fit:cover;width:100%;height:100%;border-radius:4px;vertical-align:middle}.three-image-gallery>li{flex-basis:290px}#single-header{padding:0 8px 4px 0;margin-bottom:20px;margin-top:10px}.date{color:var(--text-dim);padding-top:.1em;font-size:90%}#single-meta{margin-top:0;margin-bottom:0;padding-top:0;font-size:.9em}#single-meta a:visited{color:var(--link)}#subtitle{font-family:linux libertine,georgia,times,serif;margin-top:-8px;margin-bottom:.3em;font-size:1.4em;color:var(--text-dim)}.datesub{font-weight:400;color:var(--text-dim)}#tags{font-weight:400;color:var(--text-dim)}#tags a{filter:brightness(80%)}#tags a:visited{filter:brightness(80%)}#search-input{padding:6px;width:72%}@media screen and (min-width:900px){#search-input{width:42%}}@media screen and (min-width:1150px){#search-input{width:33%}}input{background-color:var(--background);color:var(--text);border-color:var(--border-general);border-radius:4px}#results{padding-left:16px}@keyframes code-fade-in{from{opacity:0}to{opacity:1}}.highlight div,pre{background-color:var(--code-background);padding:.7em;overflow-x:auto;margin:0;border:1px solid var(--code-border);border-radius:3px 0 3px 3px;line-height:1.3}.highlight{margin:.8em 0}.highlight div pre{border:0;padding:0 5px;margin:0;box-shadow:0 0}code{font-family:source code pro,monospace;color:var(--code);font-stretch:normal;background:var(--code-background);border-radius:5%;padding:1px 4px;border:1px solid var(--code-border);font-size:.92em}pre code{font-size:.9em;font-stretch:normal;border:none;background:0 0;padding:0;margin:0;tab-size:4}@media screen and (max-width:760px){pre code{font-size:80%}}.fs95{font-size:90%}.fs90{font-size:90%}.fs85{font-size:85%}.fs80{font-size:80%}.fs75{font-size:75%}.fs70{font-size:75%}.fs50{font-size:50%}.ln{user-select:none;margin-right:14px;color:#969696}.hl{background-color:var(--code-hl);outline-style:solid;outline-color:var(--code-hl);outline-width:.5px}.copy-code-button{display:none}@media screen and (min-width:760px){.copy-code-button{animation-duration:1s;animation-name:code-fade-in;margin-top:-8px;float:right;display:block;background-color:var(--code-background);border-color:var(--code-border);border-style:solid;border-width:1px 1px 0;border-radius:2px 2px 0 0;color:var(--text-dim)}}table{border-collapse:collapse;display:block;overflow:auto}@media screen and (min-width:760px){table{display:table!important}}table thead th{border:1px solid var(--border-general)}th,td{padding:4px 8px;border:1px solid #c8c8c8;border:1px solid var(--border-general)}th{background-color:var(--table-th)}tr{background-color:var(--table-tr)}.attachments-files{display:block;font-size:1rem;margin:0}.attachment-size{display:inline-block;color:var(--text-dim)}.attachments ul{margin-top:4px}.attachments label{font-weight:300;margin:0}.md-columns{display:flex;flex-wrap:wrap;margin-left:-1rem;margin-right:-1rem}.md-columns>div{flex:1 1;margin:1rem 0;min-width:100px;max-width:100%;padding:0 1rem}.md-columns .markdown-inner{margin-top:0;margin-bottom:0}.md-tabs{margin-top:1rem;margin-bottom:1rem;border:1px solid var(--border-general);border-radius:3px;overflow:hidden;display:flex;flex-wrap:wrap}.md-tabs label{display:inline-block;padding:.6rem .2rem .3rem;border-bottom:1px transparent;cursor:pointer}.md-tabs .md-tabs-content{order:999;width:100%;border-top:1px solid var(--border-general);padding:.5rem 1rem 1rem;display:none}.md-tabs input[type=radio]{margin-left:1.1rem}.md-tabs input[type=radio]:checked+label+.md-tabs-content{display:block}@font-face{font-family:inter;font-style:normal;font-weight:100;font-display:swap;src:url(fonts/Inter-Thin.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:100;font-display:swap;src:url(fonts/Inter-ThinItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:200;font-display:swap;src:url(fonts/Inter-ExtraLight.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:200;font-display:swap;src:url(fonts/Inter-ExtraLightItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:300;font-display:swap;src:url(fonts/Inter-Light.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:300;font-display:swap;src:url(fonts/Inter-LightItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/Inter-Regular.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:400;font-display:swap;src:url(fonts/Inter-Italic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/Inter-Medium.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:500;font-display:swap;src:url(fonts/Inter-MediumItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:580;font-display:swap;src:url(fonts/Inter-SemiBold.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:580;font-display:swap;src:url(fonts/Inter-SemiBoldItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:660;font-display:swap;src:url(fonts/Inter-Bold.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:660;font-display:swap;src:url(fonts/Inter-BoldItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:780;font-display:swap;src:url(fonts/Inter-ExtraBold.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:780;font-display:swap;src:url(fonts/Inter-ExtraBoldItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:900;font-display:swap;src:url(fonts/Inter-Black.woff2?v=4.0)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:900;font-display:swap;src:url(fonts/Inter-BlackItalic.woff2?v=4.0)format("woff2")}@font-face{font-family:iosevka web;font-display:swap;font-weight:400;font-stretch:normal;font-style:normal;src:url(fonts/iosevka-regular.woff2)format('woff2')}@font-face{font-family:iosevka web;font-display:swap;font-weight:400;font-stretch:expanded;font-style:normal;src:url(fonts/iosevka-extended.woff2)format('woff2')}@keyframes rose-icon{from{opacity:0}to{opacity:1}}.rose-icon{position:fixed;z-index:-100;bottom:2px;right:0;animation-duration:1s;animation-name:rose-icon;user-select:none;-webkit-user-drag:none}@media(prefers-color-scheme:dark){.rose-icon{filter:invert(20%)}}@media screen and (max-width:1000px){.rose-icon{display:none}}.highlight pre code[class=language-javaScript]::before,.highlight pre code[class=language-js]::before{content:"js"}.highlight pre code[class=language-typeScript]::before,.highlight pre code[class=language-ts]::before{content:"js"}.highlight pre code[class*=language-yml]::before,.highlight pre code[class*=language-yaml]::before{content:"yaml"}.highlight pre code[class*=language-shell]::before,.highlight pre code[class*=language-bash]::before,.highlight pre code[class*=language-sh]::before{content:"shell"}.highlight pre code[class*=language-json]::before{content:"json"}.highlight pre code[class*=language-python]::before,.highlight pre code[class*=language-py]::before{content:"py"}.highlight pre code[class*=language-css]::before{content:"css"}.highlight pre code[class*=language-go]::before{content:"Go"}.highlight pre code[class*=language-csharp]::before{content:"C#"}.highlight pre code[class*=language-md]::before{content:"Markdown"}.highlight pre code[class*=language-c]::before{content:"C"}.highlight pre code[class*=language-cpp]::before{content:"CPP"}.highlight pre code[class=language-java]::before{content:"Java"}.highlight pre code[class=language-rust]::before{content:"Rust"}.highlight pre code[class=language-php]::before{content:"PHP"}.highlight pre code[class=language-kotlin]::before{content:"Kotlin"}.highlight pre code[class=language-ruby]::before{content:"Ruby"}.highlight pre code[class=language-lua]::before{content:"Lua"}.highlight pre code[class=language-perl]::before{content:"Perl"}.highlight pre code[class=language-swift]::before{content:"Swift"}.highlight pre code[class=language-r]::before{content:"R"}.highlight pre code[class=language-dart]::before{content:"Dart"}.highlight pre code[class=language-scala]::before{content:"Scala"}.highlight pre code[class=language-haskell]::before{content:"Haskell"}.highlight pre code[class=language-elixir]::before{content:"Elixir"}.highlight pre code[class=language-sql]::before{content:"SQL"}.highlight pre code[class=language-html]::before{content:"HTML"}.highlight pre code[class=language-xml]::before{content:"XML"}.highlight pre code[class=language-vue]::before{content:"Vue"}.highlight pre code[class=language-react]::before{content:"React"}.highlight pre code[class=language-angular]::before{content:"Angular"}.highlight pre code[class=language-graphql]::before{content:"GraphQL"}.highlight pre code[class=language-sass]::before,.highlight pre code[class=language-scss]::before{content:"Sass"}.highlight pre code[class=language-matlab]::before{content:"MATLAB"}.highlight pre code[class=language-erlang]::before{content:"Erlang"}.highlight pre code[class=language-fortran]::before{content:"Fortran"}.highlight pre code[class=language-powershell]::before{content:"PowerShell"}svg{margin-right:10px}@media screen and (min-width:1150px){body{margin:auto;max-width:45vw}}#TableOfContents>ul>li>a{padding-left:.2rem;position:relative}h1,h2{font-family:linux libertine,georgia,times,serif}h3::before{align-items:center;padding-right:10px}h4::before{display:inline-block;margin-right:20px;font-size:5px;width:10px}h5::before{margin-right:5px}code{font-family:iosevka web,monospace;background-color:var(--code-background);padding:.1em .2em;color:--var(code)}pre{background-color:var(--pre-background);line-height:1.4;overflow-x:auto;padding:1em}pre code{background-color:transparent;padding:0;font-size:calc(2em * .7)}@media(max-width:1300px){body{background-image:none}}.highlight{position:relative;-webkit-overflow-scrolling:touch}.highlight pre code[class*=language-]{-webkit-overflow-scrolling:touch}.highlight pre code[class*=language-]::before{border-radius:0 0 .25rem .25rem;color:#fff;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;position:absolute;right:1rem;text-align:right;text-transform:uppercase;top:0;background:var(--highlight-background);color:var(--highlight-text)}@media(prefers-color-scheme:dark){svg{filter:invert(1)}}a.footnote-ref::before{content:"["}a.footnote-ref::after{content:"]"}blockquote{border-left:.3rem solid var(--blockquote-border)}::selection{background:var(--selection-color);color:currentColor}::-moz-selection{background:var(--selection-color);color:currentColor}.active-toc{color:var(--toc-active)!important;font-weight:500}.active-toc::before{content:"→";position:absolute;left:-1.2rem;color:var(--toc-active);z-index:1;font-size:.9em}pre{background:var(--pre-border);border:2px solid var(--kawaii-pink);margin-top:30px}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--scroll-track)}::-webkit-scrollbar-thumb{background:var(--kawaii-pink);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--sakura-pink)}.about-image{border:25px solid;border-image-slice:25;background-color:var(--about-background);box-shadow:3px 3px 10px var(--shadow-color);filter:brightness(1.02)contrast(1.02)}.kanna-conversation img{border:0}.kanna-conversation{max-width:600px;margin:0 auto;padding:20px}.kanna-message{display:flex;align-items:flex-start;margin-bottom:20px}.kanna-character{width:50px;height:50px;overflow:hidden;margin-right:10px;flex-shrink:0;display:flex;justify-content:center;align-items:center;margin-right:10px;margin-left:10px}.kanna-character img{max-width:100%;max-height:100%}.kanna-text{color:var(--kanna-text-color);padding:10px;border-radius:10px;background-color:var(--kanna-text-background);box-shadow:0 2px 5px var(--kanna-shadow)}.kanna-left{flex-direction:row}.kanna-right{flex-direction:row-reverse}.kanna-conversation p{margin:0}:root{--kawaii-pink:#ffd1dc;--sakura-pink:#ffb7c5;--anime-blue:#a8e6cf;--manga-purple:#d4a5ff;--background-color:#ffffff;--code-background:#f1f1f1;--pre-background:#ececec;--highlight-background:#f7b0d0;--highlight-text:#f4f4f4;--blockquote-border:#f9f0ff;--selection-color:rgba(255, 105, 180, 0.3);--toc-active:#e84393;--pre-border:rgba(255, 209, 220, 0.1);--scroll-track:#fff;--about-background:#fff7e6;--shadow-color:rgba(0, 0, 0, 0.2);--kanna-text-color:#7f27b2;--kanna-text-background:#faf0ff;--kanna-shadow:rgba(0, 0, 0, 0.1)}h5::before{content:url(images/kanna-h5.webp)}h4::before{content:url(images/kanna-h4.webp)}h3::before{content:url(images/kanna-h3.webp)}.about-image{border-image:url(/images/frame.webp)25 fill}