/* Variables: Basic */
/* ========================================================================== */
:root {
  /* Color */
  --color-bg   : #fff;
  --color-text : #333;
  --theme-color: #0b85d7;

  /* Color: Monochromatic */
  --color-mono-min: var(--color-bg);
  --color-mono-1  : color-mix(in srgb, var(--color-mono-min), var(--color-mono-max) 5%);
  --color-mono-2  : color-mix(in srgb, var(--color-mono-min), var(--color-mono-max) 10%);
  --color-mono-3  : color-mix(in srgb, var(--color-mono-min), var(--color-mono-max) 20%);
  --color-mono-4  : color-mix(in srgb, var(--color-mono-min), var(--color-mono-max) 32%);
  --color-mono-5  : color-mix(in srgb, var(--color-mono-max), var(--color-mono-min) 50%);
  --color-mono-6  : color-mix(in srgb, var(--color-mono-max), var(--color-mono-min) 32%);
  --color-mono-7  : color-mix(in srgb, var(--color-mono-max), var(--color-mono-min) 20%);
  --color-mono-8  : color-mix(in srgb, var(--color-mono-max), var(--color-mono-min) 10%);
  --color-mono-9  : color-mix(in srgb, var(--color-mono-max), var(--color-mono-min) 5%);
  --color-mono-max: var(--color-text);

  /* Color: Theme Shades (darker) & Tints (lighter)*/
  /* NOTE: Values derived from --theme-color */
  --theme-color-1: color-mix(in srgb, var(--theme-color), var(--color-mono-min) 90%);
  --theme-color-2: color-mix(in srgb, var(--theme-color), var(--color-mono-min) 75%);
  --theme-color-3: color-mix(in srgb, var(--theme-color), var(--color-mono-min) 55%);
  --theme-color-4: color-mix(in srgb, var(--theme-color), var(--color-mono-min) 30%);
  --theme-color-5: color-mix(in srgb, var(--theme-color), var(--color-mono-max) 30%);
  --theme-color-6: color-mix(in srgb, var(--theme-color), var(--color-mono-max) 55%);
  --theme-color-7: color-mix(in srgb, var(--theme-color), var(--color-mono-max) 75%);
  --theme-color-8: color-mix(in srgb, var(--theme-color), var(--color-mono-max) 90%);

  /* Typography */
  --font-family      : system-ui, sans-serif;
  --font-family-emoji: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-family-mono : ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
  --font-size        : 16px; /* px */
  --font-size-xxxl   : calc(var(--font-size-xxl) * var(--modular-scale));
  --font-size-xxl    : calc(var(--font-size-xl) * var(--modular-scale));
  --font-size-xl     : calc(var(--font-size-l) * var(--modular-scale));
  --font-size-l      : calc(1rem * var(--modular-scale));
  --font-size-m      : var(--font-size);
  --font-size-s      : max(13px, calc(var(--font-size-m) / var(--modular-scale)));
  --font-size-xs     : max(11px, calc(var(--font-size-s) / var(--modular-scale)));
  --font-size-emoji  : 1.2em;
  --font-size-mono   : 0.875rem;
  --font-weight      : 350;
  --font-weight-mono : var(--font-weight);
  --line-height      : 1.6;
  --modular-scale    : 1.250; /* 1.067, 1.125, 1.200, 1.250, 1.333, 1.414, 1.500, 1.618 */

  /* Common */
  --border-color      : var(--color-mono-2);
  --border-radius     : 3px; /* Single value */
  --duration-slow     : 500ms;
  --duration-medium   : 250ms;
  --duration-fast     : 150ms;
  --margin-block      : 1rem; /* Single value */
  --scroll-padding-top: var(--margin-block);

  /* Content */
  --content-margin-inline: 45px; /* Single value */
  --content-max-width    : 72ch;

  /* Cover */
  --cover-bg           : unset;
  --cover-bg-brightness: 1;
  --cover-bg-overlay   : radial-gradient(transparent 60%, rgba(0, 0, 0, 0.1));
  --cover-color        : ;
  --cover-title-color  : var(--strong-color);
  --cover-title-font   : var(--font-size-xxxl) var(--font-family);

  /* Elements */
  --blockquote-bg                 : ;
  --blockquote-border-color       : var(--theme-color);
  --blockquote-border-radius      : 0;
  --blockquote-border-width       : 0 0 0 4px;
  --blockquote-color              : var(--color-mono-6);
  --blockquote-padding            : 0 0 0 1.5em;
  --button-bg                     : var(--theme-color);
  --button-border-radius          : 100vh;
  --button-color                  : #fff;
  --button-padding                : 0.3em 1.25em 0.315em 1.25em;
  --callout-bg                    : var(--color-mono-1);
  --callout-border-color          : ;
  --callout-border-radius         : var(--border-radius);
  --callout-border-width          : 1px;
  --callout-charm-bg              : ;
  --callout-charm-border-radius   : 100vh;
  --callout-charm-color           : #fff;
  --callout-charm-content         : '';
  --callout-charm-font-size       : 16px;
  --callout-charm-inset           : 1em auto auto 15px;
  --callout-charm-size            : 26px;
  --callout-charm-translate       : 0;
  --callout-color                 : ;
  --callout-padding               : 1em 1em 1em calc(25px + var(--callout-charm-size));
  --code-bg                       : var(--color-mono-1);
  --code-color                    : ;
  --codeblock-bg                  : var(--code-bg);
  --codeblock-color               : var(--code-color);
  --codeblock-comment             : #6e8090;
  --codeblock-function            : #dd4a68;
  --codeblock-important           : #c94922;
  --codeblock-keyword             : #07a;
  --codeblock-operator            : #a67f59;
  --codeblock-property            : #c08b30;
  --codeblock-punctuation         : #999;
  --codeblock-selector            : #690;
  --codeblock-tag                 : #905;
  --codeblock-variable            : #e90;
  --form-element-bg               : var(--color-mono-1);
  --form-element-border-color     : var(--color-mono-3);
  --form-element-border-radius    : var(--border-radius);
  --form-element-color            : ;
  --heading-color                 : var(--strong-color);
  --heading-font-weight           : 600;
  --heading-line-height           : calc(2ex + 5px); /* Unit required */
  --kbd-bg                        : var(--color-mono-1);
  --kbd-border                    : 1px solid var(--color-mono-3);
  --kbd-border-radius             : 4px;
  --kbd-color                     : var(--color-mono-5);
  --kbd-alt-bg                    : var(--color-mono-1);
  --kbd-alt-border                : none;
  --kbd-alt-border-radius         : var(--kbd-border-radius);
  --kbd-alt-box-shadow            : 0 2px 0 1px var(--color-mono-3);
  --kbd-alt-color                 : var(--kbd-color);
  --link-color                    : ;
  --link-color-hover              : var(--theme-color);
  --link-underline-color          : var(--theme-color);
  --link-underline-color-hover    : var(--link-underline-color);
  --link-underline-thickness      : 2px;
  --link-underline-thickness-hover: var(--link-underline-thickness);
  --mark-bg                       : #fef08a;
  --mark-color                    : ;
  --strong-color                  : color-mix(in srgb, var(--color-text), black 35%);
  --strong-font-weight            : 600;
  --table-row-alt-bg              : var(--color-mono-1);

  /* Navbar */
  --navbar-font-size        : var(--font-size);
  --navbar-height           : 4em;
  --navbar-link-color       : ;
  --navbar-link-color-active: var(--theme-color);
  --navbar-drop-link-spacing: 0.5em;

  /* Sidebar */
  --sidebar-bg                      : var(--color-bg);
  --sidebar-border-color            : var(--border-color);
  --sidebar-color                   : ;
  --sidebar-font-size               : var(--font-size);
  --sidebar-group-border            : ;
  --sidebar-group-spacing           : ;
  --sidebar-group-title-border      : ;
  --sidebar-group-title-color       : var(--strong-color);
  --sidebar-group-title-font-size   : ;
  --sidebar-group-title-font-weight : var(--strong-font-weight);
  --sidebar-group-title-spacing     : ;
  --sidebar-link-color              : var(--color-text);
  --sidebar-link-color-active       : var(--theme-color);
  --sidebar-link-spacing            : 0.75em;
  --sidebar-name-color              : var(--strong-color);
  --sidebar-name-font-family        : var(--font-family);
  --sidebar-name-font-size          : var(--font-size-xl);
  --sidebar-name-font-weight        : var(--strong-font-weight);
  --sidebar-name-margin             : 1.5rem 20px;
  --sidebar-pagelink-bg             : ;
  --sidebar-pagelink-bg-collapsed   : ;
  --sidebar-pagelink-bg-empty       : ;
  --sidebar-pagelink-bg-expanded    : ;
  --sidebar-toggle-alignment        : center; /* start center end */
  --sidebar-toggle-bg               : var(--color-mono-2);
  --sidebar-toggle-bg-hover         : var(--button-bg);
  --sidebar-toggle-color            : var(--color-mono-4);
  --sidebar-toggle-color-hover      : var(--button-color);
  --sidebar-toggle-height           : 80px;
  --sidebar-toggle-margin-block     : 20px;
  --sidebar-toggle-width            : 22px;
  --sidebar-width                   : 280px;
}
/* Scoped Variables */
/* ========================================================================== */
.callout.caution {
    /* Tailwind: red 50/200/500 */
    --callout-bg          : #fef2f2;
    --callout-border-color: #fecaca;
    --callout-charm-bg    : #ef4444 center no-repeat url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="13" height="13" fill="white"><path d="M10 14C10 15.1 9.1 16 8 16 6.9 16 6 15.1 6 14 6 12.9 6.9 12 8 12 9.1 12 10 12.9 10 14Z"/><path d="M10 1.6C10 1.2 9.8 0.9 9.6 0.7 9.2 0.3 8.6 0 8 0 7.4 0 6.8 0.2 6.5 0.6 6.2 0.9 6 1.2 6 1.6 6 1.7 6 1.8 6 1.9L6.8 9.6C6.9 9.9 7 10.1 7.2 10.2 7.4 10.4 7.7 10.5 8 10.5 8.3 10.5 8.6 10.4 8.8 10.3 9 10.1 9.1 9.9 9.2 9.6L10 1.9C10 1.8 10 1.7 10 1.6Z"/></svg>');
  }
