:root {
    --golden-ratio: 1.61803398875;
    --golden-ratio-lower: calc(1 / var(--golden-ratio));
    --max-content-width-small: 720px;
    --max-content-width-large: 1280px;
    --max-content-width: var(--max-content-width-small);
    --bullet-space: 2.5rem;
    --block-border-radius-large: 2.5rem;
    --block-border-radius: 1rem;
    --border-radius: 0.25rem;
    --border-radius-small: calc(var(--border-radius) * 0.5);
    --spacing-large: calc(var(--spacing) * var(--golden-ratio));
    --spacing: calc(clamp(1.5rem, 100vw * 0.0625, 3rem));
    --spacing-small: calc(var(--spacing) / var(--golden-ratio));
    --spacing-micro: calc(var(--spacing-small) / var(--golden-ratio));
    --spacing-nano: calc(var(--spacing-small) / 2);
    --gap: 0.8rem;
    --layout-horizontal-spacing: var(--spacing);
    --layout-horizontal-page-padding: calc(var(--gap));
    --max-page-width-wide-px: max(var(--max-content-width-large), min(80vh/0.5625, min(100vw, 1760px)));
    --max-page-width-px: 1380px;
    --max-page-width-wide: min(100%, var(--max-page-width-wide-px));
    --max-page-width: min(100%, var(--max-page-width-px))
}

@media (min-width:768px) {
    :root {
        --spacing: 3rem;
        --gap: 1rem
    }
}

@media (min-width:1025px) {
    :root {
        --max-content-width: var(--max-content-width-large);
        --gap: 1.5rem
    }
}

:root {
    --color-dark-background: #000;
    --color-dark-background-inset: #0d0e11;
    --color-dark-background-content: #14141a;
    --color-dark-background-content-rgb: 20, 20, 26;
    --color-dark-background-code: #22212c;
    --color-dark-muted: #343243;
    --color-dark-foreground: #a0a0c0;
    --color-dark-foreground-code: #f7f8f2;
    --color-dark-foreground-bright: #fff;
    --color-dark-purple: #9580ff;
    --color-dark-cyan: #23ffca;
    --color-dark-cyan-soft: #80ffea;
    --color-dark-orange: #e2bb73;
    --color-dark-red-soft: #ff9480;
    --color-dark-red: #f55;
    --color-dark-blue: #8be9fd;
    --color-light-background: #f5f5f5;
    --color-light-background-inset: #eee;
    --color-light-background-content: #fff;
    --color-light-background-content-rgb: 255, 255, 255;
    --color-light-background-code: #f8f8f2;
    --color-light-muted: #f8f8f2;
    --color-light-foreground: #000;
    --color-light-foreground-code: #000;
    --color-light-foreground-bright: #000;
    --color-light-purple: #9580ff;
    --color-light-cyan: #23ffca;
    --color-light-cyan-soft: #80ffea;
    --color-light-orange: #e2bb73;
    --color-light-red-soft: #ff9480;
    --color-light-red: #f55;
    --color-light-blue: #8be9fd
}

.theme-dark,
html {
    color-scheme: dark;
    --color-darken-rgb: 0, 0, 0;
    --color-lighten-rgb: 255, 255, 255;
    --color-background: var(--color-dark-background);
    --color-background-inset: var(--color-dark-background-inset);
    --color-background-content: var(--color-dark-background-content);
    --color-background-content-rgb: var(--color-dark-background-content-rgb);
    --color-background-code: var(--color-dark-background-code);
    --color-muted: var(--color-dark-muted);
    --color-foreground: var(--color-dark-foreground);
    --color-foreground-code: var(--color-dark-foreground-code);
    --color-foreground-bright: var(--color-dark-foreground-bright);
    --color-purple: var(--color-dark-purple);
    --color-cyan: var(--color-dark-cyan);
    --color-cyan-soft: var(--color-dark-cyan-soft);
    --color-orange: var(--color-dark-orange);
    --color-red-soft: var(--color-dark-red-soft);
    --color-red: var(--color-dark-red);
    --color-blue: var(--color-dark-blue);
    --color-brand-discord: #5865f2;
    --color-brand-linkedin: #0077b5;
    --color-brand-facebook: #4267b2;
    --color-brand-twitter: #1da1f2;
    --color-brand-bmac: #fd0;
    --color-brand-ig: #ff0069
}

.theme-light {
    color-scheme: light;
    --color-darken-rgb: 255, 255, 255;
    --color-lighten-rgb: 0, 0, 0;
    --color-background: var(--color-light-background);
    --color-background-inset: var(--color-light-background-inset);
    --color-background-content: var(--color-light-background-content);
    --color-background-content-rgb: var(--color-light-background-content-rgb);
    --color-background-code: var(--color-light-background-code);
    --color-muted: var(--color-light-muted);
    --color-foreground: var(--color-light-foreground);
    --color-foreground-code: var(--color-light-foreground-code);
    --color-foreground-bright: var(--color-light-foreground-bright);
    --color-purple: var(--color-light-purple);
    --color-cyan: var(--color-light-cyan);
    --color-cyan-soft: var(--color-light-cyan-soft);
    --color-orange: var(--color-light-orange);
    --color-red-soft: var(--color-light-red-soft);
    --color-red: var(--color-light-red);
    --color-blue: var(--color-light-blue)
}

html.graphics-reduced,
html.graphics-reduced *,
html.graphics-reduced :after,
html.graphics-reduced :before {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important
}

iframe {
    color-scheme: normal !important
}

* {
    box-sizing: border-box;
    padding: 0;
    margin: 0
}

body {
    overflow-y: scroll;
    overflow-x: hidden
}

body,
html {
    max-width: 100%;
    min-height: 100%
}

body {
    color: var(--color-foreground);
    background: var(--color-background);
    line-height: 1.2
}

html {
    -webkit-font-smoothing: antialiased;
    font-family: var(--font-family-blender);
    font-feature-settings: "zero", "zero";
    font-variant-numeric: slashed-zero
}

code,
pre {
    -webkit-font-smoothing: auto;
    font-family: var(--font-family-jetbrainsmono)
}

a {
    color: inherit;
    text-decoration: none
}

button {
    font-family: inherit
}

.grecaptcha-wrapper {
    position: fixed;
    top: 0;
    left: 0
}

.grecaptcha-badge {
    visibility: hidden
}

html.theme-dark [data-rmiz-modal-overlay=hidden] {
    background-color: transparent
}

html.theme-dark [data-rmiz-modal-overlay=visible] {
    background-color: #000
}

@supports (font:-apple-system-body) and (-webkit-appearance:none) {
    img[loading=lazy] {
        -webkit-clip-path: inset(.6px);
        clip-path: inset(.6px)
    }
}

.fa-brands,
.fab {
    font: var(--fa-font-brands);
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-feature-settings: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto
}

/*!
 * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2022 Fonticons, Inc.
 */

:host,
:root {
    --fa-style-family-brands: "Font Awesome 6 Brands";
    --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"
}

@font-face {
    font-family: Font Awesome\ 6 Brands;
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url(../fonts/fa-brands-400.0ad87b22.woff2) format("woff2"), url(../fa-brands-400.aaa8e217.html) format("truetype")
}

.fa-brands,
.fab {
    font-weight: 400
}

.fa-monero:before {
    content: "\f3d0"
}

.fa-hooli:before {
    content: "\f427"
}

.fa-yelp:before {
    content: "\f1e9"
}

.fa-cc-visa:before {
    content: "\f1f0"
}

.fa-lastfm:before {
    content: "\f202"
}

.fa-shopware:before {
    content: "\f5b5"
}

.fa-creative-commons-nc:before {
    content: "\f4e8"
}

.fa-aws:before {
    content: "\f375"
}

.fa-redhat:before {
    content: "\f7bc"
}

.fa-yoast:before {
    content: "\f2b1"
}

.fa-cloudflare:before {
    content: "\e07d"
}

.fa-ups:before {
    content: "\f7e0"
}

.fa-wpexplorer:before {
    content: "\f2de"
}

.fa-dyalog:before {
    content: "\f399"
}

.fa-bity:before {
    content: "\f37a"
}

.fa-stackpath:before {
    content: "\f842"
}

.fa-buysellads:before {
    content: "\f20d"
}

.fa-first-order:before {
    content: "\f2b0"
}

.fa-modx:before {
    content: "\f285"
}

.fa-guilded:before {
    content: "\e07e"
}

.fa-vnv:before {
    content: "\f40b"
}

.fa-js-square:before,
.fa-square-js:before {
    content: "\f3b9"
}

.fa-microsoft:before {
    content: "\f3ca"
}

.fa-qq:before {
    content: "\f1d6"
}

