@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap");

:root {
  --cg-cobalt: #2856d8;
  --cg-cornflower: #78a9f4;
  --cg-navy: #14264b;
  --cg-frost: #f2f6ff;
  --cg-slate: #64748b;
  --cg-white: #ffffff;
  --cg-bg: var(--cg-white);
  --cg-surface: var(--cg-frost);
  --cg-text: var(--cg-navy);
  --cg-muted: var(--cg-slate);
  --cg-link: var(--cg-cobalt);
  --cg-line: #dce4f0;
  --cg-logo: var(--cg-cobalt);
  --md-text-font: "Geist";
  --md-code-font: "Geist Mono";
}

[data-md-color-scheme="default"] {
  --md-default-bg-color: var(--cg-bg);
  --md-default-fg-color: var(--cg-navy);
  --md-default-fg-color--light: var(--cg-slate);
  --md-default-fg-color--lighter: rgb(20 38 75 / 0.32);
  --md-default-fg-color--lightest: rgb(20 38 75 / 0.07);
  --md-typeset-color: var(--cg-navy);
  --md-primary-fg-color: var(--cg-cobalt);
  --md-primary-fg-color--light: #4a72e0;
  --md-primary-fg-color--dark: #1d43b0;
  --md-primary-bg-color: var(--cg-white);
  --md-accent-fg-color: #1d43b0;
  --md-typeset-a-color: var(--cg-cobalt);
  --md-code-bg-color: var(--cg-frost);
  --md-code-fg-color: var(--cg-navy);
  --md-footer-bg-color: var(--cg-navy);
  --md-footer-bg-color--dark: #0f1d3a;
  --md-footer-fg-color: var(--cg-frost);
}

[data-md-color-scheme="slate"] {
  --cg-bg: var(--cg-navy);
  --cg-surface: #1c335c;
  --cg-text: var(--cg-frost);
  --cg-muted: #b8c5dc;
  --cg-link: var(--cg-cornflower);
  --cg-line: #2a4372;
  --cg-logo: var(--cg-cornflower);
  --md-default-bg-color: var(--cg-navy);
  --md-default-bg-color--light: rgb(20 38 75 / 0.7);
  --md-default-fg-color: var(--cg-frost);
  --md-default-fg-color--light: #b8c5dc;
  --md-default-fg-color--lighter: rgb(242 246 255 / 0.32);
  --md-default-fg-color--lightest: rgb(242 246 255 / 0.08);
  --md-typeset-color: var(--cg-frost);
  --md-primary-fg-color: var(--cg-cornflower);
  --md-primary-fg-color--light: #a3c4f8;
  --md-primary-fg-color--dark: #5b92ea;
  --md-primary-bg-color: var(--cg-navy);
  --md-accent-fg-color: #a3c4f8;
  --md-typeset-a-color: var(--cg-cornflower);
  --md-code-bg-color: #1c335c;
  --md-code-fg-color: var(--cg-frost);
  --md-footer-bg-color: #0f1d3a;
  --md-footer-bg-color--dark: #0b1630;
  --md-footer-fg-color: var(--cg-frost);
}

