@font-face{font-display:swap;font-family:gitlab mono;font-style:normal;font-weight:100 900;src:url(/fonts/GitLabMono.woff2)format('woff2')}@font-face{font-display:swap;font-family:gitlab sans;font-style:normal;font-weight:100 900;src:url(/fonts/GitLabSans.woff2)format('woff2')}body{font-family:var(--font-body);margin:auto;max-width:var(--main-width);padding-left:var(--main-padding);padding-right:var(--main-padding);color:var(--content-primary);background-color:var(--background)}.content{letter-spacing:-.05rem}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)}.heading{.anchor{text-decoration:none;font-weight:400;color:var(--content-secondary);visibility:hidden;font-size:.9em;font-family:var(--font-mono)}&:hover .anchor{visibility:visible}}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)}li{margin-left:var(--li-indent);&:has(> input[type=checkbox]){list-style-type:none}&>input[type=checkbox]{width:var(--li-checkbox-size);height:var(--li-checkbox-size);margin:0 .2em .15em -1.25em;vertical-align:middle}}a{text-decoration:underline}input{color-scheme:dark}.copy-code-button{background-color:var(--background);font-family:var(--font-mono);padding:3px 6px;font-size:.8em;border-radius:var(--copy-code-button-border-radius);position:absolute;top:10px;right:10px;z-index:1;display:none;border:1px solid var(--code-border)}pre:hover .copy-code-button{display:block}pre{position:relative;padding:var(--code-padding);border:1px solid var(--code-border);overflow:scroll;border-radius:var(--code-border-radius);margin-top:var(--code-margin-top);margin-bottom:var(--code-margin-bottom);background-color:var(--code-background)!important;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;line-height:1.3em;white-space:pre-line}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:var(--font-mono);font-size:.9em}li code,table code,p code{background-color:var(--code-background);border-radius:3px;padding:2px}.footnotes{margin-top:3rem;border-style:none}hr{border:none;height:1px;background:var(--content-secondary);margin-top:2rem;margin-bottom:2rem}.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"}figure{.img-container{aspect-ratio:var(--w)/var(--h);max-height:var(--figure-img-max-height);width:auto;margin-inline:auto}img{display:block;max-width:100%;height:auto}}.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}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);width:fit-content;margin-left:auto;margin-right:auto;border:1px solid var(--code-border);border-radius:var(--code-border-radius)}th,td{padding:var(--table-cell-padding);text-align:left}th{background-color:var(--code-background);font-weight:700}tbody tr{border-top:1px solid var(--code-border)}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}ul{list-style-type:disc;margin-top:var(--ul-margin-top,1rem);margin-bottom:var(--ul-margin-bottom,1rem)}ol{list-style-type:decimal;margin-top:var(--ul-margin-top,1rem);margin-bottom:var(--ul-margin-bottom,1rem)}li{margin-top:.25rem;margin-bottom:.25rem}ul ul,ol ol,ul ol,ol ul{margin-top:0;margin-bottom:0}.holographic{background:radial-gradient( 93% 93% at 8% 128%,#ffeec2 0%,rgba(255,238,194,.2) 60%,rgba(194,233,255,0) 100% ),radial-gradient( 49% 88% at 27% -14%,rgba(93,227,236,.73) 0%,rgba(93,227,236,.17) 60%,rgba(93,227,236,0) 100% ),radial-gradient( 115% 156% at 90% 89%,#4bfede 0%,rgba(75,254,222,0) 100% ),linear-gradient( 234deg,#454abb 25%,rgba(69,74,187,.77) 35%,rgba(69,74,187,.4) 50%,rgba(91,196,229,0) 84% ),radial-gradient( 119% 119% at 3% 26%,#308ee6 0%,rgba(48,158,230,0) 74% ),linear-gradient( 360deg,#f2f5fa 0%,#f2f5fa 100% )}#transition-slider{view-transition-name:page-slider}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-group(page-slider){display:none}}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:none}::view-transition-new(root){animation:fade-in .3s ease-in .4s both}@keyframes fade-in{from{opacity:0}}::view-transition-group(page-slider){animation:swipe-across 2s cubic-bezier(.4,0,.2,1)both;z-index:9999}::view-transition-old(page-slider){display:none}::view-transition-new(page-slider){animation:none;opacity:1}@keyframes swipe-across{0%{translate:0 0;opacity:1}75%{translate:230dvw 0;opacity:1}100%{translate:230dvw 0;opacity:0}}@media screen and (min-width:768px){@keyframes swipe-across{0%{translate:0 0;opacity:1}95%{translate:150dvw 0;opacity:1}100%{translate:150dvw 0;opacity:0}}}}html,body{background-color:#000}.site-title{font-family:gitlab mono,var(--font-mono),monospace}#header-menu{position:relative;padding-top:0;padding-bottom:0}#header-menu>div{position:relative;z-index:2}#header-menu::before,#header-menu::after{content:"";position:absolute;left:0;right:0;margin-inline:auto;width:100%;max-width:780px;height:1px;pointer-events:none;z-index:1;background:linear-gradient( 90deg,transparent 0%,rgba(94,146,255,.1) 10%,#5e92ff 22%,#5eb8ec 38%,#b5e9ff 50%,#5eb8ec 62%,#5e92ff 78%,rgba(94,146,255,.1) 90%,transparent 100% )}#header-menu::before{top:2px}#header-menu::after{bottom:2px}