:root {
  --paper-0: oklch(0.994 0.004 178);
  --paper-1: oklch(0.983 0.005 178);
  --paper-2: oklch(0.968 0.007 178);
  --paper-3: oklch(0.942 0.009 178);
  --ink-0: oklch(0.244 0.022 188);
  --ink-1: oklch(0.398 0.018 188);
  --ink-2: oklch(0.550 0.014 188);
  --ink-3: oklch(0.700 0.012 188);
  --line-1: oklch(0.908 0.010 178);
  --line-2: oklch(0.862 0.012 178);
  --line-strong: oklch(0.244 0.022 188 / 0.14);
  --sea-50: oklch(0.962 0.040 178);
  --sea-100: oklch(0.918 0.070 178);
  --sea-200: oklch(0.842 0.100 178);
  --sea-300: oklch(0.742 0.125 178);
  --sea-400: oklch(0.655 0.140 178);
  --sea-500: oklch(0.572 0.148 178);
  --sea-600: oklch(0.498 0.134 179);
  --sea-700: oklch(0.428 0.116 180);
  --sea-on: oklch(0.990 0.008 178);
  --cyan-50: oklch(0.964 0.040 205);
  --cyan-100: oklch(0.924 0.072 205);
  --cyan-200: oklch(0.866 0.108 205);
  --cyan-300: oklch(0.782 0.135 205);
  --cyan-400: oklch(0.708 0.148 205);
  --cyan-500: oklch(0.640 0.152 205);
  --cyan-600: oklch(0.558 0.140 207);
  --cyan-700: oklch(0.472 0.122 208);
  --cyan-on: oklch(0.992 0.006 205);
  --ok-500: oklch(0.625 0.165 150);
  --ok-700: oklch(0.480 0.135 152);
  --ok-bg: oklch(0.945 0.060 150);
  --warn-500: oklch(0.770 0.165 80);
  --warn-700: oklch(0.585 0.135 70);
  --warn-bg: oklch(0.958 0.075 84);
  --err-500: oklch(0.600 0.215 27);
  --err-700: oklch(0.490 0.188 26);
  --err-bg: oklch(0.954 0.052 28);
  --info-500: oklch(0.585 0.150 233);
  --info-700: oklch(0.465 0.130 235);
  --info-bg: oklch(0.952 0.045 233);
  --term-bg: oklch(0.228 0.018 188);
  --term-bg-2: oklch(0.288 0.018 188);
  --term-fg: oklch(0.905 0.010 180);
  --term-dim: oklch(0.640 0.012 184);
  --term-line: oklch(0.380 0.014 186);
  --term-sea: oklch(0.760 0.150 178);
  --term-ok: oklch(0.800 0.185 150);
  --term-warn: oklch(0.850 0.175 88);
  --term-err: oklch(0.730 0.205 26);
  --term-info: oklch(0.775 0.150 235);
  --term-cyan: oklch(0.820 0.130 200);
  --term-violet: oklch(0.770 0.150 305);
  --ct-fg: var(--ink-0);
  --ct-comment: oklch(0.605 0.018 215);
  --ct-keyword: oklch(0.490 0.170 286);
  --ct-string: oklch(0.495 0.130 150);
  --ct-number: oklch(0.560 0.140 60);
  --ct-function: oklch(0.505 0.160 252);
  --ct-type: oklch(0.560 0.100 205);
  --ct-property: oklch(0.470 0.092 212);
  --ct-variable: oklch(0.510 0.158 350);
  --ct-symbol: oklch(0.530 0.130 30);
  --ct-punct: oklch(0.560 0.035 220);
  --font-display: 'Manrope', ui-sans-serif, system-ui, sans-serif;
  --font-body: 'Hanken Grotesk', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semi: 600;
  --weight-bold: 700;
  --text-2xs: 11px;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 16px;
  --text-md: 18px;
  --text-lg: 21px;
  --text-xl: 25px;
  --text-2xl: 31px;
  --text-3xl: 39px;
  --text-4xl: 52px;
  --text-5xl: 68px;
  --text-6xl: 88px;
  --leading-tight: 1.08;
  --leading-snug: 1.28;
  --leading-normal: 1.55;
  --leading-relaxed: 1.72;
  --tracking-tight: -0.02em;
  --tracking-snug: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-caps: 0.10em;
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;
  --radius-0: 0px;
  --radius-1: 3px;
  --radius-2: 6px;
  --radius-3: 10px;
  --radius-4: 16px;
  --radius-full: 999px;
  --shadow-0: none;
  --shadow-1: 0 1px 2px oklch(0.244 0.022 188 / 0.05);
  --shadow-2: 0 1px 2px oklch(0.244 0.022 188 / 0.05), 0 2px 6px oklch(0.244 0.022 188 / 0.06);
  --shadow-3: 0 2px 4px oklch(0.244 0.022 188 / 0.05), 0 8px 24px oklch(0.244 0.022 188 / 0.08);
  --shadow-4: 0 4px 8px oklch(0.244 0.022 188 / 0.06), 0 16px 48px oklch(0.244 0.022 188 / 0.12);
  --focus-ring: 0 0 0 3px oklch(0.572 0.148 178 / 0.35);
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-back: cubic-bezier(0.5, -0.4, 0.5, 1.4);
  --dur-fast: 120ms;
  --dur-base: 180ms;
  --dur-slow: 280ms;
  --grid-line: oklch(0.244 0.022 188 / 0.035);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--paper-0);
  color: var(--ink-0);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--sea-200);
}

