diff --git a/.github/workflows/publish-to-pages.yaml b/.github/workflows/publish-to-pages.yaml new file mode 100644 index 000000000..0e30a5040 --- /dev/null +++ b/.github/workflows/publish-to-pages.yaml @@ -0,0 +1,41 @@ +name: publish to github pages + +on: + push: + branches: [ main ] + +# Cancel already running jobs +concurrency: + group: publish_to_pages_${{ github.head_ref }} + cancel-in-progress: true + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + strategy: + matrix: + include: + - name: Publish website to Github Pages + runner: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.setup_pages.outputs.base_url }} + name: ${{ matrix.name }} + runs-on: ${{ matrix.runner }} + steps: + - uses: actions/checkout@v4 + - name: Build website + run: cargo run -p website + - name: Setup Pages + uses: actions/configure-pages@v4 + - name: Upload pages + uses: actions/upload-pages-artifact@v3 + with: + path: 'website/root' + - name: Deploy pages + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7b69c6476..ba7ca1f2f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ /.project /docs/book /docs/mdbook_bin +/website/root +/website/shotover_repo_for_docs /shotover-proxy/build/packages /some_local_file /test-helpers/src/connection/kafka/node/node_modules \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 038791f70..7a84d21f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -679,6 +679,15 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "basic-toml" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" +dependencies = [ + "serde", +] + [[package]] name = "bcrypt-pbkdf" version = "0.10.0" @@ -1622,6 +1631,12 @@ dependencies = [ "cipher", ] +[[package]] +name = "devserver_lib" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edf215dbb8cb1409cca7645aaed35f9e39fb0a21855bba1ac48bc0334903bf66" + [[package]] name = "diff" version = "0.1.13" @@ -2344,6 +2359,15 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + [[package]] name = "hyper" version = "0.14.31" @@ -2958,6 +2982,16 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -3978,6 +4012,47 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rinja" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dc4940d00595430b3d7d5a01f6222b5e5b51395d1120bdb28d854bb8abb17a5" +dependencies = [ + "humansize", + "itoa", + "percent-encoding", + "rinja_derive", +] + +[[package]] +name = "rinja_derive" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d9ed0146aef6e2825f1b1515f074510549efba38d71f4554eec32eb36ba18b" +dependencies = [ + "basic-toml", + "memchr", + "mime", + "mime_guess", + "proc-macro2", + "quote", + "rinja_parser", + "rustc-hash", + "serde", + "syn 2.0.87", +] + +[[package]] +name = "rinja_parser" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f9a866e2e00a7a1fb27e46e9e324a6f7c0e7edc4543cae1d38f4e4a100c610" +dependencies = [ + "memchr", + "nom", + "serde", +] + [[package]] name = "rsa" version = "0.9.6" @@ -5550,6 +5625,12 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "unicase" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" + [[package]] name = "unicode-ident" version = "1.0.13" @@ -5804,6 +5885,18 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "website" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap", + "devserver_lib", + "rinja", + "semver", + "subprocess", +] + [[package]] name = "winapi" version = "0.3.9" diff --git a/Cargo.toml b/Cargo.toml index 366e90819..f355d903e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "custom-transforms-example", "ec2-cargo", "windsock-cloud-docker", + "website", ] resolver = "2" diff --git a/docs/mdbook.sh b/docs/mdbook.sh index 0593744e9..60b12782c 100755 --- a/docs/mdbook.sh +++ b/docs/mdbook.sh @@ -6,8 +6,10 @@ set -e; set -u if [ ! -d "mdbook_bin" ]; then mkdir -p mdbook_bin pushd mdbook_bin - curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.13/mdbook-v0.4.13-x86_64-unknown-linux-gnu.tar.gz | tar xvz - wget https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/download/v0.7.6/mdbook-linkcheck.x86_64-unknown-linux-gnu.zip -O linkcheck.zip + #curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.13/mdbook-v0.4.13-x86_64-unknown-linux-gnu.tar.gz | tar xvz + curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.13/mdbook-v0.4.13-x86_64-apple-darwin-gnu.tar.gz | tar -xvz + chmod +x mdbook + curl https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/download/v0.7.6/mdbook-linkcheck.x86_64-unknown-linux-gnu.zip -o linkcheck.zip unzip linkcheck.zip chmod +x mdbook-linkcheck popd diff --git a/website/Cargo.toml b/website/Cargo.toml new file mode 100644 index 000000000..cb386304c --- /dev/null +++ b/website/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "website" +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +publish = false + +[dependencies] +subprocess.workspace = true +anyhow.workspace = true +rinja = "0.3.5" +semver = "1.0.23" +devserver_lib = { version = "0.4.2", default-features = false } +clap.workspace = true diff --git a/website/assets/arrow_right.png b/website/assets/arrow_right.png new file mode 100644 index 000000000..73996a40b Binary files /dev/null and b/website/assets/arrow_right.png differ diff --git a/website/assets/favicon.ico b/website/assets/favicon.ico new file mode 100644 index 000000000..5ef343f58 Binary files /dev/null and b/website/assets/favicon.ico differ diff --git a/website/assets/logo.png b/website/assets/logo.png new file mode 100644 index 000000000..9324350b2 Binary files /dev/null and b/website/assets/logo.png differ diff --git a/website/assets/style-original.css b/website/assets/style-original.css new file mode 100644 index 000000000..2d623a275 --- /dev/null +++ b/website/assets/style-original.css @@ -0,0 +1,6159 @@ +@import"https://fonts.googleapis.com/css?family=Plus+Jakarta+Sans:regular,400,600,700"; +@import"https://fonts.googleapis.com/css?family=Source+Code+Pro:regular,500,600"; +@import"https://fonts.googleapis.com/css?family=DM+Sans:400"; + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-cyrillic-ext.e75737ce.woff2) 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2"); + unicode-range: U+0370-03FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2"); + unicode-range: U+1F00-1FFF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-latin.2ed14f66.woff2) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-greek.8f4463c4.woff2) format("woff2"); + unicode-range: U+0370-03FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2"); + unicode-range: U+1F00-1FFF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-cyrillic.f8750142.woff2) format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-cyrillic-ext.0877b0d9.woff2) 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: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-greek.117e1956.woff2) format("woff2"); + unicode-range: U+0370-03FF +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-greek-ext.3e6f6728.woff2) format("woff2"); + unicode-range: U+1F00-1FFF +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-latin.4fe6132f.woff2) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 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: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-latin-ext.7cc429bc.woff2) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-vietnamese.2c644a25.woff2) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB +} + +:root { + --vp-c-white: #ffffff; + --vp-c-white-soft: #f9f9f9; + --vp-c-white-mute: #f1f1f1; + --vp-c-black: #1a1a1a; + --vp-c-black-pure: #000000; + --vp-c-black-soft: #242424; + --vp-c-black-mute: #2f2f2f; + --vp-c-gray: #8e8e8e; + --vp-c-gray-light-1: #aeaeae; + --vp-c-gray-light-2: #c7c7c7; + --vp-c-gray-light-3: #d1d1d1; + --vp-c-gray-light-4: #e5e5e5; + --vp-c-gray-light-5: #f2f2f2; + --vp-c-gray-dark-1: #636363; + --vp-c-gray-dark-2: #484848; + --vp-c-gray-dark-3: #3a3a3a; + --vp-c-gray-dark-4: #282828; + --vp-c-gray-dark-5: #202020; + --vp-c-divider-light-1: rgba(60, 60, 60, .29); + --vp-c-divider-light-2: rgba(60, 60, 60, .12); + --vp-c-divider-dark-1: rgba(84, 84, 84, .65); + --vp-c-divider-dark-2: rgba(84, 84, 84, .48); + --vp-c-text-light-1: var(--vp-c-indigo); + --vp-c-text-light-2: rgba(60, 60, 60, .7); + --vp-c-text-light-3: rgba(60, 60, 60, .33); + --vp-c-text-light-4: rgba(60, 60, 60, .18); + --vp-c-text-dark-1: rgba(255, 255, 255, .87); + --vp-c-text-dark-2: rgba(235, 235, 235, .6); + --vp-c-text-dark-3: rgba(235, 235, 235, .38); + --vp-c-text-dark-4: rgba(235, 235, 235, .18); + --vp-c-indigo: #213547; + --vp-c-indigo-soft: #476582; + --vp-c-indigo-light: #aac8e4; + --vp-c-indigo-lighter: #c9def1; + --vp-c-indigo-dark: #1d2f3f; + --vp-c-indigo-darker: #14212e; + --vp-c-green: #42b883; + --vp-c-green-light: #42d392; + --vp-c-green-lighter: #35eb9a; + --vp-c-green-dark: #33a06f; + --vp-c-green-darker: #155f3e; + --vp-c-green-dimm-1: rgba(66, 184, 131, .5); + --vp-c-green-dimm-2: rgba(66, 184, 131, .25); + --vp-c-green-dimm-3: rgba(66, 184, 131, .05); + --vp-c-yellow: #ffc517; + --vp-c-yellow-light: #fcd253; + --vp-c-yellow-lighter: #fcfc7c; + --vp-c-yellow-dark: #e0ad15; + --vp-c-yellow-darker: #ad850e; + --vp-c-yellow-dimm-1: rgba(255, 197, 23, .5); + --vp-c-yellow-dimm-2: rgba(255, 197, 23, .25); + --vp-c-yellow-dimm-3: rgba(255, 197, 23, .05); + --vp-c-red: #ed3c50; + --vp-c-red-light: #f54e82; + --vp-c-red-lighter: #fd1d7c; + --vp-c-red-dark: #cd2d3f; + --vp-c-red-darker: #ab2131; + --vp-c-red-dimm-1: rgba(237, 60, 80, .5); + --vp-c-red-dimm-2: rgba(237, 60, 80, .25); + --vp-c-red-dimm-3: rgba(237, 60, 80, .05) +} + +:root { + --vp-c-bg: var(--vp-c-white); + --vp-c-bg-soft: var(--vp-c-white-soft); + --vp-c-bg-mute: var(--vp-c-white-mute); + --vp-c-bg-alt: var(--vp-c-white-soft); + --vp-c-divider: var(--vp-c-divider-light-1); + --vp-c-divider-light: var(--vp-c-divider-light-2); + --vp-c-divider-inverse: var(--vp-c-divider-dark-1); + --vp-c-divider-inverse-light: var(--vp-c-divider-dark-2); + --vp-c-text-1: var(--vp-c-text-light-1); + --vp-c-text-2: var(--vp-c-text-light-2); + --vp-c-text-3: var(--vp-c-text-light-3); + --vp-c-text-4: var(--vp-c-text-light-4); + --vp-c-text-inverse-1: var(--vp-c-text-dark-1); + --vp-c-text-inverse-2: var(--vp-c-text-dark-2); + --vp-c-text-inverse-3: var(--vp-c-text-dark-3); + --vp-c-text-inverse-4: var(--vp-c-text-dark-4); + --vp-c-text-code: var(--vp-c-indigo-soft); + --vp-c-brand: var(--vp-c-green); + --vp-c-brand-light: var(--vp-c-green-light); + --vp-c-brand-lighter: var(--vp-c-green-lighter); + --vp-c-brand-dark: var(--vp-c-green-dark); + --vp-c-brand-darker: var(--vp-c-green-darker); + --vp-c-sponsor: #fd1d7c +} + +.dark { + --vp-c-bg: var(--vp-c-black-soft); + --vp-c-bg-soft: var(--vp-c-black-mute); + --vp-c-bg-mute: var(--vp-c-gray-dark-3); + --vp-c-bg-alt: var(--vp-c-black); + --vp-c-divider: var(--vp-c-divider-dark-1); + --vp-c-divider-light: var(--vp-c-divider-dark-2); + --vp-c-divider-inverse: var(--vp-c-divider-light-1); + --vp-c-divider-inverse-light: var(--vp-c-divider-light-2); + --vp-c-text-1: var(--vp-c-text-dark-1); + --vp-c-text-2: var(--vp-c-text-dark-2); + --vp-c-text-3: var(--vp-c-text-dark-3); + --vp-c-text-4: var(--vp-c-text-dark-4); + --vp-c-text-inverse-1: var(--vp-c-text-light-1); + --vp-c-text-inverse-2: var(--vp-c-text-light-2); + --vp-c-text-inverse-3: var(--vp-c-text-light-3); + --vp-c-text-inverse-4: var(--vp-c-text-light-4); + --vp-c-text-code: var(--vp-c-indigo-lighter) +} + +:root { + --vp-font-family-base: "Inter var experimental", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace +} + +:root { + --vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06); + --vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07); + --vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08); + --vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12); + --vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16) +} + +:root { + --vp-z-index-local-nav: 10; + --vp-z-index-nav: 20; + --vp-z-index-layout-top: 30; + --vp-z-index-backdrop: 40; + --vp-z-index-sidebar: 50; + --vp-z-index-footer: 60 +} + +:root { + --vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E"); + --vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E") +} + +:root { + --vp-layout-max-width: 1440px +} + +:root { + --vp-code-line-height: 1.7; + --vp-code-font-size: .875em; + --vp-code-block-color: var(--vp-c-text-dark-1); + --vp-code-block-bg: #292d3e; + --vp-code-line-highlight-color: rgba(0, 0, 0, .5); + --vp-code-line-number-color: var(--vp-c-text-dark-3); + --vp-code-line-diff-add-color: rgba(125, 191, 123, .1); + --vp-code-line-diff-add-symbol-color: rgba(125, 191, 123, .5); + --vp-code-line-diff-remove-color: rgba(255, 128, 128, .05); + --vp-code-line-diff-remove-symbol-color: rgba(255, 128, 128, .5); + --vp-code-line-error-color: var(--vp-c-red-dimm-2); + --vp-code-line-warning-color: var(--vp-c-yellow-dimm-2); + --vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05); + --vp-code-copy-code-active-text: var(--vp-c-text-dark-2) +} + +.dark { + --vp-code-block-bg: var(--vp-c-bg-alt) +} + +:root { + --vp-button-brand-border: var(--vp-c-brand-light); + --vp-button-brand-text: var(--vp-c-text-dark-1); + --vp-button-brand-bg: var(--vp-c-brand); + --vp-button-brand-hover-border: var(--vp-c-brand-light); + --vp-button-brand-hover-text: var(--vp-c-text-dark-1); + --vp-button-brand-hover-bg: var(--vp-c-brand-light); + --vp-button-brand-active-border: var(--vp-c-brand-light); + --vp-button-brand-active-text: var(--vp-c-text-dark-1); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); + --vp-button-alt-border: var(--vp-c-gray-light-3); + --vp-button-alt-text: var(--vp-c-text-light-1); + --vp-button-alt-bg: var(--vp-c-gray-light-5); + --vp-button-alt-hover-border: var(--vp-c-gray-light-3); + --vp-button-alt-hover-text: var(--vp-c-text-light-1); + --vp-button-alt-hover-bg: var(--vp-c-gray-light-4); + --vp-button-alt-active-border: var(--vp-c-gray-light-3); + --vp-button-alt-active-text: var(--vp-c-text-light-1); + --vp-button-alt-active-bg: var(--vp-c-gray-light-3); + --vp-button-sponsor-border: var(--vp-c-gray-light-3); + --vp-button-sponsor-text: var(--vp-c-text-light-2); + --vp-button-sponsor-bg: transparent; + --vp-button-sponsor-hover-border: var(--vp-c-sponsor); + --vp-button-sponsor-hover-text: var(--vp-c-sponsor); + --vp-button-sponsor-hover-bg: transparent; + --vp-button-sponsor-active-border: var(--vp-c-sponsor); + --vp-button-sponsor-active-text: var(--vp-c-sponsor); + --vp-button-sponsor-active-bg: transparent +} + +.dark { + --vp-button-brand-border: var(--vp-c-brand-light); + --vp-button-brand-text: var(--vp-c-text-dark-1); + --vp-button-brand-bg: var(--vp-c-brand-dark); + --vp-button-brand-hover-border: var(--vp-c-brand-lighter); + --vp-button-brand-hover-text: var(--vp-c-text-dark-1); + --vp-button-brand-hover-bg: var(--vp-c-brand); + --vp-button-brand-active-border: var(--vp-c-brand-lighter); + --vp-button-brand-active-text: var(--vp-c-text-dark-1); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); + --vp-button-alt-border: var(--vp-c-gray-dark-2); + --vp-button-alt-text: var(--vp-c-text-dark-1); + --vp-button-alt-bg: var(--vp-c-bg-mute); + --vp-button-alt-hover-border: var(--vp-c-gray-dark-2); + --vp-button-alt-hover-text: var(--vp-c-text-dark-1); + --vp-button-alt-hover-bg: var(--vp-c-gray-dark-2); + --vp-button-alt-active-border: var(--vp-c-gray-dark-2); + --vp-button-alt-active-text: var(--vp-c-text-dark-1); + --vp-button-alt-active-bg: var(--vp-button-alt-bg); + --vp-button-sponsor-border: var(--vp-c-gray-dark-1); + --vp-button-sponsor-text: var(--vp-c-text-dark-2) +} + +:root { + --vp-custom-block-code-font-size: 13px; + --vp-custom-block-info-border: var(--vp-c-divider-light); + --vp-custom-block-info-text: var(--vp-c-text-2); + --vp-custom-block-info-bg: var(--vp-c-white-soft); + --vp-custom-block-info-code-bg: var(--vp-c-gray-light-4); + --vp-custom-block-tip-border: var(--vp-c-green-dimm-1); + --vp-custom-block-tip-text: var(--vp-c-green-darker); + --vp-custom-block-tip-bg: var(--vp-c-green-dimm-3); + --vp-custom-block-tip-code-bg: var(--vp-custom-block-tip-bg); + --vp-custom-block-warning-border: var(--vp-c-yellow-dimm-1); + --vp-custom-block-warning-text: var(--vp-c-yellow-darker); + --vp-custom-block-warning-bg: var(--vp-c-yellow-dimm-3); + --vp-custom-block-warning-code-bg: var(--vp-custom-block-warning-bg); + --vp-custom-block-danger-border: var(--vp-c-red-dimm-1); + --vp-custom-block-danger-text: var(--vp-c-red-darker); + --vp-custom-block-danger-bg: var(--vp-c-red-dimm-3); + --vp-custom-block-danger-code-bg: var(--vp-custom-block-danger-bg); + --vp-custom-block-details-border: var(--vp-custom-block-info-border); + --vp-custom-block-details-text: var(--vp-custom-block-info-text); + --vp-custom-block-details-bg: var(--vp-custom-block-info-bg); + --vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg) +} + +.dark { + --vp-custom-block-info-border: var(--vp-c-divider-light); + --vp-custom-block-info-bg: var(--vp-c-black-mute); + --vp-custom-block-info-code-bg: var(--vp-c-gray-dark-4); + --vp-custom-block-tip-border: var(--vp-c-green-dimm-2); + --vp-custom-block-tip-text: var(--vp-c-green-light); + --vp-custom-block-warning-border: var(--vp-c-yellow-dimm-2); + --vp-custom-block-warning-text: var(--vp-c-yellow-light); + --vp-custom-block-danger-border: var(--vp-c-red-dimm-2); + --vp-custom-block-danger-text: var(--vp-c-red-light) +} + +:root { + --vp-nav-height: var(--vp-nav-height-mobile); + --vp-nav-height-mobile: 56px; + --vp-nav-height-desktop: 72px +} + +@media (min-width: 960px) { + :root { + --vp-nav-height: var(--vp-nav-height-desktop) + } +} + +:root { + --vp-sidebar-width: 272px +} + +:root { + --vp-home-hero-name-color: var(--vp-c-brand); + --vp-home-hero-name-background: transparent; + --vp-home-hero-image-background-image: none; + --vp-home-hero-image-filter: none +} + +:root { + --vp-badge-info-border: var(--vp-c-divider-light); + --vp-badge-info-text: var(--vp-c-text-2); + --vp-badge-info-bg: var(--vp-c-white-soft); + --vp-badge-tip-border: var(--vp-c-green-dimm-1); + --vp-badge-tip-text: var(--vp-c-green-darker); + --vp-badge-tip-bg: var(--vp-c-green-dimm-3); + --vp-badge-warning-border: var(--vp-c-yellow-dimm-1); + --vp-badge-warning-text: var(--vp-c-yellow-darker); + --vp-badge-warning-bg: var(--vp-c-yellow-dimm-3); + --vp-badge-danger-border: var(--vp-c-red-dimm-1); + --vp-badge-danger-text: var(--vp-c-red-darker); + --vp-badge-danger-bg: var(--vp-c-red-dimm-3) +} + +.dark { + --vp-badge-info-border: var(--vp-c-divider-light); + --vp-badge-info-bg: var(--vp-c-black-mute); + --vp-badge-tip-border: var(--vp-c-green-dimm-2); + --vp-badge-tip-text: var(--vp-c-green-light); + --vp-badge-warning-border: var(--vp-c-yellow-dimm-2); + --vp-badge-warning-text: var(--vp-c-yellow-light); + --vp-badge-danger-border: var(--vp-c-red-dimm-2); + --vp-badge-danger-text: var(--vp-c-red-light) +} + +*, +:before, +:after { + box-sizing: border-box +} + +html { + line-height: 1.4; + font-size: 16px; + -webkit-text-size-adjust: 100% +} + +html.dark { + color-scheme: dark +} + +body { + margin: 0; + width: 100%; + min-width: 320px; + min-height: 100vh; + line-height: 24px; + font-family: var(--vp-font-family-base); + font-size: 16px; + font-weight: 400; + color: var(--vp-c-text-1); + background-color: var(--vp-c-bg); + direction: ltr; + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +main { + display: block +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + line-height: 24px; + font-size: 16px; + font-weight: 400 +} + +p { + margin: 0 +} + +strong, +b { + font-weight: 600 +} + +a, +area, +button, +[role=button], +input, +label, +select, +summary, +textarea { + touch-action: manipulation +} + +a { + color: inherit; + text-decoration: inherit +} + +ol, +ul { + list-style: none; + margin: 0; + padding: 0 +} + +blockquote { + margin: 0 +} + +pre, +code, +kbd, +samp { + font-family: var(--vp-font-family-mono) +} + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block +} + +figure { + margin: 0 +} + +img, +video { + max-width: 100%; + height: auto +} + +button, +input, +optgroup, +select, +textarea { + border: 0; + padding: 0; + line-height: inherit; + color: inherit +} + +button { + padding: 0; + font-family: inherit; + background-color: transparent; + background-image: none +} + +button:enabled, +[role=button]:enabled { + cursor: pointer +} + +button:focus, +button:focus-visible { + outline: 1px dotted; + outline: 4px auto -webkit-focus-ring-color +} + +button:focus:not(:focus-visible) { + outline: none !important +} + +input:focus, +textarea:focus, +select:focus { + outline: none +} + +table { + border-collapse: collapse +} + +input { + background-color: transparent +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: var(--vp-c-text-3) +} + +input::-ms-input-placeholder, +textarea::-ms-input-placeholder { + color: var(--vp-c-text-3) +} + +input::placeholder, +textarea::placeholder { + color: var(--vp-c-text-3) +} + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0 +} + +input[type=number] { + -moz-appearance: textfield +} + +textarea { + resize: vertical +} + +select { + -webkit-appearance: none +} + +fieldset { + margin: 0; + padding: 0 +} + +h1, +h2, +h3, +h4, +h5, +h6, +p { + overflow-wrap: break-word +} + +vite-error-overlay { + z-index: 9999 +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + white-space: nowrap; + clip: rect(0 0 0 0); + clip-path: inset(50%); + overflow: hidden +} + +.custom-block { + border: 1px solid transparent; + border-radius: 8px; + padding: 16px 16px 8px; + line-height: 24px; + font-size: 14px; + color: var(--vp-c-text-2) +} + +.custom-block.info { + border-color: var(--vp-custom-block-info-border); + color: var(--vp-custom-block-info-text); + background-color: var(--vp-custom-block-info-bg) +} + +.custom-block.info code { + background-color: var(--vp-custom-block-info-code-bg) +} + +.custom-block.tip { + border-color: var(--vp-custom-block-tip-border); + color: var(--vp-custom-block-tip-text); + background-color: var(--vp-custom-block-tip-bg) +} + +.custom-block.tip code { + background-color: var(--vp-custom-block-tip-code-bg) +} + +.custom-block.warning { + border-color: var(--vp-custom-block-warning-border); + color: var(--vp-custom-block-warning-text); + background-color: var(--vp-custom-block-warning-bg) +} + +.custom-block.warning code { + background-color: var(--vp-custom-block-warning-code-bg) +} + +.custom-block.danger { + border-color: var(--vp-custom-block-danger-border); + color: var(--vp-custom-block-danger-text); + background-color: var(--vp-custom-block-danger-bg) +} + +.custom-block.danger code { + background-color: var(--vp-custom-block-danger-code-bg) +} + +.custom-block.details { + border-color: var(--vp-custom-block-details-border); + color: var(--vp-custom-block-details-text); + background-color: var(--vp-custom-block-details-bg) +} + +.custom-block.details code { + background-color: var(--vp-custom-block-details-code-bg) +} + +.custom-block-title { + font-weight: 700 +} + +.custom-block p+p { + margin: 8px 0 +} + +.custom-block.details summary { + margin: 0 0 8px; + font-weight: 700 +} + +.custom-block.details summary+p { + margin: 8px 0 +} + +.custom-block a { + color: inherit; + font-weight: 600; + text-decoration: underline; + transition: opacity .25s +} + +.custom-block a:hover { + opacity: .6 +} + +.custom-block code { + font-size: var(--vp-custom-block-code-font-size) +} + +.dark .vp-code-light { + display: none +} + +html:not(.dark) .vp-code-dark { + display: none +} + +.vp-doc h1, +.vp-doc h2, +.vp-doc h3, +.vp-doc h4, +.vp-doc h5, +.vp-doc h6 { + position: relative; + font-weight: 600; + outline: none +} + +.vp-doc h1 { + letter-spacing: -.02em; + line-height: 40px; + font-size: 28px +} + +.vp-doc h2 { + margin: 48px 0 16px; + border-top: 1px solid var(--vp-c-divider-light); + padding-top: 24px; + letter-spacing: -.02em; + line-height: 32px; + font-size: 24px +} + +.vp-doc h3 { + margin: 32px 0 0; + letter-spacing: -.01em; + line-height: 28px; + font-size: 20px +} + +.vp-doc .header-anchor { + float: left; + margin-left: -.87em; + padding-right: .23em; + font-weight: 500; + opacity: 0; + transition: color .25s, opacity .25s +} + +.vp-doc h1:hover .header-anchor, +.vp-doc h1 .header-anchor:focus, +.vp-doc h2:hover .header-anchor, +.vp-doc h2 .header-anchor:focus, +.vp-doc h3:hover .header-anchor, +.vp-doc h3 .header-anchor:focus, +.vp-doc h4:hover .header-anchor, +.vp-doc h4 .header-anchor:focus, +.vp-doc h5:hover .header-anchor, +.vp-doc h5 .header-anchor:focus, +.vp-doc h6:hover .header-anchor, +.vp-doc h6 .header-anchor:focus { + opacity: 1 +} + +@media (min-width: 768px) { + .vp-doc h1 { + letter-spacing: -.02em; + line-height: 40px; + font-size: 32px + } +} + +.vp-doc p, +.vp-doc summary { + margin: 16px 0 +} + +.vp-doc p { + line-height: 28px +} + +.vp-doc blockquote { + margin: 16px 0; + border-left: 2px solid var(--vp-c-divider); + padding-left: 16px; + transition: border-color .5s +} + +.vp-doc blockquote>p { + margin: 0; + font-size: 16px; + color: var(--vp-c-text-2); + transition: color .5s +} + +.vp-doc a { + font-weight: 500; + color: var(--vp-c-brand); + text-decoration-style: dotted; + transition: color .25s +} + +.vp-doc a:hover { + color: var(--vp-c-brand-dark) +} + +.vp-doc strong { + font-weight: 600 +} + +.vp-doc ul, +.vp-doc ol { + padding-left: 1.25rem; + margin: 16px 0 +} + +.vp-doc ul { + list-style: disc +} + +.vp-doc ol { + list-style: decimal +} + +.vp-doc li+li { + margin-top: 8px +} + +.vp-doc li>ol, +.vp-doc li>ul { + margin: 8px 0 0 +} + +.vp-doc table { + display: block; + border-collapse: collapse; + margin: 20px 0; + overflow-x: auto +} + +.vp-doc tr { + border-top: 1px solid var(--vp-c-divider); + transition: background-color .5s +} + +.vp-doc tr:nth-child(2n) { + background-color: var(--vp-c-bg-soft) +} + +.vp-doc th, +.vp-doc td { + border: 1px solid var(--vp-c-divider); + padding: 12px 16px +} + +.vp-doc th { + font-size: 16px; + font-weight: 600; + background-color: var(--vp-c-white-soft) +} + +.dark .vp-doc th { + background-color: var(--vp-c-black) +} + +.vp-doc hr { + margin: 16px 0; + border: none; + border-top: 1px solid var(--vp-c-divider-light) +} + +.vp-doc .custom-block { + margin: 16px 0 +} + +.vp-doc .custom-block p { + margin: 8px 0; + line-height: 24px +} + +.vp-doc .custom-block p:first-child { + margin: 0 +} + +.vp-doc .custom-block a { + color: inherit; + font-weight: 600; + text-decoration: underline; + transition: opacity .25s +} + +.vp-doc .custom-block a:hover { + opacity: .6 +} + +.vp-doc .custom-block code { + font-size: var(--vp-custom-block-code-font-size); + font-weight: 700; + color: inherit +} + +.vp-doc .custom-block div[class*=language-] { + margin: 8px 0 +} + +.vp-doc .custom-block div[class*=language-] code { + font-weight: 400; + background-color: transparent +} + +.vp-doc :not(pre, h1, h2, h3, h4, h5, h6)>code { + font-size: var(--vp-code-font-size) +} + +.vp-doc :not(pre)>code { + border-radius: 4px; + padding: 3px 6px; + color: var(--vp-c-text-code); + background-color: var(--vp-c-bg-mute); + transition: color .5s, background-color .5s +} + +.vp-doc h1>code, +.vp-doc h2>code, +.vp-doc h3>code { + font-size: .9em +} + +.vp-doc a>code { + color: var(--vp-c-brand); + transition: color .25s +} + +.vp-doc a:hover>code { + color: var(--vp-c-brand-dark) +} + +.vp-doc div[class*=language-] { + position: relative; + margin: 16px -24px; + background-color: var(--vp-code-block-bg); + overflow-x: auto; + transition: background-color .5s +} + +@media (min-width: 640px) { + .vp-doc div[class*=language-] { + border-radius: 8px; + margin: 16px 0 + } +} + +@media (max-width: 639px) { + .vp-doc li div[class*=language-] { + border-radius: 8px 0 0 8px + } +} + +.vp-doc div[class*=language-]+div[class*=language-], +.vp-doc div[class$=-api]+div[class*=language-], +.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-] { + margin-top: -8px +} + +.vp-doc [class*=language-] pre, +.vp-doc [class*=language-] code { + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none +} + +.vp-doc [class*=language-] pre { + position: relative; + z-index: 1; + margin: 0; + padding: 16px 0; + background: transparent; + overflow-x: auto +} + +.vp-doc [class*=language-] code { + display: block; + padding: 0 24px; + width: fit-content; + min-width: 100%; + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + color: var(--vp-code-block-color); + transition: color .5s +} + +.vp-doc [class*=language-] code .highlighted { + background-color: var(--vp-code-line-highlight-color); + transition: background-color .5s; + margin: 0 -24px; + padding: 0 24px; + width: calc(100% + 48px); + display: inline-block +} + +.vp-doc [class*=language-] code .highlighted.error { + background-color: var(--vp-code-line-error-color) +} + +.vp-doc [class*=language-] code .highlighted.warning { + background-color: var(--vp-code-line-warning-color) +} + +.vp-doc [class*=language-] code .diff { + transition: background-color .5s; + margin: 0 -24px; + padding: 0 24px; + width: calc(100% + 48px); + display: inline-block +} + +.vp-doc [class*=language-] code .diff:before { + position: absolute; + left: 1rem +} + +.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus) { + filter: blur(.095rem); + opacity: .4; + transition: filter .35s, opacity .35s +} + +.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus) { + opacity: .7; + transition: filter .35s, opacity .35s +} + +.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus) { + filter: blur(0); + opacity: 1 +} + +.vp-doc [class*=language-] code .diff.remove { + background-color: var(--vp-code-line-diff-remove-color); + opacity: .7 +} + +.vp-doc [class*=language-] code .diff.remove:before { + content: "-"; + color: var(--vp-code-line-diff-remove-symbol-color) +} + +.vp-doc [class*=language-] code .diff.add { + background-color: var(--vp-code-line-diff-add-color) +} + +.vp-doc [class*=language-] code .diff.add:before { + content: "+"; + color: var(--vp-code-line-diff-add-symbol-color) +} + +.vp-doc div[class*=language-].line-numbers-mode { + padding-left: 32px +} + +.vp-doc .line-numbers-wrapper { + position: absolute; + top: 0; + bottom: 0; + left: 0; + z-index: 3; + border-right: 1px solid var(--vp-c-divider-dark-2); + padding-top: 16px; + width: 32px; + text-align: center; + font-family: var(--vp-font-family-mono); + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + color: var(--vp-code-line-number-color); + transition: border-color .5s, color .5s +} + +.vp-doc [class*=language-]>button.copy { + position: absolute; + top: 8px; + right: 8px; + z-index: 3; + display: block; + justify-content: center; + align-items: center; + border-radius: 4px; + width: 40px; + height: 40px; + background-color: var(--vp-code-block-bg); + opacity: 0; + cursor: pointer; + background-image: var(--vp-icon-copy); + background-position: 50%; + background-size: 20px; + background-repeat: no-repeat; + transition: opacity .4s +} + +.vp-doc [class*=language-]:hover>button.copy, +.vp-doc [class*=language-]>button.copy:focus { + opacity: 1 +} + +.vp-doc [class*=language-]>button.copy:hover { + background-color: var(--vp-code-copy-code-hover-bg) +} + +.vp-doc [class*=language-]>button.copy.copied, +.vp-doc [class*=language-]>button.copy:hover.copied { + border-radius: 0 4px 4px 0; + background-color: var(--vp-code-copy-code-hover-bg); + background-image: var(--vp-icon-copied) +} + +.vp-doc [class*=language-]>button.copy.copied:before, +.vp-doc [class*=language-]>button.copy:hover.copied:before { + position: relative; + left: -65px; + display: block; + border-radius: 4px 0 0 4px; + padding-top: 8px; + width: 64px; + height: 40px; + text-align: center; + font-size: 12px; + font-weight: 500; + color: var(--vp-code-copy-code-active-text); + background-color: var(--vp-code-copy-code-hover-bg); + white-space: nowrap; + content: "Copied" +} + +.vp-doc [class*=language-]>span.lang { + position: absolute; + top: 6px; + right: 12px; + z-index: 2; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-dark-3); + transition: color .4s, opacity .4s +} + +.vp-doc [class*=language-]:hover>button.copy+span.lang, +.vp-doc [class*=language-]>button.copy:focus+span.lang { + opacity: 0 +} + +.vp-doc .VPTeamMembers { + margin-top: 24px +} + +.vp-doc .VPTeamMembers.small.count-1 .container { + margin: 0 !important; + max-width: calc((100% - 24px)/2) !important +} + +.vp-doc .VPTeamMembers.small.count-2 .container, +.vp-doc .VPTeamMembers.small.count-3 .container { + max-width: 100% !important +} + +.vp-doc .VPTeamMembers.medium.count-1 .container { + margin: 0 !important; + max-width: calc((100% - 24px)/2) !important +} + +.vp-sponsor { + border-radius: 16px; + overflow: hidden +} + +.vp-sponsor.aside { + border-radius: 12px +} + +.vp-sponsor-section+.vp-sponsor-section { + margin-top: 4px +} + +.vp-sponsor-tier { + margin-bottom: 4px; + text-align: center; + letter-spacing: 1px; + line-height: 24px; + width: 100%; + font-weight: 600; + color: var(--vp-c-text-2); + background-color: var(--vp-c-bg-soft) +} + +.vp-sponsor.normal .vp-sponsor-tier { + padding: 13px 0 11px; + font-size: 14px +} + +.vp-sponsor.aside .vp-sponsor-tier { + padding: 9px 0 7px; + font-size: 12px +} + +.vp-sponsor-grid+.vp-sponsor-tier { + margin-top: 4px +} + +.vp-sponsor-grid { + display: flex; + flex-wrap: wrap; + gap: 4px +} + +.vp-sponsor-grid.xmini .vp-sponsor-grid-link { + height: 64px +} + +.vp-sponsor-grid.xmini .vp-sponsor-grid-image { + max-width: 64px; + max-height: 22px +} + +.vp-sponsor-grid.mini .vp-sponsor-grid-link { + height: 72px +} + +.vp-sponsor-grid.mini .vp-sponsor-grid-image { + max-width: 96px; + max-height: 24px +} + +.vp-sponsor-grid.small .vp-sponsor-grid-link { + height: 96px +} + +.vp-sponsor-grid.small .vp-sponsor-grid-image { + max-width: 96px; + max-height: 24px +} + +.vp-sponsor-grid.medium .vp-sponsor-grid-link { + height: 112px +} + +.vp-sponsor-grid.medium .vp-sponsor-grid-image { + max-width: 120px; + max-height: 36px +} + +.vp-sponsor-grid.big .vp-sponsor-grid-link { + height: 184px +} + +.vp-sponsor-grid.big .vp-sponsor-grid-image { + max-width: 192px; + max-height: 56px +} + +.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item { + width: calc((100% - 4px)/2) +} + +.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 2) / 3) +} + +.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item { + width: calc((100% - 12px)/4) +} + +.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item { + width: calc((100% - 16px)/5) +} + +.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 5) / 6) +} + +.vp-sponsor-grid-item { + flex-shrink: 0; + width: 100%; + background-color: var(--vp-c-bg-soft); + transition: background-color .25s +} + +.vp-sponsor-grid-item:hover { + background-color: var(--vp-c-bg-mute) +} + +.vp-sponsor-grid-item:hover .vp-sponsor-grid-image { + filter: grayscale(0) invert(0) +} + +.vp-sponsor-grid-item.empty:hover { + background-color: var(--vp-c-bg-soft) +} + +.dark .vp-sponsor-grid-item:hover { + background-color: var(--vp-c-white-soft) +} + +.dark .vp-sponsor-grid-item.empty:hover { + background-color: var(--vp-c-black-mute) +} + +.vp-sponsor-grid-link { + display: flex +} + +.vp-sponsor-grid-box { + display: flex; + justify-content: center; + align-items: center; + width: 100% +} + +.vp-sponsor-grid-image { + max-width: 100%; + filter: grayscale(1); + transition: filter .25s +} + +.dark .vp-sponsor-grid-image { + filter: grayscale(1) invert(1) +} + +.VPBadge[data-v-8d21f6c9] { + display: inline-block; + margin-left: 2px; + border: 1px solid transparent; + border-radius: 10px; + padding: 0 8px; + line-height: 18px; + font-size: 13px; + font-weight: 600; + transform: translateY(-2px) +} + +h2 .VPBadge[data-v-8d21f6c9] { + border-radius: 11px; + line-height: 20px +} + +.VPBadge.info[data-v-8d21f6c9] { + border-color: var(--vp-badge-info-border); + color: var(--vp-badge-info-text); + background-color: var(--vp-badge-info-bg) +} + +.VPBadge.tip[data-v-8d21f6c9] { + border-color: var(--vp-badge-tip-border); + color: var(--vp-badge-tip-text); + background-color: var(--vp-badge-tip-bg) +} + +.VPBadge.warning[data-v-8d21f6c9] { + border-color: var(--vp-badge-warning-border); + color: var(--vp-badge-warning-text); + background-color: var(--vp-badge-warning-bg) +} + +.VPBadge.danger[data-v-8d21f6c9] { + border-color: var(--vp-badge-danger-border); + color: var(--vp-badge-danger-text); + background-color: var(--vp-badge-danger-bg) +} + +.VPSkipLink[data-v-151f2593] { + top: 8px; + left: 8px; + padding: 8px 16px; + z-index: 999; + border-radius: 8px; + font-size: 12px; + font-weight: 700; + text-decoration: none; + color: var(--vp-c-brand); + box-shadow: var(--vp-shadow-3); + background-color: var(--vp-c-bg) +} + +.VPSkipLink[data-v-151f2593]:focus { + height: auto; + width: auto; + clip: auto; + clip-path: none +} + +.dark .VPSkipLink[data-v-151f2593] { + color: var(--vp-c-green) +} + +@media (min-width: 1280px) { + .VPSkipLink[data-v-151f2593] { + top: 14px; + left: 16px + } +} + +.VPBackdrop[data-v-0164f098] { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: var(--vp-z-index-backdrop); + background: rgba(0, 0, 0, .6); + transition: opacity .5s +} + +.VPBackdrop.fade-enter-from[data-v-0164f098], +.VPBackdrop.fade-leave-to[data-v-0164f098] { + opacity: 0 +} + +.VPBackdrop.fade-leave-active[data-v-0164f098] { + transition-duration: .25s +} + +@media (min-width: 1280px) { + .VPBackdrop[data-v-0164f098] { + display: none + } +} + +html:not(.dark) .VPImage.dark[data-v-b7ac6bd3] { + display: none +} + +.dark .VPImage.light[data-v-b7ac6bd3] { + display: none +} + +.VPNavBarTitle[data-v-d5925166] { + flex-shrink: 0; + border-bottom: 1px solid transparent +} + +@media (min-width: 960px) { + .VPNavBarTitle.has-sidebar[data-v-d5925166] { + margin-right: 32px; + width: calc(var(--vp-sidebar-width) - 64px); + border-bottom-color: var(--vp-c-divider-light); + background-color: var(--vp-c-bg-alt) + } +} + +.title[data-v-d5925166] { + display: flex; + align-items: center; + width: 100%; + height: var(--vp-nav-height); + font-size: 16px; + font-weight: 600; + color: var(--vp-c-text-1); + transition: opacity .25s +} + +.title[data-v-d5925166]:hover { + opacity: .6 +} + +@media (min-width: 960px) { + .title[data-v-d5925166] { + flex-shrink: 0 + } +} + +[data-v-d5925166] .logo { + margin-right: 8px; + height: 24px +} + +/*! @docsearch/css 3.3.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */ +:root { + --docsearch-primary-color: #5468ff; + --docsearch-text-color: #1c1e21; + --docsearch-spacing: 12px; + --docsearch-icon-stroke-width: 1.4; + --docsearch-highlight-color: var(--docsearch-primary-color); + --docsearch-muted-color: #969faf; + --docsearch-container-background: rgba(101, 108, 133, .8); + --docsearch-logo-color: #5468ff; + --docsearch-modal-width: 560px; + --docsearch-modal-height: 600px; + --docsearch-modal-background: #f5f6f7; + --docsearch-modal-shadow: inset 1px 1px 0 0 hsla(0, 0%, 100%, .5), 0 3px 8px 0 #555a64; + --docsearch-searchbox-height: 56px; + --docsearch-searchbox-background: #ebedf0; + --docsearch-searchbox-focus-background: #fff; + --docsearch-searchbox-shadow: inset 0 0 0 2px var(--docsearch-primary-color); + --docsearch-hit-height: 56px; + --docsearch-hit-color: #444950; + --docsearch-hit-active-color: #fff; + --docsearch-hit-background: #fff; + --docsearch-hit-shadow: 0 1px 3px 0 #d4d9e1; + --docsearch-key-gradient: linear-gradient(-225deg, #d5dbe4, #f8f8f8); + --docsearch-key-shadow: inset 0 -2px 0 0 #cdcde6, inset 0 0 1px 1px #fff, 0 1px 2px 1px rgba(30, 35, 90, .4); + --docsearch-footer-height: 44px; + --docsearch-footer-background: #fff; + --docsearch-footer-shadow: 0 -1px 0 0 #e0e3e8, 0 -3px 6px 0 rgba(69, 98, 155, .12) +} + +html[data-theme=dark] { + --docsearch-text-color: #f5f6f7; + --docsearch-container-background: rgba(9, 10, 17, .8); + --docsearch-modal-background: #15172a; + --docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309; + --docsearch-searchbox-background: #090a11; + --docsearch-searchbox-focus-background: #000; + --docsearch-hit-color: #bec3c9; + --docsearch-hit-shadow: none; + --docsearch-hit-background: #090a11; + --docsearch-key-gradient: linear-gradient(-26.5deg, #565872, #31355b); + --docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, .3); + --docsearch-footer-background: #1e2136; + --docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, .5), 0 -4px 8px 0 rgba(0, 0, 0, .2); + --docsearch-logo-color: #fff; + --docsearch-muted-color: #7f8497 +} + +.DocSearch-Button { + align-items: center; + background: var(--docsearch-searchbox-background); + border: 0; + border-radius: 40px; + color: var(--docsearch-muted-color); + cursor: pointer; + display: flex; + font-weight: 500; + height: 36px; + justify-content: space-between; + margin: 0 0 0 16px; + padding: 0 8px; + user-select: none +} + +.DocSearch-Button:active, +.DocSearch-Button:focus, +.DocSearch-Button:hover { + background: var(--docsearch-searchbox-focus-background); + box-shadow: var(--docsearch-searchbox-shadow); + color: var(--docsearch-text-color); + outline: none +} + +.DocSearch-Button-Container { + align-items: center; + display: flex +} + +.DocSearch-Search-Icon { + stroke-width: 1.6 +} + +.DocSearch-Button .DocSearch-Search-Icon { + color: var(--docsearch-text-color) +} + +.DocSearch-Button-Placeholder { + font-size: 1rem; + padding: 0 12px 0 6px +} + +.DocSearch-Button-Keys { + display: flex; + min-width: calc(40px + .8em) +} + +.DocSearch-Button-Key { + align-items: center; + background: var(--docsearch-key-gradient); + border-radius: 3px; + box-shadow: var(--docsearch-key-shadow); + color: var(--docsearch-muted-color); + display: flex; + height: 18px; + justify-content: center; + margin-right: .4em; + position: relative; + padding: 0 0 2px; + border: 0; + top: -1px; + width: 20px +} + +@media (max-width:768px) { + + .DocSearch-Button-Keys, + .DocSearch-Button-Placeholder { + display: none + } +} + +.DocSearch--active { + overflow: hidden !important +} + +.DocSearch-Container, +.DocSearch-Container * { + box-sizing: border-box +} + +.DocSearch-Container { + background-color: var(--docsearch-container-background); + height: 100vh; + left: 0; + position: fixed; + top: 0; + width: 100vw; + z-index: 200 +} + +.DocSearch-Container a { + text-decoration: none +} + +.DocSearch-Link { + appearance: none; + background: none; + border: 0; + color: var(--docsearch-highlight-color); + cursor: pointer; + font: inherit; + margin: 0; + padding: 0 +} + +.DocSearch-Modal { + background: var(--docsearch-modal-background); + border-radius: 6px; + box-shadow: var(--docsearch-modal-shadow); + flex-direction: column; + margin: 60px auto auto; + max-width: var(--docsearch-modal-width); + position: relative +} + +.DocSearch-SearchBar { + display: flex; + padding: var(--docsearch-spacing) var(--docsearch-spacing) 0 +} + +.DocSearch-Form { + align-items: center; + background: var(--docsearch-searchbox-focus-background); + border-radius: 4px; + box-shadow: var(--docsearch-searchbox-shadow); + display: flex; + height: var(--docsearch-searchbox-height); + margin: 0; + padding: 0 var(--docsearch-spacing); + position: relative; + width: 100% +} + +.DocSearch-Input { + appearance: none; + background: transparent; + border: 0; + color: var(--docsearch-text-color); + flex: 1; + font: inherit; + font-size: 1.2em; + height: 100%; + outline: none; + padding: 0 0 0 8px; + width: 80% +} + +.DocSearch-Input::placeholder { + color: var(--docsearch-muted-color); + opacity: 1 +} + +.DocSearch-Input::-webkit-search-cancel-button, +.DocSearch-Input::-webkit-search-decoration, +.DocSearch-Input::-webkit-search-results-button, +.DocSearch-Input::-webkit-search-results-decoration { + display: none +} + +.DocSearch-LoadingIndicator, +.DocSearch-MagnifierLabel, +.DocSearch-Reset { + margin: 0; + padding: 0 +} + +.DocSearch-MagnifierLabel, +.DocSearch-Reset { + align-items: center; + color: var(--docsearch-highlight-color); + display: flex; + justify-content: center +} + +.DocSearch-Container--Stalled .DocSearch-MagnifierLabel, +.DocSearch-LoadingIndicator { + display: none +} + +.DocSearch-Container--Stalled .DocSearch-LoadingIndicator { + align-items: center; + color: var(--docsearch-highlight-color); + display: flex; + justify-content: center +} + +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Reset { + animation: none; + appearance: none; + background: none; + border: 0; + border-radius: 50%; + color: var(--docsearch-icon-color); + cursor: pointer; + right: 0; + stroke-width: var(--docsearch-icon-stroke-width) + } +} + +.DocSearch-Reset { + animation: fade-in .1s ease-in forwards; + appearance: none; + background: none; + border: 0; + border-radius: 50%; + color: var(--docsearch-icon-color); + cursor: pointer; + padding: 2px; + right: 0; + stroke-width: var(--docsearch-icon-stroke-width) +} + +.DocSearch-Reset[hidden] { + display: none +} + +.DocSearch-Reset:focus { + outline: none +} + +.DocSearch-Reset:hover { + color: var(--docsearch-highlight-color) +} + +.DocSearch-LoadingIndicator svg, +.DocSearch-MagnifierLabel svg { + height: 24px; + width: 24px +} + +.DocSearch-Cancel { + display: none +} + +.DocSearch-Dropdown { + max-height: calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height)); + min-height: var(--docsearch-spacing); + overflow-y: auto; + overflow-y: overlay; + padding: 0 var(--docsearch-spacing); + scrollbar-color: var(--docsearch-muted-color) var(--docsearch-modal-background); + scrollbar-width: thin +} + +.DocSearch-Dropdown::-webkit-scrollbar { + width: 12px +} + +.DocSearch-Dropdown::-webkit-scrollbar-track { + background: transparent +} + +.DocSearch-Dropdown::-webkit-scrollbar-thumb { + background-color: var(--docsearch-muted-color); + border: 3px solid var(--docsearch-modal-background); + border-radius: 20px +} + +.DocSearch-Dropdown ul { + list-style: none; + margin: 0; + padding: 0 +} + +.DocSearch-Label { + font-size: .75em; + line-height: 1.6em +} + +.DocSearch-Help, +.DocSearch-Label { + color: var(--docsearch-muted-color) +} + +.DocSearch-Help { + font-size: .9em; + margin: 0; + user-select: none +} + +.DocSearch-Title { + font-size: 1.2em +} + +.DocSearch-Logo a { + display: flex +} + +.DocSearch-Logo svg { + color: var(--docsearch-logo-color); + margin-left: 8px +} + +.DocSearch-Hits:last-of-type { + margin-bottom: 24px +} + +.DocSearch-Hits mark { + background: none; + color: var(--docsearch-highlight-color) +} + +.DocSearch-HitsFooter { + color: var(--docsearch-muted-color); + display: flex; + font-size: .85em; + justify-content: center; + margin-bottom: var(--docsearch-spacing); + padding: var(--docsearch-spacing) +} + +.DocSearch-HitsFooter a { + border-bottom: 1px solid; + color: inherit +} + +.DocSearch-Hit { + border-radius: 4px; + display: flex; + padding-bottom: 4px; + position: relative +} + +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Hit--deleting { + transition: none + } +} + +.DocSearch-Hit--deleting { + opacity: 0; + transition: all .25s linear +} + +@media screen and (prefers-reduced-motion:reduce) { + .DocSearch-Hit--favoriting { + transition: none + } +} + +.DocSearch-Hit--favoriting { + transform: scale(0); + transform-origin: top center; + transition: all .25s linear; + transition-delay: .25s +} + +.DocSearch-Hit a { + background: var(--docsearch-hit-background); + border-radius: 4px; + box-shadow: var(--docsearch-hit-shadow); + display: block; + padding-left: var(--docsearch-spacing); + width: 100% +} + +.DocSearch-Hit-source { + background: var(--docsearch-modal-background); + color: var(--docsearch-highlight-color); + font-size: .85em; + font-weight: 600; + line-height: 32px; + margin: 0 -4px; + padding: 8px 4px 0; + position: sticky; + top: 0; + z-index: 10 +} + +.DocSearch-Hit-Tree { + color: var(--docsearch-muted-color); + height: var(--docsearch-hit-height); + opacity: .5; + stroke-width: var(--docsearch-icon-stroke-width); + width: 24px +} + +.DocSearch-Hit[aria-selected=true] a { + background-color: var(--docsearch-highlight-color) +} + +.DocSearch-Hit[aria-selected=true] mark { + text-decoration: underline +} + +.DocSearch-Hit-Container { + align-items: center; + color: var(--docsearch-hit-color); + display: flex; + flex-direction: row; + height: var(--docsearch-hit-height); + padding: 0 var(--docsearch-spacing) 0 0 +} + +.DocSearch-Hit-icon { + height: 20px; + width: 20px +} + +.DocSearch-Hit-action, +.DocSearch-Hit-icon { + color: var(--docsearch-muted-color); + stroke-width: var(--docsearch-icon-stroke-width) +} + +.DocSearch-Hit-action { + align-items: center; + display: flex; + height: 22px; + width: 22px +} + +.DocSearch-Hit-action svg { + display: block; + height: 18px; + width: 18px +} + +.DocSearch-Hit-action+.DocSearch-Hit-action { + margin-left: 6px +} + +.DocSearch-Hit-action-button { + appearance: none; + background: none; + border: 0; + border-radius: 50%; + color: inherit; + cursor: pointer; + padding: 2px +} + +svg.DocSearch-Hit-Select-Icon { + display: none +} + +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon { + display: block +} + +.DocSearch-Hit-action-button:focus, +.DocSearch-Hit-action-button:hover { + background: rgba(0, 0, 0, .2); + transition: background-color .1s ease-in +} + +@media screen and (prefers-reduced-motion:reduce) { + + .DocSearch-Hit-action-button:focus, + .DocSearch-Hit-action-button:hover { + transition: none + } +} + +.DocSearch-Hit-action-button:focus path, +.DocSearch-Hit-action-button:hover path { + fill: #fff +} + +.DocSearch-Hit-content-wrapper { + display: flex; + flex: 1 1 auto; + flex-direction: column; + font-weight: 500; + justify-content: center; + line-height: 1.2em; + margin: 0 8px; + overflow-x: hidden; + position: relative; + text-overflow: ellipsis; + white-space: nowrap; + width: 80% +} + +.DocSearch-Hit-title { + font-size: .9em +} + +.DocSearch-Hit-path { + color: var(--docsearch-muted-color); + font-size: .75em +} + +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title, +.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree, +.DocSearch-Hit[aria-selected=true] mark { + color: var(--docsearch-hit-active-color) !important +} + +@media screen and (prefers-reduced-motion:reduce) { + + .DocSearch-Hit-action-button:focus, + .DocSearch-Hit-action-button:hover { + background: rgba(0, 0, 0, .2); + transition: none + } +} + +.DocSearch-ErrorScreen, +.DocSearch-NoResults, +.DocSearch-StartScreen { + font-size: .9em; + margin: 0 auto; + padding: 36px 0; + text-align: center; + width: 80% +} + +.DocSearch-Screen-Icon { + color: var(--docsearch-muted-color); + padding-bottom: 12px +} + +.DocSearch-NoResults-Prefill-List { + display: inline-block; + padding-bottom: 24px; + text-align: left +} + +.DocSearch-NoResults-Prefill-List ul { + display: inline-block; + padding: 8px 0 0 +} + +.DocSearch-NoResults-Prefill-List li { + list-style-position: inside; + list-style-type: "\bb " +} + +.DocSearch-Prefill { + appearance: none; + background: none; + border: 0; + border-radius: 1em; + color: var(--docsearch-highlight-color); + cursor: pointer; + display: inline-block; + font-size: 1em; + font-weight: 700; + padding: 0 +} + +.DocSearch-Prefill:focus, +.DocSearch-Prefill:hover { + outline: none; + text-decoration: underline +} + +.DocSearch-Footer { + align-items: center; + background: var(--docsearch-footer-background); + border-radius: 0 0 8px 8px; + box-shadow: var(--docsearch-footer-shadow); + display: flex; + flex-direction: row-reverse; + flex-shrink: 0; + height: var(--docsearch-footer-height); + justify-content: space-between; + padding: 0 var(--docsearch-spacing); + position: relative; + user-select: none; + width: 100%; + z-index: 300 +} + +.DocSearch-Commands { + color: var(--docsearch-muted-color); + display: flex; + list-style: none; + margin: 0; + padding: 0 +} + +.DocSearch-Commands li { + align-items: center; + display: flex +} + +.DocSearch-Commands li:not(:last-of-type) { + margin-right: .8em +} + +.DocSearch-Commands-Key { + align-items: center; + background: var(--docsearch-key-gradient); + border-radius: 2px; + box-shadow: var(--docsearch-key-shadow); + display: flex; + height: 18px; + justify-content: center; + margin-right: .4em; + padding: 0 0 1px; + color: var(--docsearch-muted-color); + border: 0; + width: 20px +} + +@media (max-width:768px) { + :root { + --docsearch-spacing: 10px; + --docsearch-footer-height: 40px + } + + .DocSearch-Dropdown { + height: 100% + } + + .DocSearch-Container { + height: 100vh; + height: -webkit-fill-available; + height: calc(var(--docsearch-vh, 1vh)*100); + position: absolute + } + + .DocSearch-Footer { + border-radius: 0; + bottom: 0; + position: absolute + } + + .DocSearch-Hit-content-wrapper { + display: flex; + position: relative; + width: 80% + } + + .DocSearch-Modal { + border-radius: 0; + box-shadow: none; + height: 100vh; + height: -webkit-fill-available; + height: calc(var(--docsearch-vh, 1vh)*100); + margin: 0; + max-width: 100%; + width: 100% + } + + .DocSearch-Dropdown { + max-height: calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height)) + } + + .DocSearch-Cancel { + appearance: none; + background: none; + border: 0; + color: var(--docsearch-highlight-color); + cursor: pointer; + display: inline-block; + flex: none; + font: inherit; + font-size: 1em; + font-weight: 500; + margin-left: var(--docsearch-spacing); + outline: none; + overflow: hidden; + padding: 0; + user-select: none; + white-space: nowrap + } + + .DocSearch-Commands, + .DocSearch-Hit-Tree { + display: none + } +} + +@keyframes fade-in { + 0% { + opacity: 0 + } + + to { + opacity: 1 + } +} + +.VPNavBarSearch { + display: flex; + align-items: center +} + +@media (min-width: 768px) { + .VPNavBarSearch { + flex-grow: 1; + padding-left: 24px + } +} + +@media (min-width: 960px) { + .VPNavBarSearch { + padding-left: 32px + } +} + +.DocSearch { + --docsearch-primary-color: var(--vp-c-brand); + --docsearch-highlight-color: var(--docsearch-primary-color); + --docsearch-text-color: var(--vp-c-text-1); + --docsearch-muted-color: var(--vp-c-text-2); + --docsearch-searchbox-shadow: none; + --docsearch-searchbox-focus-background: transparent; + --docsearch-key-gradient: transparent; + --docsearch-key-shadow: none; + --docsearch-modal-background: var(--vp-c-bg-soft); + --docsearch-footer-background: var(--vp-c-bg) +} + +.dark .DocSearch { + --docsearch-modal-shadow: none; + --docsearch-footer-shadow: none; + --docsearch-logo-color: var(--vp-c-text-2); + --docsearch-hit-background: var(--vp-c-bg-mute); + --docsearch-hit-color: var(--vp-c-text-2); + --docsearch-hit-shadow: none +} + +.DocSearch-Button { + display: flex; + justify-content: center; + align-items: center; + margin: 0; + padding: 0; + width: 32px; + height: 55px; + background: transparent; + transition: border-color .25s +} + +.DocSearch-Button:hover { + background: transparent +} + +.DocSearch-Button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color +} + +.DocSearch-Button:focus:not(:focus-visible) { + outline: none !important +} + +@media (min-width: 768px) { + .DocSearch-Button { + justify-content: flex-start; + border: 1px solid transparent; + border-radius: 8px; + padding: 0 10px 0 12px; + width: 100%; + height: 40px; + background-color: var(--vp-c-bg-alt) + } + + .DocSearch-Button:hover { + border-color: var(--vp-c-brand); + background: var(--vp-c-bg-alt) + } +} + +.DocSearch-Button .DocSearch-Button-Container { + display: flex; + align-items: center +} + +.DocSearch-Button .DocSearch-Search-Icon { + position: relative; + width: 16px; + height: 16px; + color: var(--vp-c-text-1); + fill: currentColor; + transition: color .5s +} + +.DocSearch-Button:hover .DocSearch-Search-Icon { + color: var(--vp-c-text-1) +} + +@media (min-width: 768px) { + .DocSearch-Button .DocSearch-Search-Icon { + top: 1px; + margin-right: 8px; + width: 14px; + height: 14px; + color: var(--vp-c-text-2) + } +} + +.DocSearch-Button .DocSearch-Button-Placeholder { + display: none; + margin-top: 2px; + padding: 0 16px 0 0; + font-size: 13px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.DocSearch-Button:hover .DocSearch-Button-Placeholder { + color: var(--vp-c-text-1) +} + +@media (min-width: 768px) { + .DocSearch-Button .DocSearch-Button-Placeholder { + display: inline-block + } +} + +.DocSearch-Button .DocSearch-Button-Keys { + display: none; + min-width: auto +} + +@media (min-width: 768px) { + .DocSearch-Button .DocSearch-Button-Keys { + display: flex; + align-items: center + } +} + +.DocSearch-Button .DocSearch-Button-Key { + display: block; + margin: 2px 0 0; + border: 1px solid var(--vp-c-divider); + border-right: none; + border-radius: 4px 0 0 4px; + padding-left: 6px; + min-width: 0; + width: auto; + height: 22px; + line-height: 22px; + font-family: var(--vp-font-family-base); + font-size: 12px; + font-weight: 500; + transition: color .5s, border-color .5s +} + +.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key { + border-right: 1px solid var(--vp-c-divider); + border-left: none; + border-radius: 0 4px 4px 0; + padding-left: 2px; + padding-right: 6px +} + +.DocSearch-Button .DocSearch-Button-Key:first-child { + font-size: 1px; + letter-spacing: -12px; + color: transparent +} + +.DocSearch-Button .DocSearch-Button-Key:first-child:after { + content: var(--5943dbe8); + font-size: 12px; + letter-spacing: normal; + color: var(--docsearch-muted-color) +} + +.DocSearch-Button .DocSearch-Button-Key:first-child>* { + display: none +} + +.dark .DocSearch-Footer { + border-top: 1px solid var(--vp-c-divider) +} + +.DocSearch-Form { + border: 1px solid var(--vp-c-brand); + background-color: var(--vp-c-white) +} + +.dark .DocSearch-Form { + background-color: var(--vp-c-bg-mute) +} + +.icon[data-v-3c355974] { + display: inline-block; + margin-top: -1px; + margin-left: 4px; + width: 11px; + height: 11px; + fill: var(--vp-c-text-3); + transition: fill .25s +} + +.VPNavBarMenuLink[data-v-47a2263e] { + display: flex; + align-items: center; + padding: 0 12px; + line-height: var(--vp-nav-height-mobile); + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: color .25s +} + +.VPNavBarMenuLink.active[data-v-47a2263e], +.VPNavBarMenuLink[data-v-47a2263e]:hover { + color: var(--vp-c-brand) +} + +@media (min-width: 1280px) { + .VPNavBarMenuLink[data-v-47a2263e] { + line-height: var(--vp-nav-height-desktop) + } +} + +.VPMenuGroup+.VPMenuLink[data-v-e8e0fb1d] { + margin: 12px -12px 0; + border-top: 1px solid var(--vp-c-divider-light); + padding: 12px 12px 0 +} + +.link[data-v-e8e0fb1d] { + display: block; + border-radius: 6px; + padding: 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + white-space: nowrap; + transition: background-color .25s, color .25s +} + +.link[data-v-e8e0fb1d]:hover { + color: var(--vp-c-brand); + background-color: var(--vp-c-bg-mute) +} + +.dark .link[data-v-e8e0fb1d]:hover { + background-color: var(--vp-c-bg-soft) +} + +.link.active[data-v-e8e0fb1d] { + color: var(--vp-c-brand) +} + +.VPMenuGroup[data-v-9ca52130] { + margin: 12px -12px 0; + border-top: 1px solid var(--vp-c-divider-light); + padding: 12px 12px 0 +} + +.VPMenuGroup[data-v-9ca52130]:first-child { + margin-top: 0; + border-top: 0; + padding-top: 0 +} + +.VPMenuGroup+.VPMenuGroup[data-v-9ca52130] { + margin-top: 12px; + border-top: 1px solid var(--vp-c-divider-light) +} + +.title[data-v-9ca52130] { + padding: 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 600; + color: var(--vp-c-text-2); + transition: color .25s +} + +.VPMenu[data-v-1c5d0cfc] { + border-radius: 12px; + padding: 12px; + min-width: 128px; + border: 1px solid var(--vp-c-divider-light); + background-color: var(--vp-c-bg); + box-shadow: var(--vp-shadow-3); + transition: background-color .5s; + max-height: calc(100vh - var(--vp-nav-height-mobile)); + overflow-y: auto +} + +@media (min-width: 960px) { + .VPMenu[data-v-1c5d0cfc] { + max-height: calc(100vh - var(--vp-nav-height-desktop)) + } +} + +.dark .VPMenu[data-v-1c5d0cfc] { + box-shadow: var(--vp-shadow-2) +} + +.VPMenu[data-v-1c5d0cfc] .group { + margin: 0 -12px; + padding: 0 12px 12px +} + +.VPMenu[data-v-1c5d0cfc] .group+.group { + border-top: 1px solid var(--vp-c-divider-light); + padding: 11px 12px 12px +} + +.VPMenu[data-v-1c5d0cfc] .group:last-child { + padding-bottom: 0 +} + +.VPMenu[data-v-1c5d0cfc] .group+.item { + border-top: 1px solid var(--vp-c-divider-light); + padding: 11px 16px 0 +} + +.VPMenu[data-v-1c5d0cfc] .item { + padding: 0 16px; + white-space: nowrap +} + +.VPMenu[data-v-1c5d0cfc] .label { + flex-grow: 1; + line-height: 28px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.VPMenu[data-v-1c5d0cfc] .action { + padding-left: 24px +} + +.VPFlyout[data-v-6ffb57d3] { + position: relative +} + +.VPFlyout[data-v-6ffb57d3]:hover { + color: var(--vp-c-brand); + transition: color .25s +} + +.VPFlyout:hover .text[data-v-6ffb57d3] { + color: var(--vp-c-text-2) +} + +.VPFlyout:hover .icon[data-v-6ffb57d3] { + fill: var(--vp-c-text-2) +} + +.VPFlyout.active .text[data-v-6ffb57d3] { + color: var(--vp-c-brand) +} + +.VPFlyout.active:hover .text[data-v-6ffb57d3] { + color: var(--vp-c-brand-dark) +} + +.VPFlyout:hover .menu[data-v-6ffb57d3], +.button[aria-expanded=true]+.menu[data-v-6ffb57d3] { + opacity: 1; + visibility: visible; + transform: translateY(0) +} + +.button[data-v-6ffb57d3] { + display: flex; + align-items: center; + padding: 0 12px; + height: var(--vp-nav-height-mobile); + color: var(--vp-c-text-1); + transition: color .5s +} + +@media (min-width: 960px) { + .button[data-v-6ffb57d3] { + height: var(--vp-nav-height-desktop) + } +} + +.text[data-v-6ffb57d3] { + display: flex; + align-items: center; + line-height: var(--vp-nav-height-mobile); + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: color .25s +} + +@media (min-width: 960px) { + .text[data-v-6ffb57d3] { + line-height: var(--vp-nav-height-desktop) + } +} + +.option-icon[data-v-6ffb57d3] { + margin-right: 0; + width: 16px; + height: 16px; + fill: currentColor +} + +.text-icon[data-v-6ffb57d3] { + margin-left: 4px; + width: 14px; + height: 14px; + fill: currentColor +} + +.icon[data-v-6ffb57d3] { + width: 20px; + height: 20px; + fill: currentColor; + transition: fill .25s +} + +.menu[data-v-6ffb57d3] { + position: absolute; + top: calc(var(--vp-nav-height-mobile) / 2 + 20px); + right: 0; + opacity: 0; + visibility: hidden; + transition: opacity .25s, visibility .25s, transform .25s +} + +@media (min-width: 960px) { + .menu[data-v-6ffb57d3] { + top: calc(var(--vp-nav-height-desktop) / 2 + 20px) + } +} + +.VPNavBarMenu[data-v-f83db6ba] { + display: none +} + +@media (min-width: 768px) { + .VPNavBarMenu[data-v-f83db6ba] { + display: flex + } +} + +.VPNavBarTranslations[data-v-db824e91] { + display: none +} + +@media (min-width: 1280px) { + .VPNavBarTranslations[data-v-db824e91] { + display: flex; + align-items: center + } +} + +.title[data-v-db824e91] { + padding: 0 24px 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 700; + color: var(--vp-c-text-1) +} + +.VPSwitch[data-v-eba7420e] { + position: relative; + border-radius: 11px; + display: block; + width: 40px; + height: 22px; + flex-shrink: 0; + border: 1px solid var(--vp-c-divider); + background-color: var(--vp-c-bg-mute); + transition: border-color .25s +} + +.VPSwitch[data-v-eba7420e]:hover { + border-color: var(--vp-c-gray) +} + +.check[data-v-eba7420e] { + position: absolute; + top: 1px; + left: 1px; + width: 18px; + height: 18px; + border-radius: 50%; + background-color: var(--vp-c-white); + box-shadow: var(--vp-shadow-1); + transition: transform .25s +} + +.dark .check[data-v-eba7420e] { + background-color: var(--vp-c-black) +} + +.icon[data-v-eba7420e] { + position: relative; + display: block; + width: 18px; + height: 18px; + border-radius: 50%; + overflow: hidden +} + +.icon[data-v-eba7420e] svg { + position: absolute; + top: 3px; + left: 3px; + width: 12px; + height: 12px; + fill: var(--vp-c-text-2) +} + +.dark .icon[data-v-eba7420e] svg { + fill: var(--vp-c-text-1); + transition: opacity .25s +} + +.sun[data-v-481098f9] { + opacity: 1 +} + +.moon[data-v-481098f9], +.dark .sun[data-v-481098f9] { + opacity: 0 +} + +.dark .moon[data-v-481098f9] { + opacity: 1 +} + +.dark .VPSwitchAppearance[data-v-481098f9] .check { + transform: translate(18px) +} + +.VPNavBarAppearance[data-v-a3e7452b] { + display: none +} + +@media (min-width: 1280px) { + .VPNavBarAppearance[data-v-a3e7452b] { + display: flex; + align-items: center + } +} + +.VPSocialLink[data-v-e57698f6] { + display: flex; + justify-content: center; + align-items: center; + width: 36px; + height: 36px; + color: var(--vp-c-text-2); + transition: color .5s +} + +.VPSocialLink[data-v-e57698f6]:hover { + color: var(--vp-c-text-1); + transition: color .25s +} + +.VPSocialLink[data-v-e57698f6]>svg { + width: 20px; + height: 20px; + fill: currentColor +} + +.VPSocialLinks[data-v-f6988cfb] { + display: flex; + flex-wrap: wrap; + justify-content: center +} + +.VPNavBarSocialLinks[data-v-738bef5a] { + display: none +} + +@media (min-width: 1280px) { + .VPNavBarSocialLinks[data-v-738bef5a] { + display: flex; + align-items: center + } +} + +.VPNavBarExtra[data-v-e4361c82] { + display: none; + margin-right: -12px +} + +@media (min-width: 768px) { + .VPNavBarExtra[data-v-e4361c82] { + display: block + } +} + +@media (min-width: 1280px) { + .VPNavBarExtra[data-v-e4361c82] { + display: none + } +} + +.trans-title[data-v-e4361c82] { + padding: 0 24px 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 700; + color: var(--vp-c-text-1) +} + +.item.appearance[data-v-e4361c82], +.item.social-links[data-v-e4361c82] { + display: flex; + align-items: center; + padding: 0 12px +} + +.item.appearance[data-v-e4361c82] { + min-width: 176px +} + +.appearance-action[data-v-e4361c82] { + margin-right: -2px +} + +.social-links-list[data-v-e4361c82] { + margin: -4px -8px +} + +.VPNavBarHamburger[data-v-e5dd9c1c] { + display: flex; + justify-content: center; + align-items: center; + width: 48px; + height: var(--vp-nav-height) +} + +@media (min-width: 768px) { + .VPNavBarHamburger[data-v-e5dd9c1c] { + display: none + } +} + +.container[data-v-e5dd9c1c] { + position: relative; + width: 16px; + height: 14px; + overflow: hidden +} + +.VPNavBarHamburger:hover .top[data-v-e5dd9c1c] { + top: 0; + left: 0; + transform: translate(4px) +} + +.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c] { + top: 6px; + left: 0; + transform: translate(0) +} + +.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c] { + top: 12px; + left: 0; + transform: translate(8px) +} + +.VPNavBarHamburger.active .top[data-v-e5dd9c1c] { + top: 6px; + transform: translate(0) rotate(225deg) +} + +.VPNavBarHamburger.active .middle[data-v-e5dd9c1c] { + top: 6px; + transform: translate(16px) +} + +.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c] { + top: 6px; + transform: translate(0) rotate(135deg) +} + +.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c], +.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c], +.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c] { + background-color: var(--vp-c-text-2); + transition: top .25s, background-color .25s, transform .25s +} + +.top[data-v-e5dd9c1c], +.middle[data-v-e5dd9c1c], +.bottom[data-v-e5dd9c1c] { + position: absolute; + width: 16px; + height: 2px; + background-color: var(--vp-c-text-1); + transition: top .25s, background-color .5s, transform .25s +} + +.top[data-v-e5dd9c1c] { + top: 0; + left: 0; + transform: translate(0) +} + +.middle[data-v-e5dd9c1c] { + top: 6px; + left: 0; + transform: translate(8px) +} + +.bottom[data-v-e5dd9c1c] { + top: 12px; + left: 0; + transform: translate(4px) +} + +.VPNavBar[data-v-6f1d18b5] { + position: relative; + border-bottom: 1px solid var(--vp-c-divider-light); + padding: 0 8px 0 24px; + height: var(--vp-nav-height-mobile); + transition: border-color .5s, background-color .5s; + pointer-events: none +} + +@media (min-width: 768px) { + .VPNavBar[data-v-6f1d18b5] { + padding: 0 32px + } +} + +@media (min-width: 960px) { + .VPNavBar[data-v-6f1d18b5] { + height: var(--vp-nav-height-desktop); + border-bottom: 0 + } + + .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + margin-right: -32px; + padding-right: 32px; + -webkit-backdrop-filter: saturate(50%) blur(8px); + backdrop-filter: saturate(50%) blur(8px); + background: rgba(255, 255, 255, .7) + } + + .dark .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + background: rgba(36, 36, 36, .7) + } + + @supports not (backdrop-filter: saturate(50%) blur(8px)) { + .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + background: rgba(255, 255, 255, .95) + } + + .dark .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + background: rgba(36, 36, 36, .95) + } + } +} + +.container[data-v-6f1d18b5] { + display: flex; + justify-content: space-between; + margin: 0 auto; + max-width: calc(var(--vp-layout-max-width) - 64px); + pointer-events: none +} + +.container[data-v-6f1d18b5] * { + pointer-events: auto +} + +.content[data-v-6f1d18b5] { + display: flex; + justify-content: flex-end; + align-items: center; + flex-grow: 1 +} + +.menu+.translations[data-v-6f1d18b5]:before, +.menu+.appearance[data-v-6f1d18b5]:before, +.menu+.social-links[data-v-6f1d18b5]:before, +.translations+.appearance[data-v-6f1d18b5]:before, +.appearance+.social-links[data-v-6f1d18b5]:before { + margin-right: 8px; + margin-left: 8px; + width: 1px; + height: 24px; + background-color: var(--vp-c-divider-light); + content: "" +} + +.menu+.appearance[data-v-6f1d18b5]:before, +.translations+.appearance[data-v-6f1d18b5]:before { + margin-right: 16px +} + +.appearance+.social-links[data-v-6f1d18b5]:before { + margin-left: 16px +} + +.social-links[data-v-6f1d18b5] { + margin-right: -8px +} + +.VPNavScreenMenuLink[data-v-b7098508] { + display: block; + border-bottom: 1px solid var(--vp-c-divider-light); + padding: 12px 0 11px; + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: border-color .5s, color .25s +} + +.VPNavScreenMenuLink[data-v-b7098508]:hover { + color: var(--vp-c-brand) +} + +.VPNavScreenMenuGroupLink[data-v-7f173864] { + display: block; + line-height: 32px; + font-size: 13px; + font-weight: 400; + color: var(--vp-c-text-1); + transition: color .25s; + margin-left: 12px +} + +.VPNavScreenMenuGroupLink[data-v-7f173864]:hover { + color: var(--vp-c-brand) +} + +.VPNavScreenMenuGroupSection[data-v-7478538b] { + display: block +} + +.title[data-v-7478538b] { + line-height: 32px; + font-size: 13px; + font-weight: 700; + color: var(--vp-c-text-2); + transition: color .25s +} + +.VPNavScreenMenuGroup[data-v-5bc84358] { + border-bottom: 1px solid var(--vp-c-divider-light); + height: 48px; + overflow: hidden; + transition: border-color .5s +} + +.VPNavScreenMenuGroup .items[data-v-5bc84358] { + visibility: hidden +} + +.VPNavScreenMenuGroup.open .items[data-v-5bc84358] { + visibility: visible +} + +.VPNavScreenMenuGroup.open[data-v-5bc84358] { + padding-bottom: 10px; + height: auto +} + +.VPNavScreenMenuGroup.open .button[data-v-5bc84358] { + padding-bottom: 6px; + color: var(--vp-c-brand) +} + +.VPNavScreenMenuGroup.open .button-icon[data-v-5bc84358] { + transform: rotate(45deg) +} + +.button[data-v-5bc84358] { + display: flex; + justify-content: space-between; + align-items: center; + padding: 12px 4px 11px 0; + width: 100%; + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: color .25s +} + +.button[data-v-5bc84358]:hover { + color: var(--vp-c-brand) +} + +.button-icon[data-v-5bc84358] { + width: 14px; + height: 14px; + fill: var(--vp-c-text-2); + transition: fill .5s, transform .25s +} + +.group[data-v-5bc84358]:first-child { + padding-top: 0 +} + +.group+.group[data-v-5bc84358], +.group+.item[data-v-5bc84358] { + padding-top: 4px +} + +.VPNavScreenAppearance[data-v-7bc19822] { + display: flex; + justify-content: space-between; + align-items: center; + border-radius: 8px; + padding: 12px 14px 12px 16px; + background-color: var(--vp-c-bg-soft); + transition: background-color .5s +} + +.text[data-v-7bc19822] { + line-height: 24px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.VPNavScreenTranslations[data-v-6bfcad30] { + height: 24px; + overflow: hidden +} + +.VPNavScreenTranslations.open[data-v-6bfcad30] { + height: auto +} + +.title[data-v-6bfcad30] { + display: flex; + align-items: center; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1) +} + +.icon[data-v-6bfcad30] { + width: 16px; + height: 16px; + fill: currentColor +} + +.icon.lang[data-v-6bfcad30] { + margin-right: 8px +} + +.icon.chevron[data-v-6bfcad30] { + margin-left: 4px +} + +.list[data-v-6bfcad30] { + padding: 4px 0 0 24px +} + +.link[data-v-6bfcad30] { + line-height: 32px; + font-size: 13px; + color: var(--vp-c-text-1) +} + +.VPNavScreen[data-v-4a289eba] { + position: fixed; + top: calc(var(--vp-nav-height-mobile) + var(--vp-layout-top-height, 0px)); + right: 0; + bottom: 0; + left: 0; + padding: 0 32px; + width: 100%; + background-color: var(--vp-c-bg); + overflow-y: auto; + transition: background-color .5s; + pointer-events: auto +} + +.VPNavScreen.fade-enter-active[data-v-4a289eba], +.VPNavScreen.fade-leave-active[data-v-4a289eba] { + transition: opacity .25s +} + +.VPNavScreen.fade-enter-active .container[data-v-4a289eba], +.VPNavScreen.fade-leave-active .container[data-v-4a289eba] { + transition: transform .25s ease +} + +.VPNavScreen.fade-enter-from[data-v-4a289eba], +.VPNavScreen.fade-leave-to[data-v-4a289eba] { + opacity: 0 +} + +.VPNavScreen.fade-enter-from .container[data-v-4a289eba], +.VPNavScreen.fade-leave-to .container[data-v-4a289eba] { + transform: translateY(-8px) +} + +@media (min-width: 768px) { + .VPNavScreen[data-v-4a289eba] { + display: none + } +} + +.container[data-v-4a289eba] { + margin: 0 auto; + padding: 24px 0 96px; + max-width: 288px +} + +.menu+.translations[data-v-4a289eba], +.menu+.appearance[data-v-4a289eba], +.translations+.appearance[data-v-4a289eba] { + margin-top: 24px +} + +.menu+.social-links[data-v-4a289eba] { + margin-top: 16px +} + +.appearance+.social-links[data-v-4a289eba] { + margin-top: 16px +} + +.VPNav[data-v-a50780ff] { + position: relative; + top: var(--vp-layout-top-height, 0px); + left: 0; + z-index: var(--vp-z-index-nav); + width: 100%; + pointer-events: none +} + +@media (min-width: 960px) { + .VPNav[data-v-a50780ff] { + position: fixed + } + + .VPNav.no-sidebar[data-v-a50780ff] { + -webkit-backdrop-filter: saturate(50%) blur(8px); + backdrop-filter: saturate(50%) blur(8px); + background: rgba(255, 255, 255, .7) + } + + .dark .VPNav.no-sidebar[data-v-a50780ff] { + background: rgba(36, 36, 36, .7) + } + + @supports not (backdrop-filter: saturate(50%) blur(8px)) { + .VPNav.no-sidebar[data-v-a50780ff] { + background: rgba(255, 255, 255, .95) + } + + .dark .VPNav.no-sidebar[data-v-a50780ff] { + background: rgba(36, 36, 36, .95) + } + } +} + +.VPLocalNav[data-v-b6162a8b] { + position: sticky; + top: 0; + left: 0; + z-index: var(--vp-z-index-local-nav); + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid var(--vp-c-divider-light); + width: 100%; + background-color: var(--vp-c-bg); + transition: border-color .5s, background-color .5s; + padding-top: var(--vp-layout-top-height, 0px) +} + +@media (min-width: 960px) { + .VPLocalNav[data-v-b6162a8b] { + display: none + } +} + +.menu[data-v-b6162a8b] { + display: flex; + align-items: center; + padding: 12px 24px 11px; + line-height: 24px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.menu[data-v-b6162a8b]:hover { + color: var(--vp-c-text-1); + transition: color .25s +} + +@media (min-width: 768px) { + .menu[data-v-b6162a8b] { + padding: 0 32px + } +} + +.menu-icon[data-v-b6162a8b] { + margin-right: 8px; + width: 16px; + height: 16px; + fill: currentColor +} + +.top-link[data-v-b6162a8b] { + display: block; + padding: 12px 24px 11px; + line-height: 24px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.top-link[data-v-b6162a8b]:hover { + color: var(--vp-c-text-1); + transition: color .25s +} + +@media (min-width: 768px) { + .top-link[data-v-b6162a8b] { + padding: 12px 32px 11px + } +} + +.link[data-v-36b976d1] { + display: block; + margin: 4px 0; + color: var(--vp-c-text-2); + transition: color .5s +} + +.link[data-v-36b976d1]:hover { + color: var(--vp-c-text-1) +} + +.link.active[data-v-36b976d1] { + color: var(--vp-c-brand) +} + +.link[data-v-36b976d1] .icon { + width: 12px; + height: 12px; + fill: currentColor +} + +.link-text[data-v-36b976d1] { + line-height: 20px; + font-size: 14px; + font-weight: 500 +} + +.link-text.light[data-v-36b976d1] { + font-size: 13px; + font-weight: 400 +} + +.title[data-v-6e45c352] { + display: flex; + justify-content: space-between; + align-items: flex-start; + z-index: 2 +} + +.title-text[data-v-6e45c352] { + padding-top: 6px; + padding-bottom: 6px; + line-height: 20px; + font-size: 14px; + font-weight: 700; + color: var(--vp-c-text-1) +} + +.action[data-v-6e45c352] { + display: none; + position: relative; + margin-right: -8px; + border-radius: 4px; + width: 32px; + height: 32px; + color: var(--vp-c-text-3); + transition: color .25s +} + +.VPSidebarGroup.collapsible .action[data-v-6e45c352] { + display: block +} + +.VPSidebarGroup.collapsible .title[data-v-6e45c352] { + cursor: pointer +} + +.title:hover .action[data-v-6e45c352] { + color: var(--vp-c-text-2) +} + +.icon[data-v-6e45c352] { + position: absolute; + top: 8px; + left: 8px; + width: 16px; + height: 16px; + fill: currentColor +} + +.icon.minus[data-v-6e45c352] { + opacity: 1 +} + +.icon.plus[data-v-6e45c352], +.VPSidebarGroup.collapsed .icon.minus[data-v-6e45c352] { + opacity: 0 +} + +.VPSidebarGroup.collapsed .icon.plus[data-v-6e45c352] { + opacity: 1 +} + +.items[data-v-6e45c352] { + overflow: hidden +} + +.VPSidebarGroup.collapsed .items[data-v-6e45c352] { + margin-bottom: -22px; + max-height: 0 +} + +@media (min-width: 960px) { + .VPSidebarGroup.collapsed .items[data-v-6e45c352] { + margin-bottom: -14px + } +} + +.VPSidebar[data-v-a186aa16] { + position: fixed; + top: var(--vp-layout-top-height, 0px); + bottom: 0; + left: 0; + z-index: var(--vp-z-index-sidebar); + padding: 32px 32px 96px; + width: calc(100vw - 64px); + max-width: 320px; + background-color: var(--vp-c-bg); + opacity: 0; + box-shadow: var(--vp-c-shadow-3); + overflow-x: hidden; + overflow-y: auto; + transform: translate(-100%); + transition: opacity .5s, transform .25s ease +} + +.VPSidebar.open[data-v-a186aa16] { + opacity: 1; + visibility: visible; + transform: translate(0); + transition: opacity .25s, transform .5s cubic-bezier(.19, 1, .22, 1) +} + +.dark .VPSidebar[data-v-a186aa16] { + box-shadow: var(--vp-shadow-1) +} + +@media (min-width: 960px) { + .VPSidebar[data-v-a186aa16] { + z-index: 1; + padding-top: var(--vp-nav-height-desktop); + padding-bottom: 128px; + width: var(--vp-sidebar-width); + max-width: 100%; + background-color: var(--vp-c-bg-alt); + opacity: 1; + visibility: visible; + box-shadow: none; + transform: translate(0) + } +} + +@media (min-width: 1440px) { + .VPSidebar[data-v-a186aa16] { + padding-left: max(32px, calc((100% - (var(--vp-layout-max-width) - 64px)) / 2)); + width: calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px) + } +} + +.nav[data-v-a186aa16] { + outline: 0 +} + +.group+.group[data-v-a186aa16] { + margin-top: 32px; + border-top: 1px solid var(--vp-c-divider-light); + padding-top: 10px +} + +@media (min-width: 960px) { + .group[data-v-a186aa16] { + padding-top: 10px; + width: calc(var(--vp-sidebar-width) - 64px) + } + + .group+.group[data-v-a186aa16] { + margin-top: 24px + } +} + +.VPButton[data-v-53dbb8eb] { + display: inline-block; + border: 1px solid transparent; + text-align: center; + font-weight: 500; + white-space: nowrap; + transition: color .25s, border-color .25s, background-color .25s +} + +.VPButton[data-v-53dbb8eb]:active { + transition: color .1s, border-color .1s, background-color .1s +} + +.VPButton.medium[data-v-53dbb8eb] { + border-radius: 20px; + padding: 0 20px; + line-height: 38px; + font-size: 14px +} + +.VPButton.big[data-v-53dbb8eb] { + border-radius: 24px; + padding: 0 24px; + line-height: 46px; + font-size: 16px +} + +.VPButton.brand[data-v-53dbb8eb] { + border-color: var(--vp-button-brand-border); + color: var(--vp-button-brand-text); + background-color: var(--vp-button-brand-bg) +} + +.VPButton.brand[data-v-53dbb8eb]:hover { + border-color: var(--vp-button-brand-hover-border); + color: var(--vp-button-brand-hover-text); + background-color: var(--vp-button-brand-hover-bg) +} + +.VPButton.brand[data-v-53dbb8eb]:active { + border-color: var(--vp-button-brand-active-border); + color: var(--vp-button-brand-active-text); + background-color: var(--vp-button-brand-active-bg) +} + +.VPButton.alt[data-v-53dbb8eb] { + border-color: var(--vp-button-alt-border); + color: var(--vp-button-alt-text); + background-color: var(--vp-button-alt-bg) +} + +.VPButton.alt[data-v-53dbb8eb]:hover { + border-color: var(--vp-button-alt-hover-border); + color: var(--vp-button-alt-hover-text); + background-color: var(--vp-button-alt-hover-bg) +} + +.VPButton.alt[data-v-53dbb8eb]:active { + border-color: var(--vp-button-alt-active-border); + color: var(--vp-button-alt-active-text); + background-color: var(--vp-button-alt-active-bg) +} + +.VPButton.sponsor[data-v-53dbb8eb] { + border-color: var(--vp-button-sponsor-border); + color: var(--vp-button-sponsor-text); + background-color: var(--vp-button-sponsor-bg) +} + +.VPButton.sponsor[data-v-53dbb8eb]:hover { + border-color: var(--vp-button-sponsor-hover-border); + color: var(--vp-button-sponsor-hover-text); + background-color: var(--vp-button-sponsor-hover-bg) +} + +.VPButton.sponsor[data-v-53dbb8eb]:active { + border-color: var(--vp-button-sponsor-active-border); + color: var(--vp-button-sponsor-active-text); + background-color: var(--vp-button-sponsor-active-bg) +} + +.VPHero[data-v-0a0d4301] { + margin-top: calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1); + padding: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px +} + +@media (min-width: 640px) { + .VPHero[data-v-0a0d4301] { + padding: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px + } +} + +@media (min-width: 960px) { + .VPHero[data-v-0a0d4301] { + padding: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px + } +} + +.container[data-v-0a0d4301] { + display: flex; + flex-direction: column; + margin: 0 auto; + max-width: 1152px +} + +@media (min-width: 960px) { + .container[data-v-0a0d4301] { + flex-direction: row + } +} + +.main[data-v-0a0d4301] { + position: relative; + z-index: 10; + order: 2; + flex-grow: 1; + flex-shrink: 0 +} + +.VPHero.has-image .container[data-v-0a0d4301] { + text-align: center +} + +@media (min-width: 960px) { + .VPHero.has-image .container[data-v-0a0d4301] { + text-align: left + } +} + +@media (min-width: 960px) { + .main[data-v-0a0d4301] { + order: 1; + width: calc((100% / 3) * 2) + } + + .VPHero.has-image .main[data-v-0a0d4301] { + max-width: 592px + } +} + +.name[data-v-0a0d4301], +.text[data-v-0a0d4301] { + max-width: 392px; + letter-spacing: -.4px; + line-height: 40px; + font-size: 32px; + font-weight: 700; + white-space: pre-wrap +} + +.VPHero.has-image .name[data-v-0a0d4301], +.VPHero.has-image .text[data-v-0a0d4301] { + margin: 0 auto +} + +.name[data-v-0a0d4301] { + color: var(--vp-home-hero-name-color) +} + +.clip[data-v-0a0d4301] { + background: var(--vp-home-hero-name-background); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: var(--vp-home-hero-name-color) +} + +@media (min-width: 640px) { + + .name[data-v-0a0d4301], + .text[data-v-0a0d4301] { + max-width: 576px; + line-height: 56px; + font-size: 48px + } +} + +@media (min-width: 960px) { + + .name[data-v-0a0d4301], + .text[data-v-0a0d4301] { + line-height: 64px; + font-size: 56px + } + + .VPHero.has-image .name[data-v-0a0d4301], + .VPHero.has-image .text[data-v-0a0d4301] { + margin: 0 + } +} + +.tagline[data-v-0a0d4301] { + padding-top: 8px; + max-width: 392px; + line-height: 28px; + font-size: 18px; + font-weight: 500; + white-space: pre-wrap; + color: var(--vp-c-text-2) +} + +.VPHero.has-image .tagline[data-v-0a0d4301] { + margin: 0 auto +} + +@media (min-width: 640px) { + .tagline[data-v-0a0d4301] { + padding-top: 12px; + max-width: 576px; + line-height: 32px; + font-size: 20px + } +} + +@media (min-width: 960px) { + .tagline[data-v-0a0d4301] { + line-height: 36px; + font-size: 24px + } + + .VPHero.has-image .tagline[data-v-0a0d4301] { + margin: 0 + } +} + +.actions[data-v-0a0d4301] { + display: flex; + flex-wrap: wrap; + margin: -6px; + padding-top: 24px +} + +.VPHero.has-image .actions[data-v-0a0d4301] { + justify-content: center +} + +@media (min-width: 640px) { + .actions[data-v-0a0d4301] { + padding-top: 32px + } +} + +@media (min-width: 960px) { + .VPHero.has-image .actions[data-v-0a0d4301] { + justify-content: flex-start + } +} + +.action[data-v-0a0d4301] { + flex-shrink: 0; + padding: 6px +} + +.image[data-v-0a0d4301] { + order: 1; + margin: -76px -24px -48px +} + +@media (min-width: 640px) { + .image[data-v-0a0d4301] { + margin: -108px -24px -48px + } +} + +@media (min-width: 960px) { + .image[data-v-0a0d4301] { + flex-grow: 1; + order: 2; + margin: 0; + min-height: 100% + } +} + +.image-container[data-v-0a0d4301] { + position: relative; + margin: 0 auto; + width: 320px; + height: 320px +} + +@media (min-width: 640px) { + .image-container[data-v-0a0d4301] { + width: 392px; + height: 392px + } +} + +@media (min-width: 960px) { + .image-container[data-v-0a0d4301] { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + transform: translate(-32px, -32px) + } +} + +.image-bg[data-v-0a0d4301] { + position: absolute; + top: 50%; + left: 50%; + border-radius: 50%; + width: 192px; + height: 192px; + background-image: var(--vp-home-hero-image-background-image); + filter: var(--vp-home-hero-image-filter); + transform: translate(-50%, -50%) +} + +@media (min-width: 640px) { + .image-bg[data-v-0a0d4301] { + width: 256px; + height: 256px + } +} + +@media (min-width: 960px) { + .image-bg[data-v-0a0d4301] { + width: 320px; + height: 320px + } +} + +[data-v-0a0d4301] .image-src { + position: absolute; + top: 50%; + left: 50%; + max-width: 192px; + transform: translate(-50%, -50%) +} + +@media (min-width: 640px) { + [data-v-0a0d4301] .image-src { + max-width: 256px + } +} + +@media (min-width: 960px) { + [data-v-0a0d4301] .image-src { + max-width: 320px + } +} + +.VPFeature[data-v-b8147458] { + display: block; + border: 1px solid var(--vp-c-bg-soft); + border-radius: 12px; + height: 100%; + background-color: var(--vp-c-bg-soft); + transition: border-color .25s, background-color .25s +} + +.VPFeature.link[data-v-b8147458]:hover { + border-color: var(--vp-c-brand); + background-color: var(--vp-c-bg) +} + +.dark .VPFeature.link[data-v-b8147458]:hover { + background-color: var(--vp-c-bg-mute) +} + +.box[data-v-b8147458] { + display: flex; + flex-direction: column; + padding: 24px; + height: 100% +} + +.icon[data-v-b8147458] { + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 20px; + border-radius: 6px; + background-color: var(--vp-c-gray-light-4); + width: 48px; + height: 48px; + font-size: 24px; + transition: background-color .25s +} + +.dark .icon[data-v-b8147458] { + background-color: var(--vp-c-gray-dark-5) +} + +.title[data-v-b8147458] { + line-height: 24px; + font-size: 16px; + font-weight: 600 +} + +.details[data-v-b8147458] { + flex-grow: 1; + padding-top: 8px; + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.link-text[data-v-b8147458] { + padding-top: 8px +} + +.link-text-value[data-v-b8147458] { + display: flex; + align-items: center; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: color .25s +} + +.VPFeature.link:hover .link-text-value[data-v-b8147458] { + color: var(--vp-c-brand-dark) +} + +.link-text-icon[data-v-b8147458] { + display: inline-block; + margin-left: 6px; + width: 14px; + height: 14px; + fill: currentColor +} + +.VPFeatures[data-v-69662dc1] { + position: relative; + padding: 0 24px +} + +@media (min-width: 640px) { + .VPFeatures[data-v-69662dc1] { + padding: 0 48px + } +} + +@media (min-width: 960px) { + .VPFeatures[data-v-69662dc1] { + padding: 0 64px + } +} + +.container[data-v-69662dc1] { + margin: 0 auto; + max-width: 1152px +} + +.items[data-v-69662dc1] { + display: flex; + flex-wrap: wrap; + margin: -8px +} + +.item[data-v-69662dc1] { + padding: 8px; + width: 100% +} + +@media (min-width: 640px) { + + .item.grid-2[data-v-69662dc1], + .item.grid-4[data-v-69662dc1], + .item.grid-6[data-v-69662dc1] { + width: 50% + } +} + +@media (min-width: 768px) { + + .item.grid-2[data-v-69662dc1], + .item.grid-4[data-v-69662dc1] { + width: 50% + } + + .item.grid-3[data-v-69662dc1], + .item.grid-6[data-v-69662dc1] { + width: calc(100% / 3) + } +} + +@media (min-width: 960px) { + .item.grid-4[data-v-69662dc1] { + width: 25% + } +} + +.VPHome[data-v-1db23833] { + padding-bottom: 96px +} + +.VPHome[data-v-1db23833] .VPHomeSponsors { + margin-top: 112px; + margin-bottom: -128px +} + +@media (min-width: 768px) { + .VPHome[data-v-1db23833] { + padding-bottom: 128px + } +} + +.root[data-v-1188541a] { + position: relative; + z-index: 1 +} + +.nested[data-v-1188541a] { + padding-left: 13px +} + +.outline-link[data-v-1188541a] { + display: block; + line-height: 28px; + color: var(--vp-c-text-2); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + transition: color .5s +} + +.outline-link[data-v-1188541a]:hover, +.outline-link.active[data-v-1188541a] { + color: var(--vp-c-text-1); + transition: color .25s +} + +.outline-link.nested[data-v-1188541a] { + padding-left: 13px +} + +.VPDocAsideOutline[data-v-2865c0b0] { + display: none +} + +.VPDocAsideOutline.has-outline[data-v-2865c0b0] { + display: block +} + +.content[data-v-2865c0b0] { + position: relative; + border-left: 1px solid var(--vp-c-divider-light); + padding-left: 16px; + font-size: 13px; + font-weight: 500 +} + +.outline-marker[data-v-2865c0b0] { + position: absolute; + top: 32px; + left: -1px; + z-index: 0; + opacity: 0; + width: 1px; + height: 18px; + background-color: var(--vp-c-brand); + transition: top .25s cubic-bezier(0, 1, .5, 1), background-color .5s, opacity .25s +} + +.outline-title[data-v-2865c0b0] { + letter-spacing: .4px; + line-height: 28px; + font-size: 13px; + font-weight: 600 +} + +.VPDocAside[data-v-afc4c1a1] { + display: flex; + flex-direction: column; + flex-grow: 1 +} + +.spacer[data-v-afc4c1a1] { + flex-grow: 1 +} + +.VPDocAside[data-v-afc4c1a1] .spacer+.VPDocAsideSponsors, +.VPDocAside[data-v-afc4c1a1] .spacer+.VPDocAsideCarbonAds { + margin-top: 24px +} + +.VPDocAside[data-v-afc4c1a1] .VPDocAsideSponsors+.VPDocAsideCarbonAds { + margin-top: 16px +} + +.VPLastUpdated[data-v-18fe8fc2] { + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +@media (min-width: 640px) { + .VPLastUpdated[data-v-18fe8fc2] { + line-height: 32px; + font-size: 14px; + font-weight: 500 + } +} + +.VPDocFooter[data-v-21f75714] { + margin-top: 64px +} + +.edit-info[data-v-21f75714] { + padding-bottom: 18px +} + +@media (min-width: 640px) { + .edit-info[data-v-21f75714] { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 14px + } +} + +.edit-link-button[data-v-21f75714] { + display: flex; + align-items: center; + border: 0; + line-height: 32px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: color .25s +} + +.edit-link-button[data-v-21f75714]:hover { + color: var(--vp-c-brand-dark) +} + +.edit-link-icon[data-v-21f75714] { + margin-right: 8px; + width: 14px; + height: 14px; + fill: currentColor +} + +.prev-next[data-v-21f75714] { + border-top: 1px solid var(--vp-c-divider-light); + padding-top: 24px +} + +@media (min-width: 640px) { + .prev-next[data-v-21f75714] { + display: flex + } +} + +.pager.has-prev[data-v-21f75714] { + padding-top: 8px +} + +@media (min-width: 640px) { + .pager[data-v-21f75714] { + display: flex; + flex-direction: column; + flex-shrink: 0; + width: 50% + } + + .pager.has-prev[data-v-21f75714] { + padding-top: 0; + padding-left: 16px + } +} + +.pager-link[data-v-21f75714] { + display: block; + border: 1px solid var(--vp-c-divider-light); + border-radius: 8px; + padding: 11px 16px 13px; + width: 100%; + height: 100%; + transition: border-color .25s +} + +.pager-link[data-v-21f75714]:hover { + border-color: var(--vp-c-brand) +} + +.pager-link:hover .title[data-v-21f75714] { + color: var(--vp-c-brand-dark) +} + +.pager-link.next[data-v-21f75714] { + margin-left: auto; + text-align: right +} + +.desc[data-v-21f75714] { + display: block; + line-height: 20px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.title[data-v-21f75714] { + display: block; + line-height: 20px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: color .25s +} + +.VPDoc[data-v-cfb513e0] { + padding: 32px 24px 96px; + width: 100% +} + +@media (min-width: 768px) { + .VPDoc[data-v-cfb513e0] { + padding: 48px 32px 128px + } +} + +@media (min-width: 960px) { + .VPDoc[data-v-cfb513e0] { + padding: 32px 32px 0 + } + + .VPDoc:not(.has-sidebar) .container[data-v-cfb513e0] { + display: flex; + justify-content: center; + max-width: 992px + } + + .VPDoc:not(.has-sidebar) .content[data-v-cfb513e0] { + max-width: 752px + } +} + +@media (min-width: 1280px) { + .VPDoc .container[data-v-cfb513e0] { + display: flex; + justify-content: center + } + + .VPDoc .aside[data-v-cfb513e0] { + display: block + } +} + +@media (min-width: 1440px) { + .VPDoc:not(.has-sidebar) .content[data-v-cfb513e0] { + max-width: 784px + } + + .VPDoc:not(.has-sidebar) .container[data-v-cfb513e0] { + max-width: 1104px + } +} + +.container[data-v-cfb513e0] { + margin: 0 auto; + width: 100% +} + +.aside[data-v-cfb513e0] { + position: relative; + display: none; + order: 2; + flex-grow: 1; + padding-left: 32px; + width: 100%; + max-width: 256px +} + +.aside-container[data-v-cfb513e0] { + position: sticky; + top: 0; + margin-top: calc((var(--vp-nav-height-desktop) + var(--vp-layout-top-height, 0px)) * -1 - 32px); + padding-top: calc(var(--vp-nav-height-desktop) + var(--vp-layout-top-height, 0px) + 32px); + height: 100vh; + overflow-x: hidden; + overflow-y: auto; + scrollbar-width: none +} + +.aside-container[data-v-cfb513e0]::-webkit-scrollbar { + display: none +} + +.aside-curtain[data-v-cfb513e0] { + position: fixed; + bottom: 0; + z-index: 10; + width: 224px; + height: 32px; + background: linear-gradient(transparent, var(--vp-c-bg) 70%) +} + +.aside-content[data-v-cfb513e0] { + display: flex; + flex-direction: column; + min-height: calc(100vh - (var(--vp-nav-height-desktop) + var(--vp-layout-top-height, 0px) + 32px)); + padding-bottom: 32px +} + +.content[data-v-cfb513e0] { + position: relative; + margin: 0 auto; + width: 100% +} + +@media (min-width: 960px) { + .content[data-v-cfb513e0] { + padding: 0 32px 128px + } +} + +@media (min-width: 1280px) { + .content[data-v-cfb513e0] { + order: 1; + margin: 0; + min-width: 640px + } +} + +.content-container[data-v-cfb513e0] { + margin: 0 auto +} + +.VPDoc.has-aside .content-container[data-v-cfb513e0] { + max-width: 688px +} + +.VPContent[data-v-d981fe29] { + flex-grow: 1; + flex-shrink: 0; + margin: var(--vp-layout-top-height, 0px) auto 0; + width: 100% +} + +.VPContent.is-home[data-v-d981fe29] { + width: 100%; + max-width: 100% +} + +.VPContent.has-sidebar[data-v-d981fe29] { + margin: 0 +} + +@media (min-width: 960px) { + .VPContent[data-v-d981fe29] { + padding-top: var(--vp-nav-height) + } + + .VPContent.has-sidebar[data-v-d981fe29] { + margin: var(--vp-layout-top-height, 0px) 0 0; + padding-left: var(--vp-sidebar-width) + } +} + +@media (min-width: 1440px) { + .VPContent.has-sidebar[data-v-d981fe29] { + padding-right: calc((100vw - var(--vp-layout-max-width)) / 2); + padding-left: calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)) + } +} + +.VPFooter[data-v-9f24cc86] { + position: relative; + z-index: var(--vp-z-index-footer); + border-top: 1px solid var(--vp-c-divider-light); + padding: 32px 24px; + background-color: var(--vp-c-bg) +} + +.VPFooter.has-sidebar[data-v-9f24cc86] { + display: none +} + +@media (min-width: 768px) { + .VPFooter[data-v-9f24cc86] { + padding: 32px + } +} + +.container[data-v-9f24cc86] { + margin: 0 auto; + max-width: var(--vp-layout-max-width); + text-align: center +} + +.message[data-v-9f24cc86], +.copyright[data-v-9f24cc86] { + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.message[data-v-9f24cc86] { + order: 2 +} + +.copyright[data-v-9f24cc86] { + order: 1 +} + +.Layout[data-v-f44a984a] { + display: flex; + flex-direction: column; + min-height: 100vh +} + +.NotFound[data-v-95656537] { + padding: 64px 24px 96px; + text-align: center +} + +@media (min-width: 768px) { + .NotFound[data-v-95656537] { + padding: 96px 32px 168px + } +} + +.code[data-v-95656537] { + line-height: 64px; + font-size: 64px; + font-weight: 600 +} + +.title[data-v-95656537] { + padding-top: 12px; + letter-spacing: 2px; + line-height: 20px; + font-size: 20px; + font-weight: 700 +} + +.divider[data-v-95656537] { + margin: 24px auto 18px; + width: 64px; + height: 1px; + background-color: var(--vp-c-divider) +} + +.quote[data-v-95656537] { + margin: 0 auto; + max-width: 256px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.action[data-v-95656537] { + padding-top: 20px +} + +.link[data-v-95656537] { + display: inline-block; + border: 1px solid var(--vp-c-brand); + border-radius: 16px; + padding: 3px 16px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: border-color .25s, color .25s +} + +.link[data-v-95656537]:hover { + border-color: var(--vp-c-brand-dark); + color: var(--vp-c-brand-dark) +} + +.VPHomeSponsors[data-v-247c88bc] { + border-top: 1px solid var(--vp-c-divider-light); + padding: 88px 24px 96px; + background-color: var(--vp-c-bg) +} + +.container[data-v-247c88bc] { + margin: 0 auto; + max-width: 1152px +} + +.love[data-v-247c88bc] { + margin: 0 auto; + width: 28px; + height: 28px; + color: var(--vp-c-text-3) +} + +.icon[data-v-247c88bc] { + width: 28px; + height: 28px; + fill: currentColor +} + +.message[data-v-247c88bc] { + margin: 0 auto; + padding-top: 10px; + max-width: 320px; + text-align: center; + line-height: 24px; + font-size: 16px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.sponsors[data-v-247c88bc] { + padding-top: 32px +} + +.action[data-v-247c88bc] { + padding-top: 40px; + text-align: center +} + +.VPTeamPage[data-v-10b00018] { + padding-bottom: 96px +} + +@media (min-width: 768px) { + .VPTeamPage[data-v-10b00018] { + padding-bottom: 128px + } +} + +.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s], +.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s] { + margin-top: 64px +} + +.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s] { + margin-top: 24px +} + +@media (min-width: 768px) { + .VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s] { + margin-top: 16px + } + + .VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s], + .VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s] { + margin-top: 96px + } +} + +.VPTeamMembers[data-v-10b00018-s] { + padding: 0 24px +} + +@media (min-width: 768px) { + .VPTeamMembers[data-v-10b00018-s] { + padding: 0 48px + } +} + +@media (min-width: 960px) { + .VPTeamMembers[data-v-10b00018-s] { + padding: 0 64px + } +} + +.VPTeamPageTitle[data-v-bf2cbdac] { + padding: 48px 32px; + text-align: center +} + +@media (min-width: 768px) { + .VPTeamPageTitle[data-v-bf2cbdac] { + padding: 64px 48px 48px + } +} + +@media (min-width: 960px) { + .VPTeamPageTitle[data-v-bf2cbdac] { + padding: 80px 64px 48px + } +} + +.title[data-v-bf2cbdac] { + letter-spacing: 0; + line-height: 44px; + font-size: 36px; + font-weight: 500 +} + +@media (min-width: 768px) { + .title[data-v-bf2cbdac] { + letter-spacing: -.5px; + line-height: 56px; + font-size: 48px + } +} + +.lead[data-v-bf2cbdac] { + margin: 0 auto; + max-width: 512px; + padding-top: 12px; + line-height: 24px; + font-size: 16px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +@media (min-width: 768px) { + .lead[data-v-bf2cbdac] { + max-width: 592px; + letter-spacing: .15px; + line-height: 28px; + font-size: 20px + } +} + +.VPTeamPageSection[data-v-be0f7349] { + padding: 0 32px +} + +@media (min-width: 768px) { + .VPTeamPageSection[data-v-be0f7349] { + padding: 0 48px + } +} + +@media (min-width: 960px) { + .VPTeamPageSection[data-v-be0f7349] { + padding: 0 64px + } +} + +.title[data-v-be0f7349] { + position: relative; + margin: 0 auto; + max-width: 1152px; + text-align: center; + color: var(--vp-c-text-2) +} + +.title-line[data-v-be0f7349] { + position: absolute; + top: 16px; + left: 0; + width: 100%; + height: 1px; + background-color: var(--vp-c-divider-light) +} + +.title-text[data-v-be0f7349] { + position: relative; + display: inline-block; + padding: 0 24px; + letter-spacing: 0; + line-height: 32px; + font-size: 20px; + font-weight: 500; + background-color: var(--vp-c-bg) +} + +.lead[data-v-be0f7349] { + margin: 0 auto; + max-width: 480px; + padding-top: 12px; + text-align: center; + line-height: 24px; + font-size: 16px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.members[data-v-be0f7349] { + padding-top: 40px +} + +.VPTeamMembersItem[data-v-89ac5bf1] { + display: flex; + flex-direction: column; + gap: 2px; + border-radius: 12px; + width: 100%; + height: 100%; + overflow: hidden +} + +.VPTeamMembersItem.small .profile[data-v-89ac5bf1] { + padding: 32px +} + +.VPTeamMembersItem.small .data[data-v-89ac5bf1] { + padding-top: 20px +} + +.VPTeamMembersItem.small .avatar[data-v-89ac5bf1] { + width: 64px; + height: 64px +} + +.VPTeamMembersItem.small .name[data-v-89ac5bf1] { + line-height: 24px; + font-size: 16px +} + +.VPTeamMembersItem.small .affiliation[data-v-89ac5bf1] { + padding-top: 4px; + line-height: 20px; + font-size: 14px +} + +.VPTeamMembersItem.small .desc[data-v-89ac5bf1] { + padding-top: 12px; + line-height: 20px; + font-size: 14px +} + +.VPTeamMembersItem.small .links[data-v-89ac5bf1] { + margin: 0 -16px -20px; + padding: 10px 0 0 +} + +.VPTeamMembersItem.medium .profile[data-v-89ac5bf1] { + padding: 48px 32px +} + +.VPTeamMembersItem.medium .data[data-v-89ac5bf1] { + padding-top: 24px; + text-align: center +} + +.VPTeamMembersItem.medium .avatar[data-v-89ac5bf1] { + width: 96px; + height: 96px +} + +.VPTeamMembersItem.medium .name[data-v-89ac5bf1] { + letter-spacing: .15px; + line-height: 28px; + font-size: 20px +} + +.VPTeamMembersItem.medium .affiliation[data-v-89ac5bf1] { + padding-top: 4px; + font-size: 16px +} + +.VPTeamMembersItem.medium .desc[data-v-89ac5bf1] { + padding-top: 16px; + max-width: 288px; + font-size: 16px +} + +.VPTeamMembersItem.medium .links[data-v-89ac5bf1] { + margin: 0 -16px -12px; + padding: 16px 12px 0 +} + +.profile[data-v-89ac5bf1] { + flex-grow: 1; + background-color: var(--vp-c-bg-soft) +} + +.data[data-v-89ac5bf1] { + text-align: center +} + +.avatar[data-v-89ac5bf1] { + position: relative; + flex-shrink: 0; + margin: 0 auto; + border-radius: 50%; + box-shadow: var(--vp-shadow-3) +} + +.avatar-img[data-v-89ac5bf1] { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: 50%; + object-fit: cover +} + +.name[data-v-89ac5bf1] { + margin: 0; + font-weight: 600 +} + +.affiliation[data-v-89ac5bf1] { + margin: 0; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.org.link[data-v-89ac5bf1] { + color: var(--vp-c-text-2); + transition: color .25s +} + +.org.link[data-v-89ac5bf1]:hover { + color: var(--vp-c-brand) +} + +.desc[data-v-89ac5bf1] { + margin: 0 auto +} + +.links[data-v-89ac5bf1] { + display: flex; + justify-content: center; + height: 56px +} + +.sp-link[data-v-89ac5bf1] { + display: flex; + justify-content: center; + align-items: center; + text-align: center; + padding: 16px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-sponsor); + background-color: var(--vp-c-bg-soft); + transition: color .25s, background-color .25s +} + +.sp-link[data-v-89ac5bf1]:hover, +.sp-link[data-v-89ac5bf1]:focus { + outline: none; + color: var(--vp-c-text-dark-1); + background-color: var(--vp-c-sponsor) +} + +.sp-icon[data-v-89ac5bf1] { + margin-right: 8px; + width: 16px; + height: 16px; + fill: currentColor +} + +.VPTeamMembers.small .container[data-v-04685dce] { + grid-template-columns: repeat(auto-fit, minmax(224px, 1fr)) +} + +.VPTeamMembers.small.count-1 .container[data-v-04685dce] { + max-width: 276px +} + +.VPTeamMembers.small.count-2 .container[data-v-04685dce] { + max-width: 576px +} + +.VPTeamMembers.small.count-3 .container[data-v-04685dce] { + max-width: 876px +} + +.VPTeamMembers.medium .container[data-v-04685dce] { + grid-template-columns: repeat(auto-fit, minmax(256px, 1fr)) +} + +@media (min-width: 375px) { + .VPTeamMembers.medium .container[data-v-04685dce] { + grid-template-columns: repeat(auto-fit, minmax(288px, 1fr)) + } +} + +.VPTeamMembers.medium.count-1 .container[data-v-04685dce] { + max-width: 368px +} + +.VPTeamMembers.medium.count-2 .container[data-v-04685dce] { + max-width: 760px +} + +.container[data-v-04685dce] { + display: grid; + gap: 24px; + margin: 0 auto; + max-width: 1152px +} + +:root { + --vp-c-brand: #2355CB; + --vp-c-brand-dark: #2355CB; + --vp-c-black-soft: #000000; + --vp-code-block-bg: rgba(255, 255, 255, .1); + --vp-c-text-light-1: #000000; + --vp-c-text-dark-1: #ffffff; + --landing-fade: #D8E1F8; + --vp-layout-max-width: 1340px; + --vp-font-family-base: "Plus Jakarta Sans", "Inter var experimental", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif +} + +.dark { + --landing-fade: #1a1b21 +} + +.dark .VPNav.no-sidebar { + background-color: var(--vp-c-black-soft) !important +} + +.language-yaml { + border: 2px solid #C8D4F2; + border-radius: 30px !important; + box-shadow: 8px 8px 9px #c8d4f266 +} + +.dark .language-yaml { + box-shadow: 8px 8px 9px #0006 +} + +.language-yaml code { + padding: 0 40px !important +} + +.VPNavBarMenuLink.active { + font-weight: 700 +} + +.VPDocFooter { + display: none +} + +.VPDoc .container .content { + padding-bottom: 0 !important +} + +.VPDoc .container .content h1 { + color: var(--vp-c-text-1) !important +} + +.VPDoc .container .content h2, +.VPDoc .container .content h3, +.VPDoc .container .content h4, +.VPDoc .container .content h5, +.VPDoc .container .content h6, +.VPLink.link.active .link-text { + color: var(--vp-c-brand) !important +} + +.VPLink.link .link-text { + font-size: 16px +} + +#VPSidebarNav { + text-align: right +} + +#VPSidebarNav .title { + display: block +} + +#VPSidebarNav .title .title-text { + font-size: 20px +} + +#VPSidebarNav .group { + border-top: 0px; + margin-top: 8px +} + +#VPSidebarNav .group .items .link-text:hover { + color: #56bced !important +} + +#VPSidebarNav .group:nth-of-type(2) .items .link-text { + font-weight: 700 !important; + color: var(--vp-c-text-1); + font-size: 20px +} + +#VPSidebarNav .group:nth-of-type(3) .items .link-text { + font-weight: 700 !important; + color: var(--vp-c-text-1); + font-size: 20px +} + +#VPSidebarNav .group:nth-of-type(4) .items span .link-text { + color: var(--vp-c-text-2) !important; + font-weight: 700 !important; + line-height: 30px; + cursor: text +} + +#VPSidebarNav .group:nth-of-type(5) .items .link-text { + font-weight: 700 !important; + color: var(--vp-c-text-1); + font-size: 20px +} + +::-webkit-scrollbar { + display: none +} + +.f-left { + float: left +} + +.f-right { + float: right +} + +.mt-1 { + margin-top: 15px +} + +.mt-2 { + margin-top: 25px +} + +.mt-5 { + margin-top: 50px +} + +.mt-6 { + margin-top: 60px +} + +.mt-7 { + margin-top: 70px +} + +.mt-15 { + margin-top: 150px +} + +.mb-1 { + margin-bottom: 10px +} + +.mb-2 { + margin-bottom: 20px +} + +.mb-3 { + margin-bottom: 30px +} + +.mb-4 { + margin-bottom: 40px +} + +.mb-6 { + margin-bottom: 60px +} + +.mb-8 { + margin-bottom: 80px +} + +.mb-11 { + margin-bottom: 110px +} + +.mb-18 { + margin-bottom: 180px +} + +.mb-22 { + margin-bottom: 220px +} + +.mb-24 { + margin-bottom: 240px +} + +.ml-20 { + margin-left: 40px +} + +.w-100 { + width: 100% +} + +.w-85 { + width: 85% +} + +.w-80 { + width: 80% +} + +.w-65 { + width: 65% +} + +.w-60 { + width: 60% +} + +.w-57 { + width: 57% +} + +.w-55 { + width: 55% +} + +.w-50 { + width: 50% +} + +.w-45 { + width: 45% +} + +.w-43 { + width: 43% +} + +.w-40 { + width: 40% +} + +.w-15 { + width: 15% +} + +.p-130 { + padding: 0 130px +} + +.p-105 { + padding: 0 105px +} + +.p-90 { + padding: 0 90px +} + +.p-50 { + padding: 0 50px +} + +.pl-130 { + padding-left: 130px +} + +.pl-6 { + padding-left: 60px +} + +.pr-2 { + padding-right: 20px +} + +.pb-5 { + padding-bottom: 50px +} + +.px-2 { + padding: 0 20px +} + +.text-left { + text-align: left +} + +.c-brand { + color: var(--vp-c-brand) !important +} + +.c-brand-light { + color: #56bced !important +} + +.shotover-title { + font-size: 150px; + font-weight: 600; + line-height: 160px; + margin-top: 110px +} + +.shotover-subtitle { + font-size: 37.5px; + font-weight: 700; + line-height: 60px; + margin-left: 7px; + margin-bottom: 16px +} + +.landing-title { + font-size: 75px; + font-weight: 600; + line-height: 88px +} + +.landing-title-img { + width: calc(100% - 40px) +} + +.shotover-motto { + font-size: 20.5px; + font-weight: 400; + margin-left: 6px; + margin-bottom: 44px +} + +.landing-action-btn { + font-weight: 600; + font-size: 21px; + padding: 12px 57px; + margin-left: 3px; + color: var(--vp-c-brand); + box-shadow: 0 5px 6px #2355cb40; + border-radius: 50px; + border: 2px solid transparent; + background: linear-gradient(var(--vp-c-bg), var(--vp-c-bg)) padding-box, linear-gradient(to right, var(--vp-c-brand), #56BCED) border-box +} + +.landing-action-btn-text { + background-color: var(--vp-c-brand); + background-image: linear-gradient(to right, var(--vp-c-brand), #56BCED); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent +} + +.landing-description-title { + background-color: var(--vp-c-brand); + background-image: linear-gradient(90deg, #2355CB 0%, #56BCED 60%); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent; + font-size: 80px; + font-weight: 600; + line-height: 89px +} + +.landing-description { + font-size: 21px; + font-weight: 400; + line-height: 26px +} + +.landing-docs-title { + width: 45%; + font-size: 55px; + font-weight: 600; + line-height: 66px; + color: #c8d4f2; + margin-bottom: 25px +} + +.docs-container { + text-align: center +} + +.docs-block { + display: block; + float: left; + width: calc(33% - 50px); + max-width: 500px; + border: 2px solid var(--vp-c-brand); + border-radius: 40px; + padding: 33px 50px; + margin-left: 25px; + margin-right: 25px +} + +.docs-block:hover { + background-color: var(--vp-c-brand); + color: var(--vp-c-bg) +} + +.doc-name { + font-weight: 700; + font-size: 37px; + text-align: left; + line-height: 47px +} + +.doc-desc { + color: #9c9a9a; + font-weight: 400; + font-size: 21px; + line-height: 27px; + height: 250px +} + +.doc-action-btn { + color: var(--vp-c-brand); + background-color: var(--vp-c-text-dark-1); + border: 2px solid var(--vp-c-brand); + border-radius: 50px; + padding: 10px 30px; + font-weight: 500 +} + +.doc-arrow { + margin-top: 1px; + margin-left: 14px; + width: 22px +} + +.landing-problems { + background: linear-gradient(180deg, var(--vp-c-bg) 0%, var(--landing-fade) 35%, var(--landing-fade) 75%, var(--vp-c-bg) 100%) +} + +.landing-problems-title { + width: 70%; + font-size: 78px; + font-weight: 600; + line-height: 92px +} + +.problems-description { + font-size: 26px; + font-weight: 400; + line-height: 34px +} + +.problem-card { + color: var(--vp-c-text-dark-1); + width: calc(50% - 17px); + height: 300px; + border-radius: 40px; + padding: 40px 50px; + font-size: 25px; + line-height: 35px; + font-weight: 400; + margin-bottom: 17px; + margin-left: 8.5px; + margin-right: 8.5px; + position: relative +} + +.problem-img { + width: 120px; + position: absolute; + bottom: 40px; + right: 40px +} + +.landing-proxy { + position: relative; + overflow: hidden +} + +.proxy-item { + color: var(--vp-c-text-light-1); + background-color: #d8f0fc; + border-radius: 50px; + position: absolute; + padding: 8px 22px; + font-size: 22px; + font-weight: 500; + font-family: Source Code Pro; + line-height: 28px; + letter-spacing: 0em +} + +.deploy-counter { + font-size: 26px; + font-weight: 400; + font-family: DM Sans; + line-height: 40px +} + +.deploy-step { + font-size: 40px; + font-weight: 500; + line-height: 50px +} + +.deploy-step.active { + color: #56bced !important +} + +.deploy-arrow { + margin-top: 14px; + width: 28px +} + +.step-img-container { + width: 100%; + height: 440px; + border-radius: 40px; + position: relative; + background-color: #ebebeb +} + +.step-img { + width: 50%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) +} + +.roadmap-container { + overflow-x: auto; + margin-top: -10px +} + +.roadmap { + width: 2900px; + position: relative +} + +.roadmap-step { + position: absolute +} + +.roadmap-step-pointer { + width: 60px; + height: 60px; + border-radius: 30px; + text-align: center; + line-height: 60px; + font-size: 25px; + color: var(--vp-c-bg); + background-color: var(--vp-c-text-1) +} + +.roadmap-step-pointer-line { + margin-left: 29px; + width: 0px; + border-left: 2px solid var(--vp-c-text-1) +} + +.pointer-text { + width: 240px; + position: absolute; + top: 3px; + left: 80px +} + +.no-scroll-y { + overflow-y: hidden !important +} + +.blog-title { + text-align: center; + background-color: var(--vp-c-brand); + background-image: linear-gradient(90deg, #2355CB 25%, #AADEF6 50%, #56BCED 75%); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent; + font-size: 75px !important; + font-weight: 600; + line-height: 95px !important +} + +.post-img-sm { + float: left; + width: 250px; + height: 330px; + border-radius: 40px; + background-position: center; + background-repeat: no-repeat; + background-size: cover +} + +.post-info { + width: 100% +} + +.post-title { + font-size: 40px !important; + line-height: 47px !important; + font-weight: 700 !important; + margin-top: 0 !important; + margin-bottom: 20px !important; + padding-top: 0 !important; + border-top: 0px !important +} + +.post-description { + height: 100px; + font-size: 19px !important; + line-height: 25px !important; + font-weight: 500; + overflow: hidden; + color: #717171 !important +} + +.post-date { + height: 48px; + font-size: 17px !important; + line-height: 23px !important; + font-weight: 600; + padding-top: 7px; + margin-bottom: 12px !important +} + +.post-btn { + font-size: 17px !important; + background-color: #56bced; + color: var(--vp-c-bg) !important; + padding: 12px 40px; + border-radius: 25px +} + +.post-btn:hover { + background-color: var(--vp-c-bg); + border: 2px solid #56BCED; + color: #56bced !important +} + +.blog-filters { + width: 220px; + position: absolute; + left: -300px; + z-index: 1 +} + +.blog-filters h3 { + font-size: 23px; + margin-bottom: 20px +} + +.post-category { + font-size: 17px !important; + line-height: 23px !important; + font-weight: 600; + margin-top: 0 !important; + cursor: pointer +} + +.post-category:first-letter { + text-transform: uppercase +} + +.post-category:hover { + text-decoration: underline +} + +.post-category.active { + color: var(--vp-c-brand) +} + +.social-buttons { + position: fixed; + top: 170px; + right: 50px; + width: 250px +} + +.social-buttons h2 { + font-weight: 500; + font-size: 23px; + border-top: none; + margin-top: 0 +} + +.social-link { + float: left; + width: 25px; + margin-right: 30px +} + +.social-link:hover { + cursor: pointer +} + +.related-posts .all-blogs { + font-size: 20px; + text-decoration: underline; + color: var(--vp-c-text-1) +} + +.related-posts .all-blogs:hover { + text-decoration: underline; + color: #56bced +} + +.related-post { + min-width: 222px; + height: 180px; + padding: 20px; + border: 2px solid #C8D4F2; + border-radius: 40px; + text-align: center; + position: relative +} + +.related-post h3 { + margin-top: 0 +} + +.read-more-container { + position: absolute; + width: 100%; + bottom: 25px; + left: 0 +} + +.read-more { + padding: 10px 40px; + border-radius: 30px; + color: var(--vp-c-bg) !important; + background-color: #56bced +} + +.read-more:hover { + color: #56bced !important; + background-color: var(--vp-c-bg) !important; + border: 2px solid #56BCED +} + +.vp-doc img { + width: 100% +} + +.archive-input { + width: 170px; + max-width: 100%; + border-bottom: 2px solid var(--vp-c-text-1) +} + +.pagination-container { + width: 100%; + height: 30px; + float: left; + position: relative; + margin-top: 30px +} + +.pagination { + width: max-content; + position: absolute; + left: 50%; + transform: translate(-50%) +} + +.pagination-nav-btn { + background-color: var(--vp-c-brand); + padding: 5px 17px; + border-radius: 20px +} + +.pagination-nav-btn:hover { + background-color: #56bced +} + +.pagination-nav-btn.disabled { + background-color: #717171 !important +} + +.pagination-nav-btn-page { + width: 38px; + font-size: 16px; + font-weight: 600 +} + +.pagination-nav-btn-page:hover { + text-decoration: underline +} + +.pagination-nav-btn-page.disabled { + color: #56bced !important +} + +.landing-proxy-title { + text-align: center; + background-color: var(--vp-c-brand); + background-image: linear-gradient(90deg, #2355CB 25%, #AADEF6 50%, #56BCED 75%); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent; + font-size: 80px; + font-weight: 600; + line-height: 110px; + margin-top: 350px; + margin-bottom: 350px +} + +.footer-nav { + padding-top: 15px +} + +.footer-link { + float: left; + width: 100%; + margin-bottom: 8px; + font-weight: 500; + color: var(--vp-c-text-1) !important +} + +.footer-link:hover { + color: var(--vp-c-brand) !important +} + +.copyright-section a { + float: left; + font-size: 24px; + font-weight: 600 +} + +.copyright-section a span { + margin-top: 6.5px; + margin-right: 15px; + float: left +} + +.copyright-section img { + float: left; + width: 80px; + font-size: 24px; + font-weight: 600 +} + +.copyright-section .copyright { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #717171 !important; + width: 90%; + max-width: 674px +} + +@media (max-width: 440px) { + .post-title { + font-size: 25px !important; + line-height: 35px !important + } +} + +@media (max-width: 768px) { + .p-130 { + padding: 20px !important + } + + .footer { + text-align: center !important + } + + .footer .copyright-section { + width: 100% !important; + margin-bottom: 20px; + position: relative + } + + .footer .copyright { + width: 100% !important; + max-width: 100% !important + } + + .footer .footer-nav { + width: 100% !important + } + + .footer a.mb-3 { + width: 202px; + position: absolute; + left: 50%; + transform: translate(-50%) + } + + .footer .copyright-section .f-left.w-100 { + margin-top: 55px + } + + .landing-description-title, + .landing-docs-title, + .landing-problems-title, + .landing-title { + text-align: center + } + + .landing-docs-title { + max-width: 100% !important + } + + .landing-title, + .landing-description.w-50 { + width: 100% + } + + .landing-description, + .problems-description { + text-align: justify + } + + .w-65.problems-description, + .w-50.problems-description { + width: 100% + } + + .problem-card { + width: 100%; + margin-top: 0 !important; + margin-left: 0; + margin-right: 0; + padding: 20px 30px + } + + .problem-card .w-80, + .landing-deploy .landing-description.w-80 { + width: 100% + } + + .landing-deploy .p-50 { + padding: 0 + } + + .landing-main-title { + text-align: center + } + + .landing-main-title .w-55 { + width: 100% + } + + .landing-main-title .w-45, + .post-img-sm { + display: none + } + + .post-info { + padding-left: 0; + text-align: center + } + + .post-title { + height: auto; + max-height: 100px !important + } + + .post-description { + text-align: justify + } + + .related-posts { + text-align: center + } + + .related-post-container { + width: 100% !important + } +} + +@media (max-width: 928px) { + .p-130 { + padding: 20px !important + } + + .pl-130 { + padding-left: 20px !important; + padding-right: 20px !important + } + + .p-105 { + padding: 20px !important + } + + .p-90 { + padding-left: 0; + padding-right: 0 + } +} + +@media (max-width: 1100px) { + .landing-deploy .w-45 { + width: 100%; + margin-bottom: 20px + } + + .landing-deploy .w-55 { + width: 100% + } +} + +@media (max-width: 1235px) { + .deploy-arrow { + display: none + } + + .p-90 { + padding-left: 0; + padding-right: 0 + } + + .w-43 { + width: 100% + } + + .pr-2 { + padding-right: 0 + } + + .w-57 { + width: 100% + } + + .mb-sm-1 { + margin-bottom: 10px + } + + .landing-problems-title { + width: 100% + } + + .proxy-item { + display: none + } + + .landing-deploy .w-40 { + width: 100% + } + + .blog-title { + font-size: 50px !important; + line-height: 65px !important + } +} + +@media (max-width: 1280px) { + .social-buttons { + display: none + } +} + +@media (min-width: 440px) and (max-width: 1235px) { + .post-title { + font-size: 30px !important; + line-height: 40px !important + } +} + +@media (max-width: 1360px) { + .docs-block { + width: 100%; + max-width: 100%; + margin-bottom: 30px; + margin-left: 0; + margin-right: 0 + } +} + +@media (min-width: 1236px) and (max-width: 1376px) { + .landing-problems-title { + width: 80% + } +} + +@media (max-width: 1487px) { + .landing-docs-title { + width: 100%; + max-width: 675px + } + + .problem-card { + padding: 20px 30px + } + + .problem-card .w-80 { + width: 100% + } + + .shotover-title { + font-size: 75px; + line-height: 85px + } + + .shotover-subtitle { + font-size: 30px; + line-height: 52px + } + + .landing-description-title { + font-size: 60px; + line-height: 69px + } + + .landing-docs-title { + font-size: 45px; + line-height: 56px + } + + .doc-name { + font-size: 32px; + line-height: 42px + } + + .landing-problems-title { + font-size: 45px; + line-height: 60px + } + + .landing-proxy-title { + font-size: 70px; + line-height: 100px + } + + .landing-title { + font-size: 55px; + line-height: 70px + } + + .deploy-step { + font-size: 35px; + line-height: 45px + } +} \ No newline at end of file diff --git a/website/assets/style.css b/website/assets/style.css new file mode 100644 index 000000000..362a40292 --- /dev/null +++ b/website/assets/style.css @@ -0,0 +1,5242 @@ +@import"https://fonts.googleapis.com/css?family=Plus+Jakarta+Sans:regular,400,600,700"; +@import"https://fonts.googleapis.com/css?family=Source+Code+Pro:regular,500,600"; +@import"https://fonts.googleapis.com/css?family=DM+Sans:400"; + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-cyrillic-ext.e75737ce.woff2) 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2"); + unicode-range: U+0370-03FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2"); + unicode-range: U+1F00-1FFF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-latin.2ed14f66.woff2) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: normal; + font-named-instance: "Regular"; + src: url(/shotover-blog/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-greek.8f4463c4.woff2) format("woff2"); + unicode-range: U+0370-03FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2"); + unicode-range: U+1F00-1FFF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 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: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: Inter var; + font-weight: 100 900; + font-display: swap; + font-style: italic; + font-named-instance: "Italic"; + src: url(/shotover-blog/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-cyrillic.f8750142.woff2) format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-cyrillic-ext.0877b0d9.woff2) 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: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-greek.117e1956.woff2) format("woff2"); + unicode-range: U+0370-03FF +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-greek-ext.3e6f6728.woff2) format("woff2"); + unicode-range: U+1F00-1FFF +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-latin.4fe6132f.woff2) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, 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: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-latin-ext.7cc429bc.woff2) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: Inter var experimental; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url(/shotover-blog/assets/inter-vietnamese.2c644a25.woff2) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB +} + +:root { + --vp-c-white: #ffffff; + --vp-c-white-soft: #f9f9f9; + --vp-c-white-mute: #f1f1f1; + --vp-c-black: #1a1a1a; + --vp-c-black-pure: #000000; + --vp-c-black-soft: #242424; + --vp-c-black-mute: #2f2f2f; + --vp-c-gray: #8e8e8e; + --vp-c-gray-light-1: #aeaeae; + --vp-c-gray-light-2: #c7c7c7; + --vp-c-gray-light-3: #d1d1d1; + --vp-c-gray-light-4: #e5e5e5; + --vp-c-gray-light-5: #f2f2f2; + --vp-c-gray-dark-1: #636363; + --vp-c-gray-dark-2: #484848; + --vp-c-gray-dark-3: #3a3a3a; + --vp-c-gray-dark-4: #282828; + --vp-c-gray-dark-5: #202020; + --vp-c-divider-light-1: rgba(60, 60, 60, .29); + --vp-c-divider-light-2: rgba(60, 60, 60, .12); + --vp-c-divider-dark-1: rgba(84, 84, 84, .65); + --vp-c-divider-dark-2: rgba(84, 84, 84, .48); + --vp-c-text-light-1: var(--vp-c-indigo); + --vp-c-text-light-2: rgba(60, 60, 60, .7); + --vp-c-text-light-3: rgba(60, 60, 60, .33); + --vp-c-text-light-4: rgba(60, 60, 60, .18); + --vp-c-text-dark-1: rgba(255, 255, 255, .87); + --vp-c-text-dark-2: rgba(235, 235, 235, .6); + --vp-c-text-dark-3: rgba(235, 235, 235, .38); + --vp-c-text-dark-4: rgba(235, 235, 235, .18); + --vp-c-indigo: #213547; + --vp-c-indigo-soft: #476582; + --vp-c-indigo-light: #aac8e4; + --vp-c-indigo-lighter: #c9def1; + --vp-c-indigo-dark: #1d2f3f; + --vp-c-indigo-darker: #14212e; + --vp-c-green: #42b883; + --vp-c-green-light: #42d392; + --vp-c-green-lighter: #35eb9a; + --vp-c-green-dark: #33a06f; + --vp-c-green-darker: #155f3e; + --vp-c-green-dimm-1: rgba(66, 184, 131, .5); + --vp-c-green-dimm-2: rgba(66, 184, 131, .25); + --vp-c-green-dimm-3: rgba(66, 184, 131, .05); + --vp-c-yellow: #ffc517; + --vp-c-yellow-light: #fcd253; + --vp-c-yellow-lighter: #fcfc7c; + --vp-c-yellow-dark: #e0ad15; + --vp-c-yellow-darker: #ad850e; + --vp-c-yellow-dimm-1: rgba(255, 197, 23, .5); + --vp-c-yellow-dimm-2: rgba(255, 197, 23, .25); + --vp-c-yellow-dimm-3: rgba(255, 197, 23, .05); + --vp-c-red: #ed3c50; + --vp-c-red-light: #f54e82; + --vp-c-red-lighter: #fd1d7c; + --vp-c-red-dark: #cd2d3f; + --vp-c-red-darker: #ab2131; + --vp-c-red-dimm-1: rgba(237, 60, 80, .5); + --vp-c-red-dimm-2: rgba(237, 60, 80, .25); + --vp-c-red-dimm-3: rgba(237, 60, 80, .05) +} + +:root { + --vp-c-bg: var(--vp-c-white); + --vp-c-bg-soft: var(--vp-c-white-soft); + --vp-c-bg-mute: var(--vp-c-white-mute); + --vp-c-bg-alt: var(--vp-c-white-soft); + --vp-c-divider: var(--vp-c-divider-light-1); + --vp-c-divider-light: var(--vp-c-divider-light-2); + --vp-c-divider-inverse: var(--vp-c-divider-dark-1); + --vp-c-divider-inverse-light: var(--vp-c-divider-dark-2); + --vp-c-text-1: var(--vp-c-text-light-1); + --vp-c-text-2: var(--vp-c-text-light-2); + --vp-c-text-3: var(--vp-c-text-light-3); + --vp-c-text-4: var(--vp-c-text-light-4); + --vp-c-text-inverse-1: var(--vp-c-text-dark-1); + --vp-c-text-inverse-2: var(--vp-c-text-dark-2); + --vp-c-text-inverse-3: var(--vp-c-text-dark-3); + --vp-c-text-inverse-4: var(--vp-c-text-dark-4); + --vp-c-text-code: var(--vp-c-indigo-soft); + --vp-c-brand: var(--vp-c-green); + --vp-c-brand-light: var(--vp-c-green-light); + --vp-c-brand-lighter: var(--vp-c-green-lighter); + --vp-c-brand-dark: var(--vp-c-green-dark); + --vp-c-brand-darker: var(--vp-c-green-darker); + --vp-c-sponsor: #fd1d7c +} + +.dark { + --vp-c-bg: var(--vp-c-black-soft); + --vp-c-bg-soft: var(--vp-c-black-mute); + --vp-c-bg-mute: var(--vp-c-gray-dark-3); + --vp-c-bg-alt: var(--vp-c-black); + --vp-c-divider: var(--vp-c-divider-dark-1); + --vp-c-divider-light: var(--vp-c-divider-dark-2); + --vp-c-divider-inverse: var(--vp-c-divider-light-1); + --vp-c-divider-inverse-light: var(--vp-c-divider-light-2); + --vp-c-text-1: var(--vp-c-text-dark-1); + --vp-c-text-2: var(--vp-c-text-dark-2); + --vp-c-text-3: var(--vp-c-text-dark-3); + --vp-c-text-4: var(--vp-c-text-dark-4); + --vp-c-text-inverse-1: var(--vp-c-text-light-1); + --vp-c-text-inverse-2: var(--vp-c-text-light-2); + --vp-c-text-inverse-3: var(--vp-c-text-light-3); + --vp-c-text-inverse-4: var(--vp-c-text-light-4); + --vp-c-text-code: var(--vp-c-indigo-lighter) +} + +:root { + --vp-font-family-base: "Inter var experimental", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace +} + +:root { + --vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06); + --vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07); + --vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08); + --vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12); + --vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16) +} + +:root { + --vp-z-index-local-nav: 10; + --vp-z-index-nav: 20; + --vp-z-index-layout-top: 30; + --vp-z-index-backdrop: 40; + --vp-z-index-sidebar: 50; + --vp-z-index-footer: 60 +} + +:root { + --vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E"); + --vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E") +} + +:root { + --vp-layout-max-width: 1440px +} + +:root { + --vp-code-line-height: 1.7; + --vp-code-font-size: .875em; + --vp-code-block-color: var(--vp-c-text-dark-1); + --vp-code-block-bg: #292d3e; + --vp-code-line-highlight-color: rgba(0, 0, 0, .5); + --vp-code-line-number-color: var(--vp-c-text-dark-3); + --vp-code-line-diff-add-color: rgba(125, 191, 123, .1); + --vp-code-line-diff-add-symbol-color: rgba(125, 191, 123, .5); + --vp-code-line-diff-remove-color: rgba(255, 128, 128, .05); + --vp-code-line-diff-remove-symbol-color: rgba(255, 128, 128, .5); + --vp-code-line-error-color: var(--vp-c-red-dimm-2); + --vp-code-line-warning-color: var(--vp-c-yellow-dimm-2); + --vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05); + --vp-code-copy-code-active-text: var(--vp-c-text-dark-2) +} + +.dark { + --vp-code-block-bg: var(--vp-c-bg-alt) +} + +:root { + --vp-button-brand-border: var(--vp-c-brand-light); + --vp-button-brand-text: var(--vp-c-text-dark-1); + --vp-button-brand-bg: var(--vp-c-brand); + --vp-button-brand-hover-border: var(--vp-c-brand-light); + --vp-button-brand-hover-text: var(--vp-c-text-dark-1); + --vp-button-brand-hover-bg: var(--vp-c-brand-light); + --vp-button-brand-active-border: var(--vp-c-brand-light); + --vp-button-brand-active-text: var(--vp-c-text-dark-1); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); + --vp-button-alt-border: var(--vp-c-gray-light-3); + --vp-button-alt-text: var(--vp-c-text-light-1); + --vp-button-alt-bg: var(--vp-c-gray-light-5); + --vp-button-alt-hover-border: var(--vp-c-gray-light-3); + --vp-button-alt-hover-text: var(--vp-c-text-light-1); + --vp-button-alt-hover-bg: var(--vp-c-gray-light-4); + --vp-button-alt-active-border: var(--vp-c-gray-light-3); + --vp-button-alt-active-text: var(--vp-c-text-light-1); + --vp-button-alt-active-bg: var(--vp-c-gray-light-3); + --vp-button-sponsor-border: var(--vp-c-gray-light-3); + --vp-button-sponsor-text: var(--vp-c-text-light-2); + --vp-button-sponsor-bg: transparent; + --vp-button-sponsor-hover-border: var(--vp-c-sponsor); + --vp-button-sponsor-hover-text: var(--vp-c-sponsor); + --vp-button-sponsor-hover-bg: transparent; + --vp-button-sponsor-active-border: var(--vp-c-sponsor); + --vp-button-sponsor-active-text: var(--vp-c-sponsor); + --vp-button-sponsor-active-bg: transparent +} + +.dark { + --vp-button-brand-border: var(--vp-c-brand-light); + --vp-button-brand-text: var(--vp-c-text-dark-1); + --vp-button-brand-bg: var(--vp-c-brand-dark); + --vp-button-brand-hover-border: var(--vp-c-brand-lighter); + --vp-button-brand-hover-text: var(--vp-c-text-dark-1); + --vp-button-brand-hover-bg: var(--vp-c-brand); + --vp-button-brand-active-border: var(--vp-c-brand-lighter); + --vp-button-brand-active-text: var(--vp-c-text-dark-1); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); + --vp-button-alt-border: var(--vp-c-gray-dark-2); + --vp-button-alt-text: var(--vp-c-text-dark-1); + --vp-button-alt-bg: var(--vp-c-bg-mute); + --vp-button-alt-hover-border: var(--vp-c-gray-dark-2); + --vp-button-alt-hover-text: var(--vp-c-text-dark-1); + --vp-button-alt-hover-bg: var(--vp-c-gray-dark-2); + --vp-button-alt-active-border: var(--vp-c-gray-dark-2); + --vp-button-alt-active-text: var(--vp-c-text-dark-1); + --vp-button-alt-active-bg: var(--vp-button-alt-bg); + --vp-button-sponsor-border: var(--vp-c-gray-dark-1); + --vp-button-sponsor-text: var(--vp-c-text-dark-2) +} + +:root { + --vp-custom-block-code-font-size: 13px; + --vp-custom-block-info-border: var(--vp-c-divider-light); + --vp-custom-block-info-text: var(--vp-c-text-2); + --vp-custom-block-info-bg: var(--vp-c-white-soft); + --vp-custom-block-info-code-bg: var(--vp-c-gray-light-4); + --vp-custom-block-tip-border: var(--vp-c-green-dimm-1); + --vp-custom-block-tip-text: var(--vp-c-green-darker); + --vp-custom-block-tip-bg: var(--vp-c-green-dimm-3); + --vp-custom-block-tip-code-bg: var(--vp-custom-block-tip-bg); + --vp-custom-block-warning-border: var(--vp-c-yellow-dimm-1); + --vp-custom-block-warning-text: var(--vp-c-yellow-darker); + --vp-custom-block-warning-bg: var(--vp-c-yellow-dimm-3); + --vp-custom-block-warning-code-bg: var(--vp-custom-block-warning-bg); + --vp-custom-block-danger-border: var(--vp-c-red-dimm-1); + --vp-custom-block-danger-text: var(--vp-c-red-darker); + --vp-custom-block-danger-bg: var(--vp-c-red-dimm-3); + --vp-custom-block-danger-code-bg: var(--vp-custom-block-danger-bg); + --vp-custom-block-details-border: var(--vp-custom-block-info-border); + --vp-custom-block-details-text: var(--vp-custom-block-info-text); + --vp-custom-block-details-bg: var(--vp-custom-block-info-bg); + --vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg) +} + +.dark { + --vp-custom-block-info-border: var(--vp-c-divider-light); + --vp-custom-block-info-bg: var(--vp-c-black-mute); + --vp-custom-block-info-code-bg: var(--vp-c-gray-dark-4); + --vp-custom-block-tip-border: var(--vp-c-green-dimm-2); + --vp-custom-block-tip-text: var(--vp-c-green-light); + --vp-custom-block-warning-border: var(--vp-c-yellow-dimm-2); + --vp-custom-block-warning-text: var(--vp-c-yellow-light); + --vp-custom-block-danger-border: var(--vp-c-red-dimm-2); + --vp-custom-block-danger-text: var(--vp-c-red-light) +} + +:root { + --vp-nav-height: var(--vp-nav-height-mobile); + --vp-nav-height-mobile: 56px; + --vp-nav-height-desktop: 72px +} + +@media (min-width: 960px) { + :root { + --vp-nav-height: var(--vp-nav-height-desktop) + } +} + +:root { + --vp-sidebar-width: 272px +} + +:root { + --vp-home-hero-name-color: var(--vp-c-brand); + --vp-home-hero-name-background: transparent; + --vp-home-hero-image-background-image: none; + --vp-home-hero-image-filter: none +} + +:root { + --vp-badge-info-border: var(--vp-c-divider-light); + --vp-badge-info-text: var(--vp-c-text-2); + --vp-badge-info-bg: var(--vp-c-white-soft); + --vp-badge-tip-border: var(--vp-c-green-dimm-1); + --vp-badge-tip-text: var(--vp-c-green-darker); + --vp-badge-tip-bg: var(--vp-c-green-dimm-3); + --vp-badge-warning-border: var(--vp-c-yellow-dimm-1); + --vp-badge-warning-text: var(--vp-c-yellow-darker); + --vp-badge-warning-bg: var(--vp-c-yellow-dimm-3); + --vp-badge-danger-border: var(--vp-c-red-dimm-1); + --vp-badge-danger-text: var(--vp-c-red-darker); + --vp-badge-danger-bg: var(--vp-c-red-dimm-3) +} + +.dark { + --vp-badge-info-border: var(--vp-c-divider-light); + --vp-badge-info-bg: var(--vp-c-black-mute); + --vp-badge-tip-border: var(--vp-c-green-dimm-2); + --vp-badge-tip-text: var(--vp-c-green-light); + --vp-badge-warning-border: var(--vp-c-yellow-dimm-2); + --vp-badge-warning-text: var(--vp-c-yellow-light); + --vp-badge-danger-border: var(--vp-c-red-dimm-2); + --vp-badge-danger-text: var(--vp-c-red-light) +} + +*, +:before, +:after { + box-sizing: border-box +} + +html { + line-height: 1.4; + font-size: 16px; + -webkit-text-size-adjust: 100% +} + +html.dark { + color-scheme: dark +} + +body { + margin: 0; + width: 100%; + min-width: 320px; + min-height: 100vh; + line-height: 24px; + font-family: var(--vp-font-family-base); + font-size: 16px; + font-weight: 400; + color: var(--vp-c-text-1); + background-color: var(--vp-c-bg); + direction: ltr; + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +main { + display: block +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + line-height: 24px; + font-size: 16px; + font-weight: 400 +} + +p { + margin: 0 +} + +strong, +b { + font-weight: 600 +} + +a, +area, +button, +[role=button], +input, +label, +select, +summary, +textarea { + touch-action: manipulation +} + +a { + color: inherit; + text-decoration: inherit +} + +ol, +ul { + list-style: none; + margin: 0; + padding: 0 +} + +blockquote { + margin: 0 +} + +pre, +code, +kbd, +samp { + font-family: var(--vp-font-family-mono) +} + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block +} + +figure { + margin: 0 +} + +img, +video { + max-width: 100%; + height: auto +} + +button, +input, +optgroup, +select, +textarea { + border: 0; + padding: 0; + line-height: inherit; + color: inherit +} + +button { + padding: 0; + font-family: inherit; + background-color: transparent; + background-image: none +} + +button:enabled, +[role=button]:enabled { + cursor: pointer +} + +button:focus, +button:focus-visible { + outline: 1px dotted; + outline: 4px auto -webkit-focus-ring-color +} + +button:focus:not(:focus-visible) { + outline: none !important +} + +input:focus, +textarea:focus, +select:focus { + outline: none +} + +table { + border-collapse: collapse +} + +input { + background-color: transparent +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: var(--vp-c-text-3) +} + +input::-ms-input-placeholder, +textarea::-ms-input-placeholder { + color: var(--vp-c-text-3) +} + +input::placeholder, +textarea::placeholder { + color: var(--vp-c-text-3) +} + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0 +} + +input[type=number] { + -moz-appearance: textfield +} + +textarea { + resize: vertical +} + +select { + -webkit-appearance: none +} + +fieldset { + margin: 0; + padding: 0 +} + +h1, +h2, +h3, +h4, +h5, +h6, +p { + overflow-wrap: break-word +} + +vite-error-overlay { + z-index: 9999 +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + white-space: nowrap; + clip: rect(0 0 0 0); + clip-path: inset(50%); + overflow: hidden +} + +.custom-block { + border: 1px solid transparent; + border-radius: 8px; + padding: 16px 16px 8px; + line-height: 24px; + font-size: 14px; + color: var(--vp-c-text-2) +} + +.custom-block.info { + border-color: var(--vp-custom-block-info-border); + color: var(--vp-custom-block-info-text); + background-color: var(--vp-custom-block-info-bg) +} + +.custom-block.info code { + background-color: var(--vp-custom-block-info-code-bg) +} + +.custom-block.tip { + border-color: var(--vp-custom-block-tip-border); + color: var(--vp-custom-block-tip-text); + background-color: var(--vp-custom-block-tip-bg) +} + +.custom-block.tip code { + background-color: var(--vp-custom-block-tip-code-bg) +} + +.custom-block.warning { + border-color: var(--vp-custom-block-warning-border); + color: var(--vp-custom-block-warning-text); + background-color: var(--vp-custom-block-warning-bg) +} + +.custom-block.warning code { + background-color: var(--vp-custom-block-warning-code-bg) +} + +.custom-block.danger { + border-color: var(--vp-custom-block-danger-border); + color: var(--vp-custom-block-danger-text); + background-color: var(--vp-custom-block-danger-bg) +} + +.custom-block.danger code { + background-color: var(--vp-custom-block-danger-code-bg) +} + +.custom-block.details { + border-color: var(--vp-custom-block-details-border); + color: var(--vp-custom-block-details-text); + background-color: var(--vp-custom-block-details-bg) +} + +.custom-block.details code { + background-color: var(--vp-custom-block-details-code-bg) +} + +.custom-block-title { + font-weight: 700 +} + +.custom-block p+p { + margin: 8px 0 +} + +.custom-block.details summary { + margin: 0 0 8px; + font-weight: 700 +} + +.custom-block.details summary+p { + margin: 8px 0 +} + +.custom-block a { + color: inherit; + font-weight: 600; + text-decoration: underline; + transition: opacity .25s +} + +.custom-block a:hover { + opacity: .6 +} + +.custom-block code { + font-size: var(--vp-custom-block-code-font-size) +} + +.dark .vp-code-light { + display: none +} + +html:not(.dark) .vp-code-dark { + display: none +} + +.vp-doc h1, +.vp-doc h2, +.vp-doc h3, +.vp-doc h4, +.vp-doc h5, +.vp-doc h6 { + position: relative; + font-weight: 600; + outline: none +} + +.vp-doc h1 { + letter-spacing: -.02em; + line-height: 40px; + font-size: 28px +} + +.vp-doc h2 { + margin: 48px 0 16px; + border-top: 1px solid var(--vp-c-divider-light); + padding-top: 24px; + letter-spacing: -.02em; + line-height: 32px; + font-size: 24px +} + +.vp-doc h3 { + margin: 32px 0 0; + letter-spacing: -.01em; + line-height: 28px; + font-size: 20px +} + +.vp-doc .header-anchor { + float: left; + margin-left: -.87em; + padding-right: .23em; + font-weight: 500; + opacity: 0; + transition: color .25s, opacity .25s +} + +.vp-doc h1:hover .header-anchor, +.vp-doc h1 .header-anchor:focus, +.vp-doc h2:hover .header-anchor, +.vp-doc h2 .header-anchor:focus, +.vp-doc h3:hover .header-anchor, +.vp-doc h3 .header-anchor:focus, +.vp-doc h4:hover .header-anchor, +.vp-doc h4 .header-anchor:focus, +.vp-doc h5:hover .header-anchor, +.vp-doc h5 .header-anchor:focus, +.vp-doc h6:hover .header-anchor, +.vp-doc h6 .header-anchor:focus { + opacity: 1 +} + +@media (min-width: 768px) { + .vp-doc h1 { + letter-spacing: -.02em; + line-height: 40px; + font-size: 32px + } +} + +.vp-doc p, +.vp-doc summary { + margin: 16px 0 +} + +.vp-doc p { + line-height: 28px +} + +.vp-doc blockquote { + margin: 16px 0; + border-left: 2px solid var(--vp-c-divider); + padding-left: 16px; + transition: border-color .5s +} + +.vp-doc blockquote>p { + margin: 0; + font-size: 16px; + color: var(--vp-c-text-2); + transition: color .5s +} + +.vp-doc a { + font-weight: 500; + color: var(--vp-c-brand); + text-decoration-style: dotted; + transition: color .25s +} + +.vp-doc a:hover { + color: var(--vp-c-brand-dark) +} + +.vp-doc strong { + font-weight: 600 +} + +.vp-doc ul, +.vp-doc ol { + padding-left: 1.25rem; + margin: 16px 0 +} + +.vp-doc ul { + list-style: disc +} + +.vp-doc ol { + list-style: decimal +} + +.vp-doc li+li { + margin-top: 8px +} + +.vp-doc li>ol, +.vp-doc li>ul { + margin: 8px 0 0 +} + +.vp-doc table { + display: block; + border-collapse: collapse; + margin: 20px 0; + overflow-x: auto +} + +.vp-doc tr { + border-top: 1px solid var(--vp-c-divider); + transition: background-color .5s +} + +.vp-doc tr:nth-child(2n) { + background-color: var(--vp-c-bg-soft) +} + +.vp-doc th, +.vp-doc td { + border: 1px solid var(--vp-c-divider); + padding: 12px 16px +} + +.vp-doc th { + font-size: 16px; + font-weight: 600; + background-color: var(--vp-c-white-soft) +} + +.dark .vp-doc th { + background-color: var(--vp-c-black) +} + +.vp-doc hr { + margin: 16px 0; + border: none; + border-top: 1px solid var(--vp-c-divider-light) +} + +.vp-doc .custom-block { + margin: 16px 0 +} + +.vp-doc .custom-block p { + margin: 8px 0; + line-height: 24px +} + +.vp-doc .custom-block p:first-child { + margin: 0 +} + +.vp-doc .custom-block a { + color: inherit; + font-weight: 600; + text-decoration: underline; + transition: opacity .25s +} + +.vp-doc .custom-block a:hover { + opacity: .6 +} + +.vp-doc .custom-block code { + font-size: var(--vp-custom-block-code-font-size); + font-weight: 700; + color: inherit +} + +.vp-doc .custom-block div[class*=language-] { + margin: 8px 0 +} + +.vp-doc .custom-block div[class*=language-] code { + font-weight: 400; + background-color: transparent +} + +.vp-doc :not(pre, h1, h2, h3, h4, h5, h6)>code { + font-size: var(--vp-code-font-size) +} + +.vp-doc :not(pre)>code { + border-radius: 4px; + padding: 3px 6px; + color: var(--vp-c-text-code); + background-color: var(--vp-c-bg-mute); + transition: color .5s, background-color .5s +} + +.vp-doc h1>code, +.vp-doc h2>code, +.vp-doc h3>code { + font-size: .9em +} + +.vp-doc a>code { + color: var(--vp-c-brand); + transition: color .25s +} + +.vp-doc a:hover>code { + color: var(--vp-c-brand-dark) +} + +.vp-doc div[class*=language-] { + position: relative; + margin: 16px -24px; + background-color: var(--vp-code-block-bg); + overflow-x: auto; + transition: background-color .5s +} + +@media (min-width: 640px) { + .vp-doc div[class*=language-] { + border-radius: 8px; + margin: 16px 0 + } +} + +@media (max-width: 639px) { + .vp-doc li div[class*=language-] { + border-radius: 8px 0 0 8px + } +} + +.vp-doc div[class*=language-]+div[class*=language-], +.vp-doc div[class$=-api]+div[class*=language-], +.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-] { + margin-top: -8px +} + +.vp-doc [class*=language-] pre, +.vp-doc [class*=language-] code { + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none +} + +.vp-doc [class*=language-] pre { + position: relative; + z-index: 1; + margin: 0; + padding: 16px 0; + background: transparent; + overflow-x: auto +} + +.vp-doc [class*=language-] code { + display: block; + padding: 0 24px; + width: fit-content; + min-width: 100%; + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + color: var(--vp-code-block-color); + transition: color .5s +} + +.vp-doc [class*=language-] code .highlighted { + background-color: var(--vp-code-line-highlight-color); + transition: background-color .5s; + margin: 0 -24px; + padding: 0 24px; + width: calc(100% + 48px); + display: inline-block +} + +.vp-doc [class*=language-] code .highlighted.error { + background-color: var(--vp-code-line-error-color) +} + +.vp-doc [class*=language-] code .highlighted.warning { + background-color: var(--vp-code-line-warning-color) +} + +.vp-doc [class*=language-] code .diff { + transition: background-color .5s; + margin: 0 -24px; + padding: 0 24px; + width: calc(100% + 48px); + display: inline-block +} + +.vp-doc [class*=language-] code .diff:before { + position: absolute; + left: 1rem +} + +.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus) { + filter: blur(.095rem); + opacity: .4; + transition: filter .35s, opacity .35s +} + +.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus) { + opacity: .7; + transition: filter .35s, opacity .35s +} + +.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus) { + filter: blur(0); + opacity: 1 +} + +.vp-doc [class*=language-] code .diff.remove { + background-color: var(--vp-code-line-diff-remove-color); + opacity: .7 +} + +.vp-doc [class*=language-] code .diff.remove:before { + content: "-"; + color: var(--vp-code-line-diff-remove-symbol-color) +} + +.vp-doc [class*=language-] code .diff.add { + background-color: var(--vp-code-line-diff-add-color) +} + +.vp-doc [class*=language-] code .diff.add:before { + content: "+"; + color: var(--vp-code-line-diff-add-symbol-color) +} + +.vp-doc div[class*=language-].line-numbers-mode { + padding-left: 32px +} + +.vp-doc .line-numbers-wrapper { + position: absolute; + top: 0; + bottom: 0; + left: 0; + z-index: 3; + border-right: 1px solid var(--vp-c-divider-dark-2); + padding-top: 16px; + width: 32px; + text-align: center; + font-family: var(--vp-font-family-mono); + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + color: var(--vp-code-line-number-color); + transition: border-color .5s, color .5s +} + +.vp-doc [class*=language-]>button.copy { + position: absolute; + top: 8px; + right: 8px; + z-index: 3; + display: block; + justify-content: center; + align-items: center; + border-radius: 4px; + width: 40px; + height: 40px; + background-color: var(--vp-code-block-bg); + opacity: 0; + cursor: pointer; + background-image: var(--vp-icon-copy); + background-position: 50%; + background-size: 20px; + background-repeat: no-repeat; + transition: opacity .4s +} + +.vp-doc [class*=language-]:hover>button.copy, +.vp-doc [class*=language-]>button.copy:focus { + opacity: 1 +} + +.vp-doc [class*=language-]>button.copy:hover { + background-color: var(--vp-code-copy-code-hover-bg) +} + +.vp-doc [class*=language-]>button.copy.copied, +.vp-doc [class*=language-]>button.copy:hover.copied { + border-radius: 0 4px 4px 0; + background-color: var(--vp-code-copy-code-hover-bg); + background-image: var(--vp-icon-copied) +} + +.vp-doc [class*=language-]>button.copy.copied:before, +.vp-doc [class*=language-]>button.copy:hover.copied:before { + position: relative; + left: -65px; + display: block; + border-radius: 4px 0 0 4px; + padding-top: 8px; + width: 64px; + height: 40px; + text-align: center; + font-size: 12px; + font-weight: 500; + color: var(--vp-code-copy-code-active-text); + background-color: var(--vp-code-copy-code-hover-bg); + white-space: nowrap; + content: "Copied" +} + +.vp-doc [class*=language-]>span.lang { + position: absolute; + top: 6px; + right: 12px; + z-index: 2; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-dark-3); + transition: color .4s, opacity .4s +} + +.vp-doc [class*=language-]:hover>button.copy+span.lang, +.vp-doc [class*=language-]>button.copy:focus+span.lang { + opacity: 0 +} + +.vp-doc .VPTeamMembers { + margin-top: 24px +} + +.vp-doc .VPTeamMembers.small.count-1 .container { + margin: 0 !important; + max-width: calc((100% - 24px)/2) !important +} + +.vp-doc .VPTeamMembers.small.count-2 .container, +.vp-doc .VPTeamMembers.small.count-3 .container { + max-width: 100% !important +} + +.vp-doc .VPTeamMembers.medium.count-1 .container { + margin: 0 !important; + max-width: calc((100% - 24px)/2) !important +} + +.vp-sponsor { + border-radius: 16px; + overflow: hidden +} + +.vp-sponsor.aside { + border-radius: 12px +} + +.vp-sponsor-section+.vp-sponsor-section { + margin-top: 4px +} + +.vp-sponsor-tier { + margin-bottom: 4px; + text-align: center; + letter-spacing: 1px; + line-height: 24px; + width: 100%; + font-weight: 600; + color: var(--vp-c-text-2); + background-color: var(--vp-c-bg-soft) +} + +.vp-sponsor.normal .vp-sponsor-tier { + padding: 13px 0 11px; + font-size: 14px +} + +.vp-sponsor.aside .vp-sponsor-tier { + padding: 9px 0 7px; + font-size: 12px +} + +.vp-sponsor-grid+.vp-sponsor-tier { + margin-top: 4px +} + +.vp-sponsor-grid { + display: flex; + flex-wrap: wrap; + gap: 4px +} + +.vp-sponsor-grid.xmini .vp-sponsor-grid-link { + height: 64px +} + +.vp-sponsor-grid.xmini .vp-sponsor-grid-image { + max-width: 64px; + max-height: 22px +} + +.vp-sponsor-grid.mini .vp-sponsor-grid-link { + height: 72px +} + +.vp-sponsor-grid.mini .vp-sponsor-grid-image { + max-width: 96px; + max-height: 24px +} + +.vp-sponsor-grid.small .vp-sponsor-grid-link { + height: 96px +} + +.vp-sponsor-grid.small .vp-sponsor-grid-image { + max-width: 96px; + max-height: 24px +} + +.vp-sponsor-grid.medium .vp-sponsor-grid-link { + height: 112px +} + +.vp-sponsor-grid.medium .vp-sponsor-grid-image { + max-width: 120px; + max-height: 36px +} + +.vp-sponsor-grid.big .vp-sponsor-grid-link { + height: 184px +} + +.vp-sponsor-grid.big .vp-sponsor-grid-image { + max-width: 192px; + max-height: 56px +} + +.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item { + width: calc((100% - 4px)/2) +} + +.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 2) / 3) +} + +.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item { + width: calc((100% - 12px)/4) +} + +.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item { + width: calc((100% - 16px)/5) +} + +.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item { + width: calc((100% - 4px * 5) / 6) +} + +.vp-sponsor-grid-item { + flex-shrink: 0; + width: 100%; + background-color: var(--vp-c-bg-soft); + transition: background-color .25s +} + +.vp-sponsor-grid-item:hover { + background-color: var(--vp-c-bg-mute) +} + +.vp-sponsor-grid-item:hover .vp-sponsor-grid-image { + filter: grayscale(0) invert(0) +} + +.vp-sponsor-grid-item.empty:hover { + background-color: var(--vp-c-bg-soft) +} + +.dark .vp-sponsor-grid-item:hover { + background-color: var(--vp-c-white-soft) +} + +.dark .vp-sponsor-grid-item.empty:hover { + background-color: var(--vp-c-black-mute) +} + +.vp-sponsor-grid-link { + display: flex +} + +.vp-sponsor-grid-box { + display: flex; + justify-content: center; + align-items: center; + width: 100% +} + +.vp-sponsor-grid-image { + max-width: 100%; + filter: grayscale(1); + transition: filter .25s +} + +.dark .vp-sponsor-grid-image { + filter: grayscale(1) invert(1) +} + +.VPBadge[data-v-8d21f6c9] { + display: inline-block; + margin-left: 2px; + border: 1px solid transparent; + border-radius: 10px; + padding: 0 8px; + line-height: 18px; + font-size: 13px; + font-weight: 600; + transform: translateY(-2px) +} + +h2 .VPBadge[data-v-8d21f6c9] { + border-radius: 11px; + line-height: 20px +} + +.VPBadge.info[data-v-8d21f6c9] { + border-color: var(--vp-badge-info-border); + color: var(--vp-badge-info-text); + background-color: var(--vp-badge-info-bg) +} + +.VPBadge.tip[data-v-8d21f6c9] { + border-color: var(--vp-badge-tip-border); + color: var(--vp-badge-tip-text); + background-color: var(--vp-badge-tip-bg) +} + +.VPBadge.warning[data-v-8d21f6c9] { + border-color: var(--vp-badge-warning-border); + color: var(--vp-badge-warning-text); + background-color: var(--vp-badge-warning-bg) +} + +.VPBadge.danger[data-v-8d21f6c9] { + border-color: var(--vp-badge-danger-border); + color: var(--vp-badge-danger-text); + background-color: var(--vp-badge-danger-bg) +} + +.VPSkipLink[data-v-151f2593] { + top: 8px; + left: 8px; + padding: 8px 16px; + z-index: 999; + border-radius: 8px; + font-size: 12px; + font-weight: 700; + text-decoration: none; + color: var(--vp-c-brand); + box-shadow: var(--vp-shadow-3); + background-color: var(--vp-c-bg) +} + +.VPSkipLink[data-v-151f2593]:focus { + height: auto; + width: auto; + clip: auto; + clip-path: none +} + +.dark .VPSkipLink[data-v-151f2593] { + color: var(--vp-c-green) +} + +@media (min-width: 1280px) { + .VPSkipLink[data-v-151f2593] { + top: 14px; + left: 16px + } +} + +.VPBackdrop[data-v-0164f098] { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: var(--vp-z-index-backdrop); + background: rgba(0, 0, 0, .6); + transition: opacity .5s +} + +.VPBackdrop.fade-enter-from[data-v-0164f098], +.VPBackdrop.fade-leave-to[data-v-0164f098] { + opacity: 0 +} + +.VPBackdrop.fade-leave-active[data-v-0164f098] { + transition-duration: .25s +} + +@media (min-width: 1280px) { + .VPBackdrop[data-v-0164f098] { + display: none + } +} + +html:not(.dark) .VPImage.dark[data-v-b7ac6bd3] { + display: none +} + +.dark .VPImage.light[data-v-b7ac6bd3] { + display: none +} + +.VPNavBarTitle[data-v-d5925166] { + flex-shrink: 0; + border-bottom: 1px solid transparent +} + +@media (min-width: 960px) { + .VPNavBarTitle.has-sidebar[data-v-d5925166] { + margin-right: 32px; + width: calc(var(--vp-sidebar-width) - 64px); + border-bottom-color: var(--vp-c-divider-light); + background-color: var(--vp-c-bg-alt) + } +} + +.title[data-v-d5925166] { + display: flex; + align-items: center; + width: 100%; + height: var(--vp-nav-height); + font-size: 16px; + font-weight: 600; + color: var(--vp-c-text-1); + transition: opacity .25s +} + +.title[data-v-d5925166]:hover { + opacity: .6 +} + +@media (min-width: 960px) { + .title[data-v-d5925166] { + flex-shrink: 0 + } +} + +[data-v-d5925166] .logo { + margin-right: 8px; + height: 24px +} + + +@keyframes fade-in { + 0% { + opacity: 0 + } + + to { + opacity: 1 + } +} + +.icon[data-v-3c355974] { + display: inline-block; + margin-top: -1px; + margin-left: 4px; + width: 11px; + height: 11px; + fill: var(--vp-c-text-3); + transition: fill .25s +} + +.VPNavBarMenuLink[data-v-47a2263e] { + display: flex; + align-items: center; + padding: 0 12px; + line-height: var(--vp-nav-height-mobile); + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: color .25s +} + +.VPNavBarMenuLink.active[data-v-47a2263e], +.VPNavBarMenuLink[data-v-47a2263e]:hover { + color: var(--vp-c-brand) +} + +@media (min-width: 1280px) { + .VPNavBarMenuLink[data-v-47a2263e] { + line-height: var(--vp-nav-height-desktop) + } +} + +.VPMenuGroup+.VPMenuLink[data-v-e8e0fb1d] { + margin: 12px -12px 0; + border-top: 1px solid var(--vp-c-divider-light); + padding: 12px 12px 0 +} + +.link[data-v-e8e0fb1d] { + display: block; + border-radius: 6px; + padding: 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + white-space: nowrap; + transition: background-color .25s, color .25s +} + +.link[data-v-e8e0fb1d]:hover { + color: var(--vp-c-brand); + background-color: var(--vp-c-bg-mute) +} + +.dark .link[data-v-e8e0fb1d]:hover { + background-color: var(--vp-c-bg-soft) +} + +.link.active[data-v-e8e0fb1d] { + color: var(--vp-c-brand) +} + +.VPMenuGroup[data-v-9ca52130] { + margin: 12px -12px 0; + border-top: 1px solid var(--vp-c-divider-light); + padding: 12px 12px 0 +} + +.VPMenuGroup[data-v-9ca52130]:first-child { + margin-top: 0; + border-top: 0; + padding-top: 0 +} + +.VPMenuGroup+.VPMenuGroup[data-v-9ca52130] { + margin-top: 12px; + border-top: 1px solid var(--vp-c-divider-light) +} + +.title[data-v-9ca52130] { + padding: 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 600; + color: var(--vp-c-text-2); + transition: color .25s +} + +.VPMenu[data-v-1c5d0cfc] { + border-radius: 12px; + padding: 12px; + min-width: 128px; + border: 1px solid var(--vp-c-divider-light); + background-color: var(--vp-c-bg); + box-shadow: var(--vp-shadow-3); + transition: background-color .5s; + max-height: calc(100vh - var(--vp-nav-height-mobile)); + overflow-y: auto +} + +@media (min-width: 960px) { + .VPMenu[data-v-1c5d0cfc] { + max-height: calc(100vh - var(--vp-nav-height-desktop)) + } +} + +.dark .VPMenu[data-v-1c5d0cfc] { + box-shadow: var(--vp-shadow-2) +} + +.VPMenu[data-v-1c5d0cfc] .group { + margin: 0 -12px; + padding: 0 12px 12px +} + +.VPMenu[data-v-1c5d0cfc] .group+.group { + border-top: 1px solid var(--vp-c-divider-light); + padding: 11px 12px 12px +} + +.VPMenu[data-v-1c5d0cfc] .group:last-child { + padding-bottom: 0 +} + +.VPMenu[data-v-1c5d0cfc] .group+.item { + border-top: 1px solid var(--vp-c-divider-light); + padding: 11px 16px 0 +} + +.VPMenu[data-v-1c5d0cfc] .item { + padding: 0 16px; + white-space: nowrap +} + +.VPMenu[data-v-1c5d0cfc] .label { + flex-grow: 1; + line-height: 28px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.VPMenu[data-v-1c5d0cfc] .action { + padding-left: 24px +} + +.VPFlyout[data-v-6ffb57d3] { + position: relative +} + +.VPFlyout[data-v-6ffb57d3]:hover { + color: var(--vp-c-brand); + transition: color .25s +} + +.VPFlyout:hover .text[data-v-6ffb57d3] { + color: var(--vp-c-text-2) +} + +.VPFlyout:hover .icon[data-v-6ffb57d3] { + fill: var(--vp-c-text-2) +} + +.VPFlyout.active .text[data-v-6ffb57d3] { + color: var(--vp-c-brand) +} + +.VPFlyout.active:hover .text[data-v-6ffb57d3] { + color: var(--vp-c-brand-dark) +} + +.VPFlyout:hover .menu[data-v-6ffb57d3], +.button[aria-expanded=true]+.menu[data-v-6ffb57d3] { + opacity: 1; + visibility: visible; + transform: translateY(0) +} + +.button[data-v-6ffb57d3] { + display: flex; + align-items: center; + padding: 0 12px; + height: var(--vp-nav-height-mobile); + color: var(--vp-c-text-1); + transition: color .5s +} + +@media (min-width: 960px) { + .button[data-v-6ffb57d3] { + height: var(--vp-nav-height-desktop) + } +} + +.text[data-v-6ffb57d3] { + display: flex; + align-items: center; + line-height: var(--vp-nav-height-mobile); + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: color .25s +} + +@media (min-width: 960px) { + .text[data-v-6ffb57d3] { + line-height: var(--vp-nav-height-desktop) + } +} + +.option-icon[data-v-6ffb57d3] { + margin-right: 0; + width: 16px; + height: 16px; + fill: currentColor +} + +.text-icon[data-v-6ffb57d3] { + margin-left: 4px; + width: 14px; + height: 14px; + fill: currentColor +} + +.icon[data-v-6ffb57d3] { + width: 20px; + height: 20px; + fill: currentColor; + transition: fill .25s +} + +.menu[data-v-6ffb57d3] { + position: absolute; + top: calc(var(--vp-nav-height-mobile) / 2 + 20px); + right: 0; + opacity: 0; + visibility: hidden; + transition: opacity .25s, visibility .25s, transform .25s +} + +@media (min-width: 960px) { + .menu[data-v-6ffb57d3] { + top: calc(var(--vp-nav-height-desktop) / 2 + 20px) + } +} + +.VPNavBarMenu[data-v-f83db6ba] { + display: none +} + +@media (min-width: 768px) { + .VPNavBarMenu[data-v-f83db6ba] { + display: flex + } +} + +.VPNavBarTranslations[data-v-db824e91] { + display: none +} + +@media (min-width: 1280px) { + .VPNavBarTranslations[data-v-db824e91] { + display: flex; + align-items: center + } +} + +.title[data-v-db824e91] { + padding: 0 24px 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 700; + color: var(--vp-c-text-1) +} + +.VPSwitch[data-v-eba7420e] { + position: relative; + border-radius: 11px; + display: block; + width: 40px; + height: 22px; + flex-shrink: 0; + border: 1px solid var(--vp-c-divider); + background-color: var(--vp-c-bg-mute); + transition: border-color .25s +} + +.VPSwitch[data-v-eba7420e]:hover { + border-color: var(--vp-c-gray) +} + +.check[data-v-eba7420e] { + position: absolute; + top: 1px; + left: 1px; + width: 18px; + height: 18px; + border-radius: 50%; + background-color: var(--vp-c-white); + box-shadow: var(--vp-shadow-1); + transition: transform .25s +} + +.dark .check[data-v-eba7420e] { + background-color: var(--vp-c-black) +} + +.icon[data-v-eba7420e] { + position: relative; + display: block; + width: 18px; + height: 18px; + border-radius: 50%; + overflow: hidden +} + +.icon[data-v-eba7420e] svg { + position: absolute; + top: 3px; + left: 3px; + width: 12px; + height: 12px; + fill: var(--vp-c-text-2) +} + +.dark .icon[data-v-eba7420e] svg { + fill: var(--vp-c-text-1); + transition: opacity .25s +} + +.sun[data-v-481098f9] { + opacity: 1 +} + +.moon[data-v-481098f9], +.dark .sun[data-v-481098f9] { + opacity: 0 +} + +.dark .moon[data-v-481098f9] { + opacity: 1 +} + +.dark .VPSwitchAppearance[data-v-481098f9] .check { + transform: translate(18px) +} + +.VPNavBarAppearance[data-v-a3e7452b] { + display: none +} + +@media (min-width: 1280px) { + .VPNavBarAppearance[data-v-a3e7452b] { + display: flex; + align-items: center + } +} + +.VPSocialLink[data-v-e57698f6] { + display: flex; + justify-content: center; + align-items: center; + width: 36px; + height: 36px; + color: var(--vp-c-text-2); + transition: color .5s +} + +.VPSocialLink[data-v-e57698f6]:hover { + color: var(--vp-c-text-1); + transition: color .25s +} + +.VPSocialLink[data-v-e57698f6]>svg { + width: 20px; + height: 20px; + fill: currentColor +} + +.VPSocialLinks[data-v-f6988cfb] { + display: flex; + flex-wrap: wrap; + justify-content: center +} + +.VPNavBarSocialLinks[data-v-738bef5a] { + display: none +} + +@media (min-width: 1280px) { + .VPNavBarSocialLinks[data-v-738bef5a] { + display: flex; + align-items: center + } +} + +.VPNavBarExtra[data-v-e4361c82] { + display: none; + margin-right: -12px +} + +@media (min-width: 768px) { + .VPNavBarExtra[data-v-e4361c82] { + display: block + } +} + +@media (min-width: 1280px) { + .VPNavBarExtra[data-v-e4361c82] { + display: none + } +} + +.trans-title[data-v-e4361c82] { + padding: 0 24px 0 12px; + line-height: 32px; + font-size: 14px; + font-weight: 700; + color: var(--vp-c-text-1) +} + +.item.appearance[data-v-e4361c82], +.item.social-links[data-v-e4361c82] { + display: flex; + align-items: center; + padding: 0 12px +} + +.item.appearance[data-v-e4361c82] { + min-width: 176px +} + +.appearance-action[data-v-e4361c82] { + margin-right: -2px +} + +.social-links-list[data-v-e4361c82] { + margin: -4px -8px +} + +.VPNavBarHamburger[data-v-e5dd9c1c] { + display: flex; + justify-content: center; + align-items: center; + width: 48px; + height: var(--vp-nav-height) +} + +@media (min-width: 768px) { + .VPNavBarHamburger[data-v-e5dd9c1c] { + display: none + } +} + +.container[data-v-e5dd9c1c] { + position: relative; + width: 16px; + height: 14px; + overflow: hidden +} + +.VPNavBarHamburger:hover .top[data-v-e5dd9c1c] { + top: 0; + left: 0; + transform: translate(4px) +} + +.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c] { + top: 6px; + left: 0; + transform: translate(0) +} + +.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c] { + top: 12px; + left: 0; + transform: translate(8px) +} + +.VPNavBarHamburger.active .top[data-v-e5dd9c1c] { + top: 6px; + transform: translate(0) rotate(225deg) +} + +.VPNavBarHamburger.active .middle[data-v-e5dd9c1c] { + top: 6px; + transform: translate(16px) +} + +.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c] { + top: 6px; + transform: translate(0) rotate(135deg) +} + +.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c], +.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c], +.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c] { + background-color: var(--vp-c-text-2); + transition: top .25s, background-color .25s, transform .25s +} + +.top[data-v-e5dd9c1c], +.middle[data-v-e5dd9c1c], +.bottom[data-v-e5dd9c1c] { + position: absolute; + width: 16px; + height: 2px; + background-color: var(--vp-c-text-1); + transition: top .25s, background-color .5s, transform .25s +} + +.top[data-v-e5dd9c1c] { + top: 0; + left: 0; + transform: translate(0) +} + +.middle[data-v-e5dd9c1c] { + top: 6px; + left: 0; + transform: translate(8px) +} + +.bottom[data-v-e5dd9c1c] { + top: 12px; + left: 0; + transform: translate(4px) +} + +.VPNavBar[data-v-6f1d18b5] { + position: relative; + border-bottom: 1px solid var(--vp-c-divider-light); + padding: 0 8px 0 24px; + height: var(--vp-nav-height-mobile); + transition: border-color .5s, background-color .5s; + pointer-events: none +} + +@media (min-width: 768px) { + .VPNavBar[data-v-6f1d18b5] { + padding: 0 32px + } +} + +@media (min-width: 960px) { + .VPNavBar[data-v-6f1d18b5] { + height: var(--vp-nav-height-desktop); + border-bottom: 0 + } + + .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + margin-right: -32px; + padding-right: 32px; + -webkit-backdrop-filter: saturate(50%) blur(8px); + backdrop-filter: saturate(50%) blur(8px); + background: rgba(255, 255, 255, .7) + } + + .dark .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + background: rgba(36, 36, 36, .7) + } + + @supports not (backdrop-filter: saturate(50%) blur(8px)) { + .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + background: rgba(255, 255, 255, .95) + } + + .dark .VPNavBar.has-sidebar .content[data-v-6f1d18b5] { + background: rgba(36, 36, 36, .95) + } + } +} + +.container[data-v-6f1d18b5] { + display: flex; + justify-content: space-between; + margin: 0 auto; + max-width: calc(var(--vp-layout-max-width) - 64px); + pointer-events: none +} + +.container[data-v-6f1d18b5] * { + pointer-events: auto +} + +.content[data-v-6f1d18b5] { + display: flex; + justify-content: flex-end; + align-items: center; + flex-grow: 1 +} + +.menu+.translations[data-v-6f1d18b5]:before, +.menu+.appearance[data-v-6f1d18b5]:before, +.menu+.social-links[data-v-6f1d18b5]:before, +.translations+.appearance[data-v-6f1d18b5]:before, +.appearance+.social-links[data-v-6f1d18b5]:before { + margin-right: 8px; + margin-left: 8px; + width: 1px; + height: 24px; + background-color: var(--vp-c-divider-light); + content: "" +} + +.menu+.appearance[data-v-6f1d18b5]:before, +.translations+.appearance[data-v-6f1d18b5]:before { + margin-right: 16px +} + +.appearance+.social-links[data-v-6f1d18b5]:before { + margin-left: 16px +} + +.social-links[data-v-6f1d18b5] { + margin-right: -8px +} + +.VPNavScreenMenuLink[data-v-b7098508] { + display: block; + border-bottom: 1px solid var(--vp-c-divider-light); + padding: 12px 0 11px; + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: border-color .5s, color .25s +} + +.VPNavScreenMenuLink[data-v-b7098508]:hover { + color: var(--vp-c-brand) +} + +.VPNavScreenMenuGroupLink[data-v-7f173864] { + display: block; + line-height: 32px; + font-size: 13px; + font-weight: 400; + color: var(--vp-c-text-1); + transition: color .25s; + margin-left: 12px +} + +.VPNavScreenMenuGroupLink[data-v-7f173864]:hover { + color: var(--vp-c-brand) +} + +.VPNavScreenMenuGroupSection[data-v-7478538b] { + display: block +} + +.title[data-v-7478538b] { + line-height: 32px; + font-size: 13px; + font-weight: 700; + color: var(--vp-c-text-2); + transition: color .25s +} + +.VPNavScreenMenuGroup[data-v-5bc84358] { + border-bottom: 1px solid var(--vp-c-divider-light); + height: 48px; + overflow: hidden; + transition: border-color .5s +} + +.VPNavScreenMenuGroup .items[data-v-5bc84358] { + visibility: hidden +} + +.VPNavScreenMenuGroup.open .items[data-v-5bc84358] { + visibility: visible +} + +.VPNavScreenMenuGroup.open[data-v-5bc84358] { + padding-bottom: 10px; + height: auto +} + +.VPNavScreenMenuGroup.open .button[data-v-5bc84358] { + padding-bottom: 6px; + color: var(--vp-c-brand) +} + +.VPNavScreenMenuGroup.open .button-icon[data-v-5bc84358] { + transform: rotate(45deg) +} + +.button[data-v-5bc84358] { + display: flex; + justify-content: space-between; + align-items: center; + padding: 12px 4px 11px 0; + width: 100%; + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1); + transition: color .25s +} + +.button[data-v-5bc84358]:hover { + color: var(--vp-c-brand) +} + +.button-icon[data-v-5bc84358] { + width: 14px; + height: 14px; + fill: var(--vp-c-text-2); + transition: fill .5s, transform .25s +} + +.group[data-v-5bc84358]:first-child { + padding-top: 0 +} + +.group+.group[data-v-5bc84358], +.group+.item[data-v-5bc84358] { + padding-top: 4px +} + +.VPNavScreenAppearance[data-v-7bc19822] { + display: flex; + justify-content: space-between; + align-items: center; + border-radius: 8px; + padding: 12px 14px 12px 16px; + background-color: var(--vp-c-bg-soft); + transition: background-color .5s +} + +.text[data-v-7bc19822] { + line-height: 24px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.VPNavScreenTranslations[data-v-6bfcad30] { + height: 24px; + overflow: hidden +} + +.VPNavScreenTranslations.open[data-v-6bfcad30] { + height: auto +} + +.title[data-v-6bfcad30] { + display: flex; + align-items: center; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-1) +} + +.icon[data-v-6bfcad30] { + width: 16px; + height: 16px; + fill: currentColor +} + +.icon.lang[data-v-6bfcad30] { + margin-right: 8px +} + +.icon.chevron[data-v-6bfcad30] { + margin-left: 4px +} + +.list[data-v-6bfcad30] { + padding: 4px 0 0 24px +} + +.link[data-v-6bfcad30] { + line-height: 32px; + font-size: 13px; + color: var(--vp-c-text-1) +} + +.VPNavScreen[data-v-4a289eba] { + position: fixed; + top: calc(var(--vp-nav-height-mobile) + var(--vp-layout-top-height, 0px)); + right: 0; + bottom: 0; + left: 0; + padding: 0 32px; + width: 100%; + background-color: var(--vp-c-bg); + overflow-y: auto; + transition: background-color .5s; + pointer-events: auto +} + +.VPNavScreen.fade-enter-active[data-v-4a289eba], +.VPNavScreen.fade-leave-active[data-v-4a289eba] { + transition: opacity .25s +} + +.VPNavScreen.fade-enter-active .container[data-v-4a289eba], +.VPNavScreen.fade-leave-active .container[data-v-4a289eba] { + transition: transform .25s ease +} + +.VPNavScreen.fade-enter-from[data-v-4a289eba], +.VPNavScreen.fade-leave-to[data-v-4a289eba] { + opacity: 0 +} + +.VPNavScreen.fade-enter-from .container[data-v-4a289eba], +.VPNavScreen.fade-leave-to .container[data-v-4a289eba] { + transform: translateY(-8px) +} + +@media (min-width: 768px) { + .VPNavScreen[data-v-4a289eba] { + display: none + } +} + +.container[data-v-4a289eba] { + margin: 0 auto; + padding: 24px 0 96px; + max-width: 288px +} + +.menu+.translations[data-v-4a289eba], +.menu+.appearance[data-v-4a289eba], +.translations+.appearance[data-v-4a289eba] { + margin-top: 24px +} + +.menu+.social-links[data-v-4a289eba] { + margin-top: 16px +} + +.appearance+.social-links[data-v-4a289eba] { + margin-top: 16px +} + +.VPNav[data-v-a50780ff] { + position: relative; + top: var(--vp-layout-top-height, 0px); + left: 0; + z-index: var(--vp-z-index-nav); + width: 100%; + pointer-events: none +} + +@media (min-width: 960px) { + .VPNav[data-v-a50780ff] { + position: fixed + } + + .VPNav.no-sidebar[data-v-a50780ff] { + -webkit-backdrop-filter: saturate(50%) blur(8px); + backdrop-filter: saturate(50%) blur(8px); + background: rgba(255, 255, 255, .7) + } + + .dark .VPNav.no-sidebar[data-v-a50780ff] { + background: rgba(36, 36, 36, .7) + } + + @supports not (backdrop-filter: saturate(50%) blur(8px)) { + .VPNav.no-sidebar[data-v-a50780ff] { + background: rgba(255, 255, 255, .95) + } + + .dark .VPNav.no-sidebar[data-v-a50780ff] { + background: rgba(36, 36, 36, .95) + } + } +} + +.VPLocalNav[data-v-b6162a8b] { + position: sticky; + top: 0; + left: 0; + z-index: var(--vp-z-index-local-nav); + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid var(--vp-c-divider-light); + width: 100%; + background-color: var(--vp-c-bg); + transition: border-color .5s, background-color .5s; + padding-top: var(--vp-layout-top-height, 0px) +} + +@media (min-width: 960px) { + .VPLocalNav[data-v-b6162a8b] { + display: none + } +} + +.menu[data-v-b6162a8b] { + display: flex; + align-items: center; + padding: 12px 24px 11px; + line-height: 24px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.menu[data-v-b6162a8b]:hover { + color: var(--vp-c-text-1); + transition: color .25s +} + +@media (min-width: 768px) { + .menu[data-v-b6162a8b] { + padding: 0 32px + } +} + +.menu-icon[data-v-b6162a8b] { + margin-right: 8px; + width: 16px; + height: 16px; + fill: currentColor +} + +.top-link[data-v-b6162a8b] { + display: block; + padding: 12px 24px 11px; + line-height: 24px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2); + transition: color .5s +} + +.top-link[data-v-b6162a8b]:hover { + color: var(--vp-c-text-1); + transition: color .25s +} + +@media (min-width: 768px) { + .top-link[data-v-b6162a8b] { + padding: 12px 32px 11px + } +} + +.link[data-v-36b976d1] { + display: block; + margin: 4px 0; + color: var(--vp-c-text-2); + transition: color .5s +} + +.link[data-v-36b976d1]:hover { + color: var(--vp-c-text-1) +} + +.link.active[data-v-36b976d1] { + color: var(--vp-c-brand) +} + +.link[data-v-36b976d1] .icon { + width: 12px; + height: 12px; + fill: currentColor +} + +.link-text[data-v-36b976d1] { + line-height: 20px; + font-size: 14px; + font-weight: 500 +} + +.link-text.light[data-v-36b976d1] { + font-size: 13px; + font-weight: 400 +} + +.title[data-v-6e45c352] { + display: flex; + justify-content: space-between; + align-items: flex-start; + z-index: 2 +} + +.title-text[data-v-6e45c352] { + padding-top: 6px; + padding-bottom: 6px; + line-height: 20px; + font-size: 14px; + font-weight: 700; + color: var(--vp-c-text-1) +} + +.action[data-v-6e45c352] { + display: none; + position: relative; + margin-right: -8px; + border-radius: 4px; + width: 32px; + height: 32px; + color: var(--vp-c-text-3); + transition: color .25s +} + +.VPSidebarGroup.collapsible .action[data-v-6e45c352] { + display: block +} + +.VPSidebarGroup.collapsible .title[data-v-6e45c352] { + cursor: pointer +} + +.title:hover .action[data-v-6e45c352] { + color: var(--vp-c-text-2) +} + +.icon[data-v-6e45c352] { + position: absolute; + top: 8px; + left: 8px; + width: 16px; + height: 16px; + fill: currentColor +} + +.icon.minus[data-v-6e45c352] { + opacity: 1 +} + +.icon.plus[data-v-6e45c352], +.VPSidebarGroup.collapsed .icon.minus[data-v-6e45c352] { + opacity: 0 +} + +.VPSidebarGroup.collapsed .icon.plus[data-v-6e45c352] { + opacity: 1 +} + +.items[data-v-6e45c352] { + overflow: hidden +} + +.VPSidebarGroup.collapsed .items[data-v-6e45c352] { + margin-bottom: -22px; + max-height: 0 +} + +@media (min-width: 960px) { + .VPSidebarGroup.collapsed .items[data-v-6e45c352] { + margin-bottom: -14px + } +} + +.VPSidebar[data-v-a186aa16] { + position: fixed; + top: var(--vp-layout-top-height, 0px); + bottom: 0; + left: 0; + z-index: var(--vp-z-index-sidebar); + padding: 32px 32px 96px; + width: calc(100vw - 64px); + max-width: 320px; + background-color: var(--vp-c-bg); + opacity: 0; + box-shadow: var(--vp-c-shadow-3); + overflow-x: hidden; + overflow-y: auto; + transform: translate(-100%); + transition: opacity .5s, transform .25s ease +} + +.VPSidebar.open[data-v-a186aa16] { + opacity: 1; + visibility: visible; + transform: translate(0); + transition: opacity .25s, transform .5s cubic-bezier(.19, 1, .22, 1) +} + +.dark .VPSidebar[data-v-a186aa16] { + box-shadow: var(--vp-shadow-1) +} + +@media (min-width: 960px) { + .VPSidebar[data-v-a186aa16] { + z-index: 1; + padding-top: var(--vp-nav-height-desktop); + padding-bottom: 128px; + width: var(--vp-sidebar-width); + max-width: 100%; + background-color: var(--vp-c-bg-alt); + opacity: 1; + visibility: visible; + box-shadow: none; + transform: translate(0) + } +} + +@media (min-width: 1440px) { + .VPSidebar[data-v-a186aa16] { + padding-left: max(32px, calc((100% - (var(--vp-layout-max-width) - 64px)) / 2)); + width: calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px) + } +} + +.nav[data-v-a186aa16] { + outline: 0 +} + +.group+.group[data-v-a186aa16] { + margin-top: 32px; + border-top: 1px solid var(--vp-c-divider-light); + padding-top: 10px +} + +@media (min-width: 960px) { + .group[data-v-a186aa16] { + padding-top: 10px; + width: calc(var(--vp-sidebar-width) - 64px) + } + + .group+.group[data-v-a186aa16] { + margin-top: 24px + } +} + +.VPButton[data-v-53dbb8eb] { + display: inline-block; + border: 1px solid transparent; + text-align: center; + font-weight: 500; + white-space: nowrap; + transition: color .25s, border-color .25s, background-color .25s +} + +.VPButton[data-v-53dbb8eb]:active { + transition: color .1s, border-color .1s, background-color .1s +} + +.VPButton.medium[data-v-53dbb8eb] { + border-radius: 20px; + padding: 0 20px; + line-height: 38px; + font-size: 14px +} + +.VPButton.big[data-v-53dbb8eb] { + border-radius: 24px; + padding: 0 24px; + line-height: 46px; + font-size: 16px +} + +.VPButton.brand[data-v-53dbb8eb] { + border-color: var(--vp-button-brand-border); + color: var(--vp-button-brand-text); + background-color: var(--vp-button-brand-bg) +} + +.VPButton.brand[data-v-53dbb8eb]:hover { + border-color: var(--vp-button-brand-hover-border); + color: var(--vp-button-brand-hover-text); + background-color: var(--vp-button-brand-hover-bg) +} + +.VPButton.brand[data-v-53dbb8eb]:active { + border-color: var(--vp-button-brand-active-border); + color: var(--vp-button-brand-active-text); + background-color: var(--vp-button-brand-active-bg) +} + +.VPButton.alt[data-v-53dbb8eb] { + border-color: var(--vp-button-alt-border); + color: var(--vp-button-alt-text); + background-color: var(--vp-button-alt-bg) +} + +.VPButton.alt[data-v-53dbb8eb]:hover { + border-color: var(--vp-button-alt-hover-border); + color: var(--vp-button-alt-hover-text); + background-color: var(--vp-button-alt-hover-bg) +} + +.VPButton.alt[data-v-53dbb8eb]:active { + border-color: var(--vp-button-alt-active-border); + color: var(--vp-button-alt-active-text); + background-color: var(--vp-button-alt-active-bg) +} + +.VPButton.sponsor[data-v-53dbb8eb] { + border-color: var(--vp-button-sponsor-border); + color: var(--vp-button-sponsor-text); + background-color: var(--vp-button-sponsor-bg) +} + +.VPButton.sponsor[data-v-53dbb8eb]:hover { + border-color: var(--vp-button-sponsor-hover-border); + color: var(--vp-button-sponsor-hover-text); + background-color: var(--vp-button-sponsor-hover-bg) +} + +.VPButton.sponsor[data-v-53dbb8eb]:active { + border-color: var(--vp-button-sponsor-active-border); + color: var(--vp-button-sponsor-active-text); + background-color: var(--vp-button-sponsor-active-bg) +} + +.VPHero[data-v-0a0d4301] { + margin-top: calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1); + padding: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px +} + +@media (min-width: 640px) { + .VPHero[data-v-0a0d4301] { + padding: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px + } +} + +@media (min-width: 960px) { + .VPHero[data-v-0a0d4301] { + padding: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px + } +} + +.container[data-v-0a0d4301] { + display: flex; + flex-direction: column; + margin: 0 auto; + max-width: 1152px +} + +@media (min-width: 960px) { + .container[data-v-0a0d4301] { + flex-direction: row + } +} + +.main[data-v-0a0d4301] { + position: relative; + z-index: 10; + order: 2; + flex-grow: 1; + flex-shrink: 0 +} + +.VPHero.has-image .container[data-v-0a0d4301] { + text-align: center +} + +@media (min-width: 960px) { + .VPHero.has-image .container[data-v-0a0d4301] { + text-align: left + } +} + +@media (min-width: 960px) { + .main[data-v-0a0d4301] { + order: 1; + width: calc((100% / 3) * 2) + } + + .VPHero.has-image .main[data-v-0a0d4301] { + max-width: 592px + } +} + +.name[data-v-0a0d4301], +.text[data-v-0a0d4301] { + max-width: 392px; + letter-spacing: -.4px; + line-height: 40px; + font-size: 32px; + font-weight: 700; + white-space: pre-wrap +} + +.VPHero.has-image .name[data-v-0a0d4301], +.VPHero.has-image .text[data-v-0a0d4301] { + margin: 0 auto +} + +.name[data-v-0a0d4301] { + color: var(--vp-home-hero-name-color) +} + +.clip[data-v-0a0d4301] { + background: var(--vp-home-hero-name-background); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: var(--vp-home-hero-name-color) +} + +@media (min-width: 640px) { + + .name[data-v-0a0d4301], + .text[data-v-0a0d4301] { + max-width: 576px; + line-height: 56px; + font-size: 48px + } +} + +@media (min-width: 960px) { + + .name[data-v-0a0d4301], + .text[data-v-0a0d4301] { + line-height: 64px; + font-size: 56px + } + + .VPHero.has-image .name[data-v-0a0d4301], + .VPHero.has-image .text[data-v-0a0d4301] { + margin: 0 + } +} + +.tagline[data-v-0a0d4301] { + padding-top: 8px; + max-width: 392px; + line-height: 28px; + font-size: 18px; + font-weight: 500; + white-space: pre-wrap; + color: var(--vp-c-text-2) +} + +.VPHero.has-image .tagline[data-v-0a0d4301] { + margin: 0 auto +} + +@media (min-width: 640px) { + .tagline[data-v-0a0d4301] { + padding-top: 12px; + max-width: 576px; + line-height: 32px; + font-size: 20px + } +} + +@media (min-width: 960px) { + .tagline[data-v-0a0d4301] { + line-height: 36px; + font-size: 24px + } + + .VPHero.has-image .tagline[data-v-0a0d4301] { + margin: 0 + } +} + +.actions[data-v-0a0d4301] { + display: flex; + flex-wrap: wrap; + margin: -6px; + padding-top: 24px +} + +.VPHero.has-image .actions[data-v-0a0d4301] { + justify-content: center +} + +@media (min-width: 640px) { + .actions[data-v-0a0d4301] { + padding-top: 32px + } +} + +@media (min-width: 960px) { + .VPHero.has-image .actions[data-v-0a0d4301] { + justify-content: flex-start + } +} + +.action[data-v-0a0d4301] { + flex-shrink: 0; + padding: 6px +} + +.image[data-v-0a0d4301] { + order: 1; + margin: -76px -24px -48px +} + +@media (min-width: 640px) { + .image[data-v-0a0d4301] { + margin: -108px -24px -48px + } +} + +@media (min-width: 960px) { + .image[data-v-0a0d4301] { + flex-grow: 1; + order: 2; + margin: 0; + min-height: 100% + } +} + +.image-container[data-v-0a0d4301] { + position: relative; + margin: 0 auto; + width: 320px; + height: 320px +} + +@media (min-width: 640px) { + .image-container[data-v-0a0d4301] { + width: 392px; + height: 392px + } +} + +@media (min-width: 960px) { + .image-container[data-v-0a0d4301] { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + transform: translate(-32px, -32px) + } +} + +.image-bg[data-v-0a0d4301] { + position: absolute; + top: 50%; + left: 50%; + border-radius: 50%; + width: 192px; + height: 192px; + background-image: var(--vp-home-hero-image-background-image); + filter: var(--vp-home-hero-image-filter); + transform: translate(-50%, -50%) +} + +@media (min-width: 640px) { + .image-bg[data-v-0a0d4301] { + width: 256px; + height: 256px + } +} + +@media (min-width: 960px) { + .image-bg[data-v-0a0d4301] { + width: 320px; + height: 320px + } +} + +[data-v-0a0d4301] .image-src { + position: absolute; + top: 50%; + left: 50%; + max-width: 192px; + transform: translate(-50%, -50%) +} + +@media (min-width: 640px) { + [data-v-0a0d4301] .image-src { + max-width: 256px + } +} + +@media (min-width: 960px) { + [data-v-0a0d4301] .image-src { + max-width: 320px + } +} + +.VPFeature[data-v-b8147458] { + display: block; + border: 1px solid var(--vp-c-bg-soft); + border-radius: 12px; + height: 100%; + background-color: var(--vp-c-bg-soft); + transition: border-color .25s, background-color .25s +} + +.VPFeature.link[data-v-b8147458]:hover { + border-color: var(--vp-c-brand); + background-color: var(--vp-c-bg) +} + +.dark .VPFeature.link[data-v-b8147458]:hover { + background-color: var(--vp-c-bg-mute) +} + +.box[data-v-b8147458] { + display: flex; + flex-direction: column; + padding: 24px; + height: 100% +} + +.icon[data-v-b8147458] { + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 20px; + border-radius: 6px; + background-color: var(--vp-c-gray-light-4); + width: 48px; + height: 48px; + font-size: 24px; + transition: background-color .25s +} + +.dark .icon[data-v-b8147458] { + background-color: var(--vp-c-gray-dark-5) +} + +.title[data-v-b8147458] { + line-height: 24px; + font-size: 16px; + font-weight: 600 +} + +.details[data-v-b8147458] { + flex-grow: 1; + padding-top: 8px; + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.link-text[data-v-b8147458] { + padding-top: 8px +} + +.link-text-value[data-v-b8147458] { + display: flex; + align-items: center; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: color .25s +} + +.VPFeature.link:hover .link-text-value[data-v-b8147458] { + color: var(--vp-c-brand-dark) +} + +.link-text-icon[data-v-b8147458] { + display: inline-block; + margin-left: 6px; + width: 14px; + height: 14px; + fill: currentColor +} + +.VPFeatures[data-v-69662dc1] { + position: relative; + padding: 0 24px +} + +@media (min-width: 640px) { + .VPFeatures[data-v-69662dc1] { + padding: 0 48px + } +} + +@media (min-width: 960px) { + .VPFeatures[data-v-69662dc1] { + padding: 0 64px + } +} + +.container[data-v-69662dc1] { + margin: 0 auto; + max-width: 1152px +} + +.items[data-v-69662dc1] { + display: flex; + flex-wrap: wrap; + margin: -8px +} + +.item[data-v-69662dc1] { + padding: 8px; + width: 100% +} + +@media (min-width: 640px) { + + .item.grid-2[data-v-69662dc1], + .item.grid-4[data-v-69662dc1], + .item.grid-6[data-v-69662dc1] { + width: 50% + } +} + +@media (min-width: 768px) { + + .item.grid-2[data-v-69662dc1], + .item.grid-4[data-v-69662dc1] { + width: 50% + } + + .item.grid-3[data-v-69662dc1], + .item.grid-6[data-v-69662dc1] { + width: calc(100% / 3) + } +} + +@media (min-width: 960px) { + .item.grid-4[data-v-69662dc1] { + width: 25% + } +} + +.VPHome[data-v-1db23833] { + padding-bottom: 96px +} + +.VPHome[data-v-1db23833] .VPHomeSponsors { + margin-top: 112px; + margin-bottom: -128px +} + +@media (min-width: 768px) { + .VPHome[data-v-1db23833] { + padding-bottom: 128px + } +} + +.root[data-v-1188541a] { + position: relative; + z-index: 1 +} + +.nested[data-v-1188541a] { + padding-left: 13px +} + +.outline-link[data-v-1188541a] { + display: block; + line-height: 28px; + color: var(--vp-c-text-2); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + transition: color .5s +} + +.outline-link[data-v-1188541a]:hover, +.outline-link.active[data-v-1188541a] { + color: var(--vp-c-text-1); + transition: color .25s +} + +.outline-link.nested[data-v-1188541a] { + padding-left: 13px +} + +.VPDocAsideOutline[data-v-2865c0b0] { + display: none +} + +.VPDocAsideOutline.has-outline[data-v-2865c0b0] { + display: block +} + +.content[data-v-2865c0b0] { + position: relative; + border-left: 1px solid var(--vp-c-divider-light); + padding-left: 16px; + font-size: 13px; + font-weight: 500 +} + +.outline-marker[data-v-2865c0b0] { + position: absolute; + top: 32px; + left: -1px; + z-index: 0; + opacity: 0; + width: 1px; + height: 18px; + background-color: var(--vp-c-brand); + transition: top .25s cubic-bezier(0, 1, .5, 1), background-color .5s, opacity .25s +} + +.outline-title[data-v-2865c0b0] { + letter-spacing: .4px; + line-height: 28px; + font-size: 13px; + font-weight: 600 +} + +.VPDocAside[data-v-afc4c1a1] { + display: flex; + flex-direction: column; + flex-grow: 1 +} + +.spacer[data-v-afc4c1a1] { + flex-grow: 1 +} + +.VPDocAside[data-v-afc4c1a1] .spacer+.VPDocAsideSponsors, +.VPDocAside[data-v-afc4c1a1] .spacer+.VPDocAsideCarbonAds { + margin-top: 24px +} + +.VPDocAside[data-v-afc4c1a1] .VPDocAsideSponsors+.VPDocAsideCarbonAds { + margin-top: 16px +} + +.VPLastUpdated[data-v-18fe8fc2] { + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +@media (min-width: 640px) { + .VPLastUpdated[data-v-18fe8fc2] { + line-height: 32px; + font-size: 14px; + font-weight: 500 + } +} + +.VPDocFooter[data-v-21f75714] { + margin-top: 64px +} + +.edit-info[data-v-21f75714] { + padding-bottom: 18px +} + +@media (min-width: 640px) { + .edit-info[data-v-21f75714] { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 14px + } +} + +.edit-link-button[data-v-21f75714] { + display: flex; + align-items: center; + border: 0; + line-height: 32px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: color .25s +} + +.edit-link-button[data-v-21f75714]:hover { + color: var(--vp-c-brand-dark) +} + +.edit-link-icon[data-v-21f75714] { + margin-right: 8px; + width: 14px; + height: 14px; + fill: currentColor +} + +.prev-next[data-v-21f75714] { + border-top: 1px solid var(--vp-c-divider-light); + padding-top: 24px +} + +@media (min-width: 640px) { + .prev-next[data-v-21f75714] { + display: flex + } +} + +.pager.has-prev[data-v-21f75714] { + padding-top: 8px +} + +@media (min-width: 640px) { + .pager[data-v-21f75714] { + display: flex; + flex-direction: column; + flex-shrink: 0; + width: 50% + } + + .pager.has-prev[data-v-21f75714] { + padding-top: 0; + padding-left: 16px + } +} + +.pager-link[data-v-21f75714] { + display: block; + border: 1px solid var(--vp-c-divider-light); + border-radius: 8px; + padding: 11px 16px 13px; + width: 100%; + height: 100%; + transition: border-color .25s +} + +.pager-link[data-v-21f75714]:hover { + border-color: var(--vp-c-brand) +} + +.pager-link:hover .title[data-v-21f75714] { + color: var(--vp-c-brand-dark) +} + +.pager-link.next[data-v-21f75714] { + margin-left: auto; + text-align: right +} + +.desc[data-v-21f75714] { + display: block; + line-height: 20px; + font-size: 12px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.title[data-v-21f75714] { + display: block; + line-height: 20px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: color .25s +} + +.VPDoc[data-v-cfb513e0] { + padding: 32px 24px 96px; + width: 100% +} + +@media (min-width: 768px) { + .VPDoc[data-v-cfb513e0] { + padding: 48px 32px 128px + } +} + +@media (min-width: 960px) { + .VPDoc[data-v-cfb513e0] { + padding: 32px 32px 0 + } + + .VPDoc:not(.has-sidebar) .container[data-v-cfb513e0] { + display: flex; + justify-content: center; + max-width: 992px + } + + .VPDoc:not(.has-sidebar) .content[data-v-cfb513e0] { + max-width: 752px + } +} + +@media (min-width: 1280px) { + .VPDoc .container[data-v-cfb513e0] { + display: flex; + justify-content: center + } + + .VPDoc .aside[data-v-cfb513e0] { + display: block + } +} + +@media (min-width: 1440px) { + .VPDoc:not(.has-sidebar) .content[data-v-cfb513e0] { + max-width: 784px + } + + .VPDoc:not(.has-sidebar) .container[data-v-cfb513e0] { + max-width: 1104px + } +} + +.container[data-v-cfb513e0] { + margin: 0 auto; + width: 100% +} + +.aside[data-v-cfb513e0] { + position: relative; + display: none; + order: 2; + flex-grow: 1; + padding-left: 32px; + width: 100%; + max-width: 256px +} + +.aside-container[data-v-cfb513e0] { + position: sticky; + top: 0; + margin-top: calc((var(--vp-nav-height-desktop) + var(--vp-layout-top-height, 0px)) * -1 - 32px); + padding-top: calc(var(--vp-nav-height-desktop) + var(--vp-layout-top-height, 0px) + 32px); + height: 100vh; + overflow-x: hidden; + overflow-y: auto; + scrollbar-width: none +} + +.aside-container[data-v-cfb513e0]::-webkit-scrollbar { + display: none +} + +.aside-curtain[data-v-cfb513e0] { + position: fixed; + bottom: 0; + z-index: 10; + width: 224px; + height: 32px; + background: linear-gradient(transparent, var(--vp-c-bg) 70%) +} + +.aside-content[data-v-cfb513e0] { + display: flex; + flex-direction: column; + min-height: calc(100vh - (var(--vp-nav-height-desktop) + var(--vp-layout-top-height, 0px) + 32px)); + padding-bottom: 32px +} + +.content[data-v-cfb513e0] { + position: relative; + margin: 0 auto; + width: 100% +} + +@media (min-width: 960px) { + .content[data-v-cfb513e0] { + padding: 0 32px 128px + } +} + +@media (min-width: 1280px) { + .content[data-v-cfb513e0] { + order: 1; + margin: 0; + min-width: 640px + } +} + +.content-container[data-v-cfb513e0] { + margin: 0 auto +} + +.VPDoc.has-aside .content-container[data-v-cfb513e0] { + max-width: 688px +} + +.VPContent[data-v-d981fe29] { + flex-grow: 1; + flex-shrink: 0; + margin: var(--vp-layout-top-height, 0px) auto 0; + width: 100% +} + +.VPContent.is-home[data-v-d981fe29] { + width: 100%; + max-width: 100% +} + +.VPContent.has-sidebar[data-v-d981fe29] { + margin: 0 +} + +@media (min-width: 960px) { + .VPContent[data-v-d981fe29] { + padding-top: var(--vp-nav-height) + } + + .VPContent.has-sidebar[data-v-d981fe29] { + margin: var(--vp-layout-top-height, 0px) 0 0; + padding-left: var(--vp-sidebar-width) + } +} + +@media (min-width: 1440px) { + .VPContent.has-sidebar[data-v-d981fe29] { + padding-right: calc((100vw - var(--vp-layout-max-width)) / 2); + padding-left: calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)) + } +} + +.VPFooter[data-v-9f24cc86] { + position: relative; + z-index: var(--vp-z-index-footer); + border-top: 1px solid var(--vp-c-divider-light); + padding: 32px 24px; + background-color: var(--vp-c-bg) +} + +.VPFooter.has-sidebar[data-v-9f24cc86] { + display: none +} + +@media (min-width: 768px) { + .VPFooter[data-v-9f24cc86] { + padding: 32px + } +} + +.container[data-v-9f24cc86] { + margin: 0 auto; + max-width: var(--vp-layout-max-width); + text-align: center +} + +.message[data-v-9f24cc86], +.copyright[data-v-9f24cc86] { + line-height: 24px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.message[data-v-9f24cc86] { + order: 2 +} + +.copyright[data-v-9f24cc86] { + order: 1 +} + +.Layout[data-v-f44a984a] { + display: flex; + flex-direction: column; + min-height: 100vh +} + +.NotFound[data-v-95656537] { + padding: 64px 24px 96px; + text-align: center +} + +@media (min-width: 768px) { + .NotFound[data-v-95656537] { + padding: 96px 32px 168px + } +} + +.code[data-v-95656537] { + line-height: 64px; + font-size: 64px; + font-weight: 600 +} + +.title[data-v-95656537] { + padding-top: 12px; + letter-spacing: 2px; + line-height: 20px; + font-size: 20px; + font-weight: 700 +} + +.divider[data-v-95656537] { + margin: 24px auto 18px; + width: 64px; + height: 1px; + background-color: var(--vp-c-divider) +} + +.quote[data-v-95656537] { + margin: 0 auto; + max-width: 256px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.action[data-v-95656537] { + padding-top: 20px +} + +.link[data-v-95656537] { + display: inline-block; + border: 1px solid var(--vp-c-brand); + border-radius: 16px; + padding: 3px 16px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-brand); + transition: border-color .25s, color .25s +} + +.link[data-v-95656537]:hover { + border-color: var(--vp-c-brand-dark); + color: var(--vp-c-brand-dark) +} + +.VPHomeSponsors[data-v-247c88bc] { + border-top: 1px solid var(--vp-c-divider-light); + padding: 88px 24px 96px; + background-color: var(--vp-c-bg) +} + +.container[data-v-247c88bc] { + margin: 0 auto; + max-width: 1152px +} + +.love[data-v-247c88bc] { + margin: 0 auto; + width: 28px; + height: 28px; + color: var(--vp-c-text-3) +} + +.icon[data-v-247c88bc] { + width: 28px; + height: 28px; + fill: currentColor +} + +.message[data-v-247c88bc] { + margin: 0 auto; + padding-top: 10px; + max-width: 320px; + text-align: center; + line-height: 24px; + font-size: 16px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.sponsors[data-v-247c88bc] { + padding-top: 32px +} + +.action[data-v-247c88bc] { + padding-top: 40px; + text-align: center +} + +.VPTeamPage[data-v-10b00018] { + padding-bottom: 96px +} + +@media (min-width: 768px) { + .VPTeamPage[data-v-10b00018] { + padding-bottom: 128px + } +} + +.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s], +.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s] { + margin-top: 64px +} + +.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s] { + margin-top: 24px +} + +@media (min-width: 768px) { + .VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s] { + margin-top: 16px + } + + .VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s], + .VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s] { + margin-top: 96px + } +} + +.VPTeamMembers[data-v-10b00018-s] { + padding: 0 24px +} + +@media (min-width: 768px) { + .VPTeamMembers[data-v-10b00018-s] { + padding: 0 48px + } +} + +@media (min-width: 960px) { + .VPTeamMembers[data-v-10b00018-s] { + padding: 0 64px + } +} + +.VPTeamPageTitle[data-v-bf2cbdac] { + padding: 48px 32px; + text-align: center +} + +@media (min-width: 768px) { + .VPTeamPageTitle[data-v-bf2cbdac] { + padding: 64px 48px 48px + } +} + +@media (min-width: 960px) { + .VPTeamPageTitle[data-v-bf2cbdac] { + padding: 80px 64px 48px + } +} + +.title[data-v-bf2cbdac] { + letter-spacing: 0; + line-height: 44px; + font-size: 36px; + font-weight: 500 +} + +@media (min-width: 768px) { + .title[data-v-bf2cbdac] { + letter-spacing: -.5px; + line-height: 56px; + font-size: 48px + } +} + +.lead[data-v-bf2cbdac] { + margin: 0 auto; + max-width: 512px; + padding-top: 12px; + line-height: 24px; + font-size: 16px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +@media (min-width: 768px) { + .lead[data-v-bf2cbdac] { + max-width: 592px; + letter-spacing: .15px; + line-height: 28px; + font-size: 20px + } +} + +.VPTeamPageSection[data-v-be0f7349] { + padding: 0 32px +} + +@media (min-width: 768px) { + .VPTeamPageSection[data-v-be0f7349] { + padding: 0 48px + } +} + +@media (min-width: 960px) { + .VPTeamPageSection[data-v-be0f7349] { + padding: 0 64px + } +} + +.title[data-v-be0f7349] { + position: relative; + margin: 0 auto; + max-width: 1152px; + text-align: center; + color: var(--vp-c-text-2) +} + +.title-line[data-v-be0f7349] { + position: absolute; + top: 16px; + left: 0; + width: 100%; + height: 1px; + background-color: var(--vp-c-divider-light) +} + +.title-text[data-v-be0f7349] { + position: relative; + display: inline-block; + padding: 0 24px; + letter-spacing: 0; + line-height: 32px; + font-size: 20px; + font-weight: 500; + background-color: var(--vp-c-bg) +} + +.lead[data-v-be0f7349] { + margin: 0 auto; + max-width: 480px; + padding-top: 12px; + text-align: center; + line-height: 24px; + font-size: 16px; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.members[data-v-be0f7349] { + padding-top: 40px +} + +.VPTeamMembersItem[data-v-89ac5bf1] { + display: flex; + flex-direction: column; + gap: 2px; + border-radius: 12px; + width: 100%; + height: 100%; + overflow: hidden +} + +.VPTeamMembersItem.small .profile[data-v-89ac5bf1] { + padding: 32px +} + +.VPTeamMembersItem.small .data[data-v-89ac5bf1] { + padding-top: 20px +} + +.VPTeamMembersItem.small .avatar[data-v-89ac5bf1] { + width: 64px; + height: 64px +} + +.VPTeamMembersItem.small .name[data-v-89ac5bf1] { + line-height: 24px; + font-size: 16px +} + +.VPTeamMembersItem.small .affiliation[data-v-89ac5bf1] { + padding-top: 4px; + line-height: 20px; + font-size: 14px +} + +.VPTeamMembersItem.small .desc[data-v-89ac5bf1] { + padding-top: 12px; + line-height: 20px; + font-size: 14px +} + +.VPTeamMembersItem.small .links[data-v-89ac5bf1] { + margin: 0 -16px -20px; + padding: 10px 0 0 +} + +.VPTeamMembersItem.medium .profile[data-v-89ac5bf1] { + padding: 48px 32px +} + +.VPTeamMembersItem.medium .data[data-v-89ac5bf1] { + padding-top: 24px; + text-align: center +} + +.VPTeamMembersItem.medium .avatar[data-v-89ac5bf1] { + width: 96px; + height: 96px +} + +.VPTeamMembersItem.medium .name[data-v-89ac5bf1] { + letter-spacing: .15px; + line-height: 28px; + font-size: 20px +} + +.VPTeamMembersItem.medium .affiliation[data-v-89ac5bf1] { + padding-top: 4px; + font-size: 16px +} + +.VPTeamMembersItem.medium .desc[data-v-89ac5bf1] { + padding-top: 16px; + max-width: 288px; + font-size: 16px +} + +.VPTeamMembersItem.medium .links[data-v-89ac5bf1] { + margin: 0 -16px -12px; + padding: 16px 12px 0 +} + +.profile[data-v-89ac5bf1] { + flex-grow: 1; + background-color: var(--vp-c-bg-soft) +} + +.data[data-v-89ac5bf1] { + text-align: center +} + +.avatar[data-v-89ac5bf1] { + position: relative; + flex-shrink: 0; + margin: 0 auto; + border-radius: 50%; + box-shadow: var(--vp-shadow-3) +} + +.avatar-img[data-v-89ac5bf1] { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: 50%; + object-fit: cover +} + +.name[data-v-89ac5bf1] { + margin: 0; + font-weight: 600 +} + +.affiliation[data-v-89ac5bf1] { + margin: 0; + font-weight: 500; + color: var(--vp-c-text-2) +} + +.org.link[data-v-89ac5bf1] { + color: var(--vp-c-text-2); + transition: color .25s +} + +.org.link[data-v-89ac5bf1]:hover { + color: var(--vp-c-brand) +} + +.desc[data-v-89ac5bf1] { + margin: 0 auto +} + +.links[data-v-89ac5bf1] { + display: flex; + justify-content: center; + height: 56px +} + +.sp-link[data-v-89ac5bf1] { + display: flex; + justify-content: center; + align-items: center; + text-align: center; + padding: 16px; + font-size: 14px; + font-weight: 500; + color: var(--vp-c-sponsor); + background-color: var(--vp-c-bg-soft); + transition: color .25s, background-color .25s +} + +.sp-link[data-v-89ac5bf1]:hover, +.sp-link[data-v-89ac5bf1]:focus { + outline: none; + color: var(--vp-c-text-dark-1); + background-color: var(--vp-c-sponsor) +} + +.sp-icon[data-v-89ac5bf1] { + margin-right: 8px; + width: 16px; + height: 16px; + fill: currentColor +} + +.VPTeamMembers.small .container[data-v-04685dce] { + grid-template-columns: repeat(auto-fit, minmax(224px, 1fr)) +} + +.VPTeamMembers.small.count-1 .container[data-v-04685dce] { + max-width: 276px +} + +.VPTeamMembers.small.count-2 .container[data-v-04685dce] { + max-width: 576px +} + +.VPTeamMembers.small.count-3 .container[data-v-04685dce] { + max-width: 876px +} + +.VPTeamMembers.medium .container[data-v-04685dce] { + grid-template-columns: repeat(auto-fit, minmax(256px, 1fr)) +} + +@media (min-width: 375px) { + .VPTeamMembers.medium .container[data-v-04685dce] { + grid-template-columns: repeat(auto-fit, minmax(288px, 1fr)) + } +} + +.VPTeamMembers.medium.count-1 .container[data-v-04685dce] { + max-width: 368px +} + +.VPTeamMembers.medium.count-2 .container[data-v-04685dce] { + max-width: 760px +} + +.container[data-v-04685dce] { + display: grid; + gap: 24px; + margin: 0 auto; + max-width: 1152px +} + +:root { + --vp-c-brand: #2355CB; + --vp-c-brand-dark: #2355CB; + --vp-c-black-soft: #000000; + --vp-code-block-bg: rgba(255, 255, 255, .1); + --vp-c-text-light-1: #000000; + --vp-c-text-dark-1: #ffffff; + --landing-fade: #D8E1F8; + --vp-layout-max-width: 1340px; + --vp-font-family-base: "Plus Jakarta Sans", "Inter var experimental", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif +} + +.dark { + --landing-fade: #1a1b21 +} + +.dark .VPNav.no-sidebar { + background-color: var(--vp-c-black-soft) !important +} + +.language-yaml { + border: 2px solid #C8D4F2; + border-radius: 30px !important; + box-shadow: 8px 8px 9px #c8d4f266 +} + +.dark .language-yaml { + box-shadow: 8px 8px 9px #0006 +} + +.language-yaml code { + padding: 0 40px !important +} + +.VPNavBarMenuLink.active { + font-weight: 700 +} + +.VPDocFooter { + display: none +} + +.VPDoc .container .content { + padding-bottom: 0 !important +} + +.VPDoc .container .content h1 { + color: var(--vp-c-text-1) !important +} + +.VPDoc .container .content h2, +.VPDoc .container .content h3, +.VPDoc .container .content h4, +.VPDoc .container .content h5, +.VPDoc .container .content h6, +.VPLink.link.active .link-text { + color: var(--vp-c-brand) !important +} + +.VPLink.link .link-text { + font-size: 16px +} + +#VPSidebarNav { + text-align: right +} + +#VPSidebarNav .title { + display: block +} + +#VPSidebarNav .title .title-text { + font-size: 20px +} + +#VPSidebarNav .group { + border-top: 0px; + margin-top: 8px +} + +#VPSidebarNav .group .items .link-text:hover { + color: #56bced !important +} + +#VPSidebarNav .group:nth-of-type(2) .items .link-text { + font-weight: 700 !important; + color: var(--vp-c-text-1); + font-size: 20px +} + +#VPSidebarNav .group:nth-of-type(3) .items .link-text { + font-weight: 700 !important; + color: var(--vp-c-text-1); + font-size: 20px +} + +#VPSidebarNav .group:nth-of-type(4) .items span .link-text { + color: var(--vp-c-text-2) !important; + font-weight: 700 !important; + line-height: 30px; + cursor: text +} + +#VPSidebarNav .group:nth-of-type(5) .items .link-text { + font-weight: 700 !important; + color: var(--vp-c-text-1); + font-size: 20px +} + +::-webkit-scrollbar { + display: none +} + +.f-left { + float: left +} + +.f-right { + float: right +} + +.mt-1 { + margin-top: 15px +} + +.mt-2 { + margin-top: 25px +} + +.mt-5 { + margin-top: 50px +} + +.mt-6 { + margin-top: 60px +} + +.mt-7 { + margin-top: 70px +} + +.mt-15 { + margin-top: 150px +} + +.mb-1 { + margin-bottom: 10px +} + +.mb-2 { + margin-bottom: 20px +} + +.mb-3 { + margin-bottom: 30px +} + +.mb-4 { + margin-bottom: 40px +} + +.mb-6 { + margin-bottom: 60px +} + +.mb-8 { + margin-bottom: 80px +} + +.mb-11 { + margin-bottom: 110px +} + +.mb-18 { + margin-bottom: 180px +} + +.mb-22 { + margin-bottom: 220px +} + +.mb-24 { + margin-bottom: 240px +} + +.ml-20 { + margin-left: 40px +} + +.w-100 { + width: 100% +} + +.w-85 { + width: 85% +} + +.w-80 { + width: 80% +} + +.w-65 { + width: 65% +} + +.w-60 { + width: 60% +} + +.w-57 { + width: 57% +} + +.w-55 { + width: 55% +} + +.w-50 { + width: 50% +} + +.w-45 { + width: 45% +} + +.w-43 { + width: 43% +} + +.w-40 { + width: 40% +} + +.w-15 { + width: 15% +} + +.p-130 { + padding: 0 130px +} + +.p-105 { + padding: 0 105px +} + +.p-90 { + padding: 0 90px +} + +.p-50 { + padding: 0 50px +} + +.pl-130 { + padding-left: 130px +} + +.pl-6 { + padding-left: 60px +} + +.pr-2 { + padding-right: 20px +} + +.pb-5 { + padding-bottom: 50px +} + +.px-2 { + padding: 0 20px +} + +.text-left { + text-align: left +} + +.c-brand { + color: var(--vp-c-brand) !important +} + +.c-brand-light { + color: #56bced !important +} + +.shotover-title { + font-size: 150px; + font-weight: 600; + line-height: 160px; + margin-top: 110px +} + +.shotover-subtitle { + font-size: 37.5px; + font-weight: 700; + line-height: 60px; + margin-left: 7px; + margin-bottom: 16px +} + +.landing-title { + font-size: 75px; + font-weight: 600; + line-height: 88px +} + +.landing-title-img { + width: calc(100% - 40px) +} + +.shotover-motto { + font-size: 20.5px; + font-weight: 400; + margin-left: 6px; + margin-bottom: 44px +} + +.landing-action-btn { + font-weight: 600; + font-size: 21px; + padding: 12px 57px; + margin-left: 3px; + color: var(--vp-c-brand); + box-shadow: 0 5px 6px #2355cb40; + border-radius: 50px; + border: 2px solid transparent; + background: linear-gradient(var(--vp-c-bg), var(--vp-c-bg)) padding-box, linear-gradient(to right, var(--vp-c-brand), #56BCED) border-box +} + +.landing-action-btn-text { + background-color: var(--vp-c-brand); + background-image: linear-gradient(to right, var(--vp-c-brand), #56BCED); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent +} + +.landing-description-title { + background-color: var(--vp-c-brand); + background-image: linear-gradient(90deg, #2355CB 0%, #56BCED 60%); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent; + font-size: 80px; + font-weight: 600; + line-height: 89px +} + +.landing-description { + font-size: 21px; + font-weight: 400; + line-height: 26px +} + +.landing-docs-title { + width: 45%; + font-size: 55px; + font-weight: 600; + line-height: 66px; + color: #c8d4f2; + margin-bottom: 25px +} + +.docs-container { + text-align: center +} + +.docs-block { + display: block; + float: left; + width: calc(33% - 50px); + max-width: 500px; + border: 2px solid var(--vp-c-brand); + border-radius: 40px; + padding: 33px 50px; + margin-left: 25px; + margin-right: 25px +} + +.docs-block:hover { + background-color: var(--vp-c-brand); + color: var(--vp-c-bg) +} + +.doc-name { + font-weight: 700; + font-size: 37px; + text-align: left; + line-height: 47px +} + +.doc-desc { + color: #9c9a9a; + font-weight: 400; + font-size: 21px; + line-height: 27px; + height: 250px +} + +.doc-action-btn { + color: var(--vp-c-brand); + background-color: var(--vp-c-text-dark-1); + border: 2px solid var(--vp-c-brand); + border-radius: 50px; + padding: 10px 30px; + font-weight: 500 +} + +.doc-arrow { + margin-top: 1px; + margin-left: 14px; + width: 22px +} + +.landing-problems { + background: linear-gradient(180deg, var(--vp-c-bg) 0%, var(--landing-fade) 35%, var(--landing-fade) 75%, var(--vp-c-bg) 100%) +} + +.landing-problems-title { + width: 70%; + font-size: 78px; + font-weight: 600; + line-height: 92px +} + +.problems-description { + font-size: 26px; + font-weight: 400; + line-height: 34px +} + +.problem-card { + color: var(--vp-c-text-dark-1); + width: calc(50% - 17px); + height: 300px; + border-radius: 40px; + padding: 40px 50px; + font-size: 25px; + line-height: 35px; + font-weight: 400; + margin-bottom: 17px; + margin-left: 8.5px; + margin-right: 8.5px; + position: relative +} + +.problem-img { + width: 120px; + position: absolute; + bottom: 40px; + right: 40px +} + +.landing-proxy { + position: relative; + overflow: hidden +} + +.proxy-item { + color: var(--vp-c-text-light-1); + background-color: #d8f0fc; + border-radius: 50px; + position: absolute; + padding: 8px 22px; + font-size: 22px; + font-weight: 500; + font-family: Source Code Pro; + line-height: 28px; + letter-spacing: 0em +} + +.deploy-counter { + font-size: 26px; + font-weight: 400; + font-family: DM Sans; + line-height: 40px +} + +.deploy-step { + font-size: 40px; + font-weight: 500; + line-height: 50px +} + +.deploy-step.active { + color: #56bced !important +} + +.deploy-arrow { + margin-top: 14px; + width: 28px +} + +.step-img-container { + width: 100%; + height: 440px; + border-radius: 40px; + position: relative; + background-color: #ebebeb +} + +.step-img { + width: 50%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) +} + +.roadmap-container { + overflow-x: auto; + margin-top: -10px +} + +.roadmap { + width: 2900px; + position: relative +} + +.roadmap-step { + position: absolute +} + +.roadmap-step-pointer { + width: 60px; + height: 60px; + border-radius: 30px; + text-align: center; + line-height: 60px; + font-size: 25px; + color: var(--vp-c-bg); + background-color: var(--vp-c-text-1) +} + +.roadmap-step-pointer-line { + margin-left: 29px; + width: 0px; + border-left: 2px solid var(--vp-c-text-1) +} + +.pointer-text { + width: 240px; + position: absolute; + top: 3px; + left: 80px +} + +.no-scroll-y { + overflow-y: hidden !important +} + +.blog-title { + text-align: center; + background-color: var(--vp-c-brand); + background-image: linear-gradient(90deg, #2355CB 25%, #AADEF6 50%, #56BCED 75%); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent; + font-size: 75px !important; + font-weight: 600; + line-height: 95px !important +} + +.post-img-sm { + float: left; + width: 250px; + height: 330px; + border-radius: 40px; + background-position: center; + background-repeat: no-repeat; + background-size: cover +} + +.post-info { + width: 100% +} + +.post-title { + font-size: 40px !important; + line-height: 47px !important; + font-weight: 700 !important; + margin-top: 0 !important; + margin-bottom: 20px !important; + padding-top: 0 !important; + border-top: 0px !important +} + +.post-description { + height: 100px; + font-size: 19px !important; + line-height: 25px !important; + font-weight: 500; + overflow: hidden; + color: #717171 !important +} + +.post-date { + height: 48px; + font-size: 17px !important; + line-height: 23px !important; + font-weight: 600; + padding-top: 7px; + margin-bottom: 12px !important +} + +.post-btn { + font-size: 17px !important; + background-color: #56bced; + color: var(--vp-c-bg) !important; + padding: 12px 40px; + border-radius: 25px +} + +.post-btn:hover { + background-color: var(--vp-c-bg); + border: 2px solid #56BCED; + color: #56bced !important +} + +.blog-filters { + width: 220px; + position: absolute; + left: -300px; + z-index: 1 +} + +.blog-filters h3 { + font-size: 23px; + margin-bottom: 20px +} + +.post-category { + font-size: 17px !important; + line-height: 23px !important; + font-weight: 600; + margin-top: 0 !important; + cursor: pointer +} + +.post-category:first-letter { + text-transform: uppercase +} + +.post-category:hover { + text-decoration: underline +} + +.post-category.active { + color: var(--vp-c-brand) +} + +.social-buttons { + position: fixed; + top: 170px; + right: 50px; + width: 250px +} + +.social-buttons h2 { + font-weight: 500; + font-size: 23px; + border-top: none; + margin-top: 0 +} + +.social-link { + float: left; + width: 25px; + margin-right: 30px +} + +.social-link:hover { + cursor: pointer +} + +.related-posts .all-blogs { + font-size: 20px; + text-decoration: underline; + color: var(--vp-c-text-1) +} + +.related-posts .all-blogs:hover { + text-decoration: underline; + color: #56bced +} + +.related-post { + min-width: 222px; + height: 180px; + padding: 20px; + border: 2px solid #C8D4F2; + border-radius: 40px; + text-align: center; + position: relative +} + +.related-post h3 { + margin-top: 0 +} + +.read-more-container { + position: absolute; + width: 100%; + bottom: 25px; + left: 0 +} + +.read-more { + padding: 10px 40px; + border-radius: 30px; + color: var(--vp-c-bg) !important; + background-color: #56bced +} + +.read-more:hover { + color: #56bced !important; + background-color: var(--vp-c-bg) !important; + border: 2px solid #56BCED +} + +.vp-doc img { + width: 100% +} + +.archive-input { + width: 170px; + max-width: 100%; + border-bottom: 2px solid var(--vp-c-text-1) +} + +.pagination-container { + width: 100%; + height: 30px; + float: left; + position: relative; + margin-top: 30px +} + +.pagination { + width: max-content; + position: absolute; + left: 50%; + transform: translate(-50%) +} + +.pagination-nav-btn { + background-color: var(--vp-c-brand); + padding: 5px 17px; + border-radius: 20px +} + +.pagination-nav-btn:hover { + background-color: #56bced +} + +.pagination-nav-btn.disabled { + background-color: #717171 !important +} + +.pagination-nav-btn-page { + width: 38px; + font-size: 16px; + font-weight: 600 +} + +.pagination-nav-btn-page:hover { + text-decoration: underline +} + +.pagination-nav-btn-page.disabled { + color: #56bced !important +} + +.landing-proxy-title { + text-align: center; + background-color: var(--vp-c-brand); + background-image: linear-gradient(90deg, #2355CB 25%, #AADEF6 50%, #56BCED 75%); + background-size: 100%; + background-repeat: repeat; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + -moz-background-clip: text; + -moz-text-fill-color: transparent; + font-size: 80px; + font-weight: 600; + line-height: 110px; + margin-top: 350px; + margin-bottom: 350px +} + +.footer-nav { + padding-top: 15px +} + +.footer-link { + float: left; + width: 100%; + margin-bottom: 8px; + font-weight: 500; + color: var(--vp-c-text-1) !important +} + +.footer-link:hover { + color: var(--vp-c-brand) !important +} + +.copyright-section a { + float: left; + font-size: 24px; + font-weight: 600 +} + +.copyright-section a span { + margin-top: 6.5px; + margin-right: 15px; + float: left +} + +.copyright-section img { + float: left; + width: 80px; + font-size: 24px; + font-weight: 600 +} + +.copyright-section .copyright { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #717171 !important; + width: 90%; + max-width: 674px +} + +@media (max-width: 440px) { + .post-title { + font-size: 25px !important; + line-height: 35px !important + } +} + +@media (max-width: 768px) { + .p-130 { + padding: 20px !important + } + + .footer { + text-align: center !important + } + + .footer .copyright-section { + width: 100% !important; + margin-bottom: 20px; + position: relative + } + + .footer .copyright { + width: 100% !important; + max-width: 100% !important + } + + .footer .footer-nav { + width: 100% !important + } + + .footer a.mb-3 { + width: 202px; + position: absolute; + left: 50%; + transform: translate(-50%) + } + + .footer .copyright-section .f-left.w-100 { + margin-top: 55px + } + + .landing-description-title, + .landing-docs-title, + .landing-problems-title, + .landing-title { + text-align: center + } + + .landing-docs-title { + max-width: 100% !important + } + + .landing-title, + .landing-description.w-50 { + width: 100% + } + + .landing-description, + .problems-description { + text-align: justify + } + + .w-65.problems-description, + .w-50.problems-description { + width: 100% + } + + .problem-card { + width: 100%; + margin-top: 0 !important; + margin-left: 0; + margin-right: 0; + padding: 20px 30px + } + + .problem-card .w-80, + .landing-deploy .landing-description.w-80 { + width: 100% + } + + .landing-deploy .p-50 { + padding: 0 + } + + .landing-main-title { + text-align: center + } + + .landing-main-title .w-55 { + width: 100% + } + + .landing-main-title .w-45, + .post-img-sm { + display: none + } + + .post-info { + padding-left: 0; + text-align: center + } + + .post-title { + height: auto; + max-height: 100px !important + } + + .post-description { + text-align: justify + } + + .related-posts { + text-align: center + } + + .related-post-container { + width: 100% !important + } +} + +@media (max-width: 928px) { + .p-130 { + padding: 20px !important + } + + .pl-130 { + padding-left: 20px !important; + padding-right: 20px !important + } + + .p-105 { + padding: 20px !important + } + + .p-90 { + padding-left: 0; + padding-right: 0 + } +} + +@media (max-width: 1100px) { + .landing-deploy .w-45 { + width: 100%; + margin-bottom: 20px + } + + .landing-deploy .w-55 { + width: 100% + } +} + +@media (max-width: 1235px) { + .deploy-arrow { + display: none + } + + .p-90 { + padding-left: 0; + padding-right: 0 + } + + .w-43 { + width: 100% + } + + .pr-2 { + padding-right: 0 + } + + .w-57 { + width: 100% + } + + .mb-sm-1 { + margin-bottom: 10px + } + + .landing-problems-title { + width: 100% + } + + .proxy-item { + display: none + } + + .landing-deploy .w-40 { + width: 100% + } + + .blog-title { + font-size: 50px !important; + line-height: 65px !important + } +} + +@media (max-width: 1280px) { + .social-buttons { + display: none + } +} + +@media (min-width: 440px) and (max-width: 1235px) { + .post-title { + font-size: 30px !important; + line-height: 40px !important + } +} + +@media (max-width: 1360px) { + .docs-block { + width: 100%; + max-width: 100%; + margin-bottom: 30px; + margin-left: 0; + margin-right: 0 + } +} + +@media (min-width: 1236px) and (max-width: 1376px) { + .landing-problems-title { + width: 80% + } +} + +@media (max-width: 1487px) { + .landing-docs-title { + width: 100%; + max-width: 675px + } + + .problem-card { + padding: 20px 30px + } + + .problem-card .w-80 { + width: 100% + } + + .shotover-title { + font-size: 75px; + line-height: 85px + } + + .shotover-subtitle { + font-size: 30px; + line-height: 52px + } + + .landing-description-title { + font-size: 60px; + line-height: 69px + } + + .landing-docs-title { + font-size: 45px; + line-height: 56px + } + + .doc-name { + font-size: 32px; + line-height: 42px + } + + .landing-problems-title { + font-size: 45px; + line-height: 60px + } + + .landing-proxy-title { + font-size: 70px; + line-height: 100px + } + + .landing-title { + font-size: 55px; + line-height: 70px + } + + .deploy-step { + font-size: 35px; + line-height: 45px + } +} \ No newline at end of file diff --git a/website/assets/title_image.png b/website/assets/title_image.png new file mode 100644 index 000000000..70314fbde Binary files /dev/null and b/website/assets/title_image.png differ diff --git a/website/src/cli.rs b/website/src/cli.rs new file mode 100644 index 000000000..411979141 --- /dev/null +++ b/website/src/cli.rs @@ -0,0 +1,10 @@ +use clap::Parser; + +/// Generates the shotover website. +#[derive(Parser, Clone)] +#[clap()] +pub struct Args { + /// As well as generating the site, serve the contents of the site over http. + #[clap(long)] + pub serve: bool, +} diff --git a/website/src/docs.rs b/website/src/docs.rs new file mode 100644 index 000000000..8a85adf27 --- /dev/null +++ b/website/src/docs.rs @@ -0,0 +1,84 @@ +use crate::run_command; +use anyhow::Result; +use rinja::Template; +use std::{fs::create_dir_all, path::Path}; + +pub fn generate_all_docs(current_dir: &Path) -> Result<()> { + let root = current_dir.join("website").join("root"); + println!("Generating main"); + create_dir_all(root.join("docs")).unwrap(); + build_docs( + current_dir, + Path::new("docs"), + &root.join("docs").join("main"), + ); + + // ensure repo exists and is up to date + let repo_path = Path::new("website").join("shotover_repo_for_docs"); + if repo_path.exists() { + run_command(&repo_path, "git", &["fetch"])?; + } else { + run_command( + ".", + "git", + &[ + "clone", + "https://github.com/shotover/shotover-proxy", + repo_path.to_str().unwrap(), + ], + )?; + } + + let versions = crate::version_tags::get_versions_of_repo(&repo_path); + + let docs = DocsTemplate { + versions: versions.iter().map(|x| x.semver_range.clone()).collect(), + }; + std::fs::write(root.join("docs").join("index.html"), docs.render().unwrap()).unwrap(); + + for version in &versions { + println!("Generating {}", version.tag); + run_command(&repo_path, "git", &["checkout", &version.tag])?; + + build_docs( + current_dir, + &repo_path.join("docs"), + &root.join("docs").join(&version.semver_range), + ) + } + + if let Some(version) = versions.first() { + println!("Generating latest"); + run_command(&repo_path, "git", &["checkout", &version.tag])?; + + build_docs( + current_dir, + &repo_path.join("docs"), + &root.join("docs").join("latest"), + ) + } + + Ok(()) +} + +fn build_docs(current_dir: &Path, in_path: &Path, out_path: &Path) { + let temp_docs_dir = current_dir.join("target").join("temp_docs_build"); + std::fs::remove_dir_all(&temp_docs_dir).ok(); + run_command( + in_path, + "mdbook", + &["build", "--dest-dir", temp_docs_dir.to_str().unwrap()], + ) + .ok(); + + std::fs::remove_dir_all(out_path).ok(); + std::fs::rename(temp_docs_dir.join("html"), out_path).unwrap(); + + std::fs::remove_dir_all(&temp_docs_dir).ok(); +} + +#[derive(Template)] +#[template(path = "docs.html")] +struct DocsTemplate { + versions: Vec, +} diff --git a/website/src/main.rs b/website/src/main.rs new file mode 100644 index 000000000..ca4bbd853 --- /dev/null +++ b/website/src/main.rs @@ -0,0 +1,111 @@ +use anyhow::{anyhow, Result}; +use clap::Parser; +use cli::Args; +use rinja::Template; +use std::{path::Path, process::Command}; +use subprocess::{Exec, Redirection}; + +mod cli; +mod docs; +mod version_tags; + +fn main() { + // Set standard path to root of repo so this always runs in the same directory, regardless of where the user ran it from. + let current_dir = Path::new(env!("CARGO_MANIFEST_DIR")).parent().unwrap(); + std::env::set_current_dir(current_dir).unwrap(); + + let args = Args::parse(); + + println!("Ensuring mdbook is installed"); + // TODO: Once mdbook starts doing macos aarch64 binary releases we should download the release directly instead of compiling. + // https://github.com/rust-lang/mdBook/pull/2500 + if !Command::new("cargo") + .args(["install", "mdbook", "--version", "0.4.43"]) + .status() + .unwrap() + .success() + { + return; + } + + let root = current_dir.join("website").join("root"); + + // copy assets + std::fs::create_dir_all(root.join("assets")).unwrap(); + std::fs::write( + root.join("assets/style.css"), + include_bytes!("../assets/style.css"), + ) + .unwrap(); + std::fs::write( + root.join("assets/arrow_right.png"), + include_bytes!("../assets/arrow_right.png"), + ) + .unwrap(); + std::fs::write( + root.join("assets/title_image.png"), + include_bytes!("../assets/title_image.png"), + ) + .unwrap(); + std::fs::write( + root.join("assets/logo.png"), + include_bytes!("../assets/logo.png"), + ) + .unwrap(); + std::fs::write( + root.join("favicon.ico"), + include_bytes!("../assets/favicon.ico"), + ) + .unwrap(); + + // generate landing page + std::fs::write(root.join("index.html"), Landing {}.render().unwrap()).unwrap(); + + if let Err(err) = docs::generate_all_docs(current_dir) { + println!("{err}"); + return; + } + + if args.serve { + println!("Hosting website at: http://localhost:8000",); + + devserver_lib::run( + "localhost", + 8000, + current_dir.join("website").join("root").to_str().unwrap(), + false, + "", + ); + } else { + let out = current_dir.join("website").join("root").join("index.html"); + println!( + "Succesfully generated website at: file://{}", + out.to_str().unwrap() + ); + } +} + +pub fn run_command(dir: impl AsRef, command: &str, args: &[&str]) -> Result { + let data = Exec::cmd(command) + .args(args) + .cwd(dir) + .stdout(Redirection::Pipe) + .stderr(Redirection::Merge) + .capture()?; + + if data.exit_status.success() { + Ok(data.stdout_str()) + } else { + Err(anyhow!( + "command {} {:?} exited with {:?} and output:\n{}", + command, + args, + data.exit_status, + data.stdout_str() + )) + } +} + +#[derive(Template)] +#[template(path = "landing.html")] +struct Landing {} diff --git a/website/src/version_tags.rs b/website/src/version_tags.rs new file mode 100644 index 000000000..c7a668da5 --- /dev/null +++ b/website/src/version_tags.rs @@ -0,0 +1,63 @@ +use crate::run_command; +use semver::Version; +use std::path::Path; + +pub struct VersionTag { + /// e.g. "v0.1.1" + pub tag: String, + /// e.g. "0.1.x" + pub semver_range: String, + /// e.g. 0.1.1 + pub version: Version, +} + +impl VersionTag { + fn new(tag: &str) -> Option { + let version = Version::parse(tag.strip_prefix("v")?).ok()?; + + // ignore any prerelease or otherwise unusual tags + if !version.pre.is_empty() || !version.build.is_empty() { + return None; + } + + let semver_range = if version.major != 0 { + format!("{}.Y.Z", version.major) + } else { + format!("0.{}.Z", version.minor) + }; + Some(VersionTag { + tag: tag.to_owned(), + version, + semver_range, + }) + } +} + +pub fn get_versions_of_repo(repo_path: &Path) -> Vec { + let mut versions: Vec = run_command(repo_path, "git", &["tag"]) + .unwrap() + .lines() + .filter_map(VersionTag::new) + .filter(|x| x.version >= Version::new(0, 1, 0)) + .collect(); + + // reverse sort the list of versions + versions.sort_by_key(|x| x.version.clone()); + versions.reverse(); + + // Filter out any versions with duplicate semver range, keeping the first item. + // Keeping the first items leaves us with the most recent item due to the previous reverse sort. + let mut known = vec![]; + versions.retain(|version| { + let any_known = known + .iter() + .any(|known_range| &version.semver_range == known_range); + known.push(version.semver_range.clone()); + !any_known + }); + + // reverse order so that we are in the correct order again + versions.reverse(); + + versions +} diff --git a/website/templates/base.html b/website/templates/base.html new file mode 100644 index 000000000..70f5a982c --- /dev/null +++ b/website/templates/base.html @@ -0,0 +1,56 @@ + + + + + + + {% block title %} {{ title }} {% endblock %} + {% block head %}{% endblock %} + + + + +
+
Skip to content + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ {% block content %}