.fa-orcid:before {
    content: "\f8d2"
}

.fa-java:before {
    content: "\f4e4"
}

.fa-invision:before {
    content: "\f7b0"
}

.fa-creative-commons-pd-alt:before {
    content: "\f4ed"
}

.fa-centercode:before {
    content: "\f380"
}

.fa-glide-g:before {
    content: "\f2a6"
}

.fa-drupal:before {
    content: "\f1a9"
}

.fa-hire-a-helper:before {
    content: "\f3b0"
}

.fa-creative-commons-by:before {
    content: "\f4e7"
}

.fa-unity:before {
    content: "\e049"
}

.fa-whmcs:before {
    content: "\f40d"
}

.fa-rocketchat:before {
    content: "\f3e8"
}

.fa-vk:before {
    content: "\f189"
}

.fa-untappd:before {
    content: "\f405"
}

.fa-mailchimp:before {
    content: "\f59e"
}

.fa-css3-alt:before {
    content: "\f38b"
}

.fa-reddit-square:before,
.fa-square-reddit:before {
    content: "\f1a2"
}

.fa-vimeo-v:before {
    content: "\f27d"
}

.fa-contao:before {
    content: "\f26d"
}

.fa-square-font-awesome:before {
    content: "\e5ad"
}

.fa-deskpro:before {
    content: "\f38f"
}

.fa-sistrix:before {
    content: "\f3ee"
}

.fa-instagram-square:before,
.fa-square-instagram:before {
    content: "\e055"
}

.fa-battle-net:before {
    content: "\f835"
}

.fa-the-red-yeti:before {
    content: "\f69d"
}

.fa-hacker-news-square:before,
.fa-square-hacker-news:before {
    content: "\f3af"
}

.fa-edge:before {
    content: "\f282"
}

.fa-napster:before {
    content: "\f3d2"
}

.fa-snapchat-square:before,
.fa-square-snapchat:before {
    content: "\f2ad"
}

.fa-google-plus-g:before {
    content: "\f0d5"
}

.fa-artstation:before {
    content: "\f77a"
}

.fa-markdown:before {
    content: "\f60f"
}

.fa-sourcetree:before {
    content: "\f7d3"
}

.fa-google-plus:before {
    content: "\f2b3"
}

.fa-diaspora:before {
    content: "\f791"
}

.fa-foursquare:before {
    content: "\f180"
}

.fa-stack-overflow:before {
    content: "\f16c"
}

.fa-github-alt:before {
    content: "\f113"
}

.fa-phoenix-squadron:before {
    content: "\f511"
}

.fa-pagelines:before {
    content: "\f18c"
}

.fa-algolia:before {
    content: "\f36c"
}

.fa-red-river:before {
    content: "\f3e3"
}

.fa-creative-commons-sa:before {
    content: "\f4ef"
}

.fa-safari:before {
    content: "\f267"
}

.fa-google:before {
    content: "\f1a0"
}

.fa-font-awesome-alt:before,
.fa-square-font-awesome-stroke:before {
    content: "\f35c"
}

.fa-atlassian:before {
    content: "\f77b"
}

.fa-linkedin-in:before {
    content: "\f0e1"
}

.fa-digital-ocean:before {
    content: "\f391"
}

.fa-nimblr:before {
    content: "\f5a8"
}

.fa-chromecast:before {
    content: "\f838"
}

.fa-evernote:before {
    content: "\f839"
}

.fa-hacker-news:before {
    content: "\f1d4"
}

.fa-creative-commons-sampling:before {
    content: "\f4f0"
}

.fa-adversal:before {
    content: "\f36a"
}

.fa-creative-commons:before {
    content: "\f25e"
}

.fa-watchman-monitoring:before {
    content: "\e087"
}

.fa-fonticons:before {
    content: "\f280"
}

.fa-weixin:before {
    content: "\f1d7"
}

.fa-shirtsinbulk:before {
    content: "\f214"
}

.fa-codepen:before {
    content: "\f1cb"
}

.fa-git-alt:before {
    content: "\f841"
}

.fa-lyft:before {
    content: "\f3c3"
}

.fa-rev:before {
    content: "\f5b2"
}

.fa-windows:before {
    content: "\f17a"
}

.fa-wizards-of-the-coast:before {
    content: "\f730"
}

.fa-square-viadeo:before,
.fa-viadeo-square:before {
    content: "\f2aa"
}

.fa-meetup:before {
    content: "\f2e0"
}

.fa-centos:before {
    content: "\f789"
}

.fa-adn:before {
    content: "\f170"
}

.fa-cloudsmith:before {
    content: "\f384"
}

.fa-pied-piper-alt:before {
    content: "\f1a8"
}

.fa-dribbble-square:before,
.fa-square-dribbble:before {
    content: "\f397"
}

.fa-codiepie:before {
    content: "\f284"
}

.fa-node:before {
    content: "\f419"
}

.fa-mix:before {
    content: "\f3cb"
}

.fa-steam:before {
    content: "\f1b6"
}

.fa-cc-apple-pay:before {
    content: "\f416"
}

.fa-scribd:before {
    content: "\f28a"
}

.fa-openid:before {
    content: "\f19b"
}

.fa-instalod:before {
    content: "\e081"
}

.fa-expeditedssl:before {
    content: "\f23e"
}

.fa-sellcast:before {
    content: "\f2da"
}

.fa-square-twitter:before,
.fa-twitter-square:before {
    content: "\f081"
}

.fa-r-project:before {
    content: "\f4f7"
}

.fa-delicious:before {
    content: "\f1a5"
}

.fa-freebsd:before {
    content: "\f3a4"
}

.fa-vuejs:before {
    content: "\f41f"
}

.fa-accusoft:before {
    content: "\f369"
}

.fa-ioxhost:before {
    content: "\f208"
}

.fa-fonticons-fi:before {
    content: "\f3a2"
}

.fa-app-store:before {
    content: "\f36f"
}

.fa-cc-mastercard:before {
    content: "\f1f1"
}

.fa-itunes-note:before {
    content: "\f3b5"
}

.fa-golang:before {
    content: "\e40f"
}

.fa-kickstarter:before {
    content: "\f3bb"
}

.fa-grav:before {
    content: "\f2d6"
}

.fa-weibo:before {
    content: "\f18a"
}

.fa-uncharted:before {
    content: "\e084"
}

.fa-firstdraft:before {
    content: "\f3a1"
}

.fa-square-youtube:before,
.fa-youtube-square:before {
    content: "\f431"
}

.fa-wikipedia-w:before {
    content: "\f266"
}

.fa-rendact:before,
.fa-wpressr:before {
    content: "\f3e4"
}

.fa-angellist:before {
    content: "\f209"
}

.fa-galactic-republic:before {
    content: "\f50c"
}

.fa-nfc-directional:before {
    content: "\e530"
}

.fa-skype:before {
    content: "\f17e"
}

.fa-joget:before {
    content: "\f3b7"
}

.fa-fedora:before {
    content: "\f798"
}

.fa-stripe-s:before {
    content: "\f42a"
}

.fa-meta:before {
    content: "\e49b"
}

.fa-laravel:before {
    content: "\f3bd"
}

.fa-hotjar:before {
    content: "\f3b1"
}

.fa-bluetooth-b:before {
    content: "\f294"
}

.fa-sticker-mule:before {
    content: "\f3f7"
}

.fa-creative-commons-zero:before {
    content: "\f4f3"
}

.fa-hips:before {
    content: "\f452"
}

.fa-behance:before {
    content: "\f1b4"
}

.fa-reddit:before {
    content: "\f1a1"
}

.fa-discord:before {
    content: "\f392"
}

.fa-chrome:before {
    content: "\f268"
}

.fa-app-store-ios:before {
    content: "\f370"
}

.fa-cc-discover:before {
    content: "\f1f2"
}

.fa-wpbeginner:before {
    content: "\f297"
}

.fa-confluence:before {
    content: "\f78d"
}

.fa-mdb:before {
    content: "\f8ca"
}

.fa-dochub:before {
    content: "\f394"
}

.fa-accessible-icon:before {
    content: "\f368"
}

.fa-ebay:before {
    content: "\f4f4"
}

.fa-amazon:before {
    content: "\f270"
}

.fa-unsplash:before {
    content: "\e07c"
}

.fa-yarn:before {
    content: "\f7e3"
}

.fa-square-steam:before,
.fa-steam-square:before {
    content: "\f1b7"
}

.fa-500px:before {
    content: "\f26e"
}

.fa-square-vimeo:before,
.fa-vimeo-square:before {
    content: "\f194"
}

.fa-asymmetrik:before {
    content: "\f372"
}

.fa-font-awesome-flag:before,
.fa-font-awesome-logo-full:before,
.fa-font-awesome:before {
    content: "\f2b4"
}

