:root {
  color-scheme: light;
  --ink: #202c38;
  --muted: #4d606b;
  --link: #165c7c;
  --border: #d6dedc;
  --surface: #fafbf9;
  --selected: #e8f0ee;
  --header-height: 94px;
  --font-code: ui-monospace, "SFMono-Regular", Menlo, Consolas, "DejaVu Sans Mono", monospace;
}
* { box-sizing: border-box; }
body { display: flex; flex-direction: column; min-height: 100dvh; margin: 0; color: var(--ink); background: var(--surface); font: 16px/1.65 system-ui, sans-serif; }
a { color: var(--link); }
a:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid #a04605; outline-offset: 3px; }
header { position: sticky; top: 0; z-index: 10; min-height: 94px; padding: 1rem 2rem; border-bottom: 1px solid var(--border); background: var(--surface); display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(12rem, 18rem); gap: 1.5rem; align-items: center; }
.global-nav ul { display: flex; gap: .25rem; }
.global-nav a { padding: .35rem .75rem; white-space: nowrap; }
.global-nav [aria-current=true] { color: var(--ink); background: var(--selected); font-weight: 650; }
.desktop-sections { min-width: 0; overflow-x: auto; padding: .4rem; margin: -.4rem; }
.mobile-sections { display: none; }
.brand { display: flex; align-items: center; gap: .65rem; max-width: 18rem; min-width: 0; overflow-wrap: anywhere; font-size: 1.4rem; font-weight: 700; text-decoration: none; }
.brand span { min-width: 0; }
.brand-logo { flex: none; width: auto; height: 2.5rem; max-width: 5rem; object-fit: contain; }
form { position: relative; }
form label { display: block; color: var(--muted); font-size: .75rem; }
input[type=search] { width: 18rem; max-width: 100%; padding: .4rem .65rem; border: 1px solid #bbc9c5; border-radius: .3rem; background: white; font: inherit; }
#search-results { position: absolute; top: 100%; right: 0; width: 24rem; max-width: calc(100vw - 2rem); margin: .5rem 0 0; padding: 0; background: white; box-shadow: 0 4px 16px #202c3820; list-style: none; font-size: .85rem; }
#search-results:empty { display: none; }
#search-results a { display: block; padding: .6rem .8rem; }
.layout { flex: 1; display: grid; grid-template-columns: 18rem minmax(0, 1fr); width: 100%; max-width: 96rem; margin: 0 auto; }
.layout > nav { position: sticky; top: var(--header-height); align-self: start; height: calc(100dvh - var(--header-height)); padding: 1.5rem 1.25rem; border-right: 1px solid var(--border); overflow-y: auto; font-size: .85rem; }
nav ul { margin: 0; padding: 0; list-style: none; }
nav li { overflow-wrap: anywhere; }
nav a { display: block; padding: .2rem .45rem; border-radius: .25rem; text-decoration: none; }
nav a:hover { background: var(--selected); }
nav [aria-current=page] { color: var(--ink); background: var(--selected); font-weight: 650; }
.nav-disclosure > summary { cursor: pointer; color: var(--link); font-weight: 650; }
.nav-group + .nav-group { margin-top: 1.25rem; }
.nav-group h2 { margin: 0 0 .4rem; padding: 0 .45rem; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.nav-group li { margin: .1rem 0; }
.item-disclosure > summary { padding: .2rem .45rem; cursor: pointer; color: var(--link); }
.item-disclosure > ul { margin: .25rem 0 .6rem .65rem; padding-left: .5rem; border-left: 1px solid var(--border); }
.page-content { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; align-content: start; }
main { grid-column: 1; grid-row: 2; width: 100%; max-width: 52rem; min-width: 0; padding: 2rem 2.5rem 4rem; overflow-wrap: anywhere; }
.site-footer { flex-shrink: 0; padding: 1.25rem 2rem 2rem; border-top: 1px solid var(--border); color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.site-footer p { margin: 0; }
.site-footer p + p { margin-top: .25rem; }
h1, h2, h3, h4 { line-height: 1.3; letter-spacing: -.02em; scroll-margin-top: calc(var(--header-height) + 1rem); }
h1 { margin-top: 0; font-size: 2.2rem; }
h2 { margin-top: 2rem; font-size: 1.5rem; }
h3 { font-size: 1.15rem; }
.package { margin: 0 0 1rem; color: var(--muted); font-size: .8rem; }
pre { padding: 1rem; background: #edf1f0; overflow: auto; border-radius: .3rem; line-height: 1.5; }
.code-block { min-width: 0; margin: 1rem 0; background: #edf1f0; border-radius: .3rem; }
.code-block pre { margin: 0; }
.code-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: .75rem; padding: .4rem .6rem 0; font-size: .75rem; color: var(--muted); }
.code-toolbar button { flex-shrink: 0; padding: .25rem .6rem; border: 1px solid var(--border); border-radius: .25rem; background: white; color: var(--link); font: inherit; cursor: pointer; }
.code-toolbar button:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }
.copy-buffer { position: fixed; top: 0; left: -10000px; }
.api-name { margin-top: -1rem; color: var(--muted); }
.source-links { color: var(--muted); font-size: .8rem; }
.reference-topics { list-style: none; padding: 0; }
.reference-topics > li { padding: 1rem 0; border-bottom: 1px solid var(--border); }
.reference-topics p { margin: .3rem 0 0; }
.topic-title { font-weight: 650; }
code { font-family: var(--font-code); font-size: .88em; }
img { max-width: 100%; height: auto; }
figure { margin: 1.5rem 0; }
.caption, figcaption { color: var(--muted); font-size: .9rem; }
table { overflow-wrap: normal; border-collapse: collapse; display: block; overflow: auto; font-size: .9rem; }
th, td { border: 1px solid #bbc9c5; padding: .4rem .65rem; }
blockquote, .callout { border-left: 4px solid #688b84; padding: .2rem 1rem; margin: 1rem 0; }
.unsupported { border-left: 4px solid #a04605; padding-left: 1rem; }
.skip-link { position: absolute; left: -10000px; }
.skip-link:focus { position: fixed; left: 1rem; top: 1rem; z-index: 20; background: white; padding: 1rem; }
.page-toc { grid-column: 1; grid-row: 1; padding: 1rem 2.5rem 0; color: var(--muted); font-size: .8rem; }
.toc-disclosure > summary { padding: .2rem .45rem; cursor: pointer; font-weight: 650; }
.toc-disclosure ul { margin-top: .4rem; }
.toc-level-3 { padding-left: .65rem; }
.toc-level-4, .toc-level-5, .toc-level-6 { padding-left: 1.3rem; }
@media (min-width: 761px) {
  .nav-disclosure > summary { display: none; }
}
@media (min-width: 1100px) {
  .page-content:has(.page-toc) { grid-template-columns: minmax(0, 1fr) 12rem; }
  main { grid-row: 1; }
  .page-toc { position: sticky; top: var(--header-height); grid-column: 2; grid-row: 1; max-height: calc(100dvh - var(--header-height)); padding: 2rem 1rem 2rem 0; overflow-y: auto; }
  .toc-disclosure > summary { list-style: none; cursor: default; }
  .toc-disclosure > summary::-webkit-details-marker { display: none; }
}
@media (min-width: 761px) and (max-width: 900px) {
  header { grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); row-gap: .5rem; }
  header form { grid-column: 2; grid-row: 1; }
  .desktop-sections { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 760px) {
  header { position: static; min-height: 0; padding: 1rem; gap: 1rem; display: flex; flex-wrap: wrap; }
  .desktop-sections { display: none; }
  .mobile-sections { display: block; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border); }
  .mobile-sections ul { flex-wrap: wrap; }
  form { flex: 1 1 12rem; }
  input[type=search] { width: 100%; }
  .layout { display: block; }
  .layout > nav { position: static; height: auto; max-height: 70dvh; border-right: 0; border-bottom: 1px solid var(--border); padding: .75rem 1rem; }
  .nav-disclosure[open] > summary { margin-bottom: 1rem; }
  .page-toc { padding: .75rem 1rem 0; }
  main { padding: 1.5rem 1rem 3rem; }
  .site-footer { padding: 1rem 1rem 1.5rem; }
  h1 { font-size: 1.85rem; }
  h1, h2, h3, h4 { scroll-margin-top: 1rem; }
}

.package-overview { max-width: none; }
.package-overview-body { min-width: 0; }
.package-introduction { color: var(--muted); font-size: 1.1rem; }
.package-metadata { min-width: 0; margin-top: 2rem; padding: 1rem; border: 1px solid var(--border); border-radius: .3rem; font-size: .85rem; }
.package-metadata h2 { margin: 0 0 1rem; font-size: 1rem; }
.package-metadata dl { margin: 0; }
.package-metadata dt { margin-top: .6rem; color: var(--muted); font-size: .75rem; font-weight: 650; }
.package-metadata dd { margin: 0; }
.package-metadata ul { margin: 1rem 0 0; padding-left: 1.1rem; }
.package-metadata li { margin: .3rem 0; }
@media (min-width: 1280px) {
  .package-overview { display: grid; grid-template-columns: minmax(0, 1fr) 13rem; gap: 2rem; align-items: start; }
  .package-metadata { margin-top: 0; }
}

.align-left { text-align: left; }
.align-center { text-align: center; }
.align-right { text-align: right; }
.math-display { max-width: 100%; overflow-x: auto; margin: 1rem 0; }
.math-display:not(.math-rendered) { white-space: pre-wrap; }

.article-metadata { color: var(--muted); margin-top: -.5rem; }
.article-figure { margin: 1.5rem 0; }
.article-figure figcaption { font-size: .95rem; }
.article-figure figcaption p { margin: .4rem 0; }
.footnotes { border-top: 1px solid var(--border); margin-top: 2rem; padding-top: 1rem; }
.footnote { margin: .6rem 0; }
.footnote-number { font-weight: 600; margin-right: .4rem; }
.footnote > p { display: inline; }
.bibliography-entry { margin: .8rem 0; padding-left: 1.5rem; text-indent: -1.5rem; }
.small-caps { font-variant: small-caps; }

/*
 * theme "GitHub" generated by syntect
 */

.syntax-code {
 color: #333333;
}

.syntax-comment {
 color: #969896;
}
.syntax-keyword.syntax-operator, .syntax-support.syntax-constant {
 color: #a71d5d;
}
.syntax-constant.syntax-language {
 color: #0086b3;
}
.syntax-keyword, .syntax-storage {
 color: #a71d5d;
}
.syntax-storage.syntax-type {
 color: #a71d5d;
}
.syntax-support.syntax-type {
 color: #0086b3;
}
.syntax-variable {
 color: #0086b3;
}
.syntax-variable.syntax-language {
 color: #df5000;
}
.syntax-variable.syntax-parameter.syntax-function {
 color: #030303;
}
.syntax-entity.syntax-name.syntax-function, .syntax-entity {
 color: #795da3;
}
.syntax-support.syntax-function {
 color: #0086b3;
}
.syntax-entity.syntax-name.syntax-type, .syntax-entity.syntax-other.syntax-inherited-class {
 color: #000000;
}
.syntax-support.syntax-class {
 color: #0086b3;
}
.syntax-entity.syntax-name.syntax-exception {
 color: #f93232;
}
.syntax-entity.syntax-name.syntax-section {
}
.syntax-constant.syntax-numeric, .syntax-constant {
 color: #0086b3;
}
.syntax-constant.syntax-character, .syntax-string, .syntax-string .syntax-punctuation {
 color: #183691;
}
.syntax-string.syntax-regexp, .syntax-string.syntax-regexp .syntax-constant.syntax-character, .syntax-string.syntax-regexp .syntax-punctuation {
 color: #009926;
}
.syntax-constant.syntax-other.syntax-symbol {
 color: #990073;
}
.syntax-string .syntax-source, .syntax-text .syntax-source {
 color: #333333;
}
.syntax-variable.syntax-other.syntax-property {
 color: #030303;
}
.syntax-entity.syntax-name {
 color: #333333;
}
.syntax-invalid {
 color: #0f0000;
}
.syntax-entity.syntax-name.syntax-tag {
 color: #63a35c;
}
.syntax-punctuation.syntax-definition.syntax-tag {
 color: #030303;
}
.syntax-meta.syntax-tag .syntax-string .syntax-punctuation {
 color: #183691;
}
.syntax-constant.syntax-character.syntax-entity {
 color: #000000;
}
.syntax-entity.syntax-other.syntax-attribute-name {
 color: #795da3;
}
.syntax-meta.syntax-tag .syntax-string.syntax-quoted, .syntax-meta.syntax-tag .syntax-string.syntax-quoted .syntax-constant.syntax-character.syntax-entity {
 color: #183691;
}
.syntax-meta.syntax-selector, .syntax-meta.syntax-selector .syntax-entity, .syntax-meta.syntax-selector .syntax-entity .syntax-punctuation, .syntax-entity.syntax-name.syntax-tag.syntax-css, .syntax-entity.syntax-other.syntax-attribute-name.syntax-class, .syntax-keyword.syntax-control.syntax-html.syntax-sass {
 color: #63a35c;
}
.syntax-entity.syntax-other.syntax-attribute-name.syntax-class, .syntax-constant.syntax-other.syntax-unit {
 color: #795da3;
}
.syntax-support.syntax-type.syntax-property-name, .syntax-support.syntax-constant.syntax-property-value {
 color: #0086b3;
}
.syntax-keyword.syntax-other.syntax-special-method.syntax-ruby.syntax-gem {
 color: #0086b3;
}
.syntax-variable.syntax-other.syntax-block.syntax-ruby {
 color: #000000;
}
.syntax-support.syntax-function.syntax-prelude, .syntax-variable.syntax-other.syntax-generic-type.syntax-haskell {
 color: #000000;
}
.syntax-constant.syntax-other.syntax-haskell, .syntax-support.syntax-constant.syntax-haskell {
 color: #445588;
}
.syntax-meta.syntax-diff, .syntax-meta.syntax-diff.syntax-header {
 color: #75715e;
}
.syntax-markup.syntax-deleted {
 color: #770000;
 background-color: #ffdddd;
}
.syntax-markup.syntax-inserted {
 color: #003300;
 background-color: #ddffdd;
}
.syntax-markup.syntax-changed {
 color: #ececec;
}