a {
  color: var(--sea-700);
  font-weight: var(--weight-medium);
  text-decoration-color: var(--sea-200);
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--sea-600);
}

a:focus-visible,
button:focus-visible,
select:focus-visible,
summary:focus-visible {
  border-radius: var(--radius-2);
  outline: none;
  box-shadow: var(--focus-ring);
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: var(--space-5);
  height: 64px;
  padding: 0 var(--space-6);
  border-bottom: 1px solid var(--line-1);
  background: color-mix(in oklch, var(--paper-0) 85%, transparent);
  backdrop-filter: blur(10px);
}

.brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.brand-wordmark {
  display: block;
  width: 144px;
  height: auto;
}

.topnav {
  display: flex;
  gap: 3px;
  margin-left: var(--space-2);
}

.topnav a {
  border-radius: var(--radius-2);
  color: var(--ink-1);
  font-size: 14px;
  font-weight: 500;
  padding: 7px 11px;
  text-decoration: none;
}

.topnav a:hover {
  background: var(--paper-2);
  color: var(--ink-0);
}

.topnav a[aria-current="page"] {
  background: var(--sea-50);
  color: var(--sea-700);
}

.sdk-language-picker {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--ink-2);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.sdk-language-picker select {
  min-width: 106px;
  border: 1px solid var(--line-2);
  border-radius: 7px;
  background: var(--paper-1);
  color: var(--ink-0);
  font-family: var(--font-body);
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.2;
  padding: 7px 28px 7px 10px;
  text-transform: none;
}

.layout {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr) 220px;
  gap: 0;
  max-width: 1340px;
  margin: 0 auto;
}

.mobile-nav {
  display: none;
}

.tree,
.sidenav {
  position: sticky;
  top: 64px;
  align-self: start;
  height: calc(100vh - 64px);
  overflow: auto;
  border-right: 1px solid var(--line-1);
  padding: 28px 18px 60px;
}

.nav-section + .nav-section {
  margin-top: var(--space-5);
}

.nav-section-title,
.toc-title,
.crumb {
  color: var(--ink-3);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

.nav-section-title {
  margin: 0 var(--space-2) var(--space-2);
}

.tree a,
.sidenav a {
  display: block;
  border-radius: var(--radius-2);
  color: var(--ink-1);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.35;
  padding: 6px 10px;
  text-decoration: none;
}

.tree a:hover,
.sidenav a:hover {
  background: var(--paper-2);
  color: var(--ink-0);
}

.tree a[aria-current="page"],
.sidenav a[aria-current="page"] {
  background: var(--sea-50);
  color: var(--sea-700);
  font-weight: 600;
}

.doc {
  min-width: 0;
  padding: 38px 56px 100px;
}

.crumb {
  margin-bottom: 22px;
  letter-spacing: 0.04em;
  text-transform: none;
}

.doc h1,
.doc h2,
.doc h3 {
  color: var(--ink-0);
  font-family: var(--font-display);
  letter-spacing: 0;
}

.doc h1 {
  margin: 0 0 var(--space-4);
  font-size: 43px;
  font-weight: 700;
  line-height: 1.05;
  text-wrap: balance;
}

.doc h2 {
  margin: 48px 0 14px;
  padding-top: 6px;
  font-size: 27px;
  font-weight: 600;
  line-height: 1.2;
  scroll-margin-top: 86px;
}

.doc h3 {
  margin: 30px 0 10px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.25;
  scroll-margin-top: 86px;
}

.doc p,
.doc li {
  color: var(--ink-0);
  font-size: 16.5px;
  line-height: 1.62;
}

.doc p {
  max-width: 68ch;
  margin: 0 0 var(--space-4);
  text-wrap: pretty;
}

.doc ul,
.doc ol {
  max-width: 68ch;
  margin: 0 0 18px;
  padding-left: 22px;
}

.doc li {
  margin-bottom: 7px;
  padding-left: var(--space-1);
}

.doc li::marker {
  color: var(--ink-3);
}

.doc strong {
  font-weight: 600;
}

.doc pre {
  max-width: 78ch;
  margin: 10px 0 24px;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: 400;
  font-synthesis-weight: none;
  line-height: 1.7;
  background: var(--paper-2);
  border: 1px solid var(--line-1);
  border-radius: var(--radius-2);
  padding: var(--space-4) var(--space-5);
  color: var(--ink-0);
  overflow: auto;
  tab-size: 2;
}

.doc pre code {
  display: block;
  min-width: max-content;
  font-weight: 400;
  font-synthesis-weight: none;
  background: none;
  border: 0;
  padding: 0;
  font-size: 1em;
  color: inherit;
}

.doc :not(pre) > code {
  font-family: var(--font-mono);
  font-size: 0.88em;
  font-weight: var(--weight-medium);
  background: var(--paper-2);
  border: 1px solid var(--line-1);
  border-radius: var(--radius-1);
  padding: 0.1em 0.38em;
  color: var(--sea-700);
}

.sdk-snippet-group {
  max-width: 78ch;
  margin: 10px 0 24px;
}

.sdk-snippet-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--space-2);
}

