/* Brutalism 2.0 (ADR 0007) for the docs: the dashboard's tokens on MkDocs Material. Monochrome, square,
   1px frames; Archivo headlines, JetBrains Mono labels. Fonts ship with the site. */

@font-face {
  font-family: "Archivo";
  src: url("../assets/fonts/archivo.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("../assets/fonts/jetbrains-mono.woff2") format("woff2-variations");
  font-weight: 100 800;
  font-display: swap;
}

:root {
  --md-text-font: "Archivo";
  --md-code-font: "JetBrains Mono";
}

[data-md-color-scheme="default"] {
  --paper: #f3f1eb; --surface: #faf9f5; --sunken: #ebe8e0; --ink: #0b0b0a; --ink-2: #45443f;
  --muted: #67655f; --line: #d6d3ca; --frame: #0b0b0a; --on-ink: #f3f1eb; --alert: #a8372b;
  --banked: #2f6b3a; --building: #855600;
}
[data-md-color-scheme="slate"] {
  --paper: #0d0d0c; --surface: #151514; --sunken: #1d1d1b; --ink: #eceae4; --ink-2: #b9b7b0;
  --muted: #8f8d87; --line: #2e2d2a; --frame: #4a4945; --on-ink: #0d0d0c; --alert: #e2705f;
  --banked: #6cc07e; --building: #e3a53c;
}
[data-md-color-scheme="default"], [data-md-color-scheme="slate"] {
  --md-default-bg-color: var(--paper);
  --md-default-fg-color: var(--ink);
  --md-default-fg-color--light: var(--ink-2);
  --md-default-fg-color--lighter: var(--muted);
  --md-default-fg-color--lightest: var(--line);
  --md-primary-fg-color: var(--paper);
  --md-primary-bg-color: var(--ink);
  --md-primary-bg-color--light: var(--ink-2);
  --md-accent-fg-color: var(--ink);
  --md-accent-fg-color--transparent: var(--sunken);
  --md-typeset-color: var(--ink);
  --md-typeset-a-color: var(--ink);
  --md-code-bg-color: var(--sunken);
  --md-code-fg-color: var(--ink);
  --md-footer-bg-color: var(--paper);
  --md-footer-bg-color--dark: var(--paper);
  --md-footer-fg-color: var(--ink);
  --md-footer-fg-color--light: var(--ink-2);
  --md-footer-fg-color--lighter: var(--muted);
  --md-admonition-bg-color: var(--surface);
  --md-admonition-fg-color: var(--ink);
  --md-typeset-table-color: var(--line);
  --md-shadow-z1: none; --md-shadow-z2: none; --md-shadow-z3: none;
}

/* Square everything. */
.md-typeset *, .md-search__form, .md-search__output, .md-search__scrollwrap, .md-clipboard, .md-top,
.md-typeset code, .md-typeset pre, .md-typeset .admonition, .md-typeset details, .md-typeset .md-button,
.md-typeset kbd, .md-typeset table:not([class]) { border-radius: 0 !important; }

/* Header and tabs: paper, a 1px frame below, ink type. */
.md-header { border-bottom: 1px solid var(--frame); box-shadow: none; }
.md-header__title { font-stretch: 68%; font-weight: 700; font-size: 1.15rem; text-transform: uppercase;
                    letter-spacing: -0.01em; }
.md-header__button.md-logo img { height: 1.5rem; }
.md-tabs { background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--frame); }
.md-tabs__link { font-family: var(--md-code-font); font-size: 0.62rem; letter-spacing: 0.12em;
                 text-transform: uppercase; opacity: 0.75; }
.md-tabs__item--active .md-tabs__link, .md-tabs__link:hover { opacity: 1; text-decoration: underline;
                                                               text-underline-offset: 6px; }
.md-search__form { background: var(--surface); border: 1px solid var(--frame); }
.md-search__input { color: var(--ink); }
.md-search__input::placeholder { color: var(--muted); }
.md-search__icon { color: var(--ink); }