.callout.important {
    /* Tailwind: violet 50/200/500 */
    --callout-bg          : #f5f3ff;
    --callout-border-color: #ddd6fe;
    --callout-charm-bg    : #8b5cf6 center no-repeat url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="white"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path></svg>');
  }
.callout.note {
    --callout-bg          : var(--theme-color-1);
    --callout-border-color: var(--theme-color-2);
    --callout-charm-bg    : var(--theme-color) center no-repeat url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="14" height="14" fill="white"><path d="M9.1 0C10.2 0 10.7 0.7 10.7 1.6 10.7 2.6 9.8 3.6 8.6 3.6 7.6 3.6 7 3 7 2 7 1.1 7.7 0 9.1 0Z"/><path d="M5.8 16C5 16 4.4 15.5 5 13.2L5.9 9.1C6.1 8.5 6.1 8.2 5.9 8.2 5.7 8.2 4.6 8.6 3.9 9.1L3.5 8.4C5.6 6.6 7.9 5.6 8.9 5.6 9.8 5.6 9.9 6.6 9.5 8.2L8.4 12.5C8.2 13.2 8.3 13.5 8.5 13.5 8.7 13.5 9.6 13.2 10.4 12.5L10.9 13.2C8.9 15.2 6.7 16 5.8 16Z"/></svg>');
  }
.callout.tip {
    /* Tailwind: teal 50/200/500 */
    --callout-bg          : #f0fdfa;
    --callout-border-color: #99f6e4;
    --callout-charm-bg    : #14b8a6 center no-repeat url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="14" height="14" fill="white"><path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></svg>');
  }
.callout.warning {
    /* Tailwind: amber 50/200/300 */
    --callout-bg          : #fffbeb;
    --callout-border-color: #fde68a;
    --callout-charm-bg    : #fcd34d center no-repeat url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="13" height="13" fill="#a16207"><path d="M10 14C10 15.1 9.1 16 8 16 6.9 16 6 15.1 6 14 6 12.9 6.9 12 8 12 9.1 12 10 12.9 10 14Z"/><path d="M10 1.6C10 1.2 9.8 0.9 9.6 0.7 9.2 0.3 8.6 0 8 0 7.4 0 6.8 0.2 6.5 0.6 6.2 0.9 6 1.2 6 1.6 6 1.7 6 1.8 6 1.9L6.8 9.6C6.9 9.9 7 10.1 7.2 10.2 7.4 10.4 7.7 10.5 8 10.5 8.3 10.5 8.6 10.4 8.8 10.3 9 10.1 9.1 9.9 9.2 9.6L10 1.9C10 1.8 10 1.7 10 1.6Z"/></svg>');
  }
/* Variables: Advanced */
/* ========================================================================== */
/* prettier-ignore */
:root {
  /* z-index */
  --z-skip-to-content: 2147483647;
  --z-progress       : 2147483637;
  --z-sidebar        : 60;
  --z-sidebar-toggle : 50;
  --z-main-overlay   : 40;
  --z-github-corner  : 30;
  --z-app-nav        : 20;
  --z-cover          : 10;
}
/* Base */
/* ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  border: 0;
  font: inherit;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}
html,
body {
  height: 100vh;
}
html {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-family);
  font-feature-settings:
    'liga' 1,
    'calt' 1; /* NOTE: Fix for Chrome */
  font-optical-sizing: auto;
  font-size: var(--font-size);
  font-weight: var(--font-weight);
  line-height: var(--line-height);
  scroll-padding-top: var(--scroll-padding-top);
}
body {
  overflow-x: hidden;
  margin: 0;
}
body:not(.ready) {
    overflow: hidden;
  }