.fa-gratipay:before {
    content: "\f184"
}

.fa-apple:before {
    content: "\f179"
}

.fa-hive:before {
    content: "\e07f"
}

.fa-gitkraken:before {
    content: "\f3a6"
}

.fa-keybase:before {
    content: "\f4f5"
}

.fa-apple-pay:before {
    content: "\f415"
}

.fa-padlet:before {
    content: "\e4a0"
}

.fa-amazon-pay:before {
    content: "\f42c"
}

.fa-github-square:before,
.fa-square-github:before {
    content: "\f092"
}

.fa-stumbleupon:before {
    content: "\f1a4"
}

.fa-fedex:before {
    content: "\f797"
}

.fa-phoenix-framework:before {
    content: "\f3dc"
}

.fa-shopify:before {
    content: "\e057"
}

.fa-neos:before {
    content: "\f612"
}

.fa-hackerrank:before {
    content: "\f5f7"
}

.fa-researchgate:before {
    content: "\f4f8"
}

.fa-swift:before {
    content: "\f8e1"
}

.fa-angular:before {
    content: "\f420"
}

.fa-speakap:before {
    content: "\f3f3"
}

.fa-angrycreative:before {
    content: "\f36e"
}

.fa-y-combinator:before {
    content: "\f23b"
}

.fa-empire:before {
    content: "\f1d1"
}

.fa-envira:before {
    content: "\f299"
}

.fa-gitlab-square:before,
.fa-square-gitlab:before {
    content: "\e5ae"
}

.fa-studiovinari:before {
    content: "\f3f8"
}

.fa-pied-piper:before {
    content: "\f2ae"
}

.fa-wordpress:before {
    content: "\f19a"
}

.fa-product-hunt:before {
    content: "\f288"
}

.fa-firefox:before {
    content: "\f269"
}

.fa-linode:before {
    content: "\f2b8"
}

.fa-goodreads:before {
    content: "\f3a8"
}

.fa-odnoklassniki-square:before,
.fa-square-odnoklassniki:before {
    content: "\f264"
}

.fa-jsfiddle:before {
    content: "\f1cc"
}

.fa-sith:before {
    content: "\f512"
}

.fa-themeisle:before {
    content: "\f2b2"
}

.fa-page4:before {
    content: "\f3d7"
}

.fa-hashnode:before {
    content: "\e499"
}

.fa-react:before {
    content: "\f41b"
}

.fa-cc-paypal:before {
    content: "\f1f4"
}

.fa-squarespace:before {
    content: "\f5be"
}

.fa-cc-stripe:before {
    content: "\f1f5"
}

.fa-creative-commons-share:before {
    content: "\f4f2"
}

.fa-bitcoin:before {
    content: "\f379"
}

.fa-keycdn:before {
    content: "\f3ba"
}

.fa-opera:before {
    content: "\f26a"
}

.fa-itch-io:before {
    content: "\f83a"
}

.fa-umbraco:before {
    content: "\f8e8"
}

.fa-galactic-senate:before {
    content: "\f50d"
}

.fa-ubuntu:before {
    content: "\f7df"
}

.fa-draft2digital:before {
    content: "\f396"
}

.fa-stripe:before {
    content: "\f429"
}

.fa-houzz:before {
    content: "\f27c"
}

.fa-gg:before {
    content: "\f260"
}

.fa-dhl:before {
    content: "\f790"
}

.fa-pinterest-square:before,
.fa-square-pinterest:before {
    content: "\f0d3"
}

.fa-xing:before {
    content: "\f168"
}

.fa-blackberry:before {
    content: "\f37b"
}

.fa-creative-commons-pd:before {
    content: "\f4ec"
}

.fa-playstation:before {
    content: "\f3df"
}

.fa-quinscape:before {
    content: "\f459"
}

.fa-less:before {
    content: "\f41d"
}

.fa-blogger-b:before {
    content: "\f37d"
}

.fa-opencart:before {
    content: "\f23d"
}

.fa-vine:before {
    content: "\f1ca"
}

.fa-paypal:before {
    content: "\f1ed"
}

.fa-gitlab:before {
    content: "\f296"
}

.fa-typo3:before {
    content: "\f42b"
}

.fa-reddit-alien:before {
    content: "\f281"
}

.fa-yahoo:before {
    content: "\f19e"
}

.fa-dailymotion:before {
    content: "\e052"
}

.fa-affiliatetheme:before {
    content: "\f36b"
}

.fa-pied-piper-pp:before {
    content: "\f1a7"
}

.fa-bootstrap:before {
    content: "\f836"
}

.fa-odnoklassniki:before {
    content: "\f263"
}

.fa-nfc-symbol:before {
    content: "\e531"
}

.fa-ethereum:before {
    content: "\f42e"
}

.fa-speaker-deck:before {
    content: "\f83c"
}

.fa-creative-commons-nc-eu:before {
    content: "\f4e9"
}

.fa-patreon:before {
    content: "\f3d9"
}

.fa-avianex:before {
    content: "\f374"
}

.fa-ello:before {
    content: "\f5f1"
}

.fa-gofore:before {
    content: "\f3a7"
}

.fa-bimobject:before {
    content: "\f378"
}

.fa-facebook-f:before {
    content: "\f39e"
}

.fa-google-plus-square:before,
.fa-square-google-plus:before {
    content: "\f0d4"
}

.fa-mandalorian:before {
    content: "\f50f"
}

.fa-first-order-alt:before {
    content: "\f50a"
}

.fa-osi:before {
    content: "\f41a"
}

.fa-google-wallet:before {
    content: "\f1ee"
}

.fa-d-and-d-beyond:before {
    content: "\f6ca"
}

.fa-periscope:before {
    content: "\f3da"
}

.fa-fulcrum:before {
    content: "\f50b"
}

.fa-cloudscale:before {
    content: "\f383"
}

.fa-forumbee:before {
    content: "\f211"
}

.fa-mizuni:before {
    content: "\f3cc"
}

.fa-schlix:before {
    content: "\f3ea"
}

.fa-square-xing:before,
.fa-xing-square:before {
    content: "\f169"
}

.fa-bandcamp:before {
    content: "\f2d5"
}

.fa-wpforms:before {
    content: "\f298"
}

.fa-cloudversify:before {
    content: "\f385"
}

.fa-usps:before {
    content: "\f7e1"
}

.fa-megaport:before {
    content: "\f5a3"
}

.fa-magento:before {
    content: "\f3c4"
}

.fa-spotify:before {
    content: "\f1bc"
}

.fa-optin-monster:before {
    content: "\f23c"
}

.fa-fly:before {
    content: "\f417"
}

.fa-aviato:before {
    content: "\f421"
}

.fa-itunes:before {
    content: "\f3b4"
}

.fa-cuttlefish:before {
    content: "\f38c"
}

.fa-blogger:before {
    content: "\f37c"
}

.fa-flickr:before {
    content: "\f16e"
}

.fa-viber:before {
    content: "\f409"
}

.fa-soundcloud:before {
    content: "\f1be"
}

.fa-digg:before {
    content: "\f1a6"
}

.fa-tencent-weibo:before {
    content: "\f1d5"
}

.fa-symfony:before {
    content: "\f83d"
}

.fa-maxcdn:before {
    content: "\f136"
}

.fa-etsy:before {
    content: "\f2d7"
}

.fa-facebook-messenger:before {
    content: "\f39f"
}

.fa-audible:before {
    content: "\f373"
}

.fa-think-peaks:before {
    content: "\f731"
}

.fa-bilibili:before {
    content: "\e3d9"
}

.fa-erlang:before {
    content: "\f39d"
}

.fa-cotton-bureau:before {
    content: "\f89e"
}

.fa-dashcube:before {
    content: "\f210"
}

.fa-42-group:before,
.fa-innosoft:before {
    content: "\e080"
}

.fa-stack-exchange:before {
    content: "\f18d"
}

.fa-elementor:before {
    content: "\f430"
}

.fa-pied-piper-square:before,
.fa-square-pied-piper:before {
    content: "\e01e"
}

.fa-creative-commons-nd:before {
    content: "\f4eb"
}

.fa-palfed:before {
    content: "\f3d8"
}

.fa-superpowers:before {
    content: "\f2dd"
}

.fa-resolving:before {
    content: "\f3e7"
}

.fa-xbox:before {
    content: "\f412"
}

.fa-searchengin:before {
    content: "\f3eb"
}

.fa-tiktok:before {
    content: "\e07b"
}

.fa-facebook-square:before,
.fa-square-facebook:before {
    content: "\f082"
}

.fa-renren:before {
    content: "\f18b"
}

.fa-linux:before {
    content: "\f17c"
}

