.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--ctp-latte-text: #4c4f69;--ctp-mocha-text: #cdd6f4;--ctp-latte-subtext1: #5c5f77;--ctp-mocha-subtext1: #bac2de;--ctp-latte-subtext0: #6c6f85;--ctp-mocha-subtext0: #a6adc8;--ctp-latte-overlay2: #7c7f93;--ctp-mocha-overlay2: #9399b2;--ctp-latte-overlay1: #8c8fa1;--ctp-mocha-overlay1: #7f849c;--ctp-latte-overlay0: #9ca0b0;--ctp-mocha-overlay0: #6c7086;--ctp-latte-surface2: #acb0be;--ctp-mocha-surface2: #585b70;--ctp-latte-surface1: #bcc0cc;--ctp-mocha-surface1: #45475a;--ctp-latte-surface0: #ccd0da;--ctp-mocha-surface0: #313244;--ctp-latte-base: #eff1f5;--ctp-mocha-base: #1e1e2e;--ctp-latte-mantle: #e6e9ef;--ctp-mocha-mantle: #181825;--ctp-latte-crust: #dce0e8;--ctp-mocha-crust: #11111b}@media(prefers-color-scheme:dark){:root{--crust: var(--ctp-mocha-crust);--mantle: var(--ctp-mocha-mantle);--base: var(--ctp-mocha-base);--surface0: var(--ctp-mocha-surface0);--surface1: var(--ctp-mocha-surface1);--overlay0: var(--ctp-mocha-overlay0);--overlay1: var(--ctp-mocha-overlay1);--text: var(--ctp-mocha-text);--accent-color: var(--ctp-mocha-mauve)}body,*{color-scheme:dark}.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--mantle)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}@media(prefers-color-scheme:light){:root{--crust: var(--ctp-latte-crust);--mantle: var(--ctp-latte-mantle);--base: var(--ctp-latte-base);--surface0: var(--ctp-latte-surface0);--surface1: var(--ctp-latte-surface1);--overlay0: var(--ctp-latte-overlay0);--overlay1: var(--ctp-latte-overlay1);--text: var(--ctp-latte-text);--accent-color: var(--ctp-latte-mauve)}body,*{color-scheme:light}.astro-code,.astro-code span{background-color:var(--mantle)!important}}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_400_0_latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_400_0_latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_700_0_latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_700_0_latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_400_1_latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_400_1_latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_700_1_latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/JetBrains%20Mono/JetBrains%20Mono_700_1_latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBM%20Plex%20Mono/IBM%20Plex%20Mono_400_0_latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBM%20Plex%20Mono/IBM%20Plex%20Mono_400_0_latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/IBM%20Plex%20Mono/IBM%20Plex%20Mono_700_0_latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/IBM%20Plex%20Mono/IBM%20Plex%20Mono_700_0_latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC}:root{-webkit-tap-highlight-color:transparent}body,*{margin:0;padding:0;box-sizing:border-box;font-size:100%;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1.3}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{font-size:16px;font-family:JetBrains Mono,monospace,"Noto Color Emoji";color:var(--text);background-color:var(--crust)}html{background-color:var(--crust)}html:focus-within{scroll-behavior:smooth}button{-webkit-appearance:none;border-radius:0;text-align:inherit;background:none;box-shadow:none;padding:0;cursor:pointer;border:none;color:inherit;font:inherit}.section-title .section-title.secondary{font-family:IBM Plex Mono,monospace;font-size:1em;font-weight:700}.fill{background-color:var(--base)}.circle{border-radius:100%}.outline{outline:2px solid var(--text)}.border{border:2px solid var(--text)}.bold{font-weight:700}.hide{display:none}.monochrome{filter:grayscale(100%)}.padding{padding:1.5em}.no-drag{-webkit-user-drag:none;user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pixelated{image-rendering:pixelated}section a{color:inherit;text-decoration:underline;transition:background-color .2s ease,color .2s ease;box-shadow:0 0 0 0 transparent}section a:hover{background-color:var(--text);color:var(--crust);transition:0s}@media(prefers-reduced-motion:reduce){a{color:inherit;text-decoration:underline;transition:background-color 0s ease,color 0s ease}a:hover{background-color:var(--overlay0);color:var(--text);transition:0s}}li{margin-left:1em;list-style-type:disc}textarea{background-color:var(--crust);border:none;outline:var(--text);resize:vertical}*{scrollbar-width:10px;scrollbar-color:var(--overlay1) var(--crust)}::-webkit-scrollbar{width:.5em}::-webkit-scrollbar-track{background:var(--crust)}::-webkit-scrollbar-thumb{background:var(--overlay1)}::-webkit-scrollbar-thumb:hover{background:var(--text)}::selection{background-color:var(--surface1)}@media(min-width:800px){.hide-desktop{display:none}}@media(max-width:800px){.hide-mobile{display:none}}button:focus-visible,input:focus-visible,a:focus-visible,*:focus-visible{outline:solid 1px var(--text);outline-offset:0px;animation:focus-glow .2s ease-out forwards;appearance:none;transform:scale(1);background-color:var(--surface0);transition:background-color 0s}@keyframes focus-glow{0%{outline-offset:10px;outline-width:4px}to{outline-offset:0px;outline-width:1px}}#container{background-color:var(--crust);min-height:100vh;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}@keyframes bump{0%{opacity:0;transform:scale(1) translate(200px)}50%{opacity:.5;transform:scale(1.1)}to{opacity:1;transform:scale(1) translate(0)}}#content{max-width:48em;width:80%;margin-block:7.5em}#content-marginless{max-width:48em;width:80%}#to-top{position:fixed;color:var(--text);text-decoration:none;height:2em;width:2em;bottom:1em;left:1em;z-index:3;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s ease-out,transform .2s ease-out,background-color .2s ease,color .2s ease}#to-top:after{content:"";padding:2em;position:absolute;left:-2em;top:0}#to-top.show{opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity .2s ease-out,background-color .2s ease,color .2s ease,transform .2s ease-out}#to-top.show:hover{background-color:var(--text);color:var(--crust);cursor:pointer;transition:opacity .2s ease-out,transform .2s ease-out,background-color 0s,color 0s}@media(max-width:800px){#content,#content-marginless{width:95%;margin-top:3em;margin-bottom:3em}#to-top{visibility:hidden;display:none}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
