/* Field Guide: shared editorial tokens for landing and documentation pages. */
:root, [data-md-color-scheme="default"], [data-md-color-scheme="slate"] {
  --fg-paper: #f7f5ef;
  --fg-surface: #fffdf8;
  --fg-ink: #202824;
  --fg-muted: #59665f;
  --fg-teal: #176b61;
  --fg-line: #d5dbd3;
  --fg-soft: #e8eee8;
  --fg-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --md-primary-fg-color: var(--fg-paper);
  --md-primary-fg-color--light: var(--fg-surface);
  --md-primary-fg-color--dark: var(--fg-paper);
  --md-primary-bg-color: var(--fg-ink);
  --md-primary-bg-color--light: var(--fg-muted);
  --md-default-bg-color: var(--fg-paper);
  --md-default-fg-color: var(--fg-ink);
  --md-default-fg-color--light: var(--fg-muted);
  --md-default-fg-color--lighter: var(--fg-muted);
  --md-default-fg-color--lightest: var(--fg-line);
  --md-accent-fg-color: var(--fg-teal);
  --md-accent-fg-color--transparent: #176b6114;
  --md-typeset-a-color: var(--fg-teal);
  --md-code-bg-color: var(--fg-soft);
  --md-code-fg-color: var(--fg-ink);
  --md-code-hl-keyword-color: #315da8;
  --md-code-hl-string-color: var(--fg-teal);
  --md-code-hl-number-color: #b52b2b;
  --md-code-hl-special-color: #6650bc;
  --md-code-hl-function-color: #6650bc;
  --md-code-hl-constant-color: #6650bc;
  --md-code-hl-comment-color: var(--fg-muted);
  --md-footer-bg-color: var(--fg-soft);
  --md-footer-fg-color: var(--fg-ink);
  --md-footer-fg-color--light: var(--fg-muted);
  --md-footer-fg-color--lighter: var(--fg-muted);
}
[data-md-color-scheme="slate"] {
  --fg-paper: #18211e;
  --fg-surface: #202b26;
  --fg-ink: #eceee6;
  --fg-muted: #b3bfb6;
  --fg-teal: #85c7b6;
  --fg-line: #3e4d44;
  --fg-soft: #26352d;
  --md-hue: 150;
  --md-accent-fg-color--transparent: #85c7b614;
  --md-code-hl-color: #85c7b622;
  --md-code-hl-keyword-color: #9ebdf3;
  --md-code-hl-number-color: #ffa095;
  --md-code-hl-special-color: #c0afff;
  --md-code-hl-function-color: #c0afff;
  --md-code-hl-constant-color: #c0afff;
}
html { scroll-padding-top: 7rem; }
.md-grid { max-width: 76rem; }
.md-header { box-shadow: none; border-bottom: 1px solid var(--fg-line); }
.md-header__title { font-weight: 600; }
.md-tabs { background: var(--fg-paper); color: var(--fg-ink); border-bottom: 1px solid var(--fg-line); }
.md-tabs__link { opacity: 1; font-size: .72rem; }
.md-tabs__link--active { color: var(--fg-teal); text-decoration: underline; text-underline-offset: .5rem; }
.md-search__form { border: 1px solid var(--fg-line); border-radius: 4px; background: var(--fg-soft); }
.md-search__input::placeholder { color: var(--fg-muted); }
.md-content { min-width: 0; }
.md-content__inner { width: calc(100% - 1.6rem); max-width: 72ch; margin-right: auto; margin-left: auto; padding-bottom: 2rem; }
.md-content__inner:has(.fg-home) { max-width: none; }
.md-typeset { font-size: .85rem; line-height: 1.75; }
.md-typeset h1, .md-typeset h2 { font-family: var(--fg-display); color: var(--fg-ink); font-weight: 500; letter-spacing: -.025em; }
.md-typeset h1 { font-size: 2.15em; line-height: 1.2; margin-bottom: .8em; }
.md-typeset h2 { font-size: 1.5em; line-height: 1.3; padding-top: .6rem; border-top: 1px solid var(--fg-line); }
.md-typeset h3, .md-typeset h4 { font-weight: 600; }
.md-typeset a { text-decoration: underline; text-underline-offset: .16em; }
.md-typeset a.headerlink, .md-typeset a.md-content__button { text-decoration: none; }
.md-typeset code { border-radius: 3px; }
.md-typeset pre > code { border: 1px solid var(--fg-line); border-radius: 4px; }
.md-code__button { color: var(--fg-muted); }
.md-typeset .admonition, .md-typeset details { border-radius: 4px; box-shadow: none; font-size: .78rem; }
.md-typeset table:not([class]) { font-size: .74rem; border-color: var(--fg-line); }
.md-typeset table:not([class]) th { background: var(--fg-soft); }
.md-typeset table:not([class]) td { min-width: 6rem; }
.md-typeset .md-button { border-radius: 3px; border-width: 1px; }
.md-typeset .md-button--primary { color: var(--fg-paper); background: var(--fg-teal); border-color: var(--fg-teal); }
.md-nav { font-size: .7rem; }
.md-nav__link { padding-block: .12rem; }
.md-nav__link--active { font-weight: 700; }
.doc-heading, .md-typeset h1 code, .md-typeset h2 code { font-family: var(--md-code-font, monospace); }
.md-typeset .doc-heading { font-size: 1em; letter-spacing: 0; scroll-margin-top: 7rem; overflow-wrap: anywhere; }
.doc-contents { border-left: 1px solid var(--fg-line); padding-left: .9rem; }
.md-footer-meta { background: var(--fg-paper); border-top: 1px solid var(--fg-line); }
:where(a, button, input, summary, [tabindex]):focus-visible { outline: 2px solid var(--fg-teal); outline-offset: 4px; }