.sdk-snippet-group .sdk-snippet {
  margin: 0;
}

.sdk-snippet {
  display: none;
}

html[data-sdk-lang="rust"] .sdk-snippet[data-sdk-lang="rust"],
html[data-sdk-lang="python"] .sdk-snippet[data-sdk-lang="python"],
html[data-sdk-lang="typescript"] .sdk-snippet[data-sdk-lang="typescript"],
html[data-sdk-lang="java"] .sdk-snippet[data-sdk-lang="java"],
html[data-sdk-lang="go"] .sdk-snippet[data-sdk-lang="go"] {
  display: block;
}

.hljs {
  color: var(--ct-fg);
  background: transparent;
}

.hljs-comment,
.hljs-quote {
  color: var(--ct-comment);
  font-style: italic;
}

.hljs-keyword,
.hljs-selector-tag {
  color: var(--ct-keyword);
}

.hljs-section,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class {
  color: var(--ct-keyword);
  font-weight: 500;
}

.hljs-string,
.hljs-regexp,
.hljs-meta .hljs-string {
  color: var(--ct-string);
}

.hljs-number,
.hljs-literal {
  color: var(--ct-number);
}

.hljs-title,
.hljs-title.function_ {
  color: var(--ct-function);
}

.hljs-title.class_,
.hljs-type,
.hljs-built_in,
.hljs-class .hljs-title {
  color: var(--ct-type);
}

.hljs-attr,
.hljs-attribute,
.hljs-property {
  color: var(--ct-property);
}

.hljs-variable,
.hljs-template-variable,
.hljs-variable.language_,
.hljs-params {
  color: var(--ct-variable);
}

.hljs-bullet,
.hljs-symbol,
.hljs-link {
  color: var(--ct-symbol);
}

.hljs-meta,
.hljs-meta .hljs-keyword {
  color: var(--ct-symbol);
}

.hljs-punctuation,
.hljs-operator {
  color: var(--ct-punct);
}

.hljs-tag {
  color: var(--ct-punct);
}

.hljs-tag .hljs-name {
  color: var(--ct-keyword);
}

.hljs-tag .hljs-attr {
  color: var(--ct-property);
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: 600;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: var(--ct-comment);
  font-style: italic;
}

.token.keyword,
.token.selector,
.token.atrule,
.token.section,
.token.tag,
.token.namespace {
  color: var(--ct-keyword);
}

.token.property,
.token.attr-name,
.token.key {
  color: var(--ct-property);
}

.token.string,
.token.attr-value,
.token.char,
.token.regex,
.token.inserted {
  color: var(--ct-string);
}

.token.number,
.token.boolean,
.token.constant {
  color: var(--ct-number);
}

.token.function,
.token.method {
  color: var(--ct-function);
}

.token.class-name,
.token.builtin {
  color: var(--ct-type);
}

.token.variable,
.token.parameter {
  color: var(--ct-variable);
}

.token.symbol,
.token.important {
  color: var(--ct-symbol);
}

.token.operator,
.token.punctuation {
  color: var(--ct-punct);
}

.token.deleted {
  color: var(--err-700);
}

.token.bold {
  font-weight: 600;
}

.token.italic {
  font-style: italic;
}

.hljs-addition,
.token.inserted-sign {
  display: block;
  background: var(--ok-bg);
  color: var(--ok-700);
}

.hljs-deletion,
.token.deleted-sign {
  display: block;
  background: var(--err-bg);
  color: var(--err-700);
}

.doc table {
  display: block;
  max-width: 78ch;
  margin: 10px 0 24px;
  overflow-x: auto;
  border: 1px solid var(--line-1);
  border-radius: 9px;
  border-spacing: 0;
  background: var(--paper-1);
  border-collapse: separate;
}