body:not(.ready) [data-cloak],body:not(.ready) .app-nav,body:not(.ready)  > nav {
      display: none;
    }
/* Loading animation */
body.loading::before {
      position: fixed;
    }
/* Content or cover loaded */
body.loading:has(:where(#main,.cover-main):not(:empty))::before {
        display: none;
      }
[tabindex='-1']:focus {
  outline: none !important;
}
/* Elements */
/* ========================================================================== */
small,
sub,
sup {
  display: inline-block;
  font-size: var(--font-size-s);
}
a {
  color: var(--link-color);

  /* NOTE: Safari may require a forced redraw when changing text-decoration
  values (e.g., :hover). One way to do this is via translate: 0 0 0. */
}
a:not(.button) {
    text-decoration-color: var(--link-underline-color);
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-thickness: var(--link-underline-thickness);
    text-underline-offset: 2px;
  }
a:not(.button):hover {
      color: var(--link-color-hover);
      text-decoration-color: var(--link-underline-color-hover);
      text-decoration-thickness: var(--link-underline-thickness-hover);
    }
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  line-height: var(--heading-line-height);
}
hr {
  margin-block: 1em;
  border: none;
  border-bottom: 1px solid var(--border-color);
}
ins {
  text-decoration: underline;
}
kbd {
  display: inline-block;
  min-width: 2em;
  padding: 0.3em 0.5em;
  border: var(--kbd-border);
  border-radius: var(--kbd-border-radius);
  background: var(--kbd-bg);
  color: var(--kbd-color);
  font-size: var(--font-size-s);
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
mark {
  padding-inline: 1px;
  border-radius: 1px;
  background: var(--mark-bg);
  color: var(--mark-color);
}
strong {
  color: var(--strong-color);
  font-weight: var(--strong-font-weight);
}
summary {
  cursor: pointer;
}
summary  > * {
    display: inline;
  }
:disabled {
  cursor: not-allowed;
}
/* Buttons */
/* ---------------------------------- */
a.button,
button[type],
input.button,
input:is([type='button'], [type='reset'], [type='submit']) {
  display: inline-block;
  margin-block: 0.35em;
  border: 2px solid var(--color-mono-2);
  box-shadow: 0 0 0 3px transparent;
  background: var(--color-mono-2);
  color: var(--color-text);
  cursor: pointer;
  vertical-align: middle;
  transition: outline-color var(--duration-fast);
}
:is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])):not(:focus-visible) {
    outline-color: transparent;
  }
:is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])):hover {
    outline: 3px solid var(--theme-color-3);
    outline-offset: 1px;
  }
:is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])) + :is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])) {
    margin-left: 0.25em;
  }
.primary:is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])),.secondary:is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])) {
    border-color: var(--button-bg);
  }
/* Primary Button */
.primary:is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])) {
    background: var(--button-bg);
    color: var(--button-color);
  }
/* Secondary Button */
.secondary:is(a.button,button[type],input.button,input:is([type='button'],[type='reset'],[type='submit'])) {
    background: transparent;
    color: var(--button-bg);
  }
a.button,
button[type],
input:where([type='button'], [type='reset'], [type='submit']) {
  padding: var(--button-padding);
  border-radius: var(--button-border-radius);
  text-decoration: none;
}
:is(button[type],input.button,input:where([type='button'],[type='reset'],[type='submit'])):disabled {
    opacity: 0.6;
    filter: grayscale(100%);
    pointer-events: none;
  }
button:not([type]) {
  color: inherit;
}
/* Emoji */
/* ---------------------------------- */
.emoji:where(img) {
    height: 1.2em;
    vertical-align: middle;
  }
.emoji:where(span) {
    font-family: var(--font-family-emoji);
    font-size: var(--font-size-emoji);
    vertical-align: middle;
  }
/* Form Elements
/* ---------------------------------- */
:is(fieldset,input:not([type='checkbox']),optgroup,option,select,textarea):disabled {
    opacity: 0.6;
  }
fieldset,
input,
select,
textarea {
  max-width: 100%;
  border-radius: var(--form-element-border-radius);
}
input,
select,
textarea {
  padding: 0.25em 0.5em;
  border: 1px solid var(--form-element-border-color);
}
input,
select,
textarea {
  background: var(--form-element-bg);
  color: var(--form-element-color);
}
input,
label,
select {
  vertical-align: middle;
}
fieldset {
  padding: 1em;
  border: 1px solid var(--color-mono-2);
}
fieldset  > :first-child,fieldset  > legend + * {
    margin-top: 0;
  }
fieldset  > :last-child {
    margin-bottom: 0;
  }
input:where([type='checkbox'], [type='radio']) {
  --_size: 1.1em;

  appearance: none;
  display: inline-block;
  position: relative;
  top: -0.1em;
  height: var(--_size);
  width: var(--_size);
  margin: 0;
  padding: 0;
}
input.toggle:where([type='checkbox'],[type='radio']) {
    --_inset: 2px;
    --_handle-size: calc(var(--_size) - (var(--_inset) * 2));

    height: calc(var(--_size) + 2px);
    width: calc(var(--_size) * 1.9);
    border-radius: 100vh;
  }
input.toggle:where([type='checkbox'],[type='radio'])::before,input.toggle:where([type='checkbox'],[type='radio'])::after {
      all: unset;
    }
input.toggle:where([type='checkbox'],[type='radio'])::before {
      content: '';
      display: inline-block;
      position: absolute;
      top: var(--_inset);
      left: var(--_inset);
      height: var(--_handle-size);
      width: var(--_handle-size);
      border-radius: 100vh;
      background: var(--color-mono-3);
      transition: all var(--duration-fast);
    }
input.toggle:where([type='checkbox'],[type='radio']):checked {
      background: var(--theme-color);
      border-color: var(--theme-color);
    }
input.toggle:where([type='checkbox'],[type='radio']):checked::before {
        left: calc(100% - var(--_handle-size) - var(--_inset));
        background: var(--color-bg);
      }
label input:where([type='checkbox'],[type='radio']) {
    margin-right: 0.25em;
  }
input:where([type='checkbox']):not(.toggle) {
  border-radius: min(var(--form-element-border-radius), 3px);
}
input:where([type='checkbox']):not(.toggle)::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: 43%;
    left: 50%;
    rotate: 40deg;
    translate: -50% -50%;
    height: 0.7em;
    width: 0.4em;
    border-bottom: 2px solid transparent;
    border-right: 2px solid transparent;
  }
input:where([type='checkbox']):not(.toggle):checked {
    border-color: var(--theme-color);
    background: var(--theme-color);
  }
input:where([type='checkbox']):not(.toggle):checked::before {
      border-color: var(--color-bg);
    }
input:where([type='radio']):not(.toggle) {
  border-radius: 100vh;
}
input:where([type='radio']):not(.toggle):checked {
    border-color: var(--theme-color);
    box-shadow: inset 0 0 0 0.25em var(--theme-color);
  }