.fa-glide:before {
    content: "\f2a5"
}

.fa-linkedin:before {
    content: "\f08c"
}

.fa-hubspot:before {
    content: "\f3b2"
}

.fa-deploydog:before {
    content: "\f38e"
}

.fa-twitch:before {
    content: "\f1e8"
}

.fa-ravelry:before {
    content: "\f2d9"
}

.fa-mixer:before {
    content: "\e056"
}

.fa-lastfm-square:before,
.fa-square-lastfm:before {
    content: "\f203"
}

.fa-vimeo:before {
    content: "\f40a"
}

.fa-mendeley:before {
    content: "\f7b3"
}

.fa-uniregistry:before {
    content: "\f404"
}

.fa-figma:before {
    content: "\f799"
}

.fa-creative-commons-remix:before {
    content: "\f4ee"
}

.fa-cc-amazon-pay:before {
    content: "\f42d"
}

.fa-dropbox:before {
    content: "\f16b"
}

.fa-instagram:before {
    content: "\f16d"
}

.fa-cmplid:before {
    content: "\e360"
}

.fa-facebook:before {
    content: "\f09a"
}

.fa-gripfire:before {
    content: "\f3ac"
}

.fa-jedi-order:before {
    content: "\f50e"
}

.fa-uikit:before {
    content: "\f403"
}

.fa-fort-awesome-alt:before {
    content: "\f3a3"
}

.fa-phabricator:before {
    content: "\f3db"
}

.fa-ussunnah:before {
    content: "\f407"
}

.fa-earlybirds:before {
    content: "\f39a"
}

.fa-trade-federation:before {
    content: "\f513"
}

.fa-autoprefixer:before {
    content: "\f41c"
}

.fa-whatsapp:before {
    content: "\f232"
}

.fa-slideshare:before {
    content: "\f1e7"
}

.fa-google-play:before {
    content: "\f3ab"
}

.fa-viadeo:before {
    content: "\f2a9"
}

.fa-line:before {
    content: "\f3c0"
}

.fa-google-drive:before {
    content: "\f3aa"
}

.fa-servicestack:before {
    content: "\f3ec"
}

.fa-simplybuilt:before {
    content: "\f215"
}

.fa-bitbucket:before {
    content: "\f171"
}

.fa-imdb:before {
    content: "\f2d8"
}

.fa-deezer:before {
    content: "\e077"
}

.fa-raspberry-pi:before {
    content: "\f7bb"
}

.fa-jira:before {
    content: "\f7b1"
}

.fa-docker:before {
    content: "\f395"
}

.fa-screenpal:before {
    content: "\e570"
}

.fa-bluetooth:before {
    content: "\f293"
}

.fa-gitter:before {
    content: "\f426"
}

.fa-d-and-d:before {
    content: "\f38d"
}

.fa-microblog:before {
    content: "\e01a"
}

.fa-cc-diners-club:before {
    content: "\f24c"
}

.fa-gg-circle:before {
    content: "\f261"
}

.fa-pied-piper-hat:before {
    content: "\f4e5"
}

.fa-kickstarter-k:before {
    content: "\f3bc"
}

.fa-yandex:before {
    content: "\f413"
}

.fa-readme:before {
    content: "\f4d5"
}

.fa-html5:before {
    content: "\f13b"
}

.fa-sellsy:before {
    content: "\f213"
}

.fa-sass:before {
    content: "\f41e"
}

.fa-wirsindhandwerk:before,
.fa-wsh:before {
    content: "\e2d0"
}

.fa-buromobelexperte:before {
    content: "\f37f"
}

.fa-salesforce:before {
    content: "\f83b"
}

.fa-octopus-deploy:before {
    content: "\e082"
}

.fa-medapps:before {
    content: "\f3c6"
}

.fa-ns8:before {
    content: "\f3d5"
}

.fa-pinterest-p:before {
    content: "\f231"
}

.fa-apper:before {
    content: "\f371"
}

.fa-fort-awesome:before {
    content: "\f286"
}

.fa-waze:before {
    content: "\f83f"
}

.fa-cc-jcb:before {
    content: "\f24b"
}

.fa-snapchat-ghost:before,
.fa-snapchat:before {
    content: "\f2ab"
}

.fa-fantasy-flight-games:before {
    content: "\f6dc"
}

.fa-rust:before {
    content: "\e07a"
}

.fa-wix:before {
    content: "\f5cf"
}

.fa-behance-square:before,
.fa-square-behance:before {
    content: "\f1b5"
}

.fa-supple:before {
    content: "\f3f9"
}

.fa-rebel:before {
    content: "\f1d0"
}

.fa-css3:before {
    content: "\f13c"
}

.fa-staylinked:before {
    content: "\f3f5"
}

.fa-kaggle:before {
    content: "\f5fa"
}

.fa-space-awesome:before {
    content: "\e5ac"
}

.fa-deviantart:before {
    content: "\f1bd"
}

.fa-cpanel:before {
    content: "\f388"
}

.fa-goodreads-g:before {
    content: "\f3a9"
}

.fa-git-square:before,
.fa-square-git:before {
    content: "\f1d2"
}

.fa-square-tumblr:before,
.fa-tumblr-square:before {
    content: "\f174"
}

.fa-trello:before {
    content: "\f181"
}

.fa-creative-commons-nc-jp:before {
    content: "\f4ea"
}

.fa-get-pocket:before {
    content: "\f265"
}

.fa-perbyte:before {
    content: "\e083"
}

.fa-grunt:before {
    content: "\f3ad"
}

.fa-weebly:before {
    content: "\f5cc"
}

.fa-connectdevelop:before {
    content: "\f20e"
}

.fa-leanpub:before {
    content: "\f212"
}

.fa-black-tie:before {
    content: "\f27e"
}

.fa-themeco:before {
    content: "\f5c6"
}

.fa-python:before {
    content: "\f3e2"
}

.fa-android:before {
    content: "\f17b"
}

.fa-bots:before {
    content: "\e340"
}

.fa-free-code-camp:before {
    content: "\f2c5"
}

.fa-hornbill:before {
    content: "\f592"
}

.fa-js:before {
    content: "\f3b8"
}

.fa-ideal:before {
    content: "\e013"
}

.fa-git:before {
    content: "\f1d3"
}

.fa-dev:before {
    content: "\f6cc"
}

.fa-sketch:before {
    content: "\f7c6"
}

.fa-yandex-international:before {
    content: "\f414"
}

.fa-cc-amex:before {
    content: "\f1f3"
}

.fa-uber:before {
    content: "\f402"
}

.fa-github:before {
    content: "\f09b"
}

.fa-php:before {
    content: "\f457"
}

.fa-alipay:before {
    content: "\f642"
}

.fa-youtube:before {
    content: "\f167"
}

.fa-skyatlas:before {
    content: "\f216"
}

.fa-firefox-browser:before {
    content: "\e007"
}

.fa-replyd:before {
    content: "\f3e6"
}

.fa-suse:before {
    content: "\f7d6"
}

.fa-jenkins:before {
    content: "\f3b6"
}

.fa-twitter:before {
    content: "\f099"
}

.fa-rockrms:before {
    content: "\f3e9"
}

.fa-pinterest:before {
    content: "\f0d2"
}

.fa-buffer:before {
    content: "\f837"
}

.fa-npm:before {
    content: "\f3d4"
}

.fa-yammer:before {
    content: "\f840"
}

.fa-btc:before {
    content: "\f15a"
}

.fa-dribbble:before {
    content: "\f17d"
}

.fa-stumbleupon-circle:before {
    content: "\f1a3"
}

.fa-internet-explorer:before {
    content: "\f26b"
}

.fa-telegram-plane:before,
.fa-telegram:before {
    content: "\f2c6"
}

.fa-old-republic:before {
    content: "\f510"
}

.fa-square-whatsapp:before,
.fa-whatsapp-square:before {
    content: "\f40c"
}

.fa-node-js:before {
    content: "\f3d3"
}

.fa-edge-legacy:before {
    content: "\e078"
}

.fa-slack-hash:before,
.fa-slack:before {
    content: "\f198"
}

.fa-medrt:before {
    content: "\f3c8"
}

.fa-usb:before {
    content: "\f287"
}

.fa-tumblr:before {
    content: "\f173"
}

.fa-vaadin:before {
    content: "\f408"
}

.fa-quora:before {
    content: "\f2c4"
}

.fa-reacteurope:before {
    content: "\f75d"
}

.fa-medium-m:before,
.fa-medium:before {
    content: "\f23a"
}

.fa-amilia:before {
    content: "\f36d"
}

.fa-mixcloud:before {
    content: "\f289"
}

.fa-flipboard:before {
    content: "\f44d"
}

