@font-face{font-family:Open Sans;font-weight:300;font-display:swap;font-style:normal;src:url(/assets/fonts/open-sans-latin-300.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:300;font-display:swap;font-style:italic;src:url(/assets/fonts/open-sans-latin-300italic.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:400;font-display:swap;font-style:normal;src:url(/assets/fonts/open-sans-latin-400.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:400;font-display:swap;font-style:italic;src:url(/assets/fonts/open-sans-latin-400italic.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:600;font-display:swap;font-style:normal;src:url(/assets/fonts/open-sans-latin-600.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:600;font-display:swap;font-style:italic;src:url(/assets/fonts/open-sans-latin-600italic.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:700;font-display:swap;font-style:normal;src:url(/assets/fonts/open-sans-latin-700.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:700;font-display:swap;font-style:italic;src:url(/assets/fonts/open-sans-latin-700italic.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:800;font-display:swap;font-style:normal;src:url(/assets/fonts/open-sans-latin-800.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:800;font-display:swap;font-style:italic;src:url(/assets/fonts/open-sans-latin-800italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:100;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-mono-latin-100.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:100;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-mono-latin-100italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:200;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-mono-latin-200.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:200;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-mono-latin-200italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:300;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-mono-latin-300.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:300;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-mono-latin-300italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:400;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-mono-latin-400.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:400;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-mono-latin-400italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:500;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-mono-latin-500.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:500;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-mono-latin-500italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:600;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-mono-latin-600.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:600;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-mono-latin-600italic.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:700;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-mono-latin-700.woff2) format("woff2")}@font-face{font-family:Roboto Mono;font-weight:700;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-mono-latin-700italic.woff2) format("woff2")}@font-face{font-family:Sometype Mono;font-weight:500;font-display:swap;font-style:normal;src:url(/assets/fonts/SometypeMono-500.woff2) format("woff2")}@font-face{font-family:Sometype Mono;font-weight:700;font-display:swap;font-style:normal;src:url(/assets/fonts/SometypeMono-700.woff2) format("woff2")}@font-face{font-family:EdgeDB;font-weight:300;font-display:swap;font-style:normal;src:url(/assets/fonts/edgedb-300.woff2) format("woff2")}@font-face{font-family:EdgeDB;font-weight:400;font-display:swap;font-style:normal;src:url(/assets/fonts/edgedb-400.woff2) format("woff2")}@font-face{font-family:EdgeDB;font-weight:500;font-display:swap;font-style:normal;src:url(/assets/fonts/edgedb-500.woff2) format("woff2")}@font-face{font-family:EdgeDB;font-weight:600;font-display:swap;font-style:normal;src:url(/assets/fonts/edgedb-600.woff2) format("woff2")}@font-face{font-family:EdgeDB;font-weight:700;font-display:swap;font-style:normal;src:url(/assets/fonts/edgedb-700.woff2) format("woff2")}:root{--leftSidebarWidth:1fr;--contentWidth:1040px;--rightSidebarWidth:1fr;--pageMargin:64px;--codeBgColour:#f7f7f7;--codeBgColourTransparent:hsla(0,0%,97%,0);--pageLinkColour:#1f8aed;--pageLinkHoverColour:#047cff;--syntaxGreen:#1a8f66;--syntaxPurple:#be65cd;--syntaxBlue:#0075d2;--syntaxOrange:#d78100;--syntaxRed:#e72525;--syntaxText:#333;--syntaxComment:#7f7f7f;--syntaxSynopsis:#7f7f7f;--syntaxOptional:#999}body,html{padding:0;margin:0;font-size:12px}body{background-color:var(--lightBg,#fff)}html{font-family:Open Sans,-apple-system,BlinkMacSystemFont,arial,sans-serif;background-color:#fff;font-weight:400;font-size:20px;line-height:40px;color:#4d4d4d;-webkit-text-size-adjust:100%;overflow-y:scroll;overflow-x:hidden;scroll-padding-top:var(--headerAnchorOffset,32px)}ul{-webkit-margin-before:.2em;margin-block-start:.2em;-webkit-margin-after:.2em;margin-block-end:.2em}button,input{font-family:Open Sans,-apple-system,BlinkMacSystemFont,arial,sans-serif}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}h1,h2,h3,h4,h5{margin:2em 0 0}h1{font-size:30px;line-height:28px}h1,h2{font-weight:500;color:rgba(0,0,0,.85)}h2{font-size:18px;line-height:26px}h3{font-weight:500;font-size:16px;line-height:24px;color:rgba(0,0,0,.85)}h4{color:rgba(0,0,0,.65)}h4,h5{font-weight:400;font-size:14px;line-height:22px}h5{color:rgba(0,0,0,.45)}p,span{font-weight:400;font-size:16px;line-height:1.6;color:#2e405e}img{max-width:100%;height:auto}.subheading{font-size:26px;line-height:40px}a{color:var(--pageLinkColour);text-decoration:none}.no-touch a:hover>code{background:var(--pageLinkColour);color:#fff}a .no-touch a:hover{color:var(--pageLinkHoverColour)}code{font-family:Roboto Mono,Monaco,monospace;background-color:#cddcff;color:#444;border-radius:3px;padding:1px .4em 2px;font-size:85%;overflow-wrap:break-word}.globalPageWrapper{--pageMaxWidth:2060px;display:grid;grid-template-columns:[left-sidebar] minmax(0,var(--leftSidebarWidth)) [content] minmax(auto,var(--contentWidth)) [right-sidebar] minmax(0,var(--rightSidebarWidth));width:100%;max-width:var(--pageMaxWidth);padding:0 var(--pageMargin);margin:0 auto}a,button{outline:0}[data-theme=dark]{--codeBgColour:#191919;--codeBgColourTransparent:rgba(25,25,25,0);--pageLinkColour:#3a82c4;--pageLinkHoverColour:#3a82c4;background-color:var(--darkBg,#2c2d2e);color:#b3b3b3;--syntaxGreen:#07a66d;--syntaxPurple:#ac86f6;--syntaxBlue:#369ff2;--syntaxOrange:#f4e470;--syntaxRed:#f13f4a;--syntaxText:#e5e5e5;--syntaxComment:#7f7f7f}@media(prefers-color-scheme:dark){[data-theme=system]{--codeBgColour:#191919;--codeBgColourTransparent:rgba(25,25,25,0);--pageLinkColour:#3a82c4;--pageLinkHoverColour:#3a82c4;background-color:var(--darkBg,#2c2d2e);color:#b3b3b3;--syntaxGreen:#07a66d;--syntaxPurple:#ac86f6;--syntaxBlue:#369ff2;--syntaxOrange:#f4e470;--syntaxRed:#f13f4a;--syntaxText:#e5e5e5;--syntaxComment:#7f7f7f}}