label {
  display: inline-block;
}
select {
  appearance: none;
  padding-right: 20px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4.95 10'%3E%3Cpolygon fill='black' opacity='0.5' points='1.41 4.67 2.48 3.18 3.54 4.67 1.41 4.67'/%3E%3Cpolygon fill='black' opacity='0.5' points='3.54 5.33 2.48 6.82 1.41 5.33 3.54 5.33'/%3E%3C/svg%3E");
  background-position: right 2px center;
  background-repeat: no-repeat;
  font-weight: normal; /* Fix for Safari using serif font is weight is bold */
}
@media screen and (prefers-color-scheme: dark) {
select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4.95 10'%3E%3Cpolygon fill='white' opacity='0.4' points='1.41 4.67 2.48 3.18 3.54 4.67 1.41 4.67'/%3E%3Cpolygon fill='white' opacity='0.4' points='3.54 5.33 2.48 6.82 1.41 5.33 3.54 5.33'/%3E%3C/svg%3E");
}
  }
/* App */
/* ========================================================================== */
body  > .progress {
    position: fixed;
    z-index: var(--z-progress);
    inset: 0 0 auto 0;
    height: 2px;
    width: 0%;
    background: var(--theme-color);
    transition:
      width var(--duration-medium) ease,
      opacity calc(var(--duration-medium) * 2);
  }
main {
  display: block;
  position: relative;
  width: 100vw;
  min-height: 100vh;

  /* Overlay */
}
main::before {
    content: '';
    position: fixed;
    z-index: var(--z-main-overlay);
    top: 0;
    bottom: 0;
    width: 0;
    background: transparent;
    transition:
      width 0s var(--duration-medium),
      background var(--duration-medium);
  }
main.hidden {
    display: none;
  }
main  > .content {
    position: absolute;
    inset: 0;
    transition: left var(--duration-medium) ease;
  }
body:has(.sidebar.show) :is(main > .content) {
      left: var(--sidebar-width);
    }
/* hideSidebar: true */
body:not:has(.sidebar) :is(main > .content) {
      position: static;
    }
.github-corner {
  position: absolute;
  top: 0;
  right: 0;
  z-index: var(--z-github-corner);
  border-bottom: 0;
  text-decoration: none;
}
.github-corner:hover .octo-arm {
      animation: github-corner 560ms ease-in-out;
    }
.github-corner svg {
    height: var(--navbar-height);
    width: var(--navbar-height);
    color: var(--color-bg);
    fill: var(--theme-color);
  }
@keyframes github-corner {
  0%,
  100% {
    rotate: 0;
  }
  20%,
  60% {
    rotate: -25deg;
  }
  40%,
  80% {
    rotate: 10deg;
  }
}
.loading:empty /* Block: <div class="loading"></div>  */,
.loading:not(:empty)::before /* Pseudo: <div class="loading">Content</div>  */ {
  --_gradient: no-repeat
    radial-gradient(farthest-side, var(--theme-color) 92%, #0000);

  content: '';
  display: block;
  width: 36px;
  aspect-ratio: 1;
  background:
    var(--_gradient) top,
    var(--_gradient) left,
    var(--_gradient) right,
    var(--_gradient) bottom;
  background-size: 10px 10px;
  animation: loading 1s infinite;
}
.loading:not(:empty)::before {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
@keyframes loading {
  to {
    rotate: 0.5turn;
  }
}
#app {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75em;
  height: 100vh;
  padding-inline: 50px;
}
#skip-to-content {
  position: fixed;
  z-index: var(--z-skip-to-content);
  top: 0;
  left: 50%;
  opacity: 0;
  translate: -50% -100%;
  transition-property: opacity, translate;
  transition-duration: 0s, var(--duration-medium);
  transition-delay: var(--duration-medium), 0s;
  transition-timing-function: ease;
}
#skip-to-content:focus {
    opacity: 1;
    translate: -50% 0.75rem;
    transition-duration: 0s, var(--duration-medium);
    transition-delay: 0s, 0s;
  }
/* Cover */
/* ========================================================================== */
.cover {
  display: none;
  position: relative;
  z-index: var(--z-cover);
  min-height: 100vh;
  width: 100%;
  align-items: center;
  background: var(--cover-bg);
  color: var(--cover-color);
}
.cover:before {
    content: '';
    position: absolute;
    inset: 0 0 0 0;
    background: var(--cover-bg-overlay);
    -webkit-backdrop-filter: brightness(var(--cover-bg-brightness));
    backdrop-filter: brightness(var(--cover-bg-brightness));
  }
.cover.show {
    display: flex;
  }
.cover a:not(.anchor) {
    text-decoration-color: var(--theme-color);
  }
.cover blockquote {
    font-size: var(--font-size-xl);
    line-height: var(--heading-line-height);
    text-align: center;
  }
:is(.cover blockquote),:is(.cover blockquote) > p {
      margin-block: 1rem;
    }
.cover h1 {
    position: relative;
    color: var(--cover-title-color);
    font: var(--cover-title-font);
  }
:is(:is(.cover h1) a),:is(:is(.cover h1) a):hover {
        text-decoration-color: transparent;
      }
:is(.cover h1) a {
      color: var(--cover-title-color);
    }
:is(.cover h1) small {
      font-weight: var(--font-weight);
      position: absolute;
      bottom: 0;
    }
.cover ul {
    margin-bottom: 1.5rem;
    padding: 0;
    list-style-type: none;
  }
.cover-main {
  position: relative;
  z-index: 1;
  flex: 1;
  margin: 5vh var(--content-margin-inline);
  text-align: center;
}
/* Nav Bar */
/* ========================================================================== */
.app-nav {
  display: flex;
  align-items: center;
  justify-content: end;
  gap: 1em;
  position: absolute;
  z-index: var(--z-app-nav);
  top: 0;
  right: 0;
  left: 0;
  height: var(--navbar-height);
  padding-inline: var(--content-margin-inline);
  transition: left var(--duration-medium) ease;
}
.app-nav:has( ~ .github-corner) {
    padding-inline-end: calc(var(--navbar-height) + 1em);
  }
body:where(:has(.sidebar.show)) .app-nav {
    left: var(--sidebar-width);
  }
.app-nav a {
    color: var(--navbar-link-color);
    text-decoration-color: transparent;
  }
:is(.app-nav a):hover {
      translate: 0; /* HACK: Force Safari to render text-decoration */
      text-decoration-color: var(--navbar-link-color-active);
    }
.active :is(.app-nav a) {
      color: var(--navbar-link-color-active);
    }
.app-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }
.app-nav  > ul {
    display: flex;
    justify-content: end;
    flex-wrap: wrap;
    gap: 0 1em;
  }
.app-nav li {
    display: inline-block;
    position: relative;
    white-space: nowrap;
    cursor: pointer;

    /* Dropdown */
  }
:is(.app-nav li) ul {
      position: absolute;
      z-index: 1;
      top: -9999vh;
      right: 50%;
      translate: 50% 0;
      overflow-y: auto;
      max-height: calc(100vh - 61px);
      padding: 1em;
      border: 1px solid var(--border-color);
      border-radius: var(--border-radius);
      background: var(--color-bg);
    }
