﻿:root{--admonition-note-border: #5b6167;--admonition-note-bg: #f2f4f7;--admonition-note-code: #e1e3ed;--admonition-tip-border: #16791d;--admonition-tip-bg: #a2d5a6;--admonition-tip-code: #d8eeda;--admonition-info-border: #0870b4;--admonition-info-bg: #b7def7;--admonition-info-code: #e1f1fc;--admonition-warning-border: #ff9021;--admonition-warning-bg: #fff387;--admonition-warning-code: #fff9c7;--admonition-danger-border: #be033a;--admonition-danger-bg: #f799b0;--admonition-danger-code: #f5bdcb}[data-theme=dark]{--admonition-note-border: #d0d1d4;--admonition-note-bg: #3d3e40;--admonition-note-code: #495057;--admonition-tip-border: #4fce58;--admonition-tip-bg: #26862c;--admonition-tip-code: #1f6f25;--admonition-info-border: #65b8ef;--admonition-info-bg: #0e5889;--admonition-info-code: #0d4d78;--admonition-warning-border: #ff4f00;--admonition-warning-bg: #e0d000;--admonition-warning-code: #c7b700;--admonition-danger-border: #e03862;--admonition-danger-bg: #5f071d;--admonition-danger-code: #8c2e00}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--admonition-note-border: #d0d1d4;--admonition-note-bg: #3d3e40;--admonition-note-code: #495057;--admonition-tip-border: #4fce58;--admonition-tip-bg: #26862c;--admonition-tip-code: #1f6f25;--admonition-info-border: #65b8ef;--admonition-info-bg: #0e5889;--admonition-info-code: #0d4d78;--admonition-warning-border: #ff4f00;--admonition-warning-bg: #e0d000;--admonition-warning-code: #c7b700;--admonition-danger-border: #e03862;--admonition-danger-bg: #5f071d;--admonition-danger-code: #8c2e00}:root:not([data-theme=light]) .admonition.warning{color:var(--background-color)}}.admonition{display:flex;align-items:flex-start;left:2rem;margin-block:1em;border-radius:10px;border-inline-start:6px solid;padding:.5rem;position:relative;color:var(--text-color-high-contrast);font-family:var(--sans-serif-font)}.admonition:last-child{flex:1}.admonition .icon{display:flex;align-items:center;margin:.3rem;background-size:contain;background-repeat:no-repeat;aspect-ratio:1/1;min-width:1.5rem}.admonition .title{font-weight:bold;font-size:.82rem}.admonition p{margin-block-end:0;font-family:inherit}.admonition a code{color:inherit}.admonition.note{border-color:var(--admonition-note-border);background-color:var(--admonition-note-bg)}.admonition.note p code{background-color:var(--admonition-note-code)}.admonition.note a{border-bottom:1px solid var(--admonition-note-border);color:var(--admonition-note-border)}.admonition.note a:hover{background-color:var(--admonition-note-border);color:var(--hover-color)}.admonition.note .icon{background-color:var(--admonition-note-border)}.admonition.note .icon{mask:url("/icons/note.svg")}.admonition.tip{border-color:var(--admonition-tip-border);background-color:var(--admonition-tip-bg)}.admonition.tip p code{background-color:var(--admonition-tip-code)}.admonition.tip a{border-bottom:1px solid var(--admonition-tip-border);color:var(--admonition-tip-border)}.admonition.tip a:hover{background-color:var(--admonition-tip-border);color:var(--hover-color)}.admonition.tip .icon{background-color:var(--admonition-tip-border)}.admonition.tip .icon{mask:url("/icons/tip.svg")}.admonition.info{border-color:var(--admonition-info-border);background-color:var(--admonition-info-bg)}.admonition.info p code{background-color:var(--admonition-info-code)}.admonition.info a{border-bottom:1px solid var(--admonition-info-border);color:var(--admonition-info-border)}.admonition.info a:hover{background-color:var(--admonition-info-border);color:var(--hover-color)}.admonition.info .icon{background-color:var(--admonition-info-border)}.admonition.info .icon{mask:url("/icons/info.svg")}.admonition.warning{border-color:var(--admonition-warning-border);background-color:var(--admonition-warning-bg)}.admonition.warning p code{background-color:var(--admonition-warning-code)}.admonition.warning a{border-bottom:1px solid var(--admonition-warning-border);color:var(--admonition-warning-border)}.admonition.warning a:hover{background-color:var(--admonition-warning-border);color:var(--hover-color)}.admonition.warning .icon{background-color:var(--admonition-warning-border)}.admonition.warning .icon{mask:url("/icons/warn.svg")}.admonition.danger{border-color:var(--admonition-danger-border);background-color:var(--admonition-danger-bg)}.admonition.danger p code{background-color:var(--admonition-danger-code)}.admonition.danger a{border-bottom:1px solid var(--admonition-danger-border);color:var(--admonition-danger-border)}.admonition.danger a:hover{background-color:var(--admonition-danger-border);color:var(--hover-color)}.admonition.danger .icon{background-color:var(--admonition-danger-border)}.admonition.danger .icon{mask:url("/icons/danger.svg")}.archive{margin-block-start:4vmin}.archive h2{margin-block-end:1rem;margin-left:0;font-size:1.5rem}.archive ul{margin:0;padding:0;list-style:none}.archive li li{margin-bottom:1.3rem;display:flex;gap:1rem;margin-block-end:.5rem;padding-inline:1rem;padding-block:.2rem}.archive .post-time{padding-inline-start:1vmin;min-inline-size:4rem;text-align:start;color:var(--meta-color);white-space:nowrap}aside{margin-block-end:var(--paragraph-spacing);border-radius:4px;background:var(--bg-0);padding-block:.8rem;padding-inline:1rem;color:var(--meta-color);font-size:.9rem}article aside p{margin:0;font-family:var(--sans-serif-font)}@media only screen and (min-width: 1300px){aside{position:absolute;inset-inline-start:-14rem;margin-block:0;border-radius:0;background:none;padding:0;width:12rem;text-align:end}aside[data-position=right]{inset-inline-start:auto;inset-inline-end:-14rem;text-align:start}}.filter-controls{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:.75rem;margin-bottom:.75rem;padding:0;list-style:none}.filter-controls #all-projects-filter{display:none}.filter-controls li{margin:0}.filter-controls li a{display:inline-block;box-shadow:rgba(0,0,0,.1) 0px 1px 3px 0px,rgba(0,0,0,.06) 0px 1px 2px 0px;border-radius:1rem;background:var(--bg-2);padding:4px 12px;color:var(--text-color);font-size:.8rem;text-decoration:none}.filter-controls li a:hover{background:var(--primary-color);color:var(--hover-color);text-decoration:none}.filter-controls li a.active{background:var(--accent-color);color:var(--hover-color)}.cards{display:grid;grid-template-rows:auto;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:24px;padding-block:12px}.cards>a{box-shadow:rgba(50,50,93,.25) 0px 2px 5px -1px,rgba(0,0,0,.3) 0px 1px 3px -1px;border-radius:1rem;background:var(--bg-2);min-height:100px;overflow:hidden;text-decoration:none}.cards>a:hover{background-color:var(--accent-color);text-decoration:none}.cards>a:hover:visited{text-decoration:none}.cards>a:hover .info>h2{color:var(--hover-color)}.cards>a:hover .description{color:var(--hover-color)}.cards>a .info{padding-inline:24px;padding-block-start:0;padding-block-end:24px;text-align:center}.cards>a img{margin:1.6rem;margin-bottom:1.0666666667rem;width:calc(100% - 3.2rem);height:auto}.cards>a .img-placeholder{width:100%;height:12px}.cards>a .description{margin-top:.5em;overflow:hidden;color:var(--text-color)}.cards h1,.cards h2,.cards h3,.cards h4,.cards h5,.cards h6{margin-left:0}@media all and (max-width: 720px){.cards{gap:18px}.filter-controls{gap:8px;margin:18px 0}}code{text-size-adjust:100%;border-radius:5px;background-color:var(--bg-1);padding-inline:.2em;padding-block:.1em;font-size:.9rem;font-family:var(--code-font)}code mark{display:block;filter:brightness(110%);background-color:var(--codeblock-highlight);color:inherit}code table{margin:0rem;border-collapse:collapse;border-spacing:0rem;width:100%;text-align:start}code table td,code table th,code table tr{border:none;padding:0rem}code table tbody td:first-child{opacity:50%;padding-inline-end:.8rem;width:1px;user-select:none;text-align:end}code table tbody tr:nth-child(even){background-color:inherit}pre{display:block;position:relative;border-radius:5px;padding-inline:1rem;padding-block-start:2.4rem;padding-block-end:1rem;overflow:hidden;overflow-x:auto;line-height:1.4}pre code,pre code td{font-size:.8rem}pre::after,pre code .source-path{display:block;position:absolute;top:0;inset-inline-end:1.3rem;padding-top:.3rem;padding-inline-end:1.3rem;max-width:calc(100% - 14em);height:.9rem;overflow:hidden;content:attr(data-name);color:var(--hover-color);font-size:.65rem;text-align:end;text-overflow:ellipsis;white-space:nowrap}pre code{display:block;border:0rem;border-radius:5px;background-color:rgba(0,0,0,0);padding:0rem;overflow-x:auto;color:inherit;white-space:pre}pre code::before{display:block;position:absolute;top:0;inset-inline-start:0;background-color:var(--accent-color);padding:.3rem;padding-inline-start:1rem;width:calc(100% - 1.3rem);height:.9rem;content:attr(data-lang);color:var(--hover-color);font-size:.65rem;text-align:start;text-transform:uppercase}code,pre{direction:ltr}html[data-code-direction=inherit] code,html[data-code-direction=inherit] pre{direction:inherit}.copy-code{mask:url("/icons/copy.svg");position:absolute;top:.3rem;align-self:center;z-index:1;cursor:pointer;inset-inline-end:.7rem;background:var(--hover-color);background-size:contain;width:.9rem;height:.9rem;color:#fff}.copy-code.checked{mask:url("/icons/check.svg");width:1rem;height:1rem}.copy-code.error{mask:url("/icons/error.svg")}footer{align-items:center;color:var(--meta-color);display:flex;flex-direction:row;font-size:.88rem;gap:0rem;margin-block-end:1.4rem;margin-top:auto}footer .socials{display:flex;flex-grow:0;flex-wrap:wrap;margin-right:auto}footer .socials a{display:flex;padding:.5vmin}footer .socials svg{max-height:15px}footer .socials ul{gap:5px}footer .links{display:flex;margin-left:auto}footer .links li{display:flex;flex:1}footer .links a{padding:0 .66em}footer p{margin:0}footer ul{display:flex;gap:1px;list-style:none;margin:0;padding:0}@media (max-width: 600px){footer{flex-direction:column}footer .links{margin:0}footer .socials{margin:0}}.header-anchor{display:inline-flex;justify-content:center;align-items:center;opacity:0;padding-inline-end:.3rem;width:1.9rem;user-select:none}@media (max-width: 500px){.header-anchor{display:none}}.link-icon{mask:url("/icons/link.svg");align-self:center;cursor:pointer;background:var(--text-color);width:1rem;height:1rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1 .header-anchor:hover,h2 .header-anchor:hover,h3 .header-anchor:hover,h4 .header-anchor:hover,h5 .header-anchor:hover,h6 .header-anchor:hover{background-color:rgba(0,0,0,0)}header{display:flex;flex-direction:row;flex-wrap:wrap;font-family:"Subset",var(--sans-serif-font);padding-bottom:.12rem;width:100%}header h1{color:var(--primary-color);display:flex;font-size:1.7em;font-weight:450;margin-top:.5em}header .icon{height:1.25rem;width:1.25rem}header .icons{display:flex;margin-top:auto;padding-bottom:.2rem}header .readmore{display:flex;margin:auto 0 0 auto}header nav{display:flex;justify-content:space-between;align-items:center;margin-left:auto;max-width:var(--max-layout-width)}header nav a{justify-content:right;padding:0 .66rem;color:var(--text-color);font-weight:340;font-size:1em;text-decoration:none}header nav :link:hover{text-decoration:underline;color:var(--primary-color);background-color:var(--background-color)}header nav :link:not(.no-hover-padding):hover::before{inset-block-end:auto}header nav li{display:flex}header nav ul{display:flex;flex-wrap:inherit;gap:1px;list-style:none;margin:auto 0 0 0;padding:0;padding-bottom:.33rem}.page-header{margin-block:4rem 1rem;font-size:3em;line-height:100%;font-family:var(--header-font)}.menu-icons-container{display:flex;align-items:center;margin-left:auto}.menu-icons-group{gap:1px;margin:0;padding:0}.separator{margin-inline-end:.2rem;user-select:none}.dropdown{display:inline-block;position:relative;z-index:1;font-size:.8rem}.dropdown:hover .dropdown-content,.dropdown:focus-within .dropdown-content{display:block}.dropdown summary{list-style:none}.dropdown .dropdown-content{display:none;position:absolute;left:50%;transform:translateX(-50%);z-index:1;background:var(--background-color);padding-inline-start:.5rem;padding-inline-end:.5rem;text-align:center;white-space:nowrap}.dropdown .dropdown-content a{display:block}@media only screen and (max-width: 1000px){nav{max-width:var(--normal-layout-width)}nav ul{display:flex;justify-content:center}nav .menu-icons-container{margin-left:0}}@media only screen and (max-width: 600px){nav{flex-direction:column;align-items:center}nav ul{margin-top:.8rem}}@media only screen and (max-width: 300px){nav{max-width:var(--small-layout-width)}}#banner-container-home{display:flex;justify-content:space-between;align-items:flex-start;margin:.2rem auto;width:100%}@media only screen and (max-width: 600px){#banner-container-home{display:block;margin-block-end:2rem}}#banner-container-home #home-banner-text{flex:1;margin-block-end:1.5rem;color:var(--primary-color);font-size:1.875rem;line-height:3rem}#banner-container-home #home-banner-text li{font-size:1rem}#banner-container-home #home-banner-text #home-banner-header{margin:0;margin-block-end:1rem;font-weight:550;font-size:2.8rem}@media only screen and (max-width: 600px){#banner-container-home #home-banner-text #home-banner-header{margin-block-end:0;font-size:2.2rem}}#banner-container-home #home-banner-text #banner-home-subtitle{color:var(--text-color);font-weight:250;line-height:1.75rem}#banner-container-home #home-banner-text #banner-home-subtitle p{font-size:1rem}#banner-container-home #home-banner-text #banner-home-subtitle a{font-weight:400}@media only screen and (max-width: 600px){#banner-container-home #home-banner-text{width:100%}}#banner-container-home #image-container-home{position:relative;margin:auto 0;padding-inline-start:2rem;max-width:11rem;overflow:hidden;text-align:center}#banner-container-home #image-container-home #banner-home-img{border:none;aspect-ratio:1/1;width:100%;height:100%;object-fit:cover}@media only screen and (max-width: 600px){#banner-container-home #image-container-home #banner-home-img{max-width:12rem;max-height:12rem}}@media only screen and (max-width: 600px){#banner-container-home #image-container-home{padding-inline-start:0;width:100%;max-width:none}}.section-title [rel=alternate] img,footer .socials img{border-radius:10px;border:0px solid;padding:5px;width:1rem}.section-title [rel=alternate] img:hover,footer .socials img:hover{background-color:var(--accent-color)}[data-theme=dark] .section-title [rel=alternate] img,[data-theme=dark] footer .socials img{filter:invert(1)}[data-theme=dark] .section-title [rel=alternate] img:hover,[data-theme=dark] footer .socials img:hover{filter:invert(0)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .section-title [rel=alternate] img,:root:not([data-theme=light]) footer .socials img{filter:invert(1)}:root:not([data-theme=light]) .section-title [rel=alternate] img:hover,:root:not([data-theme=light]) footer .socials img:hover{filter:invert(0)}}.image-hover-container{position:relative;width:100%}.image-hover-container .image-default{display:inline}.image-hover-container .image-hovered{display:none}.image-hover-container:hover .image-default{display:none}.image-hover-container:hover .image-hovered{display:inline}.image-label{cursor:pointer}.image-toggled{position:absolute;top:0;left:0;visibility:hidden}.image-toggler-toggle{display:none}.image-toggler-toggle:checked~.image-label .image-toggled{position:static;visibility:visible}.image-toggler-toggle:checked~.image-label .image-default{position:absolute;visibility:hidden}figure{display:inline-block;box-sizing:border-box;margin:0;max-width:100%;height:auto}figcaption{color:var(--meta-color);font-size:.72rem;font-family:var(--serif-font);text-align:center}img{display:block;margin:0 auto;max-width:100%;height:auto}img.inline{display:inline;vertical-align:middle}figure h4{margin:0;margin-block-end:1em;font-size:1rem}figure h4::before{content:"↳ "}.img-dark{display:none}.img-dark.inline{display:none}.img-light.inline{display:inline}[data-theme=dark] .img-dark{display:block}[data-theme=dark] .img-dark.inline{display:inline}[data-theme=dark] .img-light{display:none}kbd{border:1px solid var(--divider-color);border-radius:5px;background-color:var(--bg-0);padding:.1rem .3rem;font-size:.8rem}.draft-label{margin-inline-end:.3rem;background-color:var(--primary-color);padding-inline:4px;padding-block:2px;color:var(--hover-color)}iframe{display:block;margin-inline-start:15%;margin-inline-end:15%;margin-block-end:3vmin;border:none;aspect-ratio:16/9;width:100vmin;max-width:70%}ul{margin-top:0}section.toc{margin-block-end:4vmin}section.toc h3{margin-left:0}section.toc ul{padding-inline-start:1.5rem}.padding-top{padding-top:4vmin}.bottom-divider{border-bottom:var(--divider-color) solid 1px}::selection{background:var(--accent-color);color:var(--hover-color)}.nav.tags{display:inline-block}blockquote{margin:0;border-inline-start:.3rem solid var(--primary-color);padding-inline-start:1em}blockquote p:last-child{margin-bottom:0}a{color:var(--primary-color);font-weight:inherit;text-decoration:inherit}main{--external-link-icon: url("/icons/external_link.svg")}main a.external:not(:has(img,svg,video,picture,figure))::after{display:inline-block;vertical-align:.05em;background-color:currentColor;width:.75em;height:.75em;content:"";mask-image:var(--external-link-icon);mask-size:100% 100%}main:dir(rtl) a.external:not(:has(img,svg,video,picture,figure))::after{transform:rotate(-90deg)}main .meta a.external:not(:has(img,svg,video,picture,figure))::after{background-color:var(--meta-color)}:link:hover{color:var(--accent-color);text-decoration:underline}:link:hover:visited{text-decoration-color:var(--primary-color)}:link:hover rt{color:var(--text-color)}:link:not(.no-hover-padding):hover::before{display:inline-block;position:absolute;z-index:-1;inset-block-start:0;inset-inline-end:-.15em;inset-inline-start:-.15em;background-color:var(--accent-color);max-inline-size:105%;content:""}@media screen and (max-width: 600px){.list>ul{margin:0;padding:0}}hr{margin:3.5rem 0 1rem;border:none;background-color:var(--divider-color);height:.25rem}.footnotes-list,.footnotes{text-align:start}.footnote-reference{font-size:.7rem;font-family:var(--serif-font)}.footnote-definition{margin-block-end:.6rem}.footnote-definition sup{margin-inline-end:.15rem;font-size:.75rem;font-family:var(--serif-font)}.footnote-definition p{display:inline}.footnote-backlink{margin-inline-start:.2rem;font-size:.8rem}.footnotes-list a[href^="#fr-"],.footnotes a[href^="#fr-"]{font-size:.8rem}.footnotes code{font-size:.8rem}.references p{margin-inline-start:2.4rem;text-indent:-2.4rem}.info-box{margin-top:1rem;margin-block-end:1rem;border:1px solid var(--primary-color);border-radius:10px;border-inline-start-width:.3rem;padding:1rem;text-align:center}#page-content{margin-top:4vmin}.hidden{display:none;visibility:hidden}.visually-hidden{clip:rect(0 0 0 0);position:absolute;margin:-1px;border:0;padding:0;width:1px;height:1px;overflow:hidden;white-space:nowrap}details summary{cursor:pointer}.interactive-icon{cursor:pointer}.interactive-icon path{fill:var(--text-color)}.interactive-icon :hover path{fill:var(--primary-color)}.article-navigation{display:flex;margin-block-start:2rem;border-block-start:var(--divider-color) solid .5px;padding-block-start:2rem}.article-navigation :first-child{flex:1;text-align:start}.article-navigation :last-child{flex:1;text-align:end}.article-navigation p{color:var(--meta-color);font-weight:300;line-height:1.2rem;font-family:var(--sans-serif-font);letter-spacing:-.4px}@media (max-width: 600px){.article-navigation{flex-direction:column}.article-navigation div{text-align:center !important}}:dir(rtl) .arrow{display:inline-block;transform:scaleX(-1)}:dir(rtl) .arrow-corner{display:inline-block;transform:rotate(-90deg)}.mermaid p{font-family:var(--sans-serif-font) !important}.mermaid .node .label{max-width:none !important}[data-force-text-direction=ltr]{direction:ltr;unicode-bidi:bidi-override}[data-force-text-direction=rtl]{direction:rtl;unicode-bidi:bidi-override}[data-force-text-direction=ltr] *,[data-force-text-direction=rtl] *{direction:inherit}.title-with-jump{display:flex;justify-content:space-between;align-items:center}.title-with-jump h1{flex:1}.jump-link{flex-shrink:0;font-size:.9rem}@media (max-width: 500px){.title-with-jump{flex-direction:column}}#skip-link{position:absolute;top:-40px;left:0;transform:translateY(-100%);opacity:0;z-index:9999;transition:all .1s ease;border-radius:0 0 5px 0;background-color:var(--primary-color);padding:4px 8px;color:var(--hover-color);font-weight:500;font-size:.9rem;text-decoration:none}#skip-link:focus{top:0;transform:translateY(0);opacity:1;outline:2px solid var(--text-color);outline-offset:2px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding:0;font-size:1em;list-style:none}.pagination .page-item .disabled{opacity:.5;pointer-events:none}.pagination .page-numbers{color:var(--meta-color);font-size:.9rem}.bloglist-container{display:grid;grid-template-columns:1fr 8fr}.bloglist-meta{display:flex;align-items:flex-start;background-color:var(--navbar-color);padding-block:1em;min-width:13.5rem}.bloglist-meta .thumbnail-image{margin:0;margin-inline:auto;max-width:70%}.bloglist-meta li.date+li.post-thumbnail .thumbnail-image{margin-inline:0;margin-block-start:.7rem}.bloglist-meta ul{margin-inline-end:.7rem;padding:0;color:var(--meta-color);font-weight:300;font-size:.9rem}.bloglist-meta ul li{list-style-type:none;white-space:nowrap}.bloglist-meta ul li.draft-label{width:fit-content;line-height:1.2rem}.bloglist-meta:not(:has(ul)){margin-top:1rem;padding-block:0}.bloglist-content{display:flex;flex-direction:column;align-items:flex-start;background-color:var(--navbar-color);padding:1rem 0}.bloglist-content .pinned-label{display:flex;position:absolute;top:.8rem;align-items:center;gap:.3rem;color:var(--meta-color);font-weight:300;font-size:.8rem}.bloglist-content .pinned-label svg{width:.8rem;height:.8rem}.bloglist-content .tag{display:inline-block;font-size:.75rem;font-weight:400;margin-inline-end:.25rem}.bloglist-content h2{margin:0;font-weight:bold;font-size:1.2em}.bloglist-content h2 a{color:var(--text-color-high-contrast);font-weight:550}.bloglist-content h2+div{margin-top:.25rem;margin-left:1rem}.bloglist-content hgroup~*{margin-left:1rem}.bloglist-content p{margin-bottom:.5rem;margin-top:.5rem;color:var(--text-color);font-weight:250;font-size:.9rem;line-height:1.5rem}.all-posts{font-weight:350;font-size:1.3rem}#all-projects{margin-top:2rem}.posts-first #featured-projects{margin-top:4rem}.projects-first #posts-list{margin-top:4rem}@media only screen and (max-width: 1100px){.bloglist-container{display:block}.pinned-label svg{margin-bottom:-2px}.bloglist-meta{border-bottom:0;padding-block:1em}.bloglist-meta ul{margin-block-end:0;width:100%}.bloglist-meta ul li{display:inline;margin-inline-end:.3rem}.bloglist-meta .post-thumbnail{display:none}.bloglist-content{flex-direction:column;align-items:flex-start;padding:0;padding-bottom:1rem}.bloglist-content .pinned-label{position:static;margin:0;margin-top:-1.9rem}.bloglist-content div{width:100%}}#button-container{display:flex;position:fixed;right:2rem;bottom:2rem;flex-direction:column;gap:.6rem;z-index:2}#button-container #toc-button,#button-container #comments-button,#button-container #top-button{display:flex;justify-content:center;align-items:center;z-index:2;cursor:pointer;border:none;border-radius:50%;background-color:var(--bg-1);padding:.4rem;width:1rem;height:1rem;text-align:center}#button-container #toc-button:hover,#button-container #comments-button:hover,#button-container #top-button:hover{background-color:var(--bg-3)}#button-container #toc-button:hover svg,#button-container #comments-button:hover svg,#button-container #top-button:hover svg{fill:var(--primary-color)}#button-container #toc-button:hover::before,#button-container #comments-button:hover::before,#button-container #top-button:hover::before{background-color:rgba(0,0,0,0)}#button-container #toc-button svg,#button-container #comments-button svg,#button-container #top-button svg{fill:var(--text-color);width:1rem;height:1rem}#button-container #toc-floating-container #toc-button{position:relative;z-index:2}#button-container #toc-floating-container .toc-container{margin:0;margin-top:.7rem;max-width:80vw}#button-container #toc-floating-container .toc-content{display:none;position:absolute;right:0;bottom:100%;z-index:2;margin-block-end:.7rem;box-shadow:rgba(0,0,0,.15) 1.95px 1.95px 2.6px;border:1px solid var(--divider-color);border-radius:5px;background-color:var(--background-color);padding-inline-end:1rem;max-height:70vh;overflow-y:auto;font-size:.8rem;text-align:start;white-space:nowrap}#button-container #toc-floating-container .toc-content ul{padding-inline-start:1rem;list-style:none}#button-container #toc-floating-container .toggle{display:none}#button-container #toc-floating-container .toggle:checked+.overlay,#button-container #toc-floating-container .toggle:checked+.overlay+#toc-button+.toc-content{display:block}#button-container #toc-floating-container .toggle:checked+.overlay+#toc-button svg{fill:var(--primary-color)}#button-container #toc-floating-container .overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;opacity:40%;z-index:1;background:var(--background-color)}@media (max-width: 700px){#button-container{display:none !important}}@media print{#button-container{display:none}}#searchModal{background:color-mix(in srgb, var(--primary-color) 5%, rgba(0,0,0,0));text-align:start}#searchModal #searchContainer{padding:1rem}#searchModal #searchBar{display:flex;position:relative;justify-content:center;align-items:center;box-sizing:border-box;padding:1rem}#searchModal #searchBar .search-icon{display:block;position:absolute;inset-inline-start:1rem;width:1.3rem;height:1.3rem;align-self:center;margin-inline-start:1rem;margin-inline-end:.5rem;width:1.3rem;height:1.3rem}#searchModal #searchBar .search-icon path{fill:var(--text-color)}#searchModal #searchBar .close-icon{display:none;position:absolute;right:1.3rem;margin-inline-start:1rem;margin-inline-end:.5rem;width:1.3rem;height:1.3rem}#searchModal #searchBar #searchInput{flex:1;border:1px solid var(--divider-color);border-radius:20px;background-color:var(--input-background-color);padding-inline:3rem 1rem;padding-block:.75rem;width:calc(100% - 2rem);color:var(--text-color);font-size:1rem}#searchModal #searchBar :link:hover{text-decoration:none}#searchModal #results-container{display:none;border-top:var(--divider-color) solid .5px;border-bottom-right-radius:1rem;border-bottom-left-radius:1rem;overflow:hidden}#searchModal #results-container #results-info{padding:.5rem;color:var(--meta-color);font-size:.8rem;text-align:center}#searchModal #results-container #results{display:flex;flex-direction:column;max-height:50vh;overflow-y:auto}#searchModal #results-container #results b{font-weight:590}#searchModal #results-container #results a{display:block}#searchModal #results-container #results a:hover{background-color:inherit}#searchModal #results-container #results>div{cursor:pointer;padding-inline:1rem;padding-block:.5rem}#searchModal #results-container #results>div[aria-selected=true]{background-color:var(--primary-color);color:var(--hover-color)}#searchModal #results-container #results>div[aria-selected=true] a,#searchModal #results-container #results>div[aria-selected=true] span{color:inherit}#searchModal #results-container #results span:first-child{display:block;color:var(--primary-color);font-weight:590}#searchModal #results-container #results span:nth-child(2){color:var(--text-color)}.search-modal{display:none;position:fixed;top:0;left:0;z-index:1000;backdrop-filter:blur(8px);background-color:rgba(0,0,0,.1);width:100%;height:100%;overflow:auto}.search-modal #modal-content{position:relative;margin:8% auto;border:var(--divider-color) solid .5px;border-radius:1rem;background-color:var(--background-color);width:80%;max-width:28rem}@media only screen and (max-width: 600px){.search-modal #modal-content{top:3.5rem;width:92%}.search-modal #modal-content #results{max-height:70vh}}.spoiler-toggle{display:none}.spoiler-content{display:inline-block;cursor:help}.spoiler-content .spoiler-hidden{filter:blur(6px);user-select:none}.spoiler-content .spoiler-hidden a{pointer-events:none}.spoiler-toggle:checked+.spoiler-content .spoiler-hidden{filter:none;user-select:auto}.spoiler-toggle:checked+.spoiler-content .spoiler-hidden a{pointer-events:auto}.spoiler-container.fixed-blur .spoiler-content:before{display:inline-block;filter:blur(6px);content:"SPOILER"}.spoiler-container.fixed-blur .spoiler-content .spoiler-hidden{display:none}.spoiler-container.fixed-blur .spoiler-toggle:checked+.spoiler-content:before{content:none}.spoiler-container.fixed-blur .spoiler-toggle:checked+.spoiler-content .spoiler-hidden{display:inline}table{margin:1rem auto;border-style:hidden !important;border-radius:5px;border-collapse:collapse;border-spacing:0;overflow:hidden;font:inherit;text-align:center}table th,table td{border:1px solid var(--bg-1);padding-inline:13px;padding-block:6px;font-size:large}table thead tr{background-color:var(--primary-color);color:var(--hover-color)}table thead tr code{background-color:rgba(0,0,0,0)}table tbody tr:nth-child(even){background-color:var(--bg-0)}table details,table summary{font-family:inherit !important}.tag{color:var(--primary-color);border:2px solid var(--primary-color);border-radius:1rem;padding:.1rem .25rem;text-decoration:none}.tag:hover,.tag:hover:visited{background-color:var(--accent-color);border-color:var(--accent-color);color:var(--background-color) !important;text-decoration:none}#tag-cloud{margin-top:3vmin}#tag-cloud ul{margin:0;padding:0;list-style:none}#tag-cloud li{margin-top:.66rem}#tag-cloud .tag{margin-block-end:1rem}#tag-cloud span{padding-left:.25rem}.two-columns ul{column-count:2}.three-columns ul{column-count:3}@media (max-width: 1000px){.three-columns ul{column-count:2}}@media (max-width: 600px){.two-columns ul,.three-columns ul{column-count:1}}.theme-switcher{align-self:center;position:relative;top:.13rem;background:var(--text-color);cursor:pointer;height:1rem;margin-inline-start:.5rem;mask:var(--theme-switcher-svg);width:1rem}.theme-switcher:hover{background:var(--primary-color)}.theme-resetter{background:var(--text-color);cursor:pointer;height:.8rem;inset-block-start:-1.3rem;inset-inline-end:-1.2rem;mask:url("/icons/theme-reset.svg");opacity:0;position:relative;transition-delay:.5s;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;width:.8rem}.icon:hover .theme-resetter.has-custom-theme{opacity:1;transition-delay:0s;transition:opacity .1s ease,visibility .1s ease;visibility:visible}.icon:hover .theme-resetter.has-custom-theme:hover{background:var(--accent-color)}body>div:last-child>div:last-child[style]:not([class]):not([id]){position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);z-index:9999;box-shadow:rgba(50,50,93,.25) 0px 50px 100px -20px,rgba(0,0,0,.3) 0px 30px 60px -30px;border:2px solid var(--admonition-danger-border);border-radius:5px;background-color:var(--admonition-danger-bg);padding:15px;width:fit-content;max-width:80%}body>div:last-child>div:last-child[style]:not([class]):not([id])>p[style]:first-child{margin:0;color:var(--admonition-danger-border);font-weight:bold}body>div:last-child>div:last-child[style]:not([class]):not([id])>pre[style]:last-child{margin-block-end:0;background-color:var(--admonition-danger-code);padding:10px;overflow-x:auto}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-ExtraLight"),url("fonts/AtkinsonHyperlegibleNext-ExtraLight.woff2") format("woff2");font-display:swap;font-weight:200}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-Light"),url("fonts/AtkinsonHyperlegibleNext-Light.woff2") format("woff2");font-display:swap;font-weight:300}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-Regular"),url("fonts/AtkinsonHyperlegibleNext-Regular.woff2") format("woff2");font-display:swap;font-weight:400}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-SemiBold"),url("fonts/AtkinsonHyperlegibleNext-SemiBold.woff2") format("woff2");font-display:swap;font-weight:600}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-Bold"),url("fonts/AtkinsonHyperlegibleNext-Bold.woff2") format("woff2");font-display:swap;font-weight:700}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-ExtraBold"),url("fonts/AtkinsonHyperlegibleNext-ExtraBold.woff2") format("woff2");font-display:swap;font-weight:800}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-ExtraLightItalic"),url("fonts/AtkinsonHyperlegibleNext-ExtraLightItalic.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:200}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-LightItalic"),url("fonts/AtkinsonHyperlegibleNext-LightItalic.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:300}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-RegularItalic"),url("fonts/AtkinsonHyperlegibleNext-RegularItalic.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:400}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-SemiBoldItalic"),url("fonts/AtkinsonHyperlegibleNext-SemiBoldItalic.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:600}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-BoldItalic"),url("fonts/AtkinsonHyperlegibleNext-BoldItalic.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:700}@font-face{font-family:"Atkinson Hyperlegible Next";src:local("Atkinson Hyperlegible Next-ExtraBoldItalic"),url("fonts/AtkinsonHyperlegibleNext-ExtraBoldItalic.woff2") format("woff2");font-display:swap;font-style:italic;font-weight:800}@font-face{font-family:"Iosevka Term";src:local("IosevkaTerm-Extended"),url("fonts/IosevkaTerm-Extended.ttf") format("truetype");font-display:swap}:root{--background-color: #f9f7f0;--bg-0: #f0f0f0;--bg-1: #e7e7e7;--bg-2: #fefefe;--bg-3: #d8dcdd;--hover-color: #f9f7f0;--accent-color: #a070ff;--primary-color: #5c0aff;--divider-color: #6042b3;--text-color: #171717;--text-color-high-contrast: black;--meta-color: #5b5b65;--codeblock-bg: #26232e;--codeblock-highlight: #383444;--theme-switcher-svg: url("/icons/theme-light.svg");color-scheme:light;--max-layout-width: 1000px;--normal-layout-width: 600px;--medium-layout-width: 400px;--small-layout-width: 200px;--paragraph-spacing: max(2.3vmin, 24px);--sans-serif-font: "Atkinson Hyperlegible Next", Helvetica, Arial, sans-serif;--serif-font: "Atkinson Hyperlegible Next", serif;--code-font: "Iosevka Term";scrollbar-color:var(--primary-color) rgba(0,0,0,0);accent-color:var(--accent-color);font-family:var(--sans-serif-font)}[data-theme=dark]{--background-color: #171717;--bg-0: #2f2f2f;--bg-1: #3c3c3c;--bg-2: #171717;--bg-3: #535555;--hover-color: black;--accent-color: #cfb8ff;--primary-color: #bb99ff;--divider-color: #b0a0dc;--text-color: white;--text-color-high-contrast: #eceeef;--meta-color: #B0B0B0;--codeblock-bg: #19181e;--codeblock-highlight: #282834;--theme-switcher-svg: url("/icons/theme-dark.svg");color-scheme:dark}[data-theme=dark] .invertible-image{filter:invert(0.88)}[data-theme=dark] .dimmable-image{filter:brightness(.8) contrast(1.2)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--background-color: #171717;--bg-0: #2f2f2f;--bg-1: #3c3c3c;--bg-2: #171717;--bg-3: #535555;--hover-color: black;--accent-color: #cfb8ff;--primary-color: #bb99ff;--divider-color: #b0a0dc;--text-color: white;--text-color-high-contrast: #eceeef;--meta-color: #B0B0B0;--codeblock-bg: #19181e;--codeblock-highlight: #282834;--theme-switcher-svg: url("/icons/theme-dark.svg");color-scheme:dark}:root:not([data-theme=light]) .invertible-image{filter:invert(0.88)}:root:not([data-theme=light]) .dimmable-image{filter:brightness(.8) contrast(1.2)}}html{background-color:var(--background-color);color:var(--text-color);text-rendering:optimizeLegibility}body{display:flex;flex-direction:column;margin-inline:5vmin;margin-block:0;min-height:100vh}main{word-wrap:break-word;margin:0 auto;margin-top:3vmin;margin-block-end:1rem;width:100%;max-width:var(--max-layout-width)}.use-sans-serif{--serif-font: var(--sans-serif-font)}article{margin:0 auto;max-width:calc(var(--max-layout-width) - 6rem)}article h1,article h2,article h3,article h4,article h5,article h6{margin-left:-1rem}article hgroup{margin:0 -1.5rem;margin-block-end:var(--paragraph-spacing)}article hgroup .meta{color:var(--meta-color);display:flex;font-weight:300;font-size:.8rem}article hgroup .meta .tag{margin-inline-end:5px;padding-top:.05rem;padding-bottom:.05rem}article hgroup .meta p{display:flex;letter-spacing:-.4px}article hgroup .separator{margin-inline:.2rem}article hgroup h1{margin:0;color:var(--text-color-high-contrast);font-weight:550;font-size:2rem}article hgroup p{margin:0}article hgroup ul{display:flex;list-style:none;margin-block-end:0;margin-left:.5rem;margin-right:auto;padding:0}article hgroup li{display:flex}article p,article li,article details,article summary{font-family:var(--serif-font)}article strong{font-weight:620}article .full-width{margin-inline-start:-3rem;margin-inline-end:-3rem;max-width:calc(100% + 6rem)}article li p:not(:last-child){margin-block-end:0}article li p+:last-child{margin-block-end:var(--paragraph-spacing)}.section-title{display:flex;margin:0;margin-top:-.15em;color:var(--text-color-high-contrast);font-weight:550;font-size:2.2em;line-height:1.2em;padding-bottom:8px}h1,h2,h3,h4,h5,h6{margin:0}h1{margin-top:.67em;font-weight:550;font-size:1.62rem}h2{margin-top:.5em;font-weight:550;font-size:1.4rem}h3{margin-top:.3em;font-weight:550;font-size:1.2rem}h4{margin-top:.83em;font-weight:550;font-size:1rem}h5{margin-top:.83em;font-weight:normal;font-size:1rem}p{margin-top:.4rem;margin-block-end:var(--paragraph-spacing);font-size:1em;line-height:1.2rem}strong{font-weight:580}.centered-text{text-align:center}video{max-width:100%}.center-content{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0;width:100%;height:100vh;text-align:center}.subheader{margin-block-end:2rem}.mobile-only{display:none}@media only screen and (max-width: 1000px){body{margin:0 2rem}main{max-width:var(--normal-layout-width)}article .full-width{display:block;margin-inline-start:0;margin-inline-end:0;max-width:none;overflow-x:auto}.mobile-only{display:block}}@media only screen and (max-width: 600px){body{margin-inline:1rem;margin-block:0}main{margin-top:0rem;max-width:var(--medium-layout-width)}article{margin-top:1.3rem}}@media only screen and (max-width: 300px){main{max-width:var(--small-layout-width)}}@media all and (min-width: 600px){html{font-size:16.5px}}@media all and (min-width: 960px){html{font-size:20px}}