/* Michel Albert design system for Sphinx (sphinx-immaterial).
   GENERATED by scripts/generate_css.py from tokens.json and styles/*.css. Do not edit by hand. */

@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/source-sans-3-latin-400-normal.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: "Source Sans 3"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/source-sans-3-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Source Sans 3"; font-style: italic; font-weight: 400; font-display: swap; src: url("fonts/source-sans-3-latin-400-italic.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: "Source Sans 3"; font-style: italic; font-weight: 400; font-display: swap; src: url("fonts/source-sans-3-latin-ext-400-italic.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/source-sans-3-latin-600-normal.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: "Source Sans 3"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/source-sans-3-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Source Sans 3"; font-style: italic; font-weight: 600; font-display: swap; src: url("fonts/source-sans-3-latin-600-italic.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: "Source Sans 3"; font-style: italic; font-weight: 600; font-display: swap; src: url("fonts/source-sans-3-latin-ext-600-italic.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Source Code Pro"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/source-code-pro-latin-400-normal.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: "Source Code Pro"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/source-code-pro-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Source Code Pro"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/source-code-pro-latin-600-normal.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: "Source Code Pro"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/source-code-pro-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
  color-scheme: light;
  --ma-surface-100: #f6f2ec;
  --ma-surface-200: #fffdf9;
  --ma-surface-300: #ebe5dc;
  --ma-line: #d9d0c3;
  --ma-line-strong: #8a7f72;
  --ma-ink: #231e19;
  --ma-ink-muted: #5e554b;
  --ma-accent: #0f6e68;
  --ma-accent-hover: #0a5651;
  --ma-on-accent: #ffffff;
  --ma-accent-subtle: #dcece9;
  --ma-clay: #8c5a38;
  --ma-good: #3d6b2a;
  --ma-warn: #8a5a00;
  --ma-critical: #a63a24;
  --ma-good-subtle: #e1ecd9;
  --ma-warn-subtle: #f3e6c6;
  --ma-critical-subtle: #f3dcd5;
  --ma-sans: "Source Sans 3", "Noto Sans", system-ui, sans-serif;
  --ma-mono: "Source Code Pro", ui-monospace, Menlo, monospace;
  --ma-radius-sm: 2px; --ma-radius-md: 4px;
}

[data-md-color-scheme=slate], :root:has(> body[data-md-color-scheme=slate]) {
  color-scheme: dark;
  --ma-surface-100: #1c1916;
  --ma-surface-200: #24201c;
  --ma-surface-300: #2e2924;
  --ma-line: #3d3731;
  --ma-line-strong: #7a7065;
  --ma-ink: #ece6dd;
  --ma-ink-muted: #a89f93;
  --ma-accent: #4fb3a9;
  --ma-accent-hover: #6cc7be;
  --ma-on-accent: #10201e;
  --ma-accent-subtle: #1f3331;
  --ma-clay: #b07d56;
  --ma-good: #8fb573;
  --ma-warn: #e0a83c;
  --ma-critical: #e8806a;
  --ma-good-subtle: #232b1f;
  --ma-warn-subtle: #2d2515;
  --ma-critical-subtle: #33211c;
}

/* Content rules shared by every theme: type, links, code, callouts, tables, API entries, focus. */

/* code colours: not in the design system yet — aliases of existing tokens, re-resolved on every element
   so a theme's dark-mode selector below :root picks up the dark values */
*, ::before, ::after { --ma-code-keyword: var(--ma-accent); --ma-code-string: var(--ma-good);
  --ma-code-number: var(--ma-warn); --ma-code-comment: var(--ma-ink-muted); --ma-code-error: var(--ma-critical); }

/* ---------- typography ---------- */
body { font-family: var(--ma-sans); font-size: 16px; line-height: 1.5625; color: var(--ma-ink); background: var(--ma-surface-100); }
h1, h2, h3, h4, h5, h6 { font-family: var(--ma-sans) !important; font-weight: 600 !important; color: var(--ma-ink); }
article h1, [role=main] h1, .body h1, main h1 { font-size: 2em; line-height: 1.1875; letter-spacing: -0.0078em; }
article h2, [role=main] h2, .body h2, main h2 { font-size: 1.5em; line-height: 1.25; letter-spacing: 0; }
article h3, [role=main] h3, .body h3, main h3 { font-size: 1.1875em; line-height: 1.3684; letter-spacing: 0; }
strong, b, dt { font-weight: 600; }
code, kbd, pre, samp, tt { font-family: var(--ma-mono) !important; font-variant-numeric: tabular-nums; }

/* ---------- links in running text ---------- */
article p a, article li a, article dd a, article td a,
[role=main] p a, [role=main] li a, [role=main] dd a, [role=main] td a {
  color: var(--ma-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em;
}
article p a:hover, article li a:hover, [role=main] p a:hover, [role=main] li a:hover { color: var(--ma-accent-hover); }
a.headerlink { color: var(--ma-ink-muted) !important; text-decoration: none !important; }

/* ---------- code ---------- */
code.literal, code.docutils { background: var(--ma-surface-300) !important; color: var(--ma-ink) !important; border: 0 !important;
  border-radius: var(--ma-radius-sm) !important; padding: 0.1em 0.3em !important; font-size: 0.875em !important; }
a code.literal, a code.docutils { color: var(--ma-accent) !important; }
div.highlight, .highlight pre, div[class^="highlight-"] pre { background: var(--ma-surface-300) !important; color: var(--ma-ink) !important; }
div.highlight { border: 1px solid var(--ma-line) !important; border-radius: var(--ma-radius-md) !important; box-shadow: none !important; }
div.highlight pre { font-size: 0.875em !important; line-height: 1.5 !important; border: 0 !important; border-radius: var(--ma-radius-md) !important; }
.highlight * { background-color: transparent !important; }
.highlight .k, .highlight .kn, .highlight .kd, .highlight .kc, .highlight .kr, .highlight .kp, .highlight .kt, .highlight .ow { color: var(--ma-code-keyword) !important; font-weight: 600 !important; font-style: normal !important; }
.highlight .s, .highlight .s1, .highlight .s2, .highlight .sa, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .se, .highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .ss, .highlight .dl { color: var(--ma-code-string) !important; font-style: normal !important; }
.highlight .m, .highlight .mi, .highlight .mf, .highlight .mh, .highlight .mo, .highlight .mb, .highlight .il { color: var(--ma-code-number) !important; }
.highlight .c, .highlight .c1, .highlight .cm, .highlight .cs, .highlight .ch, .highlight .cp, .highlight .cpf, .highlight .gp, .highlight .go { color: var(--ma-code-comment) !important; font-style: italic !important; font-weight: 400 !important; }
.highlight .gp, .highlight .go { font-style: normal !important; }
.highlight .err, .highlight .gr, .highlight .gt { color: var(--ma-code-error) !important; border: 0 !important; }
.highlight .n, .highlight .na, .highlight .nb, .highlight .bp, .highlight .nv, .highlight .vi, .highlight .vc, .highlight .vg, .highlight .o, .highlight .p, .highlight .w, .highlight .nn, .highlight .nx, .highlight .ni, .highlight .ne, .highlight .nl, .highlight .nt, .highlight .nd { color: var(--ma-ink) !important; font-weight: 400 !important; font-style: normal !important; }
.highlight .nf, .highlight .nc, .highlight .fm { color: var(--ma-ink) !important; font-weight: 600 !important; }

/* ---------- callouts (admonitions): tinted, with a title bar ---------- */
div.admonition, aside.admonition, .admonition {
  --ma-c-bg: var(--ma-accent-subtle); --ma-c-fg: var(--ma-accent);
  background: var(--ma-c-bg) !important; color: var(--ma-ink) !important;
  border: 1px solid var(--ma-line) !important; border-radius: var(--ma-radius-md) !important;
  box-shadow: none !important; padding: 0 1em 0.75em !important; overflow: hidden;
}
.admonition.warning, .admonition.caution, .admonition.attention { --ma-c-bg: var(--ma-warn-subtle); --ma-c-fg: var(--ma-warn); }
.admonition.danger, .admonition.error { --ma-c-bg: var(--ma-critical-subtle); --ma-c-fg: var(--ma-critical); }
.admonition.tip, .admonition.hint { --ma-c-bg: var(--ma-good-subtle); --ma-c-fg: var(--ma-good); }
.admonition > .admonition-title, .admonition p.admonition-title {
  background: transparent !important; color: var(--ma-c-fg) !important; font-family: var(--ma-sans) !important;
  font-size: 1em !important; font-weight: 600 !important; margin: 0 -1em 0.625em !important; padding: 0.5em 1em !important;
  border-bottom: 1px solid var(--ma-line) !important; text-transform: none !important; letter-spacing: 0 !important;
}
.admonition > .admonition-title::before, .admonition > .admonition-title::after { display: none !important; content: none !important; }
.admonition p { color: var(--ma-ink) !important; }

/* ---------- tables ---------- */
table.docutils { border-collapse: collapse !important; border: 1px solid var(--ma-line) !important; border-radius: 0 !important; box-shadow: none !important; }
table.docutils th { background: var(--ma-surface-300) !important; color: var(--ma-ink) !important; font-size: 0.75em !important; line-height: 1.3333 !important;
  font-weight: 600 !important; letter-spacing: 0.0667em !important; text-transform: uppercase !important; border: 1px solid var(--ma-line) !important; }
table.docutils td { background: var(--ma-surface-200) !important; color: var(--ma-ink) !important; border: 1px solid var(--ma-line) !important; font-size: 0.875em; }

/* ---------- API entries ---------- */
dl.py > dt, dl.function > dt, dl.class > dt, dl.method > dt, dl.attribute > dt, dl.exception > dt, dl.data > dt {
  background: var(--ma-surface-200) !important; color: var(--ma-ink) !important; border: 0 !important; border-left: 0 !important;
  border-top: 1px solid var(--ma-line) !important; border-radius: 0 !important; font-family: var(--ma-mono) !important; font-size: 0.875em !important;
}
dl.field-list > dt { background: transparent !important; color: var(--ma-ink) !important; }
.sig-name, .sig-prename { color: var(--ma-ink) !important; }
.sig-name { font-weight: 600 !important; }
.sig-param, .sig-paren, .sig .o { color: var(--ma-ink-muted) !important; }
em.property, .property { color: var(--ma-accent) !important; font-style: normal !important; }

/* ---------- focus ---------- */
:focus-visible { outline: 2px solid var(--ma-accent) !important; outline-offset: 2px !important; }
::selection { background: var(--ma-accent-subtle); color: var(--ma-ink); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* preformatted text never wraps; long lines scroll sideways. ma-base.js makes an overflowing block
   keyboard-focusable so it can be scrolled with the arrow keys (WCAG 2.1.1, axe scrollable-region-focusable) */
pre, pre > code, .highlight pre, pre.literal-block, pre.doctest-block {
  white-space: pre !important; overflow-wrap: normal !important; word-break: normal !important; }
pre { overflow-x: auto; }
div.highlight pre > code { font-size: 1em !important; line-height: inherit !important; }
div.highlight pre { margin: 0 !important; }

/* sphinx_immaterial adapter. Dark = the theme's own "slate" scheme (palette enabled in conf-sphinx_immaterial.py with
   prefers-color-scheme media, so it follows the OS until the reader uses the header toggle; choosing light sets
   scheme=default, which never receives dark tokens). Theme colours come from --md-* variables mapped to tokens. */
/* Dark tokens are generated (see scripts/generate_css.py) under [data-md-color-scheme=slate]. */

/* 0,2,1 beats the theme's [scheme][primary] and [primary]/[accent] palette rules */
body[data-md-color-scheme][data-md-color-primary] {
  --md-text-font-family: var(--ma-sans); --md-code-font-family: var(--ma-mono);
  --md-primary-fg-color: var(--ma-surface-200); --md-primary-fg-color--light: var(--ma-surface-300); --md-primary-fg-color--dark: var(--ma-surface-300);
  --md-primary-bg-color: var(--ma-ink); --md-primary-bg-color--light: var(--ma-ink-muted);
  --md-accent-fg-color: var(--ma-accent-hover); --md-accent-fg-color--transparent: var(--ma-accent-subtle);
  --md-accent-bg-color: var(--ma-on-accent); --md-accent-bg-color--light: var(--ma-on-accent);
  --md-default-fg-color: var(--ma-ink); --md-default-fg-color--light: var(--ma-ink-muted);
  --md-default-fg-color--lighter: var(--ma-line-strong); --md-default-fg-color--lightest: var(--ma-line);
  --md-default-bg-color: var(--ma-surface-100); --md-default-bg-color--light: var(--ma-surface-100);
  --md-default-bg-color--lighter: var(--ma-surface-200); --md-default-bg-color--lightest: var(--ma-surface-300);
  --md-typeset-color: var(--ma-ink); --md-typeset-a-color: var(--ma-accent);
  --md-code-fg-color: var(--ma-ink); --md-code-bg-color: var(--ma-surface-300);
  --md-code-hl-color: var(--ma-accent); --md-code-hl-color--light: var(--ma-accent-subtle);
  --md-code-hl-keyword-color: var(--ma-code-keyword); --md-code-hl-string-color: var(--ma-code-string);
  --md-code-hl-number-color: var(--ma-code-number); --md-code-hl-comment-color: var(--ma-code-comment);
  --md-code-hl-special-color: var(--ma-accent); --md-code-hl-function-color: var(--ma-ink); --md-code-hl-constant-color: var(--ma-ink);
  --md-code-hl-name-color: var(--ma-ink); --md-code-hl-operator-color: var(--ma-ink-muted); --md-code-hl-punctuation-color: var(--ma-ink-muted);
  --md-code-hl-generic-color: var(--ma-ink-muted); --md-code-hl-variable-color: var(--ma-ink);
  --md-typeset-table-color: var(--ma-line); --md-typeset-table-color--light: var(--ma-surface-300);
  --md-typeset-kbd-color: var(--ma-surface-200); --md-typeset-kbd-accent-color: var(--ma-surface-200); --md-typeset-kbd-border-color: var(--ma-line-strong);
  --md-typeset-mark-color: var(--ma-warn-subtle); --md-warning-fg-color: var(--ma-ink); --md-warning-bg-color: var(--ma-warn-subtle);
  --md-admonition-fg-color: var(--ma-ink); --md-admonition-bg-color: var(--ma-surface-200);
  --md-footer-fg-color: var(--ma-ink); --md-footer-fg-color--light: var(--ma-ink-muted); --md-footer-fg-color--lighter: var(--ma-ink-muted);
  --md-footer-bg-color: var(--ma-surface-200); --md-footer-bg-color--dark: var(--ma-surface-200);
  --md-shadow-z1: none; --md-shadow-z2: none; --md-shadow-z3: none;
  --objinfo-icon-bg-default: var(--ma-surface-100); --objinfo-icon-fg-default: var(--ma-ink-muted);
  --objinfo-icon-fg-procedure: var(--ma-accent); --objinfo-icon-fg-data: var(--ma-ink-muted);
  --objinfo-icon-fg-sub-data: var(--ma-ink-muted); --objinfo-icon-fg-alias: var(--ma-clay);
}

/* header, search */
.md-header, .md-header--shadow { box-shadow: none; border-bottom: 1px solid var(--ma-line); }
.md-search__form { background-color: var(--ma-surface-200); border: 1px solid var(--ma-line-strong); border-radius: var(--ma-radius-md); box-shadow: none; }
.md-search__input, .md-search__input::placeholder, .md-search__icon { color: var(--ma-ink-muted); }
.md-search__input { color: var(--ma-ink); }
[data-md-toggle=search]:checked ~ .md-header .md-search__form { border-radius: var(--ma-radius-md) var(--ma-radius-md) 0 0; box-shadow: none; }

/* navigation */
.md-nav__link, .md-nav__title { color: var(--ma-ink-muted); text-decoration: none; }
.md-nav__item .md-nav__link--active { color: var(--ma-ink); background: var(--ma-accent-subtle); border-radius: var(--ma-radius-md); font-weight: 600; }
.md-nav__link:is(:hover, :focus), .md-nav__link--active:hover { color: var(--ma-ink); }
.md-nav__title, .md-nav--primary .md-nav__title, .md-nav--secondary .md-nav__title,
.md-nav--lifted > .md-nav__list > .md-nav__item--active > .md-nav__link, .md-nav__link.md-nav__sticky { box-shadow: none; }

/* content (sizes and layout: styles/layout.css) */
.md-typeset pre > code { border-radius: var(--ma-radius-md); }
.md-typeset kbd { box-shadow: none; border: 1px solid var(--ma-line-strong); border-radius: var(--ma-radius-sm); }
.md-typeset table:not([class]), .md-typeset .md-typeset__table table { box-shadow: none; border-radius: 0; }

/* footer */
.md-footer { border-top: 1px solid var(--ma-line); }
.md-footer-meta { border-top: 1px solid var(--ma-line); }
html .md-footer-meta.md-typeset a { color: var(--ma-accent); text-decoration: underline; }

/* Layout for sphinx-immaterial.
   - Type follows the screen: sizes are relative to the theme's root, which grows at
     1600 px and 2000 px (theme) and 2800 px (here). The measure is in rem tied to the
     text size, so a line keeps ~65 characters at every size.
   - One centred frame on every page: navigation, prose, an optional margin, the table
     of contents. Without notes the contents column moves up beside the prose.
   - Pages with margin notes get a margin column; code, tables and API signatures then
     span prose + margin. Pages without notes stay compact.
   - Margin notes: the build wraps a note with the block before it (div.ma-aside); on wide
     screens the note sits beside that block, on narrow screens below it, in source order.
   - The start page's first paragraph is a lede with a clay band (p.ma-lede).            */

@media screen and (min-width: 175em) { html { font-size: 175%; } }   /* >= 2800 px */

:root {
  --ma-text: .8rem;                         /* body text size (16 px at the theme's 125 % root) */
  --ma-measure: calc(var(--ma-text) * 29);  /* ~65 characters of Source Sans 3 */
  --ma-gap: calc(var(--ma-text) * 2);
  --ma-margin: calc(var(--ma-text) * 14);
  --ma-wide: calc(var(--ma-measure) + var(--ma-gap) + var(--ma-margin));
  --ma-sidebar: 12.1rem;                    /* the theme's sidebar width */
  --ma-inner-pad: 2.4rem;                   /* the theme's content padding, both sides */
}

.md-typeset { font-size: var(--ma-text); line-height: 1.5625; }
.md-typeset .admonition, .md-typeset details { font-size: 1em; }
.md-typeset h1 { color: var(--ma-ink); }
.md-content__inner.md-typeset { max-width: var(--ma-measure); }

@media screen and (min-width: 76.25em) {
  /* One frame width on every page, so navigation, header and search never move between
     pages. Without margin notes the content column is just the prose and the table of
     contents follows right after it; the spare width goes to the end of the row. */
  .md-grid { max-width: calc(2 * var(--ma-sidebar) + var(--ma-inner-pad) + var(--ma-wide)); }
  .md-main__inner { justify-content: flex-start; }
  .md-content { flex: 0 0 calc(var(--ma-inner-pad) + var(--ma-measure)); max-width: none; }

  /* pages with margin notes: the content column grows by the margin */
  body:has(.ma-aside) .md-content { flex-basis: calc(var(--ma-inner-pad) + var(--ma-wide)); }

  /* ... where code, tables and API signatures span prose + margin */
  body:has(.ma-aside) .md-content__inner > div[class^="highlight"],
  body:has(.ma-aside) .md-content__inner > .md-typeset__scrollwrap,
  body:has(.ma-aside) .md-content__inner > table,
  body:has(.ma-aside) .md-content__inner > dl.py > dt {
    width: var(--ma-wide); max-width: none; box-sizing: border-box;
  }

  /* margin notes */
  .md-content__inner > .ma-aside {
    display: grid; grid-template-columns: var(--ma-measure) var(--ma-margin); column-gap: var(--ma-gap);
    align-items: start; width: var(--ma-wide); max-width: none; margin: 0;
  }
  .ma-aside > :first-child { grid-column: 1; margin-top: 0; }
  .ma-aside > .ma-aside-notes { grid-column: 2; display: grid; gap: 1.25em; padding-top: .25em; }
  .ma-aside-notes > .admonition {
    margin: 0 !important; padding: 0 !important; font-size: .875em !important; line-height: 1.5 !important;
    background: transparent !important; border: 0 !important; border-top: 1px solid var(--ma-line) !important;
    border-radius: 0 !important; box-shadow: none !important; overflow: visible;
  }
  .ma-aside-notes > .admonition > .admonition-title {
    margin: 0 0 .25em !important; padding: .5em 0 0 !important; border: 0 !important;
    font-size: .857em !important; letter-spacing: .06em !important; text-transform: uppercase !important;
  }
  .ma-aside-notes > .admonition > :last-child { margin-bottom: 0; }
}

/* narrow screens: the wrapper disappears, the note follows its block as a normal callout */
@media screen and (max-width: 76.1875em) {
  .ma-aside, .ma-aside-notes { display: contents; }
}

/* start page */
.md-content__inner > h1:has(+ .ma-lede) {
  font-size: 2.75em; line-height: 1.0909; letter-spacing: -.01em; margin-bottom: .35em;
}
.md-typeset .ma-lede { font-size: 1.1875em; line-height: 1.4737; color: var(--ma-ink-muted); max-width: 29em; margin-bottom: 1.75em; }
.md-typeset .ma-lede::after {
  content: ""; display: block; width: var(--ma-measure); max-width: 100%; height: 3px; margin-top: 1.1em; background: var(--ma-clay);
}
@media screen and (min-width: 76.25em) {
  body:has(.ma-aside) .md-typeset .ma-lede::after { width: var(--ma-wide); }
}