li:last-child :is(:is(.app-nav li) ul) {
        right: calc(0px - var(--content-margin-inline) / 2);
        translate: 0;
      }
:is(.app-nav li) li {
      display: block;
      margin-block: var(--navbar-drop-link-spacing);
    }
:is(:is(.app-nav li) li):first-child {
        margin-top: 0;
      }
:is(:is(.app-nav li) li):last-child {
        margin-bottom: 0;
      }
:is(:is(.app-nav li) li) a {
        display: flex;
        align-items: center;
        gap: 0.25em;
        margin: 0;
      }
:is(:is(:is(.app-nav li) li) a):hover {
          color: var(--navbar-link-color-active);
        }
:is(:is(.app-nav li):focus-within,:is(.app-nav li):hover) ul {
        top: 100%;
      }
.app-nav p {
    margin: 0;
  }
.app-nav  > :where(a,p),.app-nav  > ul > li > :where(a,p) {
    white-space: nowrap;
  }
.app-nav-merged {
  display: none;
}
/* Sidebar */
/* ========================================================================== */
:root {
  --_sidebar-inset: 20px;
  --_sidebar-list-inset: 0.85em;
  --_sidebar-scrollbar-width: 10px; /* macOS overlay scrollbar default */
}
@supports (scrollbar-width: auto) {
:root {
    --_sidebar-scrollbar-width: 4px;
}
  }
:is(.app-nav-merged,.sidebar-nav)  > * {
    margin-inline: var(--_sidebar-inset);
  }
:is(:is(.app-nav-merged,.sidebar-nav) > *):first-child {
      margin-top: 0;
    }
:is(.app-nav-merged,.sidebar-nav)  > hr {
    margin-inline: 0;
  }
:is(.app-nav-merged,.sidebar-nav) ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }
:is(:is(.app-nav-merged,.sidebar-nav) > ul)  > * {
      margin-left: var(--_sidebar-inset);
    }
:is(:is(.app-nav-merged,.sidebar-nav) > ul) ul {
      padding-left: var(--_sidebar-list-inset);
    }
.group:is(:is(:is(.app-nav-merged,.sidebar-nav) > ul) > li) {
        padding-top: var(--sidebar-group-spacing);
        border-top: var(--sidebar-group-border);
      }
.group:is(:is(:is(.app-nav-merged,.sidebar-nav) > ul) > li):has( + :not(.group)),.group:is(:is(:is(.app-nav-merged,.sidebar-nav) > ul) > li):last-child {
          border-bottom: var(--sidebar-group-border);
        }
:is(.app-nav-merged,.sidebar-nav) li {
    margin-block: var(--sidebar-link-spacing);
  }
:is(:is(.app-nav-merged,.sidebar-nav) li)  > p {
      margin: 0;

      /* Text-only <p> tags */
    }
.group-title:is(:is(:is(.app-nav-merged,.sidebar-nav) li) > p) {
        margin-right: var(--_sidebar-inset);
        margin-bottom: var(--sidebar-group-title-spacing);
        padding-bottom: var(--sidebar-group-title-spacing);
        border-bottom: var(--sidebar-group-title-border);
        color: var(--sidebar-group-title-color);
        font-size: var(--sidebar-group-title-font-size);
        font-weight: var(--sidebar-group-title-font-weight);
      }
:is(:is(.app-nav-merged,.sidebar-nav) li) a {
      display: block;
      padding-right: var(--_sidebar-inset);
      overflow: hidden;
    }
:is(:is(:is(.app-nav-merged,.sidebar-nav) li) a):has(img,svg) {
        display: flex;
        align-items: center;
        gap: 0.25em;
      }
.active:is(:is(.app-nav-merged,.sidebar-nav) li)  > a {
        color: var(--sidebar-link-color-active);
      }
.collapse:is(:is(.app-nav-merged,.sidebar-nav) li)  > :not(a) {
        display: none;
      }
.sidebar {
  visibility: hidden;
  position: absolute;
  z-index: var(--z-sidebar);
  top: 0;
  bottom: 0;
  left: 0;
  translate: calc(0px - var(--sidebar-width));
  width: var(--sidebar-width);
  overscroll-behavior: contain;
  border-right: 1px solid var(--sidebar-border-color);
  background: var(--sidebar-bg);
  color: var(--sidebar-color);
  font-size: var(--sidebar-font-size);
  transition:
    translate var(--duration-medium) ease,
    visibility var(--duration-medium);

  /* Non-webkit browsers: style scrollbar for consistency */
}
@supports (scrollbar-width: auto) {
    .sidebar::-webkit-scrollbar {
      width: var(--_sidebar-scrollbar-width);
    }

    .sidebar::-webkit-scrollbar-thumb {
      border-radius: var(--_sidebar-scrollbar-width);
      background: transparent;
    }
      .sidebar:hover::-webkit-scrollbar-thumb {
        background: rgba(136, 136, 136, 0.4);
      }

      .sidebar:hover::-webkit-scrollbar-track {
        background: rgba(136, 136, 136, 0.1);
      }
  }
.sidebar a[href] {
    text-decoration-color: transparent;
    color: var(--sidebar-link-color);
  }
:is(.sidebar a[href]):hover {
      translate: 0; /* HACK: Force Safari to render text-decoration */
      text-decoration-color: var(--sidebar-link-color-active);
    }
.sidebar .app-name {
    margin: var(--sidebar-name-margin);
    color: var(--sidebar-name-color);
    font-family: var(--sidebar-name-font-family);
    font-size: var(--sidebar-name-font-size);
    font-weight: var(--sidebar-name-font-weight);
    text-align: center;
  }
:is(.sidebar a.app-name-link) img {
      display: block;
      max-width: 100%;
    }
:is(.sidebar a.app-name-link):hover {
      color: var(--sidebar-link-color-active);
      text-decoration-color: transparent;
    }
body:has(.sidebar.show) .sidebar {
    visibility: visible;
    translate: 0;
  }
body.sticky .sidebar {
    position: fixed;
    overflow-y: auto;
  }
:is(.sidebar-nav li) a.page-link {
      border-radius: var(--border-radius);
      background: var(--sidebar-pagelink-bg);
    }
.active > :is(:is(.sidebar-nav li) a.page-link),:has(.active) > :is(:is(.sidebar-nav li) a.page-link) {
        background: var(--sidebar-pagelink-bg-expanded);
      }
:is(.active > :is(:is(.sidebar-nav li) a.page-link),:has(.active) > :is(:is(.sidebar-nav li) a.page-link)):only-child {
          background: var(--sidebar-pagelink-bg-empty);
        }
.collapse > :is(:is(.sidebar-nav li) a.page-link) {
        background: var(--sidebar-pagelink-bg-collapsed);
      }
