*,::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:calc(18px - 1pt);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:580px;--main-padding:1.4em;--main-padding-bottom:3rem;--background-rgb:255, 255, 255;--sidebar-backdrop-color:rgba(0, 0, 0, 0.5);--search-result-background:rgba(var(--background-rgb), 0.7);--search-result-border:rgba(58, 58, 58, 0.5);--search-result-border-hover:rgba(58, 58, 58, 0.65);--search-result-highlight:rgba(245, 245, 245, 0.92);--sidebar-width:250px;--sidebar-content-right:calc(var(--sidebar-width) - 20px);--caption-padding:calc(0.25 * var(--main-padding));--header-top-gap:2.8rem;--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: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:1.0em;--p-line-height:1.5em;--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:10px;--social-icons-bottom-margin:3rem;--footer-height:3rem;--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:580px;--caption-padding:calc(0.25 * var(--main-padding))}}@media screen and (max-width:640px){:root{--main-width:95%;--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}.nounderline-a{text-decoration:none!important}.active-page{font-family:valkyrie b!important;font-size:clamp(1rem,5vw,1.5rem)}.underline-hover{text-decoration:none}.underline-hover:hover{text-decoration:underline}.no-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}.non-active-page{font-family:valkyrie b!important;font-size:clamp(1rem,5vw,1.5rem);color:gray;transition:filter .3s ease}.non-active-page:hover{filter:brightness(1.5)}.monospace{font-family:jetbrains}@font-face{font-family:newsreader;src:url(/fonts/Newsreader/Newsreader-VariableFont_opsz,wght.woff2)format("woff2")}@font-face{font-family:newsreader;src:url(/fonts/Newsreader/Newsreader-Italic-VariableFont_opsz,wght.woff2)format("woff2");font-style:italic}@font-face{font-family:equity;src:url(/fonts/Equity/equity_b_regular.woff2)format('woff2');font-weight:400;font-style:normal;font-display:auto}@font-face{font-family:equity;src:url(/fonts/Equity/equity_b_italic.woff2)format('woff2');font-weight:400;font-style:italic;font-display:auto}@font-face{font-family:equity;src:url(/fonts/Equity/equity_b_bold.woff2)format('woff2');font-weight:700;font-style:normal;font-display:auto}@font-face{font-family:equity;src:url(/fonts/Equity/equity_b_bold_italic.woff2)format('woff2');font-weight:700;font-style:italic;font-display:auto}@font-face{font-family:equity caps;src:url(/fonts/Equity/equity_b_caps_regular.woff2)format('woff2');font-weight:400;font-style:normal;font-display:auto}@font-face{font-family:equity caps;src:url(/fonts/Equity/equity_b_caps_bold.woff2)format('woff2');font-weight:700;font-style:normal;font-display:auto}@font-face{font-family:heliotrope;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Heliotrope/heliotrope_3_regular.woff2)format('woff2')}@font-face{font-family:heliotrope;font-style:italic;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Heliotrope/heliotrope_3_italic.woff2)format('woff2')}@font-face{font-family:heliotrope;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Heliotrope/heliotrope_3_regular.woff2)format('woff2')}@font-face{font-family:heliotrope;font-style:italic;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Heliotrope/heliotrope_3_italic.woff2)format('woff2')}@font-face{font-family:heliotrope caps;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Heliotrope/heliotrope_3_caps_regular.woff2)format('woff2')}@font-face{font-family:valkyrie a;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_a_regular.woff2)format('woff2')}@font-face{font-family:valkyrie a;font-style:italic;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_a_italic.woff2)format('woff2')}@font-face{font-family:valkyrie a;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_a_bold.woff2)format('woff2')}@font-face{font-family:valkyrie a;font-style:italic;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_a_bold_italic.woff2)format('woff2')}@font-face{font-family:valkyrie a caps;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_a_caps_regular.woff2)format('woff2')}@font-face{font-family:valkyrie a caps;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_a_caps_bold.woff2)format('woff2')}@font-face{font-family:valkyrie b;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_b_regular.woff2)format('woff2')}@font-face{font-family:valkyrie b;font-style:italic;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_b_italic.woff2)format('woff2')}@font-face{font-family:valkyrie b;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_b_bold.woff2)format('woff2')}@font-face{font-family:valkyrie b;font-style:italic;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_b_bold_italic.woff2)format('woff2')}@font-face{font-family:valkyrie b caps;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_b_caps_regular.woff2)format('woff2')}@font-face{font-family:valkyrie b caps;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Valkyrie/valkyrie_b_caps_bold.woff2)format('woff2')}@font-face{font-family:triplicate a;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_a_regular.woff2)format('woff2')}@font-face{font-family:triplicate a;font-style:italic;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_a_italic.woff2)format('woff2')}@font-face{font-family:triplicate a;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_a_bold.woff2)format('woff2')}@font-face{font-family:triplicate a;font-style:italic;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_a_bold_italic.woff2)format('woff2')}@font-face{font-family:triplicate a caps;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_a_caps_regular.woff2)format('woff2')}@font-face{font-family:triplicate a caps;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_a_caps_bold.woff2)format('woff2')}@font-face{font-family:triplicate b;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_b_regular.woff2)format('woff2')}@font-face{font-family:triplicate b;font-style:italic;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_b_italic.woff2)format('woff2')}@font-face{font-family:triplicate b;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_b_bold.woff2)format('woff2')}@font-face{font-family:triplicate b;font-style:italic;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_b_bold_italic.woff2)format('woff2')}@font-face{font-family:triplicate b caps;font-style:normal;font-weight:400;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_b_caps_regular.woff2)format('woff2')}@font-face{font-family:triplicate b caps;font-style:normal;font-weight:700;font-stretch:normal;font-display:auto;src:url(/fonts/Triplicate/triplicate_b_caps_bold.woff2)format('woff2')}@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}@font-face{font-family:jetbrains;src:url(/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Medium.woff2)format("woff2");font-weight:400;font-style:normal}@font-face{font-family:jetbrains;src:url(/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal}@font-face{font-family:jetbrains;src:url(/fonts/JetBrainsMono/JetBrainsMonoNerdFontMono-MediumItalic.woff2)format("woff2");font-weight:400;font-style:italic}html{scroll-behavior:smooth}body{font-family:valkyrie b;margin:auto;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);text-align:justify;hyphens:auto}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:jetbrains;font-size:.9em;line-height:0}.katex{font-size:calc(1em - 1pt)}.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:1.9em;font-weight:700;margin-bottom:0;margin-top:0;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.search-icon{margin-top:2px}.icon-link{display:inline-flex;align-items:center;text-decoration:none;margin-top:10px}.google-link-title{margin-right:5px}footer{font-size:small;display:flex;justify-content:center;align-items:center;max-height:var(--footer-height)}footer a{font-family:jetbrains;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:jetbrains;min-width:120px;max-width:120px;text-align:right;padding-right:1rem;margin-top:0;margin-bottom:0}.line-title{margin:0;text-align:left}.post-line-star{margin:5px;margin-bottom:2px;color:gold;position:relative;top:-2px}.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;width:100%}.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 a,.toc li a{text-decoration:none;color:var(--toc-default);transition:color .3s ease}.toc a.active,.toc a.parent-active{color:var(--content-primary)}.toc ul{margin-top:.1rem;margin-bottom:.1rem;list-style-type:none}.sidebar-container{position:relative;display:block;width:100%;max-width:var(--main-width);margin-left:auto;margin-right:auto}.sidebar-search{display:flex;flex-direction:column;gap:18px;position:fixed;top:clamp(110px,18vh,220px);left:var(--search-bar-center,50%);transform:translateX(-50%);width:var(--search-bar-width,clamp(240px,calc(100vw - 60px),360px));max-width:clamp(240px,calc(100vw - 60px),360px);z-index:2002;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}body[data-sidebar-state=sidebar]:not(.is-search-layout-mobile) .sidebar-search,body[data-sidebar-state=navigating]:not(.is-search-layout-mobile) .sidebar-search{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s ease,visibility 0s}body.is-search-layout-mobile .sidebar-search{z-index:2004;left:50%;top:clamp(80px,18vh,180px);width:min(360px,calc(100vw - 60px));opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,visibility 0s linear .12s}body.is-search-layout-mobile.is-mobile-search-active .sidebar-search{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .12s ease,visibility 0s}.sidebar-search .search-input-container{display:flex;align-items:center;width:100%;border:1px solid rgba(128,128,128,.4);border-radius:32px;padding:10px 16px;background:rgba(var(--background-rgb),.25);box-shadow:0 4px 20px rgba(0,0,0,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .2s ease,box-shadow .2s ease}.sidebar-search svg{margin-right:12px;color:var(--content-primary);flex-shrink:0}#search-input{flex:1;border:none;background:0 0;color:var(--content-primary);font-family:valkyrie b;font-size:16px;line-height:1.4;outline:none}.search-results{display:none;flex-direction:column;gap:12px;max-height:calc(100vh - 320px);overflow-y:auto;padding-right:6px}.search-results.visible{display:flex}.search-result{padding:12px 16px;border-radius:8px;background-color:var(--search-result-background);border:1px solid var(--search-result-border);box-shadow:0 2px 6px rgba(0,0,0,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background-color .2s ease,border-color .2s ease,transform .1s ease}.search-result-focused,.search-result-wrapper:hover .search-result{background-color:var(--search-result-highlight);border-color:var(--search-result-border-hover);filter:none}.search-result-wrapper{display:block;text-decoration:none;cursor:pointer;margin-bottom:8px;position:relative}.search-result-title{font-weight:700;margin-bottom:5px;font-size:16px;color:var(--content-primary);display:block}.search-result-snippet{font-size:13px;color:gray;line-height:1.4}.search-highlight{background-color:rgba(255,255,0,.2);padding:0 2px;border-radius:2px}.search-no-results{color:gray;text-align:center;padding:10px;background-color:rgba(var(--background-rgb),.7);border-radius:8px;border:1px solid #3a3a3a}.sidebar-search-toggle{position:absolute;top:56px;left:calc(30px + 20px);display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0;background:0 0;border:none;color:var(--content-primary);cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}.sidebar-search-toggle:focus{outline:none}.sidebar-search-toggle:focus-visible{outline:2px solid var(--content-primary);outline-offset:4px}.sidebar-search-toggle__icon{display:block}body.is-search-layout-mobile .sidebar-search-toggle{opacity:1;visibility:visible;pointer-events:auto;z-index:2005;transition:opacity .2s ease,visibility 0s}body.is-search-layout-mobile .sidebar-search-toggle.is-active{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}body.is-search-layout-mobile #sidebar nav,body.is-search-layout-mobile .sidebar-language-switcher{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .1s ease .05s,visibility 0s linear 0s}body.is-search-layout-mobile.is-mobile-search-active #sidebar nav,body.is-search-layout-mobile.is-mobile-search-active .sidebar-language-switcher{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .1s ease,visibility 0s linear .05s}body.is-search-layout-mobile .search-results{max-height:calc(100vh - 200px)}.sidebar-language-switcher{margin-top:30px;padding-left:30px}.language-dropdown{position:relative;display:inline-block}.language-dropdown-btn{font-family:valkyrie b!important;font-size:clamp(1rem,5vw,1.5rem);min-width:2ch;color:gray;background:0 0;border:none;padding:0;text-transform:lowercase;cursor:pointer;display:inline-flex;align-items:center;transition:filter .3s ease;margin-bottom:.5rem}.language-dropdown-btn:hover{filter:brightness(1.5)}.language-options-container{position:relative;left:0;overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease-out,opacity .2s ease-out}.language-dropdown:hover .language-options-container,.language-dropdown.active .language-options-container{max-height:200px;opacity:1}.language-option{display:block;padding:.5rem 0;margin-top:.2rem;text-decoration:none;color:gray;font-family:valkyrie b!important;font-size:clamp(1rem,5vw,1.5rem);text-transform:lowercase;transition:filter .3s ease,transform .3s ease,opacity .3s ease;transform:translateY(-10px);opacity:0}.language-option:nth-child(1){transition-delay:.05s}.language-option:nth-child(2){transition-delay:.1s}.language-option:nth-child(3){transition-delay:.15s}.language-dropdown:hover .language-option,.language-dropdown.active .language-option{transform:translateY(0);opacity:1}.language-option:hover{filter:brightness(1.5)}.flag-icon{margin-right:8px;font-size:1rem}.toc{position:fixed;top:calc(50% - 25vh);max-width:270px;min-width:270px;max-height:50vh;overflow-y:auto;z-index:10;opacity:0;visibility:hidden;margin:auto;transition:opacity .2s ease,visibility .2s ease;scrollbar-width:thin;scrollbar-color:gray transparent;direction:rtl;padding-top:0;padding-bottom:0}.toc>*{direction:ltr;text-align:left}.toc::-webkit-scrollbar{width:2px}.toc::-webkit-scrollbar-track{background:0 0}.toc::-webkit-scrollbar-thumb{background:gray;border-radius:2px}.toc::-webkit-scrollbar-thumb:hover{background:gray}.single-content{margin-left:0}@media(min-width:1379px){.toc1{opacity:1;visibility:visible}}.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))}.giscus{margin-top:3rem}.back-to-top{text-align:center;font-family:jetbrains;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{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}blockquote table{margin-left:1rem;margin-right:1rem;color:var(--content-secondary)}.sidebar-container{position:relative}#sidebar-toggle{position:fixed;top:20px;left:30px;z-index:1100;background:0 0;border:none;cursor:pointer;padding:10px;margin:-10px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;outline:none;transition:transform .3s ease}#sidebar-toggle:hover{transform:scale(1.15)}.hamburger-icon{position:relative;width:18px;height:18px;display:flex;align-items:center;justify-content:center}.hamburger-icon .line{display:block;background:var(--content-primary);height:2px;position:absolute;transition:all .3s ease-in-out;width:100%}.hamburger-icon .line1{transform:translateY(-6px)}.hamburger-icon .line2{transform:translateY(0)}.hamburger-icon .line3{transform:translateY(6px)}#sidebar-toggle.active .line1{transform:rotate(45deg)}#sidebar-toggle.active .line2{opacity:0;transform:scale(.2)}#sidebar-toggle.active .line3{transform:rotate(-45deg)}.sidebar{position:fixed;top:0;left:calc(-1 * var(--sidebar-width));width:var(--sidebar-width);height:100%;transition:left .3s ease;z-index:1001;padding:60px 20px 20px}.sidebar.active{left:0}#backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--sidebar-backdrop-color);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}#backdrop.active{opacity:1;visibility:visible;transition:opacity .3s ease,visibility 0s linear 0s}.sidebar nav{padding-top:0}.sidebar ul{list-style:none;padding:0;margin-left:0;margin-top:2rem}.sidebar li{margin-bottom:1.2rem;margin-left:0;padding-left:30px}.sidebar .active-item a{font-family:valkyrie b!important;font-size:clamp(1rem,5vw,1.5rem);text-decoration:none;color:var(--content-primary)}.sidebar .non-active-item a{font-family:valkyrie b!important;font-size:clamp(1rem,5vw,1.5rem);text-decoration:none;color:var(--toc-default);transition:filter .3s ease}.sidebar .non-active-item a:hover,.sidebar .keyboard-focus a{filter:brightness(1.5)}.sidebar li.keyboard-focus a{outline:none;position:relative}#sidebar-nav{transition:opacity .3s ease}@media screen and (max-width:768px){.sidebar-search .search-input-container{padding:10px 14px}}.bookshelf{img, figure img, div img, figure div img { width: 100% !important; height: auto !important; object-fit: contain; margin: 5px; border-radius: 5px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: transform 0.2s ease; background-color: var(--background); } a { text-decoration: none; display: block; text-align: center; } img:hover, figure img:hover, div img:hover, figure div img:hover { transform: scale(1.02); } figure { margin: 0; display: block; }}@media(min-width:768px){.bookshelf img,.bookshelf figure img,.bookshelf div img,.bookshelf figure div img{max-width:300px!important}}.light .bg{color:#3c3836;background-color:#fbf1c7}.light .chroma{color:#3c3836;background-color:#fbf1c7}.light .chroma .x{}.light .chroma .err{}.light .chroma .cl{}.light .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.light .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.light .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.light .chroma .hl{background-color:#e1d8b3}.light .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#9d9b9a}.light .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#9d9b9a}.light .chroma .line{display:flex}.light .chroma .k{color:#af3a03}.light .chroma .kc{color:#af3a03}.light .chroma .kd{color:#af3a03}.light .chroma .kn{color:#af3a03}.light .chroma .kp{color:#af3a03}.light .chroma .kr{color:#af3a03}.light .chroma .kt{color:#b57614}.light .chroma .n{}.light .chroma .na{color:#79740e;font-weight:700}.light .chroma .nb{color:#b57614}.light .chroma .bp{}.light .chroma .nc{}.light .chroma .no{color:#d3869b}.light .chroma .nd{}.light .chroma .ni{color:#b57614}.light .chroma .ne{color:#fb4934}.light .chroma .nf{color:#b57614}.light .chroma .fm{}.light .chroma .nl{color:#9d0006}.light .chroma .nn{}.light .chroma .nx{}.light .chroma .py{}.light .chroma .nt{color:#9d0006}.light .chroma .nv{}.light .chroma .vc{}.light .chroma .vg{}.light .chroma .vi{}.light .chroma .vm{}.light .chroma .l{}.light .chroma .ld{}.light .chroma .s{color:#79740e}.light .chroma .sa{color:#79740e}.light .chroma .sb{color:#79740e}.light .chroma .sc{color:#79740e}.light .chroma .dl{color:#79740e}.light .chroma .sd{color:#79740e}.light .chroma .s2{color:#79740e}.light .chroma .se{color:#79740e}.light .chroma .sh{color:#79740e}.light .chroma .si{color:#79740e}.light .chroma .sx{color:#79740e}.light .chroma .sr{color:#79740e}.light .chroma .s1{color:#79740e}.light .chroma .ss{color:#076678}.light .chroma .m{color:#8f3f71}.light .chroma .mb{color:#8f3f71}.light .chroma .mf{color:#8f3f71}.light .chroma .mh{color:#8f3f71}.light .chroma .mi{color:#8f3f71}.light .chroma .il{color:#8f3f71}.light .chroma .mo{color:#8f3f71}.light .chroma .o{color:#af3a03}.light .chroma .ow{color:#af3a03}.light .chroma .p{}.light .chroma .c{color:#928374;font-style:italic}.light .chroma .ch{color:#928374;font-style:italic}.light .chroma .cm{color:#928374;font-style:italic}.light .chroma .c1{color:#928374;font-style:italic}.light .chroma .cs{color:#928374;font-style:italic}.light .chroma .cp{color:#427b58}.light .chroma .cpf{color:#427b58;font-style:italic}.light .chroma .g{}.light .chroma .gd{color:#282828;background-color:#9d0006}.light .chroma .ge{color:#076678;text-decoration:underline}.light .chroma .gr{background-color:#9d0006;font-weight:700}.light .chroma .gh{color:#79740e;font-weight:700}.light .chroma .gi{color:#282828;background-color:#79740e}.light .chroma .go{color:#504945}.light .chroma .gp{}.light .chroma .gs{}.light .chroma .gu{color:#79740e;font-weight:700}.light .chroma .gt{background-color:#3c3836;font-weight:700}.light .chroma .gl{}.light .chroma .w{}.dark .bg{color:#ebdbb2;background-color:#282828}.dark .chroma{color:#ebdbb2;background-color:#282828}.dark .chroma .x{}.dark .chroma .err{}.dark .chroma .cl{}.dark .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.dark .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.dark .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.dark .chroma .hl{background-color:#3d3d3d}.dark .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.dark .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.dark .chroma .line{display:flex}.dark .chroma .k{color:#fe8019}.dark .chroma .kc{color:#fe8019}.dark .chroma .kd{color:#fe8019}.dark .chroma .kn{color:#fe8019}.dark .chroma .kp{color:#fe8019}.dark .chroma .kr{color:#fe8019}.dark .chroma .kt{color:#fabd2f}.dark .chroma .n{}.dark .chroma .na{color:#b8bb26;font-weight:700}.dark .chroma .nb{color:#fabd2f}.dark .chroma .bp{}.dark .chroma .nc{}.dark .chroma .no{color:#d3869b}.dark .chroma .nd{}.dark .chroma .ni{color:#fabd2f}.dark .chroma .ne{color:#fb4934}.dark .chroma .nf{color:#fabd2f}.dark .chroma .fm{}.dark .chroma .nl{color:#fb4934}.dark .chroma .nn{}.dark .chroma .nx{}.dark .chroma .py{}.dark .chroma .nt{color:#fb4934}.dark .chroma .nv{}.dark .chroma .vc{}.dark .chroma .vg{}.dark .chroma .vi{}.dark .chroma .vm{}.dark .chroma .l{}.dark .chroma .ld{}.dark .chroma .s{color:#b8bb26}.dark .chroma .sa{color:#b8bb26}.dark .chroma .sb{color:#b8bb26}.dark .chroma .sc{color:#b8bb26}.dark .chroma .dl{color:#b8bb26}.dark .chroma .sd{color:#b8bb26}.dark .chroma .s2{color:#b8bb26}.dark .chroma .se{color:#b8bb26}.dark .chroma .sh{color:#b8bb26}.dark .chroma .si{color:#b8bb26}.dark .chroma .sx{color:#b8bb26}.dark .chroma .sr{color:#b8bb26}.dark .chroma .s1{color:#b8bb26}.dark .chroma .ss{color:#83a598}.dark .chroma .m{color:#d3869b}.dark .chroma .mb{color:#d3869b}.dark .chroma .mf{color:#d3869b}.dark .chroma .mh{color:#d3869b}.dark .chroma .mi{color:#d3869b}.dark .chroma .il{color:#d3869b}.dark .chroma .mo{color:#d3869b}.dark .chroma .o{color:#fe8019}.dark .chroma .ow{color:#fe8019}.dark .chroma .p{}.dark .chroma .c{color:#928374;font-style:italic}.dark .chroma .ch{color:#928374;font-style:italic}.dark .chroma .cm{color:#928374;font-style:italic}.dark .chroma .c1{color:#928374;font-style:italic}.dark .chroma .cs{color:#928374;font-style:italic}.dark .chroma .cp{color:#8ec07c}.dark .chroma .cpf{color:#8ec07c;font-style:italic}.dark .chroma .g{}.dark .chroma .gd{color:#282828;background-color:#fb4934}.dark .chroma .ge{color:#83a598;text-decoration:underline}.dark .chroma .gr{background-color:#fb4934;font-weight:700}.dark .chroma .gh{color:#b8bb26;font-weight:700}.dark .chroma .gi{color:#282828;background-color:#b8bb26}.dark .chroma .go{color:#504945}.dark .chroma .gp{}.dark .chroma .gs{}.dark .chroma .gu{color:#b8bb26;font-weight:700}.dark .chroma .gt{background-color:#fb4934;font-weight:700}.dark .chroma .gl{}.dark .chroma .w{}.light .img-light img[src$="perf_dark.svg"],.light .img-light img[src$="broadcast.svg"],.light .img-light img[src$="perf_chunks.svg"],.light .img-light img[src$="vary_chunk_size.svg"],.light .img-light img[src$="multicore_v_chunks.svg"]{background-color:var(--content-primary)}#search-input::placeholder{color:var(--toc-default);opacity:1}.language-dropdown-btn,.language-option{color:var(--toc-default)}:root{--content-primary:rgb(36, 36, 36);--content-secondary:rgb(117, 117, 117);--background:rgb(255, 255, 255);--background-rgb:255, 255, 255;--code-background:rgb(249, 249, 249);--code-border:rgb(229, 229, 229);--bg:var(--bg0);--bg0:var(--background);--bg0_h:#1d2021;--bg0_s:#32302f;--bg1:#3c3836;--bg2:#504945;--bg3:#665c54;--bg4:#7c6f64;--fg:var(--fg1);--fg0:var(--content-secondary);--fg1:#ebdbb2;--fg2:#d5c4a1;--fg3:#bdae93;--fg4:#a89984;--gray1:var(--fg4);--gray2:#928374;--red1:#cc241d;--red2:#fb4934;--green1:#98971a;--green2:#b8bb26;--yellow1:#d79921;--yellow2:#fabd2f;--blue1:#458588;--blue2:#83a598;--purple1:#b16286;--purple2:#d3869b;--aqua1:#689d6a;--aqua2:#8ec07c;--orange1:#d65d0e;--orange2:#fe8019}.dark{--content-primary:rgb(218, 218, 218);--content-secondary:rgb(140, 140, 140);--background:rgb(20, 20, 20);--background-rgb:20, 20, 20;--code-background:rgb(30, 30, 30);--code-border:rgb(50, 50, 50)}:root{--background:#f0efea;--background-rgb:240, 239, 234;--content-secondary:rgb(140, 140, 140);--toc-default:#3d3d3a;--content-primary:#141413;--code-background:#e3e0d9;--code-border:#c0bcb2;--sidebar-backdrop-color:rgba(40, 36, 32, 0.3);--search-result-background:rgba(240, 239, 234, 0.65);--search-result-border:rgba(105, 99, 90, 0.35);--search-result-border-hover:rgba(105, 99, 90, 0.5);--search-result-highlight:rgba(231, 225, 212, 0.95);--bg:var(--bg0);--bg0:var(--background);--bg0_h:#1d2021;--bg0_s:#32302f;--bg1:#3c3836;--bg2:#504945;--bg3:#665c54;--bg4:#7c6f64;--fg:var(--fg1);--fg0:var(--content-secondary);--fg1:#ebdbb2;--fg2:#d5c4a1;--fg3:#bdae93;--fg4:#a89984;--gray1:var(--fg4);--gray2:#928374;--red1:#cc241d;--red2:#fb4934;--green1:#98971a;--green2:#b8bb26;--yellow1:#d79921;--yellow2:#fabd2f;--blue1:#458588;--blue2:#83a598;--purple1:#b16286;--purple2:#d3869b;--aqua1:#689d6a;--aqua2:#8ec07c;--orange1:#d65d0e;--orange2:#fe8019}.dark{--content-primary:#f0efea;--content-secondary:rgb(140, 140, 140);--background:#141413;--background-rgb:20, 20, 19;--toc-default:#808080;--code-background:rgb(30, 30, 30);--code-border:rgb(50, 50, 50);--sidebar-backdrop-color:rgba(0, 0, 0, 0.5);--search-result-background:rgba(20, 20, 19, 0.6);--search-result-border:rgba(200, 200, 200, 0.18);--search-result-border-hover:rgba(200, 200, 200, 0.28);--search-result-highlight:rgba(70, 66, 61, 0.85)}