body {
  -webkit-font-smoothing: antialiased;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.45s;
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.md-header,
.md-tabs {
  background-color: var(--cg-bg);
  color: var(--cg-text);
}

.md-header {
  box-shadow: none;
}

.md-header--shadow {
  box-shadow: 0 1px 0 var(--cg-line);
}

.md-tabs {
  border-bottom: 1px solid var(--cg-line);
}

.md-header__button.md-logo {
  background-color: var(--cg-logo);
  mask: url("../assets/brain.png") center / 1.5rem no-repeat;
  -webkit-mask: url("../assets/brain.png") center / 1.5rem no-repeat;
}

.md-header__button.md-logo img {
  height: 1.5rem;
  visibility: hidden;
  width: 1.5rem;
}

.md-header__title {
  font-weight: 600;
  letter-spacing: -0.015em;
}

.md-tabs__link {
  color: var(--cg-muted);
  font-weight: 500;
  opacity: 1;
}

.md-tabs__item--active {
  box-shadow: inset 0 -0.1rem 0 var(--cg-link);
}

.md-tabs__item--active .md-tabs__link {
  color: var(--cg-text);
}

.md-tabs__link:hover,
.md-tabs__link:focus-visible {
  color: var(--cg-link);
}

.md-search__form {
  background-color: var(--cg-surface);
  border-radius: 0.5rem;
}

.md-search__form:hover {
  background-color: var(--cg-line);
}

@media screen and (min-width: 60em) {
  .md-search__input {
    color: var(--cg-text);
  }

  .md-search__input::placeholder,
  .md-search__input ~ .md-search__icon {
    color: var(--cg-muted);
  }
}

.md-typeset {
  font-size: 0.8rem;
  line-height: 1.6;
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3 {
  color: var(--cg-text);
  font-weight: 600;
}

.md-typeset h1 {
  letter-spacing: -0.03em;
}

.md-typeset h2 {
  letter-spacing: -0.02em;
}

.md-typeset h3 {
  letter-spacing: -0.01em;
}

.md-typeset pre > code {
  border-radius: 0.5rem;
}

.md-typeset table:not([class]) {
  border: 1px solid var(--cg-line);
  border-radius: 0.5rem;
  box-shadow: none;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
}

.md-typeset table:not([class]) th {
  background-color: var(--cg-surface);
  font-weight: 600;
}

.md-typeset table:not([class]) th,
.md-typeset table:not([class]) td {
  padding: 0.6em 1em;
}

.md-typeset table:not([class]) td {
  border-top: 1px solid var(--cg-line);
}

.md-typeset .md-button {
  border-radius: 0.5rem;
  border-width: 1px;
  font-weight: 500;
  padding: 0.5em 1.15em;
}

.md-typeset .md-button:not(.md-button--primary) {
  border-color: var(--cg-line);
  color: var(--cg-text);
}

.md-typeset .md-button:not(.md-button--primary):hover,
.md-typeset .md-button:not(.md-button--primary):focus-visible {
  background-color: var(--cg-surface);
  border-color: var(--cg-link);
  color: var(--cg-link);
}

.cg-home .headerlink {
  display: none;
}

.cg-hero {
  padding: 1.6rem 0 0;
  position: relative;
}

.cg-hero > :not(.cg-hero__art, .cg-hero__controls) {
  position: relative;
}

.cg-hero__art {
  --cg-art-line: var(--cg-cobalt);
  --cg-art-line-alpha: 0.2;
  --cg-art-soma: var(--cg-cobalt);
  --cg-art-spike: var(--cg-cobalt);
  --cg-art-glow: var(--cg-cornflower);
  --cg-art-ground: var(--cg-white);
  --cg-art-blend: source-over;
  height: 31rem;
  left: max(42%, 32rem);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, transparent 6%, rgb(0 0 0 / 0.35) 18%, #000 40%, #000 86%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 16%, #000 66%, transparent 100%);
  mask-image:
    linear-gradient(to right, transparent 0%, transparent 6%, rgb(0 0 0 / 0.35) 18%, #000 40%, #000 86%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 16%, #000 66%, transparent 100%);
  pointer-events: none;
  position: absolute;
  right: max(calc(50% - 50vw), -10rem);
  top: -1.4rem;
}

[data-md-color-scheme="slate"] .cg-hero__art {
  --cg-art-line: var(--cg-cornflower);
  --cg-art-line-alpha: 0.22;
  --cg-art-soma: var(--cg-cornflower);
  --cg-art-spike: #dbe7ff;
  --cg-art-glow: var(--cg-cornflower);
  --cg-art-ground: var(--cg-navy);
  --cg-art-blend: lighter;
}

.cg-hero__art canvas {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.md-main {
  overflow-x: clip;
}

.cg-hero__toggle {
  align-items: center;
  background-color: var(--cg-bg);
  border: 1px solid var(--cg-line);
  border-radius: 50%;
  color: var(--cg-muted);
  cursor: pointer;
  display: flex;
  height: 1.6rem;
  justify-content: center;
  padding: 0;
  transition: color 120ms ease, border-color 120ms ease;
  width: 1.6rem;
}

.cg-hero__controls {
  position: absolute;
  right: 0;
  top: 23rem;
  z-index: 1;
}

.cg-hero__toggle[hidden] {
  display: none;
}

.cg-hero__toggle svg {
  fill: currentColor;
  height: 0.7rem;
  width: 0.7rem;
}

.cg-hero__toggle .cg-hero__play,
.cg-hero__toggle[aria-pressed="true"] .cg-hero__pause {
  display: none;
}

.cg-hero__toggle[aria-pressed="true"] .cg-hero__play {
  display: block;
}

.cg-hero__toggle:hover,
.cg-hero__toggle:focus-visible {
  border-color: var(--cg-link);
  color: var(--cg-link);
}

.cg-hero__toggle:focus-visible {
  outline: 2px solid var(--cg-link);
  outline-offset: 2px;
}

@media (forced-colors: active), print {
  .cg-hero__art,
  .cg-hero__controls {
    display: none;
  }
}

.md-typeset .cg-hero h1 {
  font-size: 2.5rem;
  line-height: 1.06;
  margin: 0 0 0.9rem;
  max-width: 14em;
}

.md-typeset .cg-lede {
  color: var(--cg-muted);
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0 0 1.4rem;
  max-width: 34em;
}

.cg-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.md-typeset .cg-actions p {
  display: contents;
}

.md-typeset .cg-actions .md-button {
  margin: 0;
}

.md-typeset .cg-actions .highlight {
  margin: 0;
}

.md-typeset .cg-actions pre {
  margin: 0;
}

.md-typeset .cg-actions pre > code {
  border: 1px solid var(--cg-line);
  font-size: 0.72rem;
  padding: 0.62em 3.2em 0.62em 1em;
}

.md-typeset .cg-actions pre > code::before {
  color: var(--cg-muted);
  content: "$ ";
}

.cg-index {
  margin: 4.2rem 0 0;
  position: relative;
  scroll-margin-top: 4rem;
}

.cg-index__head {
  margin: 0 0 1.6rem;
  max-width: 38em;
}

.md-typeset .cg-index__head h2 {
  font-size: 1.5rem;
  margin: 0 0 0.5rem;
}

.md-typeset .cg-index__head p {
  color: var(--cg-muted);
  margin: 0;
}

.cg-index__cols {
  display: grid;
  gap: 0 3rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cg-group {
  margin: 0 0 2rem;
}

.md-typeset .cg-group h3 {
  border-bottom: 1px solid var(--cg-text);
  font-size: 0.82rem;
  margin: 0;
  padding: 0 0 0.45rem;
}

.md-typeset .cg-group h3 a {
  color: var(--cg-text);
}

.md-typeset .cg-group h3 a:hover,
.md-typeset .cg-group h3 a:focus-visible {
  color: var(--cg-link);
}

[dir] .md-typeset .cg-rows {
  list-style: none;
  margin: 0;
  padding: 0;
}

[dir] .md-typeset .cg-rows li {
  align-items: baseline;
  border-bottom: 1px solid var(--cg-line);
  display: grid;
  gap: 0.1rem 1rem;
  grid-template-columns: 8.6rem minmax(0, 1fr);
  margin: 0;
  padding: 0.55rem 0;
  position: relative;
}

.md-typeset .cg-rows li:hover,
.md-typeset .cg-rows li:focus-within {
  background-color: var(--cg-surface);
  box-shadow: -0.5rem 0 0 var(--cg-surface), 0.5rem 0 0 var(--cg-surface);
}

.md-typeset .cg-rows a {
  color: var(--cg-text);
  font-weight: 500;
}

.md-typeset .cg-rows a::after {
  content: "";
  inset: 0;
  position: absolute;
}

.md-typeset .cg-rows a:focus-visible {
  outline: none;
}

.md-typeset .cg-rows li:focus-within {
  outline: 2px solid var(--cg-link);
  outline-offset: 0;
}

.md-typeset .cg-rows li:hover a {
  color: var(--cg-link);
}

.cg-task {
  color: var(--cg-muted);
  font-size: 0.72rem;
  line-height: 1.45;
}

.cg-run {
  background-color: var(--cg-surface);
  box-shadow: 0 0 0 100vmax var(--cg-surface);
  clip-path: inset(0 -100vmax);
  display: grid;
  gap: 2.6rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  margin: 2.4rem 0 0;
  padding: 2.6rem 0 2.8rem;
}

.md-typeset .cg-run h2 {
  font-size: 1.5rem;
  margin: 0 0 0.6rem;
}

.md-typeset .cg-run pre > code {
  background-color: var(--cg-bg);
  border: 1px solid var(--cg-line);
}

@media screen and (max-width: 68em) {
  .cg-hero__art,
  .cg-hero__controls {
    display: none;
  }
}

@media screen and (max-width: 60em) {
  .md-typeset .cg-hero h1 {
    font-size: 2rem;
  }

  .cg-index__cols,
  .cg-run {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media screen and (max-width: 40em) {
  [dir] .md-typeset .cg-rows li {
    grid-template-columns: minmax(0, 1fr);
  }
}