.sidebar-toggle {
  display: flex;
  align-items: var(--sidebar-toggle-alignment);
  justify-content: start;
  position: absolute;
  z-index: var(--z-sidebar-toggle);
  top: 0;
  bottom: 0;
  width: var(--sidebar-toggle-width);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition:
    background var(--duration-medium),
    translate var(--duration-medium) ease;
}
@media screen and (any-hover) {
    .sidebar-toggle:hover {
      background: color-mix(
        in srgb,
        var(--sidebar-toggle-bg-hover) 10%,
        transparent
      );
    }
  }
body:where(:has(.sidebar.show)) .sidebar-toggle {
    translate: var(--sidebar-width);
    transition:
      background 0s,
      translate var(--duration-medium) ease;
  }
body.sticky .sidebar-toggle {
    position: fixed;
  }
/* Increase tap target size on touch-only devices */
@media screen and not (any-hover) {
.sidebar-toggle {
    width: calc(var(--content-margin-inline) - 10px);
}
  }
.sidebar-toggle-button {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: var(--sidebar-toggle-height);
  width: var(--sidebar-toggle-width);
  margin-block: var(--sidebar-toggle-margin-block);
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  background: var(--sidebar-toggle-bg);
  color: var(--sidebar-toggle-color);
  transition-duration: var(--duration-medium);
  transition-property: background, translate;
}
.sidebar-toggle-button span {
    --_size: 4px;

    display: block;
    height: var(--_size);
    width: var(--_size);
    border-radius: 100vh;
    background: currentColor;
    transition: background var(--duration-medium);
  }
:is(.sidebar-toggle-button span):nth-child(2) {
      margin-block: calc(var(--_size) - 1px);
    }
@media screen and (any-hover) {
    .sidebar-toggle-button:hover,body:where(:has(.sidebar-toggle:hover)) .sidebar-toggle-button {
      background: var(--sidebar-toggle-bg-hover);
      color: var(--sidebar-toggle-color-hover);
    }
  }
/* Markdown */
/* ========================================================================== */
.markdown-section {
  position: relative;
  width: var(--content-max-width);
  max-width: calc(100% - (var(--content-margin-inline) * 2));
  margin: var(--content-margin-inline) auto 0 auto;
  padding-bottom: 2rem;
}
body:has(.app-nav) .markdown-section {
    margin-top: calc(var(--navbar-height) + (var(--content-margin-inline) / 2));
  }
.markdown-section  > :first-child {
    margin-top: 0;
  }
.markdown-section blockquote,.markdown-section details,.markdown-section figure,.markdown-section form,.markdown-section iframe,.markdown-section ol,.markdown-section output,.markdown-section p,.markdown-section pre,.markdown-section table,.markdown-section ul {
    margin-block: var(--margin-block);
  }
.anchor:is(.markdown-section a) {
      color: inherit;
    }
.anchor:is(.markdown-section a):not(:hover) {
        text-decoration-color: transparent;
      }
.anchor:is(.markdown-section a):hover {
        translate: 0 0 0; /* Safari Fix: Forced redraw */
        text-decoration-color: var(--link-underline-color-hover);
      }
.markdown-section blockquote {
    position: relative;
    overflow: auto;
    margin-inline: 0;
    padding: var(--blockquote-padding);
    border: solid var(--blockquote-border-color);
    border-width: var(--blockquote-border-width);
    border-radius: var(--blockquote-border-radius);
    background: var(--blockquote-bg);
    color: var(--blockquote-color);
  }
:is(.markdown-section blockquote)  > :first-child {
      margin-top: 0;
    }
:is(.markdown-section blockquote)  > :last-child {
      margin-bottom: 0;
    }
.markdown-section em {
    font-style: italic;
  }
.markdown-section hr {
    margin-block: 2em;
  }
.markdown-section iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--color-mono-2);
  }
.markdown-section img {
    max-width: 100%;
  }
.markdown-section kbd {
    margin-inline: 0.15em;
  }
.alt:is(.markdown-section kbd) {
      padding: 0.5em;
      border: var(--kbd-alt-border);
      border-radius: var(--kbd-alt-border-radius);
      box-shadow: var(--kbd-alt-box-shadow);
      background: var(--kbd-alt-bg);
      color: var(--kbd-alt-color);
      font-size: var(--font-size-m);
    }
/* Callouts */
/* ---------------------------------- */
.markdown-section .callout {
    position: relative;
    margin-block: calc(var(--margin-block) * 1.5);
    padding: var(--callout-padding);
    border: solid var(--callout-border-color);
    border-width: var(--callout-border-width);
    border-radius: var(--callout-border-radius);
    background: var(--callout-bg);
    color: var(--callout-color);

    /* Charm */
  }
:is(.markdown-section .callout)::before {
      content: var(--callout-charm-content);
      position: absolute;
      inset: var(--callout-charm-inset);
      height: var(--callout-charm-size);
      width: var(--callout-charm-size);
      translate: var(--callout-charm-translate);
      border-radius: var(--callout-charm-border-radius);
      background: var(--callout-charm-bg);
      color: var(--callout-charm-color);
      font-size: var(--callout-charm-font-size);
      font-weight: var(--strong-font-weight);
      line-height: var(--callout-charm-size);
      text-align: center;
    }
:is(.markdown-section .callout)  > :first-child {
      margin-top: 0;
    }
:is(.markdown-section .callout)  > :last-child {
      margin-bottom: 0;
    }
:is(.markdown-section .callout) code,:is(.markdown-section .callout) strong {
      color: inherit;
    }
:is(.markdown-section .callout) code {
      background: rgba(0, 0, 0, 0.05);
    }
:is(.markdown-section .callout) pre:where([data-lang]) {
      background: rgba(255, 255, 255, 0.4);
    }
:is(.markdown-section .callout) .callout {
      margin-block: var(--margin-block);
    }
/* Code, Output, Samp */
/* ---------------------------------- */
.markdown-section code,.markdown-section output,.markdown-section pre {
    border-radius: var(--border-radius);
  }
.markdown-section code,.markdown-section pre,.markdown-section samp {
    font-family: var(--font-family-mono);
    font-size: var(--font-size-mono);
  }
.markdown-section output,.markdown-section pre[data-lang] {
    position: relative;
  }
:is(.markdown-section output,.markdown-section pre[data-lang])::after {
      content: attr(data-lang);
      position: absolute;
      top: 0.5rem;
      right: 0.5rem;
      color: inherit;
      font-family: var(--font-family);
      font-size: var(--font-size-xs);
      letter-spacing: 0.02em;
      line-height: 1;
      opacity: 0.5;
    }
.markdown-section code,.markdown-section samp {
    white-space: pre-wrap;
  }
.markdown-section code {
    margin: 0 0.1em;
    padding: 0.2em 0.35em;
    background: var(--code-bg);
    color: var(--code-color);
  }
:is(.markdown-section code) .token {
      position: relative;
      left: auto;
    }
.markdown-section output {
    display: block;
    padding: 1.7rem 1.4rem 1.4rem;
    border: 1px solid var(--color-mono-2);
  }
:is(.markdown-section output)  > :first-child {
      margin-top: 0;
    }
:is(.markdown-section output)  > :last-child {
      margin-bottom: 0;
    }