.fa-viacoin:before {
    content: "\f237"
}

.fa-critical-role:before {
    content: "\f6c9"
}

.fa-sitrox:before {
    content: "\e44a"
}

.fa-discourse:before {
    content: "\f393"
}

.fa-joomla:before {
    content: "\f1aa"
}

.fa-mastodon:before {
    content: "\f4f6"
}

.fa-airbnb:before {
    content: "\f834"
}

.fa-wolf-pack-battalion:before {
    content: "\f514"
}

.fa-buy-n-large:before {
    content: "\f8a6"
}

.fa-gulp:before {
    content: "\f3ae"
}

.fa-creative-commons-sampling-plus:before {
    content: "\f4f1"
}

.fa-strava:before {
    content: "\f428"
}

.fa-ember:before {
    content: "\f423"
}

.fa-canadian-maple-leaf:before {
    content: "\f785"
}

.fa-teamspeak:before {
    content: "\f4f9"
}

.fa-pushed:before {
    content: "\f3e1"
}

.fa-wordpress-simple:before {
    content: "\f411"
}

.fa-nutritionix:before {
    content: "\f3d6"
}

.fa-wodu:before {
    content: "\e088"
}

.fa-google-pay:before {
    content: "\e079"
}

.fa-intercom:before {
    content: "\f7af"
}

.fa-zhihu:before {
    content: "\f63f"
}

.fa-korvue:before {
    content: "\f42f"
}

.fa-pix:before {
    content: "\e43a"
}

.fa-steam-symbol:before {
    content: "\f3f6"
}

.Header_appWrapper__eSBqL {
    --nav-padding: 1rem;
    --sidebar-animation-speed: 300ms
}

.Header_appWrapper__eSBqL.Header_sidebarVisible__RHLuN {
    overflow-x: hidden
}

.Header_pageWrapper__Y4jzt,
.Header_sidebar__MMt1G {
    background: var(--color-background);
    transition: transform var(--sidebar-animation-speed)
}

.Header_sidebar__MMt1G {
    --header-sidebar-gap: var(--spacing-micro);
    position: fixed;
    right: 0;
    top: 0;
    width: 80%;
    height: 100%;
    transform: translateX(100%);
    display: flex;
    flex-direction: column;
    padding: var(--nav-padding) var(--layout-horizontal-page-padding);
    gap: var(--header-sidebar-gap);
    z-index: 10
}

.Header_appWrapper__eSBqL.Header_sidebarVisible__RHLuN .Header_sidebar__MMt1G {
    transform: translateX(0)
}

.Header_overlay__4loKl {
    z-index: 9;
    background: var(--color-foreground-bright);
    animation: Header_overlayFadeIn__AuYKv var(--sidebar-animation-speed) normal forwards linear
}

@keyframes Header_overlayFadeIn__AuYKv {
    0% {
        opacity: 0
    }
    to {
        opacity: .2
    }
}

.Header_header__VYZ3G {
    margin: 0 auto;
    padding: var(--nav-padding) calc(var(--layout-horizontal-spacing) - var(--nav-padding) + var(--layout-horizontal-page-padding));
    width: 100%;
    max-width: calc(var(--max-content-width-large) + (2 * var(--layout-horizontal-page-padding)));
    display: flex;
    justify-content: space-between;
    align-items: center
}

.Header_nav__F3t74 {
    display: none
}

.Header_icons__g4yPB {
    display: flex;
    align-items: center
}

.Header_header__VYZ3G .fa-brands {
    font-size: 1.125rem
}

.Header_mobiletoggle__ocAF0 {
    transition: opacity var(--sidebar-animation-speed);
    align-self: end
}

.Header_sidebar__MMt1G .Header_mobiletoggle__ocAF0 {
    padding: 0 calc(var(--layout-horizontal-spacing) - var(--layout-horizontal-page-padding));
    margin-bottom: calc(var(--nav-padding) - var(--header-sidebar-gap))
}

.Header_mobiletoggle__ocAF0 button {
    padding: 0 var(--nav-padding);
    width: auto !important
}

.Header_appWrapper__eSBqL.Header_sidebarVisible__RHLuN .Header_header__VYZ3G .Header_mobiletoggle__ocAF0 {
    opacity: 0
}

@media (min-width:768px) {
    .Header_nav__F3t74 {
        display: flex;
        gap: 16px
    }
    .Header_mobiletoggle__ocAF0 {
        display: none
    }
    .Header_socials__T_PJV {
        margin: 0 16px
    }
}

.Header_logo__6vBZG {
    color: var(--color-foreground-bright);
    font-size: 1.25rem
}

.Header_logo__6vBZG span {
    color: var(--color-muted)
}

.Header_sidebar__MMt1G .Header_socials__T_PJV {
    padding: var(--spacing-micro) 0;
    display: flex;
    flex-direction: column;
    margin: 0
}

.Button_button__HxzDS,
.Header_sidebar__MMt1G .Header_socials__T_PJV .Header_button__4rS9_ {
    background-color: transparent
}

.Button_button__HxzDS {
    display: flex;
    align-items: center;
    height: 3rem;
    padding: 0 var(--nav-padding);
    border: 2px solid transparent;
    cursor: pointer;
    border-radius: var(--border-radius);
    gap: .8rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-foreground)
}

@media (min-width:768px) {
    .Button_button__HxzDS {
        background-color: transparent;
        gap: .5rem
    }
}

.Button_button__HxzDS:active {
    transform: scale(.95)
}

.Button_button__HxzDS:not(:hover),
.Button_button__HxzDS:not(:hover) .Button_icon__t4jcZ {
    transition: color .2s, background .2s, border-color .2s
}

.Button_button__HxzDS .Button_icon__t4jcZ {
    text-align: center;
    font-size: 1.25rem;
    font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 20;
    color: var(--color-muted);
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

.Button_button__HxzDS .Button_icon__t4jcZ.fa-brands {
    font-size: 1.125rem
}

.Button_button__HxzDS.Button_iconlarge__XOtHX .Button_icon__t4jcZ {
    font-size: 1.5rem
}

.Button_button__HxzDS.Button_iconlarge__XOtHX .Button_icon__t4jcZ.fa-brands {
    font-size: 1.25rem
}

.Button_button__HxzDS .Button_text__zLCn6 {
    margin-top: .06em
}

.Button_button__HxzDS:not(.Button_icononly__HoHJr) .Button_icon__t4jcZ {
    margin-top: -2px
}

.Button_button__HxzDS.Button_active__Qp9cc,
.Button_button__HxzDS:hover {
    background: var(--color-background-content);
    color: var(--color-foreground-bright)
}

.Button_button__HxzDS:hover .Button_icon__t4jcZ {
    color: var(--color-foreground)
}

.Button_button__HxzDS.Button_active__Qp9cc,
.Button_button__HxzDS:active {
    border-color: transparent
}

.Button_button__HxzDS.Button_active__Qp9cc .Button_icon__t4jcZ {
    color: var(--color-orange)
}

.Button_button__HxzDS.Button_icononly__HoHJr {
    width: 3rem;
    align-items: center;
    justify-content: center;
    text-align: center
}

.Button_button__HxzDS.Button_icononly__HoHJr .Button_icon__t4jcZ {
    color: var(--color-foreground)
}

.Button_button__HxzDS.Button_icononly__HoHJr:hover .Button_icon__t4jcZ,
.Button_button__HxzDS:not(.Button_icononly__HoHJr).Button_github__EOGsm .Button_icon__t4jcZ {
    color: var(--color-foreground-bright)
}

.Button_button__HxzDS.Button_twitter__dfXS_:hover .Button_icon__t4jcZ,
.Button_button__HxzDS:not(.Button_icononly__HoHJr).Button_twitter__dfXS_ .Button_icon__t4jcZ {
    color: var(--color-brand-twitter)
}

.Button_button__HxzDS.Button_instagram__K39gs:hover .Button_icon__t4jcZ,
.Button_button__HxzDS:not(.Button_icononly__HoHJr).Button_instagram__K39gs .Button_icon__t4jcZ {
    color: var(--color-brand-ig)
}

.Button_button__HxzDS.Button_coffee__8HvkD:hover .Button_icon__t4jcZ,
.Button_button__HxzDS:not(.Button_icononly__HoHJr).Button_coffee__8HvkD .Button_icon__t4jcZ {
    color: var(--color-brand-bmac)
}

.Button_button__HxzDS.Button_discord__j1M14 .Button_icon__t4jcZ {
    width: 1.5rem
}

.Button_button__HxzDS:not(.Button_icononly__HoHJr).Button_discord__j1M14 .Button_icon__t4jcZ {
    color: var(--color-brand-discord)
}

.Button_button__HxzDS.Button_discord__j1M14:hover .Button_icon__t4jcZ {
    color: var(--color-foreground-bright)
}

.Button_button__HxzDS.Button_discord__j1M14 .Button_icon__t4jcZ,
.Button_button__HxzDS:not(.Button_icononly__HoHJr).Button_discord__j1M14 .Button_icon__t4jcZ {
    position: relative;
    transform: scale(.96)
}

.Button_button__HxzDS.Button_bgfill__v5HZ7 {
    background: var(--color-background-content)
}

.Button_button__HxzDS.Button_mobiletoggle__6sgyt .Button_icon__t4jcZ {
    font-size: 1.5rem;
    width: 1.5rem
}

.Button_button__HxzDS.Button_list__huaKG .Button_icon__t4jcZ {
    width: 1.5rem
}

.Button_button__HxzDS.Button_largeicon__VkHo8 {
    font-size: 1.5rem
}

.Button_button__HxzDS.Button_list__huaKG .material-symbols-sharp,
.Button_button__HxzDS.Button_mobiletoggle__6sgyt .material-symbols-sharp {
    font-variation-settings: "opsz" 24
}

@media (min-width:768px) {
    .Button_button__HxzDS.Button_icononly__HoHJr .Button_text__zLCn6 {
        display: none
    }
}

.HeaderSettings_wrapper___1ZzQ {
    position: relative
}

.HeaderSettings_wrapper___1ZzQ button {
    position: relative;
    z-index: 1
}

.HeaderSettings_darkWindow___xxtf {
    z-index: 1;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: rgba(var(--color-darken-rgb), .7);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px)
}

