:root {
  --reference-background: hsl(0, 0%, 4%);
  --reference-color-0: hsl(0, 0%, 95%);
  --reference-color-1: hsl(0, 0%, 81%);
  --reference-color-2: hsl(0, 0%, 57.5%);
  --reference-color-bubble-0: hsl(0, 0%, 11%);
  --reference-color-bubble-1: hsl(0, 0%, 9.5%);
  --reference-color-code: hsla(0, 0%, 24.5%, 0.5);
  --reference-gap: max(1em, min(3.25em, calc(2.25vmax + .6em)));
  --reference-definition-margin: 0.95em;
  --reference-sidebar-width: 26em;
  --reference-sidebar-top: 1.25em;
  --reference-section-margin: 6.5em;
  --reference-paragraph-margin: 0.825em;
  --reference-font-monospace: 'Source Code Pro', 'Liberation Mono', 'DejaVu Sans Mono', 'Fira Mono',
    'Fira Code', 'San Francisco Monospaced', 'Consolas', monospace;
  --reference-keyword: #ef8fef;
  --reference-operator: var(--reference-keyword);
  --reference-declaration: currentColor;
  --reference-keyword-in: var(--reference-keyword);
  --reference-keyword-type: var(--reference-keyword);
  --reference-keyword-infer: var(--reference-keyword);
  --reference-keyword-static: var(--reference-keyword);
  --reference-keyword-optional: currentColor;
  --reference-keyword-abstract: var(--reference-keyword);
  --reference-keyword-readonly: var(--reference-keyword);
  --reference-keyword-keyof: var(--reference-operator);
  --reference-keyword-unique: var(--reference-operator);
  --reference-keyword-kind: var(--reference-declaration);
  --reference-keyword-extends: var(--reference-declaration);
  --reference-keyword-implements: var(--reference-declaration);
  --reference-token-literal: #efef8f;
  --reference-token-generic: #8fefef;
  --reference-token-inferred: var(--reference-token-keyword);
  --reference-token-intrinsic: #ef8f8f;
  --reference-token-reference: #8fef8f;
  --reference-token-type-parameter: #ef8fbf;
  --reference-token-unknown: var(--reference-color-1);
  --reference-token-ternary: currentColor;
  --reference-token-value: currentColor;
}
body {
  margin: 0;
  font-family: 'Inter', 'Roboto', 'San Francisco', 'Segoe UI', sans-serif;
  background-color: var(--reference-background);
}
#reference-doc pre,
#reference-doc code,
#reference-doc dt,
#reference-outline li {
  font-family: var(--reference-font-monospace);
}
#reference-doc {
  color: var(--reference-color-0);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: var(--reference-gap);
  margin: 2em 1em;
}
#reference-doc > :first-child {
  justify-self: end;
}
#reference-doc .hidden {
  display: none;
}
#reference-doc a:hover {
  border-bottom: 2px solid;
}
#reference-doc .token.unknown {
  font-style: italic;
}
#reference-doc .token.type-parameter {
  font-weight: bold;
}
#reference-doc .keyword.declaration {
  font-weight: normal;
}
#reference-doc *,
#reference-doc *::before,
#reference-doc *::after {
  box-sizing: border-box;
}
#reference-doc a {
  text-decoration: none;
  color: inherit;
}
#reference-overview nav {
  max-height: calc(100vh - var(--reference-sidebar-top) * 2);
  max-width: 20em;
  background-color: var(--reference-color-bubble-1);
  padding: 0.65em 1.3em;
  margin: 0.75em 0;
  border-radius: 20px;
  margin-top: 0;
}
#reference-overview nav > ol {
  padding: 0;
}
#reference-overview nav > ol > li:first-child {
  margin-top: 0;
}
#reference-overview ol {
  padding-left: 0.9em;
  margin: 0;
}
#reference-overview li {
  position: relative;
  margin: 0.475em 0;
}
#reference-overview li:last-child {
  margin-bottom: 0;
}
#reference-overview li.is-leaf.active > a .keyword.declaration {
  color: currentColor;
}
#reference-overview li.is-leaf.active > a,
#reference-overview li > a:hover {
  text-decoration: underline;
}
#reference-overview li .keyword.declaration {
  color: var(--reference-color-2);
}
#reference-overview li .extends-below {
  position: absolute;
  display: inline-flex;
  justify-content: center;
  width: 1ch;
  user-select: none;
}
#reference-overview li .extends-below + a {
  margin-left: calc(1ch + 0.5ch);
}
#reference-outline-options {
  background-color: var(--reference-color-bubble-1);
  padding: 0.65em 1.3em;
  margin: 0.75em 0;
  border-radius: 20px;
  margin-top: 0;
}
#reference-outline-options label {
  display: block;
  user-select: none;
}
#reference-outline-options label:not(:last-child) {
  margin-bottom: 0.35em;
}
#reference-outline {
  min-width: 20em;
}
#reference-outline nav {
  flex: 1;
}
#reference-outline nav section[data-reference-id] {
  display: none;
}
#reference-outline nav section[data-reference-id].active {
  display: block;
}
#reference-outline nav section[data-reference-id] h2:first-child {
  margin-top: 0;
}
#reference-outline nav section[data-reference-id] section {
  background-color: var(--reference-color-bubble-1);
  padding: 0.65em 1.3em;
  margin: 0.75em 0;
  border-radius: 20px;
}
#reference-outline nav h3 {
  margin-top: 0;
}
#reference-outline nav ul {
  padding: 0;
  margin: 0;
}
#reference-outline nav li > a:hover {
  text-decoration: underline;
}
#reference-outline,
#reference-overview {
  color: var(--reference-color-1);
}
#reference-outline nav,
#reference-overview nav {
  overflow: auto;
}
#reference-outline ul,
#reference-overview ul,
#reference-outline ol,
#reference-overview ol {
  list-style: none;
}
#reference-outline li,
#reference-overview li {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#reference-outline li:hover > a,
#reference-overview li:hover > a {
  border: none;
}
#reference-main {
  max-width: 52em;
  line-height: 1.525;
}
#reference-main > section:first-child > h1:first-child,
#reference-main > section:first-child > h2:first-child {
  margin-top: 0;
}
#reference-main h1 > a,
#reference-main h2 > a,
#reference-main h3 > a,
#reference-main h4 > a,
#reference-main h5 > a,
#reference-main h6 > a {
  color: currentColor;
}
#reference-main h4 {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}
#reference-main > section:not(:first-child):not(.typealias + .typealias) {
  margin-top: var(--reference-section-margin);
}
#reference-main > section:not(:first-child):not(.typealias + .typealias) > h2 {
  margin-top: 0;
}
#reference-main code {
  background-color: var(--reference-color-code);
  padding: 0.035em 0.25em;
  border-radius: 4px;
}
#reference-main ul,
#reference-main ol {
  padding-left: 2rem;
}
#reference-main li {
  margin: 0.5em 0;
}
#reference-main dd {
  margin-left: 3ch;
}
#reference-main dd p {
  margin: var(--reference-paragraph-margin) 0;
}
#reference-main dt a {
  color: inherit;
}
#reference-main .no-description {
  color: var(--reference-color-2);
}
#reference-main .interface .no-description {
  display: none;
}
#reference-main .character.absolute {
  position: absolute;
  display: block;
}
#reference-main .indent {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding-left: 2ch;
  display: block;
}
#reference-main .reflection-body > .item:has(> .item-body):not(:has(> .item-body > .generic-body)):not(:has(> .item-body > .indent)):not(:has(> .item-body > .tuple-body)) {
  display: inline-flex;
  gap: 1ch;
}
#reference-main .keyword {
  color: var(--reference-color-keyword);
}
#reference-main .keyword.declaration {
  color: var(--reference-color-declaration);
}
#reference-main .keyword.operator {
  color: var(--reference-color-operator);
}
#reference-main .token.literal {
  color: var(--reference-token-literal);
}
#reference-main .token.generic {
  color: var(--reference-token-generic);
}
#reference-main .token.inferred {
  color: var(--reference-token-inferred);
}
#reference-main .token.intrinsic {
  color: var(--reference-token-intrinsic);
}
#reference-main .token.reference {
  color: var(--reference-token-reference);
}
#reference-main .token.type-parameter {
  color: var(--reference-token-type-parameter);
}
#reference-main .token.unknown {
  color: var(--reference-token-unknown);
}
#reference-main .token.ternary {
  color: var(--reference-token-ternary);
}
#reference-main .token.value {
  color: var(--reference-token-value);
}
#reference-main .keyword.in {
  color: var(--reference-keyword-in);
}
#reference-main .keyword.type {
  color: var(--reference-keyword-type);
}
#reference-main .keyword.keyof {
  color: var(--reference-keyword-keyof);
}
#reference-main .keyword.infer {
  color: var(--reference-keyword-infer);
}
#reference-main .keyword.unique {
  color: var(--reference-keyword-unique);
}
#reference-main .keyword.static {
  color: var(--reference-keyword-static);
}
#reference-main .keyword.optional {
  color: var(--reference-keyword-optional);
}
#reference-main .keyword.abstract {
  color: var(--reference-keyword-abstract);
}
#reference-main .keyword.readonly {
  color: var(--reference-keyword-readonly);
}
#reference-main .keyword.kind {
  color: var(--reference-keyword-kind);
}
#reference-main .keyword.extends {
  color: var(--reference-keyword-extends);
}
#reference-main .keyword.implements {
  color: var(--reference-keyword-implements);
}
#reference-main .definition {
  background-color: var(--reference-color-bubble-0);
  padding: 0.65em 1.3em;
  margin: 0.75em 0;
  border-radius: 20px;
  margin: var(--reference-definition-margin) 0;
}
#reference-main .definition .term {
  display: flex;
  justify-content: space-between;
  gap: 2ch;
}
#reference-main .definition .term:not(:first-child) {
  margin-top: var(--reference-paragraph-margin);
}
#reference-main .definition .sources {
  color: var(--reference-color-2);
  display: flex;
}
#reference-main .definition .sources svg {
  width: 1.385rem;
  height: max(1.385rem, 1lh);
}
#reference-main .definition .sources > a {
  display: inline-flex;
}
#reference-main .definition .sources > a:not(:last-child) {
  margin-right: 0.25em;
}
#reference-main .definition .sources > a:hover {
  border-bottom: none;
  color: var(--reference-color-1);
}
#reference-main .definition .sources > a:active {
  transform: scale(0.94);
}
html.light-mode #reference-main .definition {
  background-color: hsl(0, 0%, 96%);
}
@media (max-width: 1300px) {
  #reference-doc {
    grid-template-columns: auto auto;
    margin-right: 2em;
  }
  #reference-outline {
    display: none;
  }
}
@media (min-width: 876px) {
  #reference-outline > *,
  #reference-overview > * {
    display: flex;
    flex-direction: column;
    max-width: var(--reference-sidebar-width);
    max-height: calc(100vh - var(--reference-sidebar-top));
    position: sticky;
    top: var(--reference-sidebar-top);
  }
}
@media (max-width: 875px) {
  #reference-doc {
    grid-template-columns: auto;
    margin-right: calc(4vw + 0.16em);
    margin-left: calc(4vw + 0.16em);
    gap: 0;
  }
  #reference-doc > :first-child {
    justify-self: auto;
  }
  #reference-main {
    max-width: none;
  }
  #reference-overview nav {
    display: none;
  }
}
