/* mdBook adapter; the shared palette, fonts and site header live in brand.css. */
html {scroll-behavior:smooth}
:root {
  --sidebar-target-width: 300px;
  --content-max-width: 820px;
  --page-padding: 32px;
  --mono-font: var(--mono);
  --code-font-size: .8em;
}
html.light,html.rust,html.navy,html.coal,html.ayu,html:not(.js) {
  --fg: var(--ink);
  --sidebar-bg: var(--docs-sidebar);
  --sidebar-fg: var(--ink);
  --sidebar-active: var(--syq);
  --sidebar-spacer: var(--line);
  --sidebar-header-border-color: var(--line);
  --icons: var(--muted);
  --icons-hover: var(--syq);
  --links: var(--syq);
  --inline-code-color: var(--ink);
  --theme-popup-bg: var(--bg);
  --theme-popup-border: var(--line);
  --theme-hover: var(--accent-soft);
  --quote-bg: var(--accent-soft);
  --quote-border: var(--syq);
  --table-border-color: var(--line);
  --table-header-bg: var(--panel);
  --table-alternate-bg: var(--bg);
  --searchbar-bg: var(--bg);
  --searchbar-fg: var(--ink);
  --searchbar-border-color: var(--line);
  --searchbar-shadow-color: transparent;
  --searchresults-header-fg: var(--muted);
  --searchresults-border-color: var(--line);
  --searchresults-li-bg: var(--accent-soft);
  --search-mark-bg: var(--accent-soft);
}
h1,h2,h3,h4,h5,h6 {font-family:var(--display);font-weight:700;letter-spacing:-.025em;line-height:1.2;text-wrap:balance}
.content h1 {font-size:38px;line-height:1.2;font-weight:700;letter-spacing:-.025em;margin:30px 0 24px}
.content h2 {font-size:29px;margin-top:42px}
.content h3 {font-size:23px;margin-top:36px}
.content p,.content ul,.content ol {line-height:1.65}
.content li {margin-block:8px}
.content a {text-decoration:underline;text-underline-offset:3px}
.content a.header {text-decoration:none}
.content main {max-width:820px;padding-bottom:48px}
.content pre {border:0;padding:18px 20px;background:var(--panel);border-radius:2px}
.content pre code {font:400 16px/1.7 var(--mono);background:transparent;color:var(--ink)}
.content table {font-family:var(--display);font-size:16px;line-height:1.6}
.content th,.content td {padding:10px 14px}
.content blockquote {margin-inline:0;padding:12px 20px;border-left:2px solid var(--syq)}
.sidebar {top:var(--site-header-height)}
.copy-demo {padding:22px;border-radius:2px}
.copy-demo legend {font-family:var(--display)}
.copy-demo-choices {font:500 17px/1.4 var(--display)}
.copy-demo-choices input {width:17px;height:17px}
.copy-demo-reset {font-size:16px}
.content .copy-demo-trees h3 {font:600 16px var(--display)}
.copy-demo-tree {font-size:15px}
.copy-demo-tree li {margin-block:2px}
#mdbook-menu-bar {border-bottom:1px solid var(--line);background:var(--bg)}
/* Keep the toolbar visible below the shared header in every scroll state.
   Match mdBook's sticky/hover selectors: its top:0 !important and the scroll
   handler's inline top offsets would otherwise cover or displace the controls. */
