{"version":3,"sources":["src/overrides/assets/stylesheets/main/_typeset.scss","src/overrides/assets/stylesheets/main.scss","src/assets/stylesheets/utilities/_break.scss","src/overrides/assets/stylesheets/main/layout/_announce.scss","src/overrides/assets/stylesheets/main/layout/_hero.scss","src/overrides/assets/stylesheets/main/layout/_iconsearch.scss","src/overrides/assets/stylesheets/main/layout/_sponsorship.scss"],"names":[],"mappings":"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","file":"src/overrides/assets/stylesheets/main.scss","sourcesContent":["////\n/// Copyright (c) 2016-2021 Martin Donath <martin.donath@squidfunk.com>\n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Keyframes\n// ----------------------------------------------------------------------------\n\n// Pumping heart animation\n@keyframes mdx-heart {\n  0%,\n  40%,\n  80%,\n  100% {\n    transform: scale(1);\n  }\n\n  20%,\n  60% {\n    transform: scale(1.15);\n  }\n}\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n  // Twitter icon\n  .twitter {\n    color: #00acee;\n  }\n\n  // Insiders video\n  .mdx-video {\n    width: auto;\n\n    // Insiders video container\n    &__inner {\n      position: relative;\n      width: 100%;\n      height: 0;\n      padding-bottom: 56.138%;\n    }\n\n    // Insiders video iframe\n    iframe {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      overflow: hidden;\n      border: none;\n    }\n  }\n\n  // Pumping heart\n  .mdx-heart {\n    animation: mdx-heart 1000ms infinite;\n  }\n\n  // Insiders color (for links, etc.)\n  .mdx-insiders {\n    color: $clr-pink-500;\n  }\n\n  // Switch buttons\n  .mdx-switch button {\n    cursor: pointer;\n    transition: opacity 250ms;\n\n    // Button on focus/hover\n    &:focus,\n    &:hover {\n      opacity: 0.75;\n    }\n\n    // Code block\n    > code {\n      display: block;\n      color: var(--md-primary-bg-color);\n      background-color: var(--md-primary-fg-color);\n    }\n  }\n\n  // Deprecation\n  .mdx-deprecated {\n    opacity: 0.5;\n    transition: opacity 250ms;\n\n    // Deprecation on focus/hover\n    &:focus-within,\n    &:hover {\n      opacity: 1;\n    }\n  }\n\n  // Two-column layout\n  .mdx-columns {\n\n    // Column\n    ol,\n    ul {\n      columns: 2;\n\n      // [mobile portrait -]: Reset columns on mobile\n      @include break-to-device(mobile portrait) {\n        columns: initial;\n      }\n    }\n\n    // Column item\n    li {\n      break-inside: avoid;\n    }\n  }\n\n  // Blog author\n  .mdx-author {\n    display: flex;\n    font-size: px2rem(13.6px);\n\n    // Blog author image\n    img {\n      height: px2rem(40px);\n      border-radius: 100%;\n    }\n\n    // Blog author content\n    p {\n\n      // TODO: refactor, use dedicated classes\n      &:first-child {\n        flex-shrink: 0;\n        margin-right: px2rem(16px);\n      }\n\n      // Blog metadata\n      > span {\n        display: block;\n      }\n    }\n  }\n}\n","@keyframes mdx-heart {\n  0%, 40%, 80%, 100% {\n    transform: scale(1);\n  }\n  20%, 60% {\n    transform: scale(1.15);\n  }\n}\n.md-typeset .twitter {\n  color: #00acee;\n}\n.md-typeset .mdx-video {\n  width: auto;\n}\n.md-typeset .mdx-video__inner {\n  position: relative;\n  width: 100%;\n  height: 0;\n  padding-bottom: 56.138%;\n}\n.md-typeset .mdx-video iframe {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  border: none;\n}\n.md-typeset .mdx-heart {\n  animation: mdx-heart 1000ms infinite;\n}\n.md-typeset .mdx-insiders {\n  color: #e91e63;\n}\n.md-typeset .mdx-switch button {\n  cursor: pointer;\n  transition: opacity 250ms;\n}\n.md-typeset .mdx-switch button:focus, .md-typeset .mdx-switch button:hover {\n  opacity: 0.75;\n}\n.md-typeset .mdx-switch button > code {\n  display: block;\n  color: var(--md-primary-bg-color);\n  background-color: var(--md-primary-fg-color);\n}\n.md-typeset .mdx-deprecated {\n  opacity: 0.5;\n  transition: opacity 250ms;\n}\n.md-typeset .mdx-deprecated:focus-within, .md-typeset .mdx-deprecated:hover {\n  opacity: 1;\n}\n.md-typeset .mdx-columns ol,\n.md-typeset .mdx-columns ul {\n  columns: 2;\n}\n@media screen and (max-width: 29.9375em) {\n  .md-typeset .mdx-columns ol,\n.md-typeset .mdx-columns ul {\n    columns: initial;\n  }\n}\n.md-typeset .mdx-columns li {\n  break-inside: avoid;\n}\n.md-typeset .mdx-author {\n  display: flex;\n  font-size: 0.68rem;\n}\n.md-typeset .mdx-author img {\n  height: 2rem;\n  border-radius: 100%;\n}\n.md-typeset .mdx-author p:first-child {\n  flex-shrink: 0;\n  margin-right: 0.8rem;\n}\n.md-typeset .mdx-author p > span {\n  display: block;\n}\n\n.md-announce a,\n.md-announce a:focus,\n.md-announce a:hover {\n  color: currentColor;\n}\n.md-announce strong {\n  white-space: nowrap;\n}\n.md-announce .twitter {\n  margin-left: 0.2em;\n}\n\n.mdx-container {\n  padding-top: 1rem;\n  background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(0, 0%, 100%, 1)' /></svg>\") no-repeat bottom, linear-gradient(to bottom, var(--md-primary-fg-color), #a63fd9 99%, var(--md-default-bg-color) 99%);\n}\n[data-md-color-scheme=slate] .mdx-container {\n  background: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(232, 15%, 21%, 1)' /></svg>\") no-repeat bottom, linear-gradient(to bottom, var(--md-primary-fg-color), #a63fd9 99%, var(--md-default-bg-color) 99%);\n}\n\n.mdx-hero {\n  margin: 0 0.8rem;\n  color: var(--md-primary-bg-color);\n}\n.mdx-hero h1 {\n  margin-bottom: 1rem;\n  color: currentColor;\n  font-weight: 700;\n}\n@media screen and (max-width: 29.9375em) {\n  .mdx-hero h1 {\n    font-size: 1.4rem;\n  }\n}\n.mdx-hero__content {\n  padding-bottom: 6rem;\n}\n@media screen and (min-width: 60em) {\n  .mdx-hero {\n    display: flex;\n    align-items: stretch;\n  }\n  .mdx-hero__content {\n    max-width: 19rem;\n    margin-top: 3.5rem;\n    padding-bottom: 14vw;\n  }\n  .mdx-hero__image {\n    order: 1;\n    width: 38rem;\n    transform: translateX(4rem);\n  }\n}\n@media screen and (min-width: 76.25em) {\n  .mdx-hero__image {\n    transform: translateX(8rem);\n  }\n}\n.mdx-hero .md-button {\n  margin-top: 0.5rem;\n  margin-right: 0.5rem;\n  color: var(--md-primary-bg-color);\n}\n.mdx-hero .md-button:focus, .mdx-hero .md-button:hover {\n  color: var(--md-accent-bg-color);\n  background-color: var(--md-accent-fg-color);\n  border-color: var(--md-accent-fg-color);\n}\n.mdx-hero .md-button--primary {\n  color: #894da8;\n  background-color: var(--md-primary-bg-color);\n  border-color: var(--md-primary-bg-color);\n}\n\n.md-typeset .mdx-iconsearch {\n  position: relative;\n  background-color: var(--md-default-bg-color);\n  border-radius: 0.1rem;\n  box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.1), 0 0.025rem 0.05rem rgba(0, 0, 0, 0.1);\n  transition: box-shadow 125ms;\n}\n.md-typeset .mdx-iconsearch:focus-within, .md-typeset .mdx-iconsearch:hover {\n  box-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.15), 0 0.025rem 0.05rem rgba(0, 0, 0, 0.15);\n}\n.md-typeset .mdx-iconsearch .md-input {\n  background: var(--md-default-bg-color);\n  box-shadow: 0 0 0.6rem rgba(0, 0, 0, 0.07);\n}\n[data-md-color-scheme=slate] .md-typeset .mdx-iconsearch .md-input {\n  background: var(--md-code-bg-color);\n}\n.md-typeset .mdx-iconsearch-result {\n  max-height: 50vh;\n  overflow-y: auto;\n  backface-visibility: hidden;\n  touch-action: pan-y;\n  scrollbar-width: thin;\n  scrollbar-color: var(--md-default-fg-color--lighter) transparent;\n}\n.md-typeset .mdx-iconsearch-result::-webkit-scrollbar {\n  width: 0.2rem;\n  height: 0.2rem;\n}\n.md-typeset .mdx-iconsearch-result::-webkit-scrollbar-thumb {\n  background-color: var(--md-default-fg-color--lighter);\n}\n.md-typeset .mdx-iconsearch-result::-webkit-scrollbar-thumb:hover {\n  background-color: var(--md-accent-fg-color);\n}\n.md-typeset .mdx-iconsearch-result__meta {\n  position: absolute;\n  top: 0.4rem;\n  right: 0.6rem;\n  color: var(--md-default-fg-color--lighter);\n  font-size: 0.64rem;\n}\n.md-typeset .mdx-iconsearch-result__list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.md-typeset .mdx-iconsearch-result__item {\n  margin: 0;\n  padding: 0.2rem 0.6rem;\n  border-bottom: 0.05rem solid var(--md-default-fg-color--lightest);\n}\n.md-typeset .mdx-iconsearch-result__item:last-child {\n  border-bottom: none;\n}\n.md-typeset .mdx-iconsearch-result__item > * {\n  margin-right: 0.6rem;\n}\n.md-typeset .mdx-iconsearch-result__item img {\n  width: 0.9rem;\n  height: 0.9rem;\n}\n[data-md-color-scheme=slate] .md-typeset .mdx-iconsearch-result__item img[src*=squidfunk] {\n  filter: invert(1);\n  /* stylelint-disable-line */\n}\n\n.md-typeset .mdx-premium p {\n  margin: 2em 0;\n  text-align: center;\n}\n.md-typeset .mdx-premium img {\n  height: 3rem;\n}\n.md-typeset .mdx-premium p:last-child {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n}\n.md-typeset .mdx-premium p:last-child > a {\n  display: block;\n  flex-shrink: 0;\n  padding: 0.5rem 1rem;\n  transition: transform 125ms;\n}\n.md-typeset .mdx-premium p:last-child > a:focus, .md-typeset .mdx-premium p:last-child > a:hover {\n  transform: scale(1.1);\n}\n.md-typeset .mdx-sponsorship__list {\n  margin: 2em 0;\n}\n.md-typeset .mdx-sponsorship__list::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n.md-typeset .mdx-sponsorship__item {\n  display: block;\n  float: left;\n  width: 3rem;\n  height: 3rem;\n  margin: 0.2rem;\n  overflow: hidden;\n  border-radius: 100%;\n  transform: scale(1);\n  transition: color 125ms, transform 125ms;\n}\n.md-typeset .mdx-sponsorship__item:focus, .md-typeset .mdx-sponsorship__item:hover {\n  transform: scale(1.1);\n}\n.md-typeset .mdx-sponsorship__item:focus img, .md-typeset .mdx-sponsorship__item:hover img {\n  filter: grayscale(0%);\n}\n.md-typeset .mdx-sponsorship__item--private {\n  color: var(--md-default-fg-color--lighter);\n  font-weight: 700;\n  font-size: 1.2rem;\n  line-height: 3rem;\n  text-align: center;\n  background: var(--md-default-fg-color--lightest);\n}\n.md-typeset .mdx-sponsorship__item img {\n  display: block;\n  width: 100%;\n  height: auto;\n  filter: grayscale(100%) opacity(75%);\n  transition: filter 125ms;\n}\n.md-typeset .mdx-sponsorship-button {\n  font-weight: 400;\n}\n.md-typeset .mdx-sponsorship-count,\n.md-typeset .mdx-sponsorship-total {\n  font-weight: 700;\n}\n\n/*# sourceMappingURL=main.css.map */","////\n/// Copyright (c) 2016-2021 Martin Donath <martin.donath@squidfunk.com>\n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:math\";\n\n// ----------------------------------------------------------------------------\n// Variables\n// ----------------------------------------------------------------------------\n\n///\n/// Device-specific breakpoints\n///\n/// @example\n///   $break-devices: (\n///     mobile: (\n///       portrait:  220px  479px,\n///       landscape: 480px  719px\n///     ),\n///     tablet: (\n///       portrait:  720px  959px,\n///       landscape: 960px  1219px\n///     ),\n///     screen: (\n///       small:     1220px 1599px,\n///       medium:    1600px 1999px,\n///       large:     2000px\n///     )\n///   );\n///\n$break-devices: () !default;\n\n// ----------------------------------------------------------------------------\n// Helpers\n// ----------------------------------------------------------------------------\n\n///\n/// Choose minimum and maximum device widths\n///\n@function break-select-min-max($devices) {\n  $min: 1000000;\n  $max: 0;\n  @each $key, $value in $devices {\n    @while type-of($value) == map {\n      $value: break-select-min-max($value);\n    }\n    @if type-of($value) == list {\n      @each $number in $value {\n        @if type-of($number) == number {\n          $min: math.min($number, $min);\n          @if $max {\n            $max: math.max($number, $max);\n          }\n        } @else {\n          @error \"Invalid number: #{$number}\";\n        }\n      }\n    } @else if type-of($value) == number {\n      $min: math.min($value, $min);\n      $max: null;\n    } @else {\n      @error \"Invalid value: #{$value}\";\n    }\n  }\n  @return $min, $max;\n}\n\n///\n/// Select minimum and maximum widths for a device breakpoint\n///\n@function break-select-device($device) {\n  $current: $break-devices;\n  @for $n from 1 through length($device) {\n    @if type-of($current) == map {\n      $current: map.get($current, list.nth($device, $n));\n    } @else {\n      @error \"Invalid device map: #{$devices}\";\n    }\n  }\n  @if type-of($current) == list or type-of($current) == number {\n    $current: (default: $current);\n  }\n  @return break-select-min-max($current);\n}\n\n// ----------------------------------------------------------------------------\n// Mixins\n// ----------------------------------------------------------------------------\n\n///\n/// A minimum-maximum media query breakpoint\n///\n@mixin break-at($breakpoint) {\n  @if type-of($breakpoint) == number {\n    @media screen and (min-width: $breakpoint) {\n      @content;\n    }\n  } @else if type-of($breakpoint) == list {\n    $min: list.nth($breakpoint, 1);\n    $max: list.nth($breakpoint, 2);\n    @if type-of($min) == number and type-of($max) == number {\n      @media screen and (min-width: $min) and (max-width: $max) {\n        @content;\n      }\n    } @else {\n      @error \"Invalid breakpoint: #{$breakpoint}\";\n    }\n  } @else {\n    @error \"Invalid breakpoint: #{$breakpoint}\";\n  }\n}\n\n///\n/// An orientation media query breakpoint\n///\n@mixin break-at-orientation($breakpoint) {\n  @if type-of($breakpoint) == string {\n    @media screen and (orientation: $breakpoint) {\n      @content;\n    }\n  } @else {\n    @error \"Invalid breakpoint: #{$breakpoint}\";\n  }\n}\n\n///\n/// A maximum-aspect-ratio media query breakpoint\n///\n@mixin break-at-ratio($breakpoint) {\n  @if type-of($breakpoint) == number {\n    @media screen and (max-aspect-ratio: $breakpoint) {\n      @content;\n    }\n  } @else {\n    @error \"Invalid breakpoint: #{$breakpoint}\";\n  }\n}\n\n///\n/// A minimum-maximum media query device breakpoint\n///\n@mixin break-at-device($device) {\n  @if type-of($device) == string {\n    $device: $device,;\n  }\n  @if type-of($device) == list {\n    $breakpoint: break-select-device($device);\n    @if list.nth($breakpoint, 2) {\n      $min: list.nth($breakpoint, 1);\n      $max: list.nth($breakpoint, 2);\n\n      @media screen and (min-width: $min) and (max-width: $max) {\n        @content;\n      }\n    } @else {\n      @error \"Invalid device: #{$device}\";\n    }\n  } @else {\n    @error \"Invalid device: #{$device}\";\n  }\n}\n\n///\n/// A minimum media query device breakpoint\n///\n@mixin break-from-device($device) {\n  @if type-of($device) == string {\n    $device: $device,;\n  }\n  @if type-of($device) == list {\n    $breakpoint: break-select-device($device);\n    $min: list.nth($breakpoint, 1);\n\n    @media screen and (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @error \"Invalid device: #{$device}\";\n  }\n}\n\n///\n/// A maximum media query device breakpoint\n///\n@mixin break-to-device($device) {\n  @if type-of($device) == string {\n    $device: $device,;\n  }\n  @if type-of($device) == list {\n    $breakpoint: break-select-device($device);\n    $max: list.nth($breakpoint, 2);\n\n    @media screen and (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @error \"Invalid device: #{$device}\";\n  }\n}\n","////\n/// Copyright (c) 2016-2021 Martin Donath <martin.donath@squidfunk.com>\n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Announcement bar\n.md-announce {\n\n  // Text link, also on focus/hover\n  a,\n  a:focus,\n  a:hover {\n    color: currentColor;\n  }\n\n  // Don't wrap name of blog article\n  strong {\n    white-space: nowrap;\n  }\n\n  // Twitter icon\n  .twitter {\n    margin-left: 0.2em;\n  }\n}\n","////\n/// Copyright (c) 2016-2021 Martin Donath <martin.donath@squidfunk.com>\n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Landing page container\n.mdx-container {\n  padding-top: px2rem(20px);\n  background:\n    url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(0, 0%, 100%, 1)' /></svg>\") no-repeat bottom,\n    linear-gradient(\n      to bottom,\n      var(--md-primary-fg-color),\n      hsla(280, 67%, 55%, 1) 99%,\n      var(--md-default-bg-color) 99%\n    );\n\n  // Adjust background for slate theme\n  [data-md-color-scheme=\"slate\"] & {\n    background:\n      url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(232, 15%, 21%, 1)' /></svg>\") no-repeat bottom,\n      linear-gradient(\n        to bottom,\n        var(--md-primary-fg-color),\n        hsla(280, 67%, 55%, 1) 99%,\n        var(--md-default-bg-color) 99%\n      );\n  }\n}\n\n// Landing page hero\n.mdx-hero {\n  margin: 0 px2rem(16px);\n  color: var(--md-primary-bg-color);\n\n  // Hero headline\n  h1 {\n    margin-bottom: px2rem(20px);\n    color: currentColor;\n    font-weight: 700;\n\n    // [mobile portrait -]: Larger hero headline\n    @include break-to-device(mobile portrait) {\n      font-size: px2rem(28px);\n    }\n  }\n\n  // Hero content\n  &__content {\n    padding-bottom: px2rem(120px);\n  }\n\n  // [tablet landscape +]: Columnar display\n  @include break-from-device(tablet landscape) {\n    display: flex;\n    align-items: stretch;\n\n    // Adjust spacing and set dimensions\n    &__content {\n      max-width: px2rem(380px);\n      margin-top: px2rem(70px);\n      padding-bottom: 14vw;\n    }\n\n    // Hero image\n    &__image {\n      order: 1;\n      width: px2rem(760px);\n      transform: translateX(#{px2rem(80px)});\n    }\n  }\n\n  // [screen +]: Columnar display and adjusted spacing\n  @include break-from-device(screen) {\n\n    // Hero image\n    &__image {\n      transform: translateX(#{px2rem(160px)});\n    }\n  }\n\n  // Button\n  .md-button {\n    margin-top: px2rem(10px);\n    margin-right: px2rem(10px);\n    color: var(--md-primary-bg-color);\n\n    // Button on focus/hover\n    &:focus,\n    &:hover {\n      color: var(--md-accent-bg-color);\n      background-color: var(--md-accent-fg-color);\n      border-color: var(--md-accent-fg-color);\n    }\n\n    // Primary button\n    &--primary {\n      color: hsla(280, 37%, 48%, 1);\n      background-color: var(--md-primary-bg-color);\n      border-color: var(--md-primary-bg-color);\n    }\n  }\n}\n","////\n/// Copyright (c) 2016-2021 Martin Donath <martin.donath@squidfunk.com>\n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n  // Icon search\n  .mdx-iconsearch {\n    position: relative;\n    background-color: var(--md-default-bg-color);\n    border-radius: px2rem(2px);\n    box-shadow:\n      0 px2rem(4px)   px2rem(10px) hsla(0, 0%, 0%, 0.1),\n      0 px2rem(0.5px) px2rem(1px)  hsla(0, 0%, 0%, 0.1);\n    transition: box-shadow 125ms;\n\n    // Icon search on focus/hover\n    &:focus-within,\n    &:hover {\n      box-shadow:\n        0 px2rem(8px)   px2rem(20px) hsla(0, 0%, 0%, 0.15),\n        0 px2rem(0.5px) px2rem(1px)  hsla(0, 0%, 0%, 0.15);\n    }\n\n    // Icon search input\n    .md-input {\n      background: var(--md-default-bg-color);\n      box-shadow: 0 0 px2rem(12px) hsla(0, 0%, 0%, 0.07);\n\n      // Slate theme, i.e. dark mode\n      [data-md-color-scheme=\"slate\"] & {\n        background: var(--md-code-bg-color);\n      }\n    }\n  }\n\n  // Icon search result\n  .mdx-iconsearch-result {\n    max-height: 50vh;\n    overflow-y: auto;\n    // Hack: promote to own layer to reduce jitter\n    backface-visibility: hidden;\n    touch-action: pan-y;\n    scrollbar-width: thin;\n    scrollbar-color: var(--md-default-fg-color--lighter) transparent;\n\n    // Webkit scrollbar\n    &::-webkit-scrollbar {\n      width: px2rem(4px);\n      height: px2rem(4px);\n    }\n\n    // Webkit scrollbar thumb\n    &::-webkit-scrollbar-thumb {\n      background-color: var(--md-default-fg-color--lighter);\n\n      // Webkit scrollbar thumb on hover\n      &:hover {\n        background-color: var(--md-accent-fg-color);\n      }\n    }\n\n    // Icon search result metadata\n    &__meta {\n      position: absolute;\n      top: px2rem(8px);\n      right: px2rem(12px);\n      color: var(--md-default-fg-color--lighter);\n      font-size: px2rem(12.8px);\n    }\n\n    // Icon search result list\n    &__list {\n      margin: 0;\n      padding: 0;\n      list-style: none;\n    }\n\n    // Icon search result item\n    &__item {\n      margin: 0;\n      padding: px2rem(4px) px2rem(12px);\n      border-bottom: px2rem(1px) solid var(--md-default-fg-color--lightest);\n\n      // Omit border on last child\n      &:last-child {\n        border-bottom: none;\n      }\n\n      // Item content\n      > * {\n        margin-right: px2rem(12px);\n      }\n\n      // Set icon dimensions to fit\n      img {\n        width: px2rem(18px);\n        height: px2rem(18px);\n\n        // Slate theme, i.e. dark mode\n        [data-md-color-scheme=\"slate\"] &[src*=\"squidfunk\"] {\n          filter: invert(1); /* stylelint-disable-line */\n        }\n      }\n    }\n  }\n}\n","////\n/// Copyright (c) 2016-2021 Martin Donath <martin.donath@squidfunk.com>\n///\n/// Permission is hereby granted, free of charge, to any person obtaining a\n/// copy of this software and associated documentation files (the \"Software\"),\n/// to deal in the Software without restriction, including without limitation\n/// the rights to use, copy, modify, merge, publish, distribute, sublicense,\n/// and/or sell copies of the Software, and to permit persons to whom the\n/// Software is furnished to do so, subject to the following conditions:\n///\n/// The above copyright notice and this permission notice shall be included in\n/// all copies or substantial portions of the Software.\n///\n/// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL\n/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n/// DEALINGS\n////\n\n// ----------------------------------------------------------------------------\n// Rules\n// ----------------------------------------------------------------------------\n\n// Scoped in typesetted content to match specificity of regular content\n.md-typeset {\n\n  // Premium sponsors\n  .mdx-premium {\n\n    // Paragraphs\n    p {\n      margin: 2em 0;\n      text-align: center;\n    }\n\n    // Premium sponsor image\n    img {\n      height: px2rem(60px);\n    }\n\n    // Premium sponsor list\n    p:last-child {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n\n      // Premium sponsor link\n      > a {\n        display: block;\n        flex-shrink: 0;\n        padding: px2rem(10px) px2rem(20px);\n        transition: transform 125ms;\n\n        // Premium sponsor item on focus/hover\n        &:focus,\n        &:hover {\n          transform: scale(1.1);\n        }\n      }\n    }\n  }\n\n  // Sponsorship\n  .mdx-sponsorship {\n\n    // Sponsorship list\n    &__list {\n      margin: 2em 0;\n\n      // Clearfix, because we can't use overflow: auto\n      &::after {\n        display: block;\n        clear: both;\n        content: \"\";\n      }\n    }\n\n    // Sponsorship item\n    &__item {\n      display: block;\n      float: left;\n      width: px2rem(60px);\n      height: px2rem(60px);\n      margin: px2rem(4px);\n      overflow: hidden;\n      border-radius: 100%;\n      transform: scale(1);\n      transition:\n        color     125ms,\n        transform 125ms;\n\n      // Sponsor item on focus/hover\n      &:focus,\n      &:hover {\n        transform: scale(1.1);\n\n        // Sponsor avatar\n        img {\n          filter: grayscale(0%);\n        }\n      }\n\n      // Private sponsor\n      &--private {\n        color: var(--md-default-fg-color--lighter);\n        font-weight: 700;\n        font-size: px2rem(24px);\n        line-height: px2rem(60px);\n        text-align: center;\n        background: var(--md-default-fg-color--lightest);\n      }\n\n      // Sponsor avatar\n      img {\n        display: block;\n        width: 100%;\n        height: auto;\n        filter: grayscale(100%) opacity(75%);\n        transition: filter 125ms;\n      }\n    }\n  }\n\n  // Sponsorship button\n  .mdx-sponsorship-button {\n    font-weight: 400;\n  }\n\n  // Sponsorship count and total\n  .mdx-sponsorship-count,\n  .mdx-sponsorship-total {\n    font-weight: 700;\n  }\n}\n"]}