.HeaderSettings_header___A14G {
    position: absolute;
    top: 0;
    right: 100%;
    width: calc(280px - 48px);
    height: 48px;
    line-height: 48px;
    padding: 0 16px;
    font-size: 1rem;
    background-color: var(--color-background-content)
}

.HeaderSettings_modal__0rrcI {
    position: absolute;
    top: 100%;
    right: 0;
    width: 320px;
    display: flex;
    flex-direction: column;
    z-index: 1;
    border: 2px solid var(--color-background-code);
    background: var(--color-background-content);
    overflow: hidden;
    border-radius: var(--border-radius);
    box-shadow: 0 .5rem 1rem 0 rgb(var(--color-darken-rgb), .4);
    padding: .75rem
}

.HeaderSettings_modal__0rrcI .HeaderSettings_hr__b8EBY {
    background: var(--color-background-inset);
    background: linear-gradient(90deg, transparent 0, var(--color-background-inset) 10%, var(--color-background-inset) 90%, transparent 100%);
    height: 2px
}

.HeaderSettings_option__58KQm {
    display: flex;
    justify-content: space-between;
    align-items: center;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    cursor: pointer;
    padding: 1.2rem calc(1.2rem * var(--golden-ratio));
    white-space: nowrap;
    border: none;
    background-color: transparent;
    text-align: left;
    border-radius: var(--border-radius)
}

.HeaderSettings_option__58KQm:not(:hover) {
    transition: background-color .15s
}

.HeaderSettings_option__58KQm:hover {
    background-color: var(--color-background-code)
}

.HeaderSettings_option__58KQm:active {
    transform: scale(.98)
}

.HeaderSettings_label__F5_Q8 {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--color-purple)
}

.HeaderSettings_text__omphZ {
    text-transform: none;
    transition: color .15s
}

.HeaderSettings_value__FPibx {
    font-size: 1.25rem;
    font-weight: 700;
    transition: color .15s
}

.HeaderSettings_visuals__vGrzQ {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px
}

.HeaderSettings_icon__zaKEx {
    color: var(--color-background);
    transition: color .15s
}

.HeaderSettings_icon__zaKEx.HeaderSettings_active__B0Rc6 {
    color: var(--color-orange)
}

.HeaderSettings_switch___VSMw {
    display: flex;
    background-color: var(--color-background);
    border-radius: 10px;
    width: 40px;
    height: 20px;
    padding: 2px
}

.HeaderSettings_switch___VSMw:not(.HeaderSettings_auto__x2u5u):after {
    display: block;
    content: "";
    width: 16px;
    height: 16px;
    background-color: var(--color-foreground-bright);
    border-radius: 100%;
    transition: transform .15s
}

.HeaderSettings_option__58KQm[data-switch=right] .HeaderSettings_switch___VSMw:after {
    transform: translateX(20px)
}

.HeaderSettings_option__58KQm[data-id=audio][data-switch=left] .HeaderSettings_icon__zaKEx.HeaderSettings_active__B0Rc6,
.HeaderSettings_option__58KQm[data-id=audio][data-switch=left] .HeaderSettings_value__FPibx {
    color: var(--color-red-soft)
}

.HeaderSettings_option__58KQm[data-id=audio][data-switch=left] .HeaderSettings_switch___VSMw:not(.HeaderSettings_auto__x2u5u):after {
    background-color: var(--color-red-soft)
}

.HeaderSettings_option__58KQm[data-id=graphics][data-switch=left] .HeaderSettings_icon__zaKEx.HeaderSettings_active__B0Rc6,
.HeaderSettings_option__58KQm[data-id=graphics][data-switch=left] .HeaderSettings_value__FPibx {
    color: var(--color-red-soft)
}

.HeaderSettings_option__58KQm[data-id=graphics][data-switch=left] .HeaderSettings_switch___VSMw:not(.HeaderSettings_auto__x2u5u):after {
    background-color: var(--color-red-soft)
}

.PageContents_codeEmbed__8fPG3,
.PageContents_codeSandboxEmbed__qHImk,
.PageContents_contentAlert__OCmd7,
.PageContents_image__REsXs.PageContents_full__OyH0J {
    margin: var(--spacing-nano) 0
}

.PageContents_codeEmbed__8fPG3 .PageContents_codeWrapper__lVPJu {
    background: var(--color-background-code)
}

.PageContents_codeEmbed__8fPG3.PageContents_hasBody__XblEK .PageContents_codeWrapper__lVPJu {
    margin-bottom: calc(var(--spacing-small) - var(--spacing-micro))
}

.PageContents_codeEmbed__8fPG3 .PageContents_codeWrapper__lVPJu,
.PageContents_contentAlert__OCmd7 {
    padding: var(--layout-horizontal-spacing) 0
}

.PageContents_codeEmbed__8fPG3.PageContents_hasBody__XblEK {
    padding-bottom: var(--layout-horizontal-spacing)
}

@media (min-width:768px) {
    .PageContents_codeEmbed__8fPG3 .PageContents_codeWrapper__lVPJu,
    .PageContents_contentAlert__OCmd7 {
        padding: var(--spacing-small) 0
    }
    .PageContents_codeEmbed__8fPG3.PageContents_hasBody__XblEK {
        padding-bottom: var(--spacing-small)
    }
}

.PageContents_ol__FgIJL,
.PageContents_ul__eSbnT {
    list-style: none
}

.PageContents_li__lXdhg {
    padding-left: var(--bullet-space)
}

.PageContents_ol__FgIJL {
    counter-reset: ol-counter
}

.PageContents_ul__eSbnT .PageContents_li__lXdhg:before {
    margin-left: calc(-1 * var(--bullet-space));
    display: inline-block;
    content: "square";
    text-align: center;
    font-family: Material Symbols Sharp;
    font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 20;
    font-size: .625rem;
    opacity: .5;
    width: var(--bullet-space)
}

.PageContents_ul__eSbnT .PageContents_ul__eSbnT .PageContents_li__lXdhg:before {
    content: "check_box_outline_blank"
}

.PageContents_ol__FgIJL .PageContents_li__lXdhg {
    counter-increment: ol-counter
}

.PageContents_ol__FgIJL .PageContents_li__lXdhg:before {
    margin-left: calc(-1 * var(--bullet-space));
    display: inline-block;
    content: counter(ol-counter);
    opacity: .5;
    background: none;
    text-align: center;
    width: var(--bullet-space)
}

.PageContents_li__lXdhg+.PageContents_li__lXdhg,
.PageContents_li__lXdhg>.PageContents_ol__FgIJL,
.PageContents_li__lXdhg>.PageContents_ul__eSbnT {
    margin-top: .2rem
}

.PageContents_listEmoji__U9Fgp {
    position: relative;
    margin-left: calc(-1 * var(--bullet-space));
    width: var(--bullet-space);
    text-align: center;
    display: inline-block;
    background: var(--color-background-content)
}

.PageContents_image__REsXs {
    overflow: hidden
}

.PageContents_image__REsXs.PageContents_spaced__wnz_L .PageContents_imgWrapper__3sRkg {
    display: flex;
    align-items: center;
    justify-content: center
}