.markdown-section pre[data-lang] {
    /* NOTE: !important declaration are intended to override third-party Prism theme values */
    padding: 0 !important;
    border-radius: var(--border-radius) !important;
    font-family: var(--font-family-mono) !important;
    font-size: var(--font-size-mono) !important;
    line-height: inherit !important;
    tab-size: 2 !important;
    text-align: left;
    white-space: pre;
    word-spacing: normal;
    word-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
:is(.markdown-section pre[data-lang]):only-child {
      margin: 0;
    }
:is(.markdown-section pre[data-lang])  > code {
      display: block;
      overflow: auto;
      margin: 0 !important;
      padding: 0 !important;
      padding-block: 1.5rem !important;
      padding-inline: 1.5rem !important;
      background: transparent;
      color: inherit;
      font-size: inherit;
      white-space: inherit;
    }
.markdown-section samp {
    font-weight: var(--strong-font-weight);
  }
:is(.markdown-section samp) .token {
      position: relative;
      left: auto;
    }
/* Headings */
/* --------------------------------- */
.markdown-section :where(h1,h2,h3,h4,h5,h6) {
    margin: 2rem 0 0.5em;
    color: var(--heading-color);
    font-weight: var(--heading-font-weight);

    /* Prevent long titles from causing horizontal scrolling */
  }
[id]:is(.markdown-section :where(h1,h2,h3,h4,h5,h6)) a {
      overflow-x: clip;
      overflow-y: visible;
      text-overflow: ellipsis;
    }
.markdown-section h1,.markdown-section h2 {
    margin-top: 2.5rem;
  }
.markdown-section :is(h1,h2,h3,h4,h5,h6) + * {
    margin-top: 0;
  }
.markdown-section h1 {
    font-size: var(--font-size-xxxl);
  }
:is(.markdown-section h1):first-of-type {
      margin-top: 0;
    }
.markdown-section h2 {
    --_spacing: 0.5em;

    margin-bottom: calc(
      var(--_spacing) + (var(--heading-line-height) - var(--font-size-xxl))
    );
    padding-bottom: var(--_spacing);
    border-bottom: 1px solid var(--border-color);
    font-size: var(--font-size-xxl);
  }
.markdown-section h3 {
    font-size: var(--font-size-xl);
  }
.markdown-section h4 {
    font-size: var(--font-size-l);
  }
.markdown-section h5 {
    font-size: var(--font-size-m);
  }
:is(.markdown-section h6),:is(.markdown-section h6) + :not(h1,h2,h3,h4,h5) {
      font-size: var(--font-size-s);
    }
/* Lists */
/* ---------------------------------- */
.markdown-section ol,.markdown-section ul {
    margin: 0;
    padding-inline-start: 1.5em;
  }
:is(.markdown-section ol,.markdown-section ul) :is(.markdown-section ol,.markdown-section ul) {
      margin-top: 0.25em;
    }
:is(.markdown-section li):not(:last-child) {
      margin-bottom: 0.25em;
    }
.markdown-section ul.task-list {
    --_checkbox-margin: 0.2em;
    --_checkbox-offset: 1.6em;

    padding-inline-start: 0.6em;
  }
:is(.markdown-section ul.task-list) input[type='checkbox'] {
      margin-top: -0.15em;
      margin-right: var(--_checkbox-margin);
      margin-left: calc(0px - var(--_checkbox-offset));
    }
:is(.markdown-section ul.task-list) li {
      position: relative;
      margin-top: var(--_checkbox-margin);
      margin-bottom: var(--_checkbox-margin);
      margin-left: var(--_checkbox-offset);
      list-style-type: none;

      /* Vertical Connector */
    }
:is(:is(.markdown-section ul.task-list) li):has(.task-list)::before {
          content: '';
          position: absolute;
          z-index: -1;
          top: 1em;
          left: -1em;
          bottom: 0;
          border-left: 1px solid var(--color-mono-2);
        }
:is(.markdown-section ul.task-list) ul.task-list {
      padding-inline-start: 1.5em;
    }
:is(:is(.markdown-section ul.task-list) ul.task-list) li {
        margin-left: var(--_checkbox-margin);
      }
/* Horizontal Connector */
:is(:is(:is(.markdown-section ul.task-list) ul.task-list) > li)::after {
          content: '';
          position: absolute;
          z-index: -1;
          top: 0.9em;
          left: -2.7em;
          width: 1.25em;
          border-top: 1px solid var(--color-mono-2);
          border-left: none;
        }
/* Horizontal Connector + Mask */
:is(:is(:is(.markdown-section ul.task-list) ul.task-list) > li):last-child::after {
            bottom: 0;
            background: var(--color-bg);
          }
/* Tables */
/* ---------------------------------- */
.markdown-section th,.markdown-section td {
    padding: 0.25em 0.75em;
    border: 1px solid var(--color-mono-2);
  }
.markdown-section table {
    display: block;
    width: 100%;
    overflow: auto;
    border-collapse: collapse;
    border-spacing: 0;
  }
.markdown-section thead {
    display: none;
    font-weight: var(--strong-font-weight);
    text-align: left;
  }
:is(.markdown-section thead):has(th:not(:empty)) {
      display: table-header-group;
    }
.markdown-section th {
    font-weight: var(--strong-font-weight);
  }
:is(.markdown-section th):not([align]) {
      text-align: left;
    }
.markdown-section tr {
    border-top: 1px solid var(--color-mono-2);
  }
:is(.markdown-section tr):nth-child(2n) {
      background: var(--table-row-alt-bg);
    }
/* Syntax Highlighting */
/* See: https://prismjs.com */
/* ========================================================================== */
pre[data-lang] {
  background: var(--codeblock-bg);
  color: var(--codeblock-color);
}
.namespace {
  opacity: 0.7;
}
.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag {
    color: var(--codeblock-tag);
  }
.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string {
    color: var(--codeblock-selector);
  }
.token.entity,.token.operator,.token.url,.language-css .token.string,.style .token.string {
    color: var(--codeblock-operator);
  }
.token.cdata,.token.comment,.token.doctype,.token.prolog {
    color: var(--codeblock-comment);
  }
.token.atrule,.token.attr-value,.token.keyword {
    color: var(--codeblock-keyword);
  }
.token.important,.token.regex,.token.variable {
    color: var(--codeblock-variable);
  }
.token.bold,.token.important {
    font-weight: var(--strong-font-weight);
  }
.token.entity {
    cursor: help;
  }
.token.function {
    color: var(--codeblock-function);
  }
.token.important {
    color: var(--codeblock-important);
  }
.token.italic {
    font-style: italic;
  }
.token.punctuation {
    color: var(--codeblock-punctuation);
  }
/* Utility */
/* ========================================================================== */
[class*='clamp-'] {
  overflow: hidden;
  text-overflow: ellipsis;
}
[class*='clamp-']:not(.clamp-1) {
    display: -webkit-box;
    -webkit-box-orient: vertical;
  }
.clamp-1 {
  white-space: nowrap;
}
.clamp-2 {
  -webkit-line-clamp: 2;
}
.clamp-3 {
  -webkit-line-clamp: 3;
}
.visually-hidden {
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
/* Media */
/* ========================================================================== */
:root {
  --_mobile-breakpoint: 640px; /* JS Accessible. Match with MQ below. */
}
@media (prefers-reduced-motion) {
  :root {
    --duration-slow: 0s;
    --duration-medium: 0s;
    --duration-fast: 0s;
  }
}
@media print {
  .app-nav,
  .github-corner,
  .sidebar,
  .sidebar-toggle {
    display: none;
  }
}
/* Mobile */
@media screen and (max-width: 640px) {
  .app-nav-merged {
    display: block;
  }
    body:has(.sidebar.show) .app-nav,body:has(.sidebar.show) .github-corner {
      pointer-events: none;
    }

    body:has(.sidebar.show) .app-nav {
      left: 0;
    }
      :is(body:has(.sidebar.show) main)::before {
        width: 100%;
        background: rgba(0, 0, 0, 0.15);
        transition:
          width 0s,
          background var(--duration-medium);
      }

    body:has(.sidebar.show) .sidebar-toggle {
      width: calc(100% - var(--sidebar-width));
    }

      :is(body:has(.sidebar.show) .sidebar-toggle):hover {
        background: transparent;
      }

    body:has(.sidebar.show) main > .content {
      left: 0;
    }
    body:has(.app-nav-merged) .app-nav {
      display: none;
    }

    body:has(.app-nav-merged) .markdown-section {
      margin-top: var(--content-margin-inline);
    }
}
/* Sidebar chevrons */
/* ========================================================================== */
/* prettier-ignore */
:root:has(body[class*='sidebar-chevron']) {
  --sidebar-chevron-collapsed-color: var(--color-mono-3);
  --sidebar-chevron-expanded-color : var(--theme-color);

  /* Chevron right (Mono) */
  --sidebar-pagelink-bg: no-repeat var(--_sidebar_pagelink-bg-left)
      calc(50% - 2.5px) / 6px 5px
      linear-gradient(
        45deg,
        transparent 2.75px,
        var(--sidebar-chevron-collapsed-color) 2.75px 4.25px,
        transparent 4px
      ),
    no-repeat var(--_sidebar_pagelink-bg-left) calc(50% + 2.5px) / 6px 5px
      linear-gradient(
        135deg,
        transparent 2.75px,
        var(--sidebar-chevron-collapsed-color) 2.75px 4.25px,
        transparent 4px
      );
  /* Chevron right (Theme color) */
  --sidebar-pagelink-bg-collapsed: no-repeat var(--_sidebar_pagelink-bg-left)
      calc(50% - 2.5px) / 6px 5px
      linear-gradient(
        45deg,
        transparent 2.75px,
        var(--sidebar-chevron-expanded-color) 2.75px 4.25px,
        transparent 4px
      ),
    no-repeat var(--_sidebar_pagelink-bg-left) calc(50% + 2.5px) / 6px 5px
      linear-gradient(
        135deg,
        transparent 2.75px,
        var(--sidebar-chevron-expanded-color) 2.75px 4.25px,
        transparent 4px
      );
  /* Chevron down (Theme color) */
  --sidebar-pagelink-bg-expanded: no-repeat
      calc(var(--_sidebar_pagelink-bg-left) - 2px) center / 5px 6px
      linear-gradient(
        225deg,
        transparent 2.75px,
        var(--sidebar-chevron-expanded-color) 2.75px 4.25px,
        transparent 4.25px
      ),
    no-repeat calc(var(--_sidebar_pagelink-bg-left) + 3px) center / 5px 6px
      linear-gradient(
        135deg,
        transparent 2.75px,
        var(--sidebar-chevron-expanded-color) 2.75px 4.25px,
        transparent 4.25px
      );
  /* Dot (active without children) */
  --sidebar-pagelink-bg-empty: no-repeat var(--_sidebar_pagelink-bg-left) center /
    7px 7px
    radial-gradient(
      circle,
      var(--sidebar-chevron-expanded-color) 0,
      var(--sidebar-chevron-expanded-color) 70%,
      transparent 71%
    );
}
body[class*='sidebar-chevron'] .sidebar-nav a.page-link.no-chevron {
    background: none;
  }
/* Left */
/* -------------------------------------------------------------------------- */
:root:has(body.sidebar-chevron-left) {
  --_sidebar_pagelink-bg-left: 2px;
}
body.sidebar-chevron-left .sidebar-nav {
    --_inset: 18px;
  }
:is(:is(body.sidebar-chevron-left .sidebar-nav) li) a.page-link {
        padding-left: var(--_inset);
      }
:is(:is(body.sidebar-chevron-left .sidebar-nav) li):has( > .page-link, > p > .page-link)  > ul,:is(:is(body.sidebar-chevron-left .sidebar-nav) li):has( > .page-link, > p > .page-link)  > p > ul {
          margin-left: calc(var(--_sidebar-list-inset) + var(--_inset));
          padding-left: 0;
        }
/* Right */
/* -------------------------------------------------------------------------- */
:root:has(body.sidebar-chevron-right) {
  --_sidebar_pagelink-bg-left: calc(100% - var(--_sidebar-inset));
}
:is(:is(body.sidebar-chevron-right .sidebar-nav) li) a {
        padding-right: calc(var(--_sidebar-inset) + 15px);
      }
/* Sidebar groups */
/* ========================================================================== */
/* prettier-ignore */
:root:has(body.sidebar-group-box) {
  --sidebar-group-border : 1px solid var(--sidebar-border-color);
  --sidebar-group-spacing: 1em;
}
/* prettier-ignore */
:root:has(body.sidebar-group-underline) {
  --sidebar-group-spacing      : 0.5em;
  --sidebar-group-title-border : 1px solid var(--sidebar-border-color);
  --sidebar-group-title-spacing: 0.35em;
}
/* Sidebar link clamp */
/* ========================================================================== */
:is(body.sidebar-link-clamp .sidebar) a:not(.app-name-link) {
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
/* Sidebar toggle */
/* ========================================================================== */
:is(body.sidebar-toggle-chevron .sidebar-toggle-button) span {
      --_size: 10px;

      border: solid currentColor;
      border-radius: 0;
      background: transparent;
    }
:is(:is(body.sidebar-toggle-chevron .sidebar-toggle-button) span):where(:not(:first-child)) {
        display: none;
      }
:is(:is(body.sidebar-toggle-chevron .sidebar-toggle-button) span):first-child {
        height: var(--_size);
        width: var(--_size);
        border-width: 2px 2px 0 0;
        rotate: 45deg;
        translate: -20%;
      }
body:has(.sidebar.show) :is(:is(body.sidebar-toggle-chevron .sidebar-toggle-button) span):first-child {
          rotate: -135deg;
          translate: 20%;
        }
:is(body.sidebar-toggle-hamburger .sidebar-toggle-button) span {
      height: 2px;
      width: 65%;
      max-width: 16px;
    }

/*# sourceMappingURL=core.css.map */