Placeholder content

{% endblock %} +
+ +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/website/templates/docs.html b/website/templates/docs.html new file mode 100644 index 000000000..ca8142e6f --- /dev/null +++ b/website/templates/docs.html @@ -0,0 +1,22 @@ +{% extends "base.html" %} + +{% block title %} +Shotover Documentation Index +{% endblock %} + +{% block content %} +
+
+

Documentation for current and historical versions of shotover is hosted below:

+ + +
+
+ + +{% endblock %} \ No newline at end of file diff --git a/website/templates/landing.html b/website/templates/landing.html new file mode 100644 index 000000000..b9a14c408 --- /dev/null +++ b/website/templates/landing.html @@ -0,0 +1,97 @@ +{% extends "base.html" %} + +{% block title %} +Shotover Proxy +{% endblock %} + +{% block content %} +
+
+

Shotover

+

L7 data layer proxy + +

+

Get + started +
+
+
+
+
+

What is Shotover?

+
+
+

Shotover is a high performance, configurable + and extensible L7 data-layer proxy for controlling, managing and modifying + the flow of database requests in transit. It can be used to solve many + different operational and interoperability challenges by transparently + intercepting and transforming queries. It is transparent in the sense that + it can be plugged into your architecture without requiring application + change.

+
+
+ +
+

What problems does Shotover solve?

+

More broadly, Shotover is designed to be + used for a very wide ranging class of problems where it is useful to + transparently intercept a database call and redirect it. This allows you to + change the behaviour of running applications at the infrastructure level without + change to the application code itself. Some examples where we envisage Shotover + could be deployed include:

+
+
+ Moving very large or very hot + tenants/customers/keys to a separate data store by intercepting and + redirecting queries for those particular keys +
+
Dual + writing and/or query translation to allow the underlying storage + technology to be changed
+
Adding auditing, encryption or other security + measures
+
+ As an alternative to Change Data Capture + technology to send writes to a message stream such as Apache + Kafka +
+
+
+
+
+

Name

+

Shotover refers to the + Shotover (Kimi-ākau) river in Otago, New Zealand - close to Queenstown and + eventually flowing into Lake Wakatipu via the Kawarau River, it's famous for + white water rafting, bungy-jumping, fast rapids and jet boating.

+
+
+{% endblock %} \ No newline at end of file