.PageContents_image__REsXs img {
    display: block;
    max-width: 100%;
    height: auto
}

.PageContents_image__REsXs.PageContents_inline__9H85m img {
    display: inline-block;
    box-shadow: 0 .5rem 1rem 0 rgb(var(--color-darken-rgb), .2)
}

.PageContents_image__REsXs.PageContents_full__OyH0J {
    grid-area: auto/start/auto/end
}

.PageContents_image__REsXs.PageContents_full__OyH0J img {
    width: 100%
}

.PageContents_youtubeEmbed__TrhQo {
    position: relative;
    width: 100%;
    height: auto
}

.PageContents_boxedContent__pG8qB {
    border: 2px solid var(--color-background-code);
    box-shadow: 0 .5rem 1rem 0 rgb(var(--color-darken-rgb), .2);
    border-radius: var(--border-radius);
    background: var(--color-background-content)
}

.PageContents_contentAlert__OCmd7 .PageContents_title__WwOqs {
    color: var(--color-foreground-bright);
    font-weight: 700
}

.PageContents_contentAlert__OCmd7 .material-symbols-sharp {
    width: 24px;
    height: 24px;
    vertical-align: text-bottom
}

.PageContents_contentAlert__OCmd7.PageContents_warning__MhLg7 {
    border-color: var(--color-red)
}

.PageContents_contentAlert__OCmd7.PageContents_warning__MhLg7>.PageContents_title__WwOqs .material-symbols-sharp {
    color: var(--color-red)
}

.PageContents_contentAlert__OCmd7.PageContents_info__vb6Sf {
    border-color: var(--color-blue)
}

.PageContents_contentAlert__OCmd7.PageContents_info__vb6Sf>.PageContents_title__WwOqs .material-symbols-sharp {
    color: var(--color-blue)
}

.PageContents_link__ZpKnq {
    display: inline-flex;
    position: relative;
    color: var(--color-cyan-soft);
    transition: color .2s;
    gap: .25em
}

.PageContents_link__ZpKnq.PageContents_external__7_CR3,
.PageContents_link__ZpKnq.PageContents_internal__QrVNw {
    position: relative
}

.PageContents_link__ZpKnq.PageContents_listIcon__p3G43 {
    flex-direction: row-reverse;
    gap: 0
}

.PageContents_link__ZpKnq:not(.PageContents_listIcon__p3G43) .PageContents_icon__3SEIn {
    margin-right: .1em
}

.PageContents_link__ZpKnq:hover {
    z-index: 2
}

.PageContents_link__ZpKnq:active {
    transform: scale(.95)
}

.PageContents_link__ZpKnq .PageContents_underline__K0GRf {
    text-decoration: underline;
    -webkit-text-decoration-color: var(--color-muted);
    text-decoration-color: var(--color-muted);
    transition: -webkit-text-decoration-color .2s;
    transition: text-decoration-color .2s;
    transition: text-decoration-color .2s, -webkit-text-decoration-color .2s
}

.PageContents_link__ZpKnq:hover .PageContents_underline__K0GRf {
    -webkit-text-decoration-color: var(--color-cyan-soft);
    text-decoration-color: var(--color-cyan-soft)
}

.PageContents_link__ZpKnq svg {
    margin-left: 4px;
    vertical-align: middle;
    transition: opacity .2s;
    opacity: .25
}

.PageContents_link__ZpKnq:hover svg {
    opacity: 1
}

.PageContents_link__ZpKnq:hover,
.PageContents_link__ZpKnq:hover .PageContents_underline__K0GRf,
.PageContents_link__ZpKnq:hover>.PageContents_icon__3SEIn img,
.PageContents_link__ZpKnq:hover>.PageContents_icon__3SEIn svg,
.PageContents_link__ZpKnq:hover>svg {
    transition: none
}

.PageContents_link__ZpKnq .PageContents_icon__3SEIn {
    position: relative;
    display: inline-block;
    text-decoration: none;
    background: var(--color-background-content);
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

.PageContents_link__ZpKnq.PageContents_listIcon__p3G43 .PageContents_icon__3SEIn {
    text-align: center;
    width: var(--bullet-space);
    margin-left: calc(-1 * var(--bullet-space))
}

.PageContents_link__ZpKnq .PageContents_icon__3SEIn:before {
    font-family: Material Symbols Sharp;
    font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 16;
    content: "open_in_new";
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
    vertical-align: text-top
}

.PageContents_link__ZpKnq:not(:hover) .PageContents_icon__3SEIn.PageContents_usingFavicon__CQPBW:before {
    opacity: 0;
    transition: opacity .2s
}

.PageContents_link__ZpKnq .PageContents_icon__3SEIn img {
    margin-left: -1rem;
    vertical-align: text-top;
    opacity: 0
}

.PageContents_link__ZpKnq:not(:hover) .PageContents_icon__3SEIn.PageContents_usingFavicon__CQPBW img {
    opacity: 1;
    transition: opacity .2s
}

.PageContents_link__ZpKnq .PageContents_icon__3SEIn.PageContents_invert__DyRwK img {
    filter: invert(1)
}

.PageContents_headerHr__65Diz {
    margin-top: var(--spacing-nano);
    height: 2px;
    background: var(--color-background-code);
    background: linear-gradient(90deg, transparent 0, var(--color-background-code) 10%, var(--color-background-code) 90%, transparent 100%);
    grid-area: auto/start/auto/end
}

.PageContents_h2__YaLWm {
    font-size: 1.8rem;
    line-height: 1.8rem;
    padding-top: var(--spacing-small)
}

.PageContents_h2__YaLWm .PageContents_link__ZpKnq {
    color: var(--color-foreground-bright)
}

.PageContents_h2__YaLWm .PageContents_icon__3SEIn:before {
    line-height: 1.8rem;
    display: inline-block;
    transform: translateY(-.1rem) rotate(135deg);
    content: "link";
    font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--color-muted)
}

.PageContents_h2__YaLWm .PageContents_link__ZpKnq:hover .PageContents_icon__3SEIn:before {
    color: var(--color-foreground-bright)
}

.PageContents_h2__YaLWm .PageContents_link__ZpKnq:not(:hover) .PageContents_icon__3SEIn:before {
    transition: color .2s
}

.PageContents_codeSandboxEmbed__qHImk {
    grid-area: auto/start/auto/end !important
}

.PageContents_codeSandboxEmbed__qHImk iframe {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    border: 0;
    overflow: hidden;
    min-height: 500px;
    aspect-ratio: 16/9
}

.PageContents_expandableBlock__r_wqb {
    position: relative;
    width: 100%;
    transition: width .2s
}

.PageContents_expandableBlock__r_wqb.PageContents_expanded___FnmD {
    width: 100cqw;
    box-shadow: 0 0 var(--gap) var(--gap) var(--color-background-content);
    z-index: 1
}

.PageContents_expandableBlock__r_wqb .PageContents_button__OoKso {
    display: none
}

@media (min-width:1025px) {
    .PageContents_expandableBlock__r_wqb .PageContents_button__OoKso {
        display: block
    }
}

.Layout_page__FdxFd {
    display: flex;
    flex-direction: column;
    padding: 0 var(--layout-horizontal-page-padding);
    gap: var(--gap)
}

.Layout_columns__Cq4vf {
    max-width: calc(var(--max-content-width));
    --layout-columns: 1;
    display: grid;
    margin: 0 auto;
    width: 100%;
    max-width: var(--max-content-width);
    grid-template-columns: 1fr;
    grid-auto-rows: 1fr;
    justify-content: space-between;
    container-type: inline-size;
    grid-row-gap: var(--gap);
    row-gap: var(--gap)
}

@media (min-width:768px) {
    .Layout_columns__Cq4vf {
        --layout-columns: 2;
        grid-template-columns: repeat(var(--layout-columns), 1fr);
        column-gap: var(--gap)
    }
}

@media (min-width:1025px) {
    .Layout_columns__Cq4vf.Layout_triple__oivnm {
        --layout-columns: 3
    }
}

.Layout_PageContents__l2q4y {
    display: grid;
    grid-row-gap: min(1rem, var(--gap));
    row-gap: min(1rem, var(--gap));
    grid-template-columns: [start] var(--layout-horizontal-spacing) [content-start] 1fr [content-end] var(--layout-horizontal-spacing) [end]
}

.Layout_PageContents__l2q4y>* {
    grid-area: auto/content-start/auto/content-end
}

.Layout_PageContents__l2q4y .Layout_PageContents__l2q4y {
    grid-area: auto/start/auto/end
}

[data-rmiz] {
    position: relative
}

[data-rmiz-ghost] {
    position: absolute;
    pointer-events: none
}

