*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}ul[role=list],ol[role=list]{list-style:none}ol{list-style:decimal}html:focus-within{scroll-behavior:smooth}a:not([class]){text-decoration-skip-ink:auto}img,picture,svg,video,canvas{max-width:100%;height:auto;vertical-align:middle;font-style:italic;background-repeat:no-repeat;background-size:cover}input,button,textarea,select{border:unset;background:unset;padding:unset;font:inherit}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;transition:none}}body,html{height:100%;width:100vw;overflow-x:hidden;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth}@media (prefers-reduced-motion){*{transition-duration:.01ms!important;animation-duration:.01ms!important}:root::view-transition-group(*),:root::view-transition-old(*),:root::view-transition-new(*){animation:none!important}}:root{--red: #F6598E;--orange: #F09262;--yellow: #EDE874;--lime: #C2E774;--green: #91E478;--aqua: #83EDCF;--skye: #86DCE9;--snow: #83C4E6;--blue: #7796DF;--purple: #8B79E8;--violet: #B37FED;--pink: #F186ED;--cherry: #CC6D91;--text: #CED1F0;--subtext1: #B6B8DE;--subtext0: #999AC7;--overlay2: #8787B2;--overlay1: #6D6D93;--overlay0: #545573;--surface2: #3C3D53;--surface1: #2A2C3B;--surface0: #1E1F2A;--base: #14161D;--mantle: #0E0F15;--crust: #090A0F}:root{--default-border: var(--surface1);--special: var(--skye)}@font-face{font-family:Space Mono;font-style:italic;font-weight:400;src:url(/assets/fonts/space-mono/space-mono-latin-400-italic.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-400-italic.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:italic;font-weight:400;src:url(/assets/fonts/space-mono/space-mono-latin-ext-400-italic.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-ext-400-italic.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:italic;font-weight:700;src:url(/assets/fonts/space-mono/space-mono-latin-700-italic.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-700-italic.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:italic;font-weight:700;src:url(/assets/fonts/space-mono/space-mono-latin-ext-700-italic.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-ext-700-italic.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;src:url(/assets/fonts/space-mono/space-mono-latin-400-normal.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-400-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;src:url(/assets/fonts/space-mono/space-mono-latin-ext-400-normal.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-ext-400-normal.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;src:url(/assets/fonts/space-mono/space-mono-latin-700-normal.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-700-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;src:url(/assets/fonts/space-mono/space-mono-latin-ext-700-normal.woff2) format("woff2"),url(/assets/fonts/space-mono/space-mono-latin-ext-700-normal.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-text: "Space Mono"}html,body{background-color:var(--crust);color:var(--text);font-family:var(--font-text),system-ui,sans-serif}pre,code{font-family:var(--font-code),ui-monospace,monospace}:root{--top-margin: 6rem;--df-header-size: 8rem;--header-size: calc(var(--top-margin) + var(--df-header-size));--footer-size: 6rem}body{container:body/inline-size;min-height:100vh;width:100vw}#root,#page{height:100%;width:100%}#page{display:grid;grid-template:"grid-header" var(--header-size) "grid-center" auto "grid-footer" var(--footer-size)/auto;gap:.32rem}@media not (min-width: 1200px){#root>#page{padding:0 4rem 0 0}}@media (max-width: 800px){#root>#page{padding:0 2rem;--top-margin: 0}}#root{container:root/inline-size;max-width:720px;margin:0 auto}#root .left{grid-area:grid-sidebar-left}#root #main{grid-area:grid-center}#root .right{grid-area:grid-sidebar-right}#root .page-header{grid-area:grid-header;margin:var(--top-margin) 0 0}#root .page-footer{grid-area:grid-footer;margin:0 0 1.8rem}#root>#page .sidebar{position:sticky;top:0;height:100vh;padding:var(--top-margin) 2rem 2rem;display:flex;gap:2rem}@media not (min-width: 1200px){#root>#page .sidebar.right{position:initial;height:auto;padding:0}}@media (max-width: 800px){#root>#page .sidebar.left{position:initial;height:auto;padding:2rem 0 0}}#main{container:page-content/inline-size}#main,.page-footer{min-width:100%;max-width:100%;margin-left:auto;margin-right:auto}#main>hr{display:none}@media not (min-width: 1200px){#main>hr{display:block}}.spacer{flex:auto}[onmobile]{display:none}@media (max-width: 800px){[onmobile]{display:initial}}[ontablet]{display:none}@media (min-width: 800px) and (max-width: 1200px){[ontablet]{display:initial}}.header{grid-area:grid-header;display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:1rem;padding:1rem 0}.brandname{font-size:4rem;font-weight:700;align-self:center;justify-self:center}.branddesc{font-size:1.25rem;font-weight:400;align-self:center;justify-self:center;width:fit-content}a{color:var(--special);text-decoration:none}a:hover{color:var(--special);text-decoration:underline}.text p a:not([target=_blank]){--bg-opacity: 8%;background-color:color-mix(in hsl,var(--crust),var(--special) var(--bg-opacity));transition:var(--bg-opacity) .3s ease;line-height:1.4rem;padding:0 .1rem;border-radius:6px;text-decoration:none}.text p a:not([target=_blank]):hover{--bg-opacity: 12%;text-decoration:none}.text p a[target=_blank]{border-bottom:2px solid var(--overlay0);transition:border-color .3s ease}.text p a[target=_blank]:hover{border-color:var(--special);text-decoration:none}a.datalink{vertical-align:middle;margin-right:.6rem}a.datalink:hover{text-decoration:none}a.datalink:hover:after{padding-left:.4rem;color:var(--special)}a.datalink:after{content:"->";position:absolute;font-size:1.2rem;transition:padding-left .3s ease-out,color .3s ease-out;padding-left:.2rem;color:var(--overlay0)}:root{--text-margin: .8rem}.text{--h-margin-b: .8rem}.text p{line-height:1.6rem;overflow-wrap:anywhere;margin:var(--text-margin) 0}.text p.subtle{color:var(--subtext0)}.text p>code{background:var(--surface0);color:var(--subtext0);padding:.12rem .24rem}.text blockquote{margin:var(--text-margin) 0;padding-left:1rem;border-left:4px solid var(--overlay0);transition:border-color .2s}.text h1{margin:2.25rem 0 var(--h-margin-b);font-size:1.75rem}.text h2{margin:1.9rem 0 var(--h-margin-b);font-size:1.4rem}.text h3{margin:1.62rem 0 var(--h-margin-b);font-size:1.12rem}.text h4,.text h5,.text h6{margin:1.5rem 0 var(--h-margin-b);font-size:1rem}.text ul{list-style-type:"- "}.text ul li{padding-left:.5rem}p.subtitle{margin-top:0}.text :has(+p.subtitle){margin-bottom:0}.text pre:has(>code){--gutter-size: 2rem;margin:.5rem 0;padding:1rem var(--gutter-size);border:2px solid var(--border, var(--default-border));overflow:auto}.text pre:has(>code)[data-linenos]{padding:1rem 0}.text pre:has(>code) table td{padding:0}.text pre:has(>code) table td:nth-of-type(1){text-align:center;user-select:none;width:var(--gutter-size)}.text pre:has(>code) mark{display:block;background-color:#fefce8e6}.text pre:has(>code) table{width:100%;border-collapse:collapse}hr{background-color:var(--surface1);border:none;width:100%;height:1px;margin:2rem auto}