/* The home template stays in Material's native content region and skip-link flow. */
.fg-home { max-width: 62rem; margin-inline: auto; padding: 2.5rem 1.5rem 3rem; color: var(--fg-ink); }
.fg-home p { line-height: 1.7; }
.fg-eyebrow, .fg-label { font-family: var(--md-code-font, monospace); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-teal); }
.fg-eyebrow { display: flex; gap: .65rem; align-items: center; margin: 0 0 1.5rem; }
.fg-rule { display: inline-block; width: 2rem; height: 1px; background: var(--fg-teal); }
.fg-intro { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
.fg-home h1 { font-family: var(--fg-display); font-size: clamp(2.2rem, 4vw, 3.5rem); font-weight: 500; line-height: 1.1; letter-spacing: -.04em; max-width: 15ch; margin: 0 0 1.2rem; }
.fg-deck { font-size: .95rem; max-width: 54ch; color: var(--fg-muted); margin-bottom: 1.75rem; }
.fg-index { border-top: 2px solid var(--fg-teal); padding-top: 1rem; }
.fg-index ol { margin: 0; padding: 0; list-style: none; }
.fg-index li { display: flex; gap: .8rem; border-bottom: 1px solid var(--fg-line); padding-block: .65rem; font-size: .78rem; }
.fg-index a { color: var(--fg-ink); text-decoration: none; }
.fg-index a:hover { color: var(--fg-teal); text-decoration: underline; }
.fg-number { font-family: var(--md-code-font, monospace); font-size: .66rem; color: var(--fg-teal); }
.fg-paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--fg-line); border-bottom: 1px solid var(--fg-line); margin-top: 1.5rem; }
.fg-path { display: block; padding: 1.4rem 1.4rem 1.4rem 0; color: var(--fg-ink); }
.fg-path + .fg-path { padding-left: 1.4rem; border-left: 1px solid var(--fg-line); }
.fg-path__title { display: flex; justify-content: space-between; align-items: center; gap: .8rem; font-family: var(--fg-display); font-size: 1.3rem; margin-bottom: .5rem; }
.fg-path__copy { display: block; color: var(--fg-muted); font-size: .8rem; line-height: 1.7; max-width: 44ch; }
.fg-path:hover .fg-path__title { color: var(--fg-teal); }
.md-typeset .fg-path, .md-typeset .fg-task { color: var(--fg-ink); text-decoration: none; }
.fg-section { padding-top: 2.5rem; scroll-margin-top: 7rem; }
.fg-section__head { display: grid; grid-template-columns: 3rem 1fr; align-items: baseline; gap: 1rem; margin-bottom: 1.2rem; }
.fg-home h2 { font-family: var(--fg-display); font-size: 1.65rem; line-height: 1.3; font-weight: 500; letter-spacing: -.025em; margin: 0; }
.fg-task { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) 1.2rem; gap: 1.4rem; align-items: baseline; padding: 1rem 0; border-top: 1px solid var(--fg-line); color: var(--fg-ink); }
.fg-task:last-child { border-bottom: 1px solid var(--fg-line); }
.fg-task strong { font-size: .85rem; font-weight: 600; }
.fg-task span { font-size: .78rem; color: var(--fg-muted); line-height: 1.7; }
.fg-task:hover strong { color: var(--fg-teal); text-decoration: underline; text-underline-offset: .2em; }
.fg-sources { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.fg-sources h3 { font-weight: 600; font-size: .88rem; margin: 0 0 .5rem; }
.fg-sources p, .fg-note p { font-size: .8rem; color: var(--fg-muted); }
.fg-note { background: var(--fg-soft); padding: 1.3rem 1.5rem; border-left: 2px solid var(--fg-teal); margin-top: 1.3rem; }
.fg-note h3 { font-size: .85rem; margin: 0; font-weight: 600; }
.fg-note p { margin-bottom: 0; }
.fg-home a.fg-inline { color: var(--fg-teal); text-decoration: underline; text-underline-offset: .2em; }
.fg-colophon { border-top: 1px solid var(--fg-line); margin-top: 2.5rem; padding-top: 1rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: .7rem; color: var(--fg-muted); }
.fg-colophon nav { display: flex; flex-wrap: wrap; gap: 1.1rem; }
@media (max-width: 76.1875em) { .md-nav--primary .md-nav__title[for="__drawer"] { color: var(--fg-ink); } }
@media (max-width: 960px) { .fg-intro { grid-template-columns: 1fr; gap: 1.5rem; } .fg-index { display: none; } }
@media (max-width: 600px) {
  .fg-home { padding: 1.5rem .8rem 2rem; }
  .fg-home h1 { font-size: 2.1rem; }
  .fg-paths, .fg-sources { grid-template-columns: 1fr; }
  .fg-path + .fg-path { border-left: 0; border-top: 1px solid var(--fg-line); padding-left: 0; }
  .fg-task { grid-template-columns: minmax(0, 1fr) 1rem; gap: .4rem .8rem; }
  .fg-task span { grid-row: 2; }
  .fg-task b { grid-column: 2; grid-row: 1; }
  .fg-section__head { grid-template-columns: 1.8rem 1fr; gap: .4rem; }
  .fg-home h2 { font-size: 1.4rem; }
  .fg-sources { gap: 1rem; }
  .md-typeset { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; } }