[data-rmiz-btn-unzoom],
[data-rmiz-btn-zoom] {
    background-color: rgba(0, 0, 0, .7);
    border-radius: 50%;
    border: none;
    box-shadow: 0 0 1px hsla(0, 0%, 100%, .5);
    color: #fff;
    height: 40px;
    margin: 0;
    outline-offset: 2px;
    padding: 9px;
    touch-action: manipulation;
    width: 40px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

[data-rmiz-btn-zoom]:not(:focus):not(:active) {
    position: absolute;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    pointer-events: none;
    white-space: nowrap;
    width: 1px
}

[data-rmiz-btn-zoom] {
    position: absolute;
    inset: 10px 10px auto auto;
    cursor: zoom-in
}

[data-rmiz-btn-unzoom] {
    position: absolute;
    inset: 20px 20px auto auto;
    cursor: zoom-out;
    z-index: 1
}

[data-rmiz-content=found] [data-zoom],
[data-rmiz-content=found] [role=img],
[data-rmiz-content=found] img,
[data-rmiz-content=found] svg {
    cursor: zoom-in
}

[data-rmiz-modal]::-webkit-backdrop {
    display: none
}

[data-rmiz-modal]::backdrop {
    display: none
}

[data-rmiz-modal][open] {
    position: fixed;
    width: 100vw;
    width: 100svw;
    height: 100vh;
    height: 100svh;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: hidden
}

[data-rmiz-modal-overlay] {
    position: absolute;
    inset: 0;
    transition: background-color .3s
}

[data-rmiz-modal-overlay=hidden] {
    background-color: hsla(0, 0%, 100%, 0)
}

[data-rmiz-modal-overlay=visible] {
    background-color: #fff
}

[data-rmiz-modal-content] {
    position: relative;
    width: 100%;
    height: 100%
}

[data-rmiz-modal-img] {
    position: absolute;
    cursor: zoom-out;
    image-rendering: high-quality;
    transform-origin: top left;
    transition: transform .3s
}

@media (prefers-reduced-motion:reduce) {
    [data-rmiz-modal-img],
    [data-rmiz-modal-overlay] {
        transition-duration: .01ms !important
    }
}

.Skeleton_skeleton__kRgm7 {
    display: block;
    background-image: linear-gradient(270deg, var(--color-background-content), var(--color-background), var(--color-background), var(--color-background-content));
    background-size: 400% 100%;
    animation: Skeleton_loading__ZZ_E1 8s ease-in-out infinite;
    border: 2px solid var(--color-background-code)
}

.Skeleton_skeleton__kRgm7.Skeleton_inline__Zi27i {
    display: inline-block
}

@keyframes Skeleton_loading__ZZ_E1 {
    0% {
        background-position: 200% 0
    }
    to {
        background-position: -200% 0
    }
}

.Footer_footer__Tl1eP {
    display: grid;
    margin: 0 auto;
    padding: var(--spacing) calc(var(--layout-horizontal-spacing) + var(--layout-horizontal-page-padding));
    width: 100%;
    max-width: calc(var(--max-content-width) + (2 * var(--layout-horizontal-page-padding)));
    grid-gap: 1.5rem;
    gap: 1.5rem;
    --color-background-content: var(--color-background)
}

@media (max-width:1024px) {
    .Footer_footer__Tl1eP.Footer_mobilePadding__RtHtt {
        margin-bottom: 4rem
    }
}

.Footer_copy__zWR02 {
    color: var(--color-foreground)
}

.Footer_copy__zWR02 a {
    text-decoration: underline;
    -webkit-text-decoration-color: var(--color-background-code);
    text-decoration-color: var(--color-background-code);
    font-weight: 700
}

.Footer_copy__zWR02 a:hover {
    color: var(--color-foreground-bright);
    -webkit-text-decoration-color: var(--color-cyan-soft);
    text-decoration-color: var(--color-cyan-soft)
}

.Footer_copy__zWR02 a:not(:hover) {
    transition: color .2s, -webkit-text-decoration-color .2s;
    transition: color .2s, text-decoration-color .2s;
    transition: color .2s, text-decoration-color .2s, -webkit-text-decoration-color .2s
}

.Footer_builtWith__ctwKE {
    display: flex;
    flex-wrap: wrap;
    gap: 1em .4em
}

.Footer_builtWith__ctwKE,
.Footer_builtWith__ctwKE a {
    font-weight: 700;
    color: var(--color-foreground-bright)
}

.Footer_builtWith__ctwKE a {
    flex-direction: row-reverse !important
}

.Footer_socials__bADcp {
    font-size: 1.1875rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1em
}

.Footer_socials__bADcp,
.Footer_socials__bADcp a {
    font-weight: 700;
    color: var(--color-foreground-bright)
}

.Footer_socials__bADcp a {
    flex-direction: row-reverse !important
}

.Footer_label___fKJT {
    color: var(--color-foreground)
}

.Footer_and__4UmtS {
    font-weight: 700;
    color: var(--color-background-code)
}

.Footer_links__BOCwF {
    display: flex;
    gap: 1.5rem;
    flex-direction: column-reverse;
    justify-content: space-between;
    color: var(--color-foreground-bright)
}

.Footer_links__BOCwF .Footer_external__jYXye,
.Footer_links__BOCwF .Footer_internal___gtiq {
    display: flex;
    gap: 1.25rem
}

.Footer_links__BOCwF .Footer_external__jYXye {
    flex-direction: column
}

.Footer_links__BOCwF .Footer_internal___gtiq {
    font-size: 1.1875rem;
    display: flex;
    flex-wrap: wrap;
    align-self: flex-start;
    gap: .6em;
    font-weight: 700
}

.Footer_links__BOCwF .Footer_internal___gtiq a,
.Footer_links__BOCwF .Footer_internal___gtiq a:hover {
    color: var(--color-foreground-bright)
}

@media (min-width:1025px) {
    .Footer_links__BOCwF {
        flex-direction: row;
        justify-content: space-between
    }
    .Footer_links__BOCwF .Footer_internal___gtiq a {
        color: var(--color-foreground)
    }
}

@font-face {
    font-family: __BlenderPro_54dc17;
    src: url(../fonts/79da84d9e972ee51.p.woff2) format("woff2");
    font-display: block;
    font-weight: 300;
    font-style: normal
}

@font-face {
    font-family: __BlenderPro_54dc17;
    src: url(../fonts/74855af1e5bcab1c.p.woff2) format("woff2");
    font-display: block;
    font-weight: 700;
    font-style: normal
}

@font-face {
    font-family: __BlenderPro_Fallback_54dc17;
    src: local("Arial");
    ascent-override: 85.79%;
    descent-override: 28.60%;
    line-gap-override: 22.88%;
    size-adjust: 87.43%
}

.__className_54dc17 {
    font-family: __BlenderPro_54dc17, __BlenderPro_Fallback_54dc17
}

@font-face {
    font-family: __JetBrains_Mono_31efa5;
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(../de2ba2ebf355004e.html) format("woff2");
    unicode-range: U+0460-052f, U+1c80-1c88, U+20b4, U+2de0-2dff, U+a640-a69f, U+fe2e-fe2f
}

@font-face {
    font-family: __JetBrains_Mono_31efa5;
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(../9e58c89b9633dcad.html) format("woff2");
    unicode-range: U+0301, U+0400-045f, U+0490-0491, U+04b0-04b1, U+2116
}

@font-face {
    font-family: __JetBrains_Mono_31efa5;
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(../c4a41ea065a0023c.html) format("woff2");
    unicode-range: U+0370-03ff
}

@font-face {
    font-family: __JetBrains_Mono_31efa5;
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(../34dd45dcdd6d47ee.html) 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_31efa5;
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(../a1ab2e69d2f53384.html) format("woff2");
    unicode-range: U+0100-02af, U+0304, U+0308, U+0329, U+1e00-1e9f, U+1ef2-1eff, U+2020, U+20a0-20ab, U+20ad-20cf, U+2113, U+2c60-2c7f, U+a720-a7ff
}

@font-face {
    font-family: __JetBrains_Mono_31efa5;
    font-style: normal;
    font-weight: 100 800;
    font-display: swap;
    src: url(../fonts/86fdec36ddd9097e.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+2074, U+20ac, U+2122, U+2191, U+2193, U+2212, U+2215, U+feff, U+fffd
}

@font-face {
    font-family: __JetBrains_Mono_Fallback_31efa5;
    src: local("Arial");
    ascent-override: 77.57%;
    descent-override: 22.82%;
    line-gap-override: 0.00%;
    size-adjust: 131.49%
}

.__className_31efa5 {
    font-family: __JetBrains_Mono_31efa5, __JetBrains_Mono_Fallback_31efa5;
    font-style: normal
}