#mdbook-menu-bar,
#mdbook-menu-bar.sticky,
#mdbook-menu-bar-hover-placeholder:hover + #mdbook-menu-bar,
#mdbook-menu-bar:hover,
html.sidebar-visible #mdbook-menu-bar {
  position:sticky;
  top:var(--site-header-height)!important;
}
.menu-title {font:500 13px/50px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.theme-popup,.searchbar-outer,.searchresults-outer,.nav-wrapper {font-family:var(--display)}
.nav-chapters,.mobile-nav-chapters {border:1px solid var(--line);border-radius:2px}
:target {scroll-margin-top:calc(var(--site-header-height) + var(--menu-bar-height) + 24px)}
a:focus-visible,button:focus-visible,label:focus-visible {outline:2px solid var(--syq);outline-offset:4px}
/* Legacy mdBook theme preferences still choose the matching white/dark palette. */
@media(max-width:820px) {
  :root{--page-padding:22px}
  .content h1{font-size:34px}.content h2{font-size:27px}
  .content pre,.copy-demo{padding:16px}
  .copy-demo-choices{font-size:16px}
}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto}.sidebar,.page-wrapper{transition:none!important}}
@media print {.sidebar,#mdbook-menu-bar,.nav-wide-wrapper,.nav-wrapper{display:none}.content h1{font-size:36px}}


/* Keep the shared header fixed while the phone chapter drawer is open.
   The toolbar stays above the drawer so its toggle is always reachable. */
@media(max-width:619px){
  #mdbook-sidebar-toggle-anchor:checked ~ .page-wrapper{transform:none}
  .sidebar{top:calc(var(--site-header-height) + var(--menu-bar-height));z-index:105}
}

/* Chapter navigation is in the sidebar and at the end of each page. */
.nav-wide-wrapper{display:none}

/* mdBook controls share the site header after docs.js moves their existing nodes.
   Keep the native toolbar as a functional fallback when JavaScript is disabled. */
.docs-compact-header #mdbook-menu-bar,
.docs-compact-header #mdbook-menu-bar-hover-placeholder {display:none}
.docs-compact-header .page {margin-block-start:0}
.docs-controls {position:relative;display:flex;align-items:center;gap:2px;margin:0 0 0 auto;flex:none;color:var(--muted)}
.docs-controls .icon-button,.docs-controls>label {display:flex;align-items:center;justify-content:center;width:42px;height:44px;cursor:pointer}
.docs-controls .fa-svg {font-size:18px;line-height:1;padding:0}
.docs-controls .icon-button:hover,.docs-controls>label:hover {color:var(--syq)}
.docs-controls .theme-popup {top:48px;left:auto;right:0;font-size:14px}
.docs-controls .theme-popup .theme {padding:5px 20px}
.docs-compact-header :target {scroll-margin-top:calc(var(--site-header-height) + 24px)}
.docs-page-actions {display:flex;gap:24px;flex-wrap:wrap;margin-top:48px;padding-top:20px;border-top:1px solid var(--line);font:14px/1.5 var(--display)}
@media(max-width:760px) {
  :root.docs-compact-header {--site-header-height:108px}
  .docs-compact-header .site-header {display:grid;grid-template-columns:1fr auto;grid-template-rows:44px auto;align-content:center;gap:4px 16px}
  .docs-compact-header .site-wordmark {grid-column:1;grid-row:1}
  .docs-compact-header .site-nav {grid-column:1/-1;grid-row:2}
  .docs-controls {grid-column:2;grid-row:1}
}
@media(max-width:619px) {
  .docs-compact-header .sidebar {top:var(--site-header-height)}
}
@media(max-width:480px) {
  .docs-compact-header .site-nav {font-size:14px;gap:8px}
}
@media print {.docs-page-actions{display:none}}

/* Readable, theme-aware walkthroughs; no JavaScript or text baked into images. */
.benchmark-example,.transfer-flow{margin:28px 0;font:16px/1.5 var(--display)}
.content .benchmark-example table{display:table;width:100%;margin:0;font-size:16px;table-layout:fixed}
.benchmark-example caption{text-align:left;color:var(--muted);padding-bottom:12px;font-size:16px}
.content .benchmark-example th,.content .benchmark-example td{padding:8px 6px;background:transparent;border:0;border-bottom:1px solid var(--line)}
.benchmark-example td{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
.benchmark-example th{text-align:left;white-space:nowrap}
.benchmark-example th:not(:first-child){text-align:right}
.benchmark-example figcaption,.transfer-flow figcaption{margin-top:12px;color:var(--muted);font-size:14px}
.transfer-flow{padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.flow-machine{display:flex;flex-direction:column;gap:4px;padding:12px 18px;background:var(--bg);border:1px solid var(--line);border-radius:6px;text-align:center}
.flow-machine strong{font:600 16px var(--mono)}
.flow-machine span{font-size:14px;color:var(--muted)}
.transfer-flow>.flow-machine{width:max-content;margin:auto}
.flow-control{text-align:center;color:var(--muted);height:36px;font-size:28px}
.flow-data{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:12px}
.flow-arrow{display:flex;flex-direction:column;align-items:center;color:var(--syq);font-size:14px}
.flow-arrow b{font-size:44px;line-height:1;font-weight:400}
@media(max-width:600px){
  .transfer-flow{padding:16px 10px}.flow-data{gap:6px}.flow-machine{padding:12px 6px}
}

/* Align the homepage title's top spacing with the benchmark introduction. */
.content h1.landing-title{margin-top:44px}
@media(max-width:820px){.content h1.landing-title{margin-top:32px}}