.doc th,
.doc td {
  border-bottom: 1px solid var(--line-1);
  padding: 10px 14px;
  text-align: left;
  vertical-align: top;
}

.doc tr:last-child td {
  border-bottom: 0;
}

.doc th {
  background: var(--paper-2);
  color: var(--ink-2);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.doc blockquote {
  display: flex;
  max-width: 70ch;
  margin: 10px 0 24px;
  border: 1px solid color-mix(in oklch, var(--info-500) 25%, transparent);
  border-radius: 9px;
  background: var(--info-bg);
  padding: 14px 17px;
}

.doc blockquote p {
  color: var(--ink-0);
  font-size: 14.5px;
  line-height: 1.55;
}

.doc blockquote p:last-child {
  margin-bottom: 0;
}

.toc {
  position: sticky;
  top: 64px;
  align-self: start;
  height: calc(100vh - 64px);
  overflow: auto;
  padding: 38px 22px;
  font-size: 13px;
}

.toc-title {
  margin-bottom: 12px;
}

.toc a {
  display: block;
  border-left: 2px solid var(--line-1);
  color: var(--ink-2);
  font-weight: 400;
  line-height: 1.4;
  padding: 5px 0 5px 12px;
  text-decoration: none;
}

.toc a:hover {
  color: var(--ink-0);
}

.toc a.sub {
  padding-left: 24px;
  font-size: 12.5px;
}

.page-nav {
  display: flex;
  gap: 14px;
  max-width: 78ch;
  margin-top: 48px;
  border-top: 1px solid var(--line-1);
  padding-top: 24px;
}

.page-nav a {
  flex: 1;
  border: 1px solid var(--line-1);
  border-radius: 9px;
  color: var(--ink-0);
  padding: 14px 16px;
  text-decoration: none;
}

.page-nav a:hover {
  border-color: var(--sea-300);
  background: var(--sea-50);
}

.page-nav span {
  display: block;
  color: var(--ink-3);
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.page-nav strong {
  display: block;
  margin-top: var(--space-1);
  color: var(--ink-0);
  font-family: var(--font-display);
  font-size: 16px;
}

@media (max-width: 1100px) {
  .layout {
    grid-template-columns: 248px minmax(0, 1fr);
  }

  .toc {
    display: none;
  }
}

@media (max-width: 820px) {
  .topnav {
    display: none;
  }

  .topbar {
    gap: 14px;
    padding: 0 18px;
  }

  .brand-wordmark {
    width: 128px;
  }

  .sdk-language-picker span {
    display: none;
  }

  .sdk-language-picker select {
    min-width: 96px;
    font-size: 13px;
  }

  .layout {
    display: block;
    padding: 26px 20px 70px;
  }

  .mobile-nav {
    display: block;
    margin: 0 0 26px;
    border: 1px solid var(--line-1);
    border-radius: 8px;
    background: var(--paper-1);
    box-shadow: var(--shadow-1);
  }

  .mobile-nav summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 46px;
    padding: 10px 13px;
    color: var(--ink-0);
    cursor: pointer;
    list-style: none;
  }

  .mobile-nav summary::-webkit-details-marker {
    display: none;
  }

  .mobile-nav summary::after {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 1.5px solid var(--sea-700);
    border-bottom: 1.5px solid var(--sea-700);
    transform: rotate(45deg);
    transition: transform var(--dur-fast) var(--ease-out);
  }

  .mobile-nav[open] summary::after {
    transform: rotate(225deg);
  }

  .mobile-nav summary span {
    color: var(--ink-3);
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .mobile-nav summary strong {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    color: var(--ink-0);
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-nav-panel {
    border-top: 1px solid var(--line-1);
    padding: 12px;
  }

  .mobile-nav .nav-section + .nav-section {
    margin-top: 16px;
  }

  .mobile-nav .nav-section-title {
    margin-left: 9px;
  }

  .mobile-nav a {
    display: block;
    border-radius: var(--radius-2);
    color: var(--ink-1);
    font-size: 14px;
    line-height: 1.35;
    padding: 7px 9px;
    text-decoration: none;
  }

  .mobile-nav a:hover {
    background: var(--paper-2);
    color: var(--ink-0);
  }

  .mobile-nav a[aria-current="page"] {
    background: var(--sea-50);
    color: var(--sea-700);
    font-weight: 600;
  }

  .tree,
  .sidenav {
    display: none;
  }

  .doc {
    padding: 0;
  }

  .doc h1 {
    font-size: 36px;
  }

  .doc pre {
    font-size: 12.5px;
    line-height: 1.6;
  }

  .page-nav {
    flex-direction: column;
  }
}