/* Sidebar: mono section labels, the active page inverted like the dashboard's nav. */
.md-nav__title, .md-nav__item--section > .md-nav__link {
  font-family: var(--md-code-font); font-size: 0.6rem; font-weight: 500; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--muted);
}
.md-nav__link--active { background: var(--ink); color: var(--on-ink) !important; padding: 0.15rem 0.4rem;
                        margin-left: -0.4rem; }
.md-nav__link:hover { color: var(--ink); text-decoration: underline; }

/* Type. */
.md-typeset { font-size: 0.86rem; line-height: 1.65; }
.md-typeset h1, .md-typeset h2, .md-typeset h3 {
  font-stretch: 68%; font-weight: 700; letter-spacing: -0.01em; color: var(--ink);
}
.md-typeset h1 { font-size: 2.6rem; line-height: 0.95; margin-bottom: 1.2rem; }
.md-typeset h2 { font-size: 1.6rem; line-height: 1; margin-top: 2.2rem; padding-top: 1rem;
                 border-top: 1px solid var(--frame); }
.md-typeset h3 { font-size: 1.15rem; }
.md-typeset a, .md-typeset a:visited { color: var(--ink); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.md-typeset a:hover { text-decoration-color: var(--ink); color: var(--ink); }
.md-typeset .headerlink { text-decoration: none; color: var(--muted); }
.md-typeset .eyebrow { font-family: var(--md-code-font); font-size: 0.6rem; font-weight: 500;
                       letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin: 0 0 0.4rem; }
.md-typeset code { padding: 0.05em 0.35em; }
.md-typeset pre > code { border: 1px solid var(--frame); }
.md-typeset kbd { background: var(--surface); border: 1px solid var(--frame); box-shadow: none; color: var(--ink); }

/* Frames: tables, admonitions, images, buttons. */
.md-typeset table:not([class]) { border: 1px solid var(--frame); font-size: 0.78rem; }
.md-typeset table:not([class]) th { background: var(--sunken); font-family: var(--md-code-font);
  font-size: 0.6rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; }
.md-typeset .admonition, .md-typeset details { border: 1px solid var(--frame); border-left-width: 4px;
                                               box-shadow: none; font-size: 0.82rem; }
.md-typeset .admonition-title, .md-typeset summary { background: var(--sunken) !important;
  font-family: var(--md-code-font); font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; }
.md-typeset .admonition-title::before, .md-typeset summary::before { background-color: var(--ink) !important; }
.md-typeset .admonition, .md-typeset details,
.md-typeset .admonition.note, .md-typeset .admonition.tip, .md-typeset .admonition.info,
.md-typeset .admonition.example, .md-typeset .admonition.question { border-color: var(--frame); }
.md-typeset .admonition.warning, .md-typeset .admonition.danger { border-color: var(--alert); }
.md-typeset .admonition.warning > .admonition-title::before,
.md-typeset .admonition.danger > .admonition-title::before { background-color: var(--alert) !important; }
.md-typeset img { border: 1px solid var(--frame); }
.md-typeset .md-button { border: 1px solid var(--frame); color: var(--ink); font-family: var(--md-code-font);
  font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.6em 1.2em; }
.md-typeset .md-button--primary { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.md-typeset .md-button:hover { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }

/* The home page's cards. */
.md-typeset .grid.cards > ul > li { border: 1px solid var(--frame) !important; box-shadow: none !important; }
.md-typeset .grid.cards > ul > li:hover { background: var(--surface); }
.md-typeset .grid.cards .twemoji { color: var(--ink); }

/* Footer. */
.md-footer { border-top: 1px solid var(--frame); }
.md-footer-meta { background: var(--paper); border-top: 1px solid var(--line); }
.md-copyright { font-family: var(--md-code-font); font-size: 0.56rem; color: var(--muted); }

/* Tool and setting names in tables stay on one line. */
.md-typeset table:not([class]) td code { white-space: nowrap; }
