@font-face{font-family:Gloock;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e788aa69824e04f8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Gloock;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0bea4d0d20d02353-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,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:Gloock;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/aba50fd1ece19c76-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Gloock Fallback;src:local("Times New Roman");ascent-override:84.82%;descent-override:19.57%;line-gap-override:0.00%;size-adjust:114.95%}.__className_b05032{font-family:Gloock,Gloock Fallback;font-weight:400;font-style:normal}.__variable_b05032{--font-gloock:"Gloock","Gloock Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/55c55f0601d81cf3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/26a46d62cd723877-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/97e0cb1ae144a2a9-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/581909926a08bbc8-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_e8ce0c{font-family:Inter,Inter Fallback;font-style:normal}.__variable_e8ce0c{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-jb-mono:"JetBrains Mono","JetBrains Mono Fallback"}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#e6e6e6;background:#2a2c2d}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.hljs-comment,.hljs-quote{color:#bbbbbb;font-style:italic}.hljs-params{color:#bbbbbb}.hljs-attr,.hljs-punctuation{color:#e6e6e6}.hljs-meta,.hljs-name,.hljs-selector-tag{color:#ff4b82}.hljs-char.escape_,.hljs-operator{color:#b084eb}.hljs-deletion,.hljs-keyword{color:#ff75b5}.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-variable.language_{color:#ff9ac1}.hljs-code,.hljs-formula,.hljs-property,.hljs-section,.hljs-subst,.hljs-title.function_{color:#45a9f9}.hljs-addition,.hljs-bullet,.hljs-meta .hljs-string,.hljs-selector-class,.hljs-string,.hljs-symbol,.hljs-title.class_,.hljs-title.class_.inherited__{color:#19f9d8}.hljs-attribute,.hljs-built_in,.hljs-doctag,.hljs-link,.hljs-literal,.hljs-meta .hljs-keyword,.hljs-number,.hljs-punctuation,.hljs-selector-id,.hljs-tag,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#ffb86c}:root{color-scheme:light dark;--section-spacing:2rem;--intersection-spacing:1rem;--playerOne:hsl(240,100%,38%);--playerTwo:hsl(0,64%,42%);--playerThree:hsl(53,100%,24%);--playerFour:hsl(184,57%,24%);--playerFive:#f0f8ff99;--color-light:hsl(40,60%,98%);--color-light-dim:hsl(47,29%,94%);--color-light-contrast:hsl(47,29%,84%);--color-dark:#0a0a0a;--color-dark-dim:#1a1a1a;--color-dark-contrast:black;--background:var(--color-light);--foreground:var(--color-dark);--foreground-dim:var(--color-dark);--background-dim:var(--color-light-dim);--background-contrast:var(--color-light-contrast);--page-width:95%;--m-document-bg:var(--background-dim);--m-title-color:var(--foreground);--m-node-color:white;--m-node-text-color:var(--foreground);--m-edge-label-color:gold;--m-line-color:var(--foreground-dim);--sh-identifier:var(--foreground-dim);--sh-keyword:var(--playerTwo);--sh-string:var(--playerThree);--sh-class:var(--playerOne);--sh-property:var(--playerThree);--sh-entity:var(--playerFour);--sh-jsxliterals:var(--playerTwo);--sh-sign:lightdark(var(--foreground-dim));--sh-comment:hsl(0,6%,53%)}[data-theme=dark]{--background:var(--color-dark);--foreground:var(--color-light);--foreground-dim:var(--color-light-dim);--background-dim:var(--color-dark-dim);--background-contrast:var(--color-dark-contrast);--playerOne:hsl(216,64%,72%);--playerTwo:hsl(0,64%,72%);--playerThree:hsl(41,87%,72%);--playerFour:hsl(184,57%,72%);--m-edge-label-color:var(--playerThree);--m-node-text-color:var(--background);--m-node-color:var(--foreground-dim);.navbar{button:hover{svg{stroke:gold!important}}}}[data-theme=light]{code{font-weight:600}}.hljs{background:none;.hljs-keyword{color:var(--sh-keyword)!important}.hljs-comment{color:var(--sh-comment)!important}.hljs-property,.hljs-punctuation,.hljs-title{color:var(--sh-class)!important}.inherited__{color:var(--sh-entity)!important}.hljs-built_in,.hljs-number,.hljs-string,.hljs-type{color:var(--sh-string)!important}}code.inline-code{font-family:var(--font-jb-mono),monospace;background-color:var(--background-dim);padding:.25rem .5rem;color:var(--playerThree);border-radius:4px}.mermaid{svg[role~=graphics-document]{background-color:var(--m-document-bg)!important}[class$=TitleText]{fill:var(--m-title-color)!important}.label-container,.node path{fill:var(--m-node-color)!important;stroke:var(--m-node-text-color)!important}.nodeLabel p{color:var(--m-node-text-color)!important}foreignObject .edgeLabel>p{background-color:var(--m-edge-label-color)!important}.marker,marker path{stroke:var(--m-line-color)!important}.marker,.messageText,marker path{fill:var(--m-line-color)!important}.actor-line,.edgePaths path,[class^=messageLine]{stroke:var(--m-line-color)!important}.actor{fill:var(--m-node-color)!important;stroke:var(--m-node-text-color)!important;tspan{fill:var(--m-node-text-color)!important}}}input{cursor:pointer}ul li:has(input[type=checkbox]){list-style:none;margin-left:calc(-1.25 * var(--intersection-spacing))}code{font-family:var(--font-jb-mono),monospace;&:not(.inline-code){font-size:1rem}}@media screen and (min-width:480px){:root{--section-spacing:3rem}}@media screen and (min-width:768px){:root{--page-width:90%;--section-spacing:4rem}}@media screen and (min-width:1072px){:root{--page-width:75%}}@media screen and (min-width:1440px){:root{--page-width:1080px}}pre{background-color:var(--background-dim);padding:1rem 1.5rem;overflow-x:auto;code{display:flex;flex-direction:column}}body,html{max-width:100%}body{width:100vw;font-size:1.1rem;color:var(--foreground);background:var(--background);font-family:var(--font-inter);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;li,p{line-height:1.5rem}}p,pre{margin-bottom:var(--intersection-spacing)}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit}.side-image-gallery{display:none}.page{width:var(--page-width);margin-inline:auto}.main-content{display:flex;flex-flow:column;overflow:hidden;&:not(.blog-post){gap:var(--section-spacing)}}.sh__line:has(>.sh__token--break):not(:has(>:not(.sh__token--break))){margin-bottom:calc(2 * var(--intersection-spacing))}@media screen and (min-width:480px){.page{margin-block:var(--section-spacing)}.mobile{display:none}.split-page{display:grid;grid-template-columns:2fr 1fr;grid-gap:var(--section-spacing);gap:var(--section-spacing)}.side-image-gallery{display:flex;flex-flow:column;gap:var(--intersection-spacing)}.side-content{width:100%}.main-content{max-width:100%}}@media screen and (min-width:786px){.main-content{max-width:100%}}.muted-text{opacity:.6}.byline{margin-bottom:calc(2 * var(--intersection-spacing))}h1,h2,h3{font-family:var(--font-gloock)}h1{font-size:2.5rem;margin-bottom:calc(.8 * var(--intersection-spacing))}h2{font-size:1.75rem;margin-block:var(--intersection-spacing)}h3{font-size:1.25rem;margin-bottom:calc(.8 * var(--intersection-spacing))}ol,ul{padding-left:calc(2.5 * var(--intersection-spacing));margin-bottom:calc(1.25 * var(--intersection-spacing));margin-top:calc(.5 * var(--intersection-spacing))}li{margin-bottom:calc(.5 * var(--intersection-spacing))}blockquote{padding-inline:calc((2.5 * var(--intersection-spacing)) - 4px);padding-top:calc(var(--intersection-spacing));padding-bottom:calc(.5 * var(--intersection-spacing));margin-bottom:var(--intersection-spacing);border-left:4px solid var(--foreground);background-color:var(--background-dim)}ul{li{list-style-type:disc}}:has(+h1),:has(+h2),:has(+h3){margin-bottom:calc(1.5 * var(--intersection-spacing))}foreignObject{display:flex;align-items:center;justify-content:center;&:has(.edgeLabel){background-color:transparent;.edgeLabel,.labelBkg{background-color:transparent!important}p{margin-inline:auto!important;max-width:max-content;border-radius:4px;padding:0 .75rem}}}table{border-collapse:collapse;margin-bottom:calc(2 * var(--intersection-spacing));width:98%;border-radius:4px;border:1px solid var(--foreground-dim);thead{background-color:var(--background-dim);color:var(--foreground-dim)}tbody tr{&:first-child{background-color:var(--background)}&:hover,&:nth-child(2n){background-color:var(--background-dim)}}td,th{padding:calc(.5 * var(--intersection-spacing)) calc(1 * var(--intersection-spacing));text-align:left;border-right:1px solid var(--foreground-dim);border-bottom:1px solid var(--foreground-dim)}}@media screen and (min-width:720px){.navbar{margin-inline:auto;width:90%}}@view-transition{navigation:auto}.skeleton{background:linear-gradient(90deg,var(--background) 25%,var(--background-dim) 50%,var(--background) 75%);background-size:200% 200%;animation:shimmer 2.5s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.NavBar_navBarContainer__tjU6I{background-color:var(--background);position:-webkit-sticky;position:sticky;top:0;z-index:10;.NavBar_navBar__Dlx4q{display:flex;width:var(--page-width);padding-block:1rem;margin-inline:auto;justify-content:space-between;flex-flow:column}a{text-decoration:none}}.NavBar_navHeader__NPBOZ{font-size:1.5rem;font-family:var(--font-inter);font-weight:600}.NavBar_navOptions__Z2LZh{display:flex;align-items:center;justify-content:space-between;width:100%}.NavBar_navLinks__gMNQg{display:flex;font-size:1.25rem;font-weight:600;font-family:var(--font-inter);gap:1rem;margin-block:auto;padding-left:0;li{margin-block:auto}a:hover{text-decoration:underline;-webkit-text-decoration-color:gold;text-decoration-color:gold}}@media screen and (min-width:720px){.NavBar_navBar__Dlx4q{align-items:center;flex-flow:row!important}.NavBar_navOptions__Z2LZh{width:min-content}}