@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;
  src:url(/fonts/inter-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;
  src:url(/fonts/inter-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/fonts/jetbrains-mono-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Sora";font-style:normal;font-weight:600 800;font-display:swap;
  src:url(/fonts/sora-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Sora";font-style:normal;font-weight:600 800;font-display:swap;
  src:url(/fonts/sora-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root, html, .navy, .coal, .light, .rust, .ayu {
  --meclaw-bg: #0b0b12;
  --meclaw-panel: #101019;
  --meclaw-raised: #17172440;
  --meclaw-text: #ECEAF6;
  --meclaw-dim: #9a97ad;
  --meclaw-dimmer: #6f6c82;
  --meclaw-violet: #7C72EE;
  --meclaw-violet-bright: #9D95FF;
  --meclaw-violet-deep: #5b4fd6;
  --meclaw-line: rgba(255,255,255,.08);
}

.navy {
  --bg: var(--meclaw-bg);
  --fg: var(--meclaw-text);
  --sidebar-bg: var(--meclaw-panel);
  --sidebar-fg: var(--meclaw-dim);
  --sidebar-non-existant: var(--meclaw-dimmer);
  --sidebar-active: var(--meclaw-violet-bright);
  --sidebar-spacer: var(--meclaw-line);
  --scrollbar: var(--meclaw-violet-deep);
  --icons: var(--meclaw-dimmer);
  --icons-hover: var(--meclaw-violet-bright);
  --links: var(--meclaw-violet-bright);
  --inline-code-color: var(--meclaw-violet-bright);
  --theme-popup-bg: var(--meclaw-panel);
  --theme-popup-border: var(--meclaw-line);
  --theme-hover: #1a1a28;
  --quote-bg: var(--meclaw-panel);
  --quote-border: var(--meclaw-violet-deep);
  --warning-border: var(--meclaw-violet);
  --table-border-color: var(--meclaw-line);
  --table-header-bg: #1a1a28;
  --table-alternate-bg: #0f0f18;
  --searchbar-border-color: rgba(255,255,255,.14);
  --searchbar-bg: var(--meclaw-panel);
  --searchbar-fg: var(--meclaw-text);
  --searchbar-shadow-color: #05050a;
  --searchresults-header-fg: var(--meclaw-dim);
  --searchresults-border-color: var(--meclaw-line);
  --searchresults-li-bg: var(--meclaw-panel);
  --search-mark-bg: var(--meclaw-violet-deep);
}

html, body, .menu-title, .chapter, .content {
  font-family: "Inter", system-ui, -apple-system, sans-serif;
}
.content h1, .content h2, .content h3, .content h4, .menu-title {
  font-family: "Sora", "Inter", system-ui, sans-serif;
  letter-spacing: -.02em;
}
.content code, .content pre, code, pre, .hljs {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;
}
.content pre > .buttons button, .content pre code {
  border-radius: 8px;
}
.content pre {
  background: var(--meclaw-panel);
  border: 1px solid var(--meclaw-line);
  border-radius: 10px;
}
.content a > code { color: var(--meclaw-violet-bright); }
.menu-title { font-weight: 800; }

/* --- the landing's header ------------------------------------------------
   The same rules the landing carries, scoped to `header.nav` so nothing in a
   built page can pick them up by accident, and reading the variables declared
   above instead of the landing's own names. */

:root, html {
  --meclaw-headerh: 62px;
  /* the header including its bottom rule -- what everything else starts below */
  --meclaw-headertop: 63px;
  --meclaw-maxw: 1040px;
  --meclaw-glass: rgba(255,255,255,.025);
}

/* mdBook reserves the top of the page with a zero-height sticky spacer and
   pulls the page up by exactly that height again. Both go: the header owns
   the top of the window, and mdBook's bar sticks directly underneath it. */
.page { margin-block-start: 0; }
#mdbook-menu-bar-hover-placeholder { display: none; }
#mdbook-menu-bar.sticky,
#mdbook-menu-bar-hover-placeholder:hover + #mdbook-menu-bar,
#mdbook-menu-bar:hover,
html.sidebar-visible #mdbook-menu-bar { top: var(--meclaw-headertop) !important; }
:target { scroll-margin-top: calc(var(--menu-bar-height) + var(--meclaw-headertop) + 0.5em); }

/* The sidebar is fixed to the window, so it has to be told where the header
   ends -- otherwise it slides underneath it and eats the first entry. */
.sidebar { top: var(--meclaw-headertop); bottom: 0; height: calc(100vh - var(--meclaw-headertop)); }

header.nav {
  position: sticky; top: 0; z-index: 1001;
  margin: 0;
  backdrop-filter: blur(14px);
  background: linear-gradient(to bottom, rgba(11,11,18,.86), rgba(11,11,18,.55));
  border-bottom: 1px solid var(--meclaw-line);
}
header.nav .wrap {
  max-width: var(--meclaw-maxw); margin: 0 auto; padding: 0 24px;
  display: flex; align-items: center; gap: 22px; height: var(--meclaw-headerh);
}
header.nav .mark {
  font-family: "Sora", system-ui, sans-serif;
  font-weight: 800; font-size: 21px; letter-spacing: -.02em;
}
header.nav .mark .me { color: #fff; }
header.nav .mark .claw { color: var(--meclaw-violet-bright); text-shadow: 0 0 22px rgba(124,114,238,.55); }
header.nav nav { display: flex; gap: 22px; margin-left: auto; align-items: center; }
header.nav nav a { color: var(--meclaw-dim); font-size: 14.5px; font-weight: 500; text-decoration: none; }
header.nav nav a:hover { color: var(--meclaw-text); }
header.nav nav a.here { color: var(--meclaw-text); }
header.nav .pill {
  font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px;
  color: var(--meclaw-violet-bright); border: 1px solid rgba(124,114,238,.4);
  border-radius: 999px; padding: 3px 9px; background: rgba(124,114,238,.07);
}
header.nav .ghub {
  display: inline-flex; align-items: center; gap: 7px;
  color: var(--meclaw-text) !important; font-weight: 600; font-size: 14px;
  border: 1px solid var(--meclaw-line); border-radius: 10px; padding: 7px 12px;
  background: var(--meclaw-glass);
}
header.nav .ghub:hover { border-color: rgba(124,114,238,.5); background: rgba(124,114,238,.08); }
header.nav .ghub .star { color: var(--meclaw-violet-bright); }
header.nav .ghcount {
  font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12.5px;
  color: var(--meclaw-violet-bright); border-left: 1px solid var(--meclaw-line);
  padding-left: 8px; margin-left: 1px;
}
header.nav .ghcount[hidden] { display: none; }
@media (max-width: 760px) { header.nav nav a.hidesm { display: none; } }
header.nav a.mark { text-decoration: none; }
/* --- sidebar: parts read as headings, chapters nest under them ---------- */
.chapter li.part-title {
  font-family: "Inter", system-ui, sans-serif;
  font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase;
  color: var(--meclaw-dimmer);
  margin: 26px 0 8px;
}
.chapter > li.part-title:first-child, .chapter > li:first-child + li.part-title { margin-top: 10px; }
.chapter li.chapter-item { margin-block-start: 0.35em; }
.chapter li a { display: block; padding: 3px 0; }
.chapter li a.active { font-weight: 600; }
.chapter li > ol {
  margin: 4px 0 6px 10px; padding-left: 12px;
  border-left: 1px solid var(--meclaw-line);
}
.chapter li > ol li a { font-size: 0.94em; }
.chapter li > ol li.chapter-item { margin-block-start: 0.25em; }
.chapter-fold-toggle { opacity: .45; }
/* mdBook 0.5 lists the open page's own headings under it, in the same face
   as the chapters. Those are not pages, and next to real children (why/,
   security/) they made the tree unreadable -- the sidebar is the page tree
   and nothing else. */
.chapter li.header-item, .chapter li.header-item + ol { display: none; }
/* --- the docs chrome nobody asked for ------------------------------------
   Theme picker, search, print and the repository button go everywhere; on a
   wide window the whole bar goes, and the chapter arrows go with it. Below
   1024px the bar stays, reduced to the one button that opens the contents. */
#mdbook-theme-toggle, #mdbook-search-toggle, #mdbook-print-button,
#mdbook-menu-bar .right-buttons, #mdbook-search-wrapper { display: none !important; }
.nav-wrapper, .nav-wide-wrapper { display: none !important; }
@media (min-width: 1024px) {
  #mdbook-menu-bar { display: none !important; }
  :target { scroll-margin-top: calc(var(--meclaw-headertop) + 0.5em); }
  .content main { padding-top: 12px; }
}
/* --- the landing's footer, under the content ---------------------------- */
.page-wrapper { display: flex; flex-direction: column; min-height: calc(100vh - var(--meclaw-headertop)); }
.page-wrapper > .page { flex: 1 0 auto; }
footer.site {
  border-top: 1px solid var(--meclaw-line); margin-top: 48px; padding: 34px 0;
  background: rgba(0,0,0,.2);
}
footer.site .wrap {
  max-width: var(--meclaw-maxw); margin: 0 auto; padding: 0 24px;
  display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; align-items: center;
  font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 13px; color: var(--meclaw-dim);
}
footer.site .links { display: flex; gap: 20px; }
footer.site .links a { color: var(--meclaw-dim); text-decoration: none; }
footer.site .links a:hover { color: var(--meclaw-violet-bright); }
