.roost,
html:not(.js) {
  color-scheme: light dark;
  background-color: var(--roost-charcoal);

  --roost-gray: rgb(187 193 190);
  --roost-charcoal: hsl(80, 22%, 13%);
  --roost-yellow: rgb(238 238 0);
  --roost-peach: rgb(247 187 128);
  --roost-muddy: rgb(229 217 136);

  --color-scheme: light;
  --bg: rgba(250 250 250);
  --fg: var(--roost-charcoal);
  --sidebar-header-border-color: oklch(from var(--roost-yellow) calc(l * 0.95) c h);
  --sidebar-resize-indicator-space: 0px;
  --sidebar-bg: var(--roost-charcoal);
  --sidebar-fg: rgba(255 255 255 / 0.9);
  --sidebar-non-existant: #5c6773;
  --sidebar-active: var(--roost-muddy);
  --sidebar-spacer: var(--roost-muddy);

  --icons: white;
  --icons-hover: var(--roost-yellow);
  --links: inherit;

  --theme-popup-bg: var(--bg);
  --theme-popup-border: color-mix(var(--fg) 15%, transparent);
  --theme-hover: color-mix(var(--fg) 4%, transparent);

  --quote-bg: color-mix(var(--fg) 3%, transparent);
  --quote-border: color-mix(var(--fg) 10%, transparent);

  --searchbar-bg: color-mix(var(--fg) 3%, transparent);
  --searchbar-fg: inherit;
  --searchbar-border-color: color-mix(var(--fg) 10%, transparent);
  --searchbar-shadow-color: var(--roost-peach);
  --searchbar-margin-block-start: 2em;

  --warning-border: color-mix(orange, var(--fg));

  --table-border-color: color-mix(var(--fg) 7%, var(--bg));
  --table-header-bg: color-mix(var(--fg) 10%, var(--bg));
  --table-alternate-bg: color-mix(var(--fg) 3%, var(--bg));

  --scrollbar: color-mix(var(--fg), transparent);

  --inline-code-color: inherit;

  --searchresults-header-fg: color-mix(var(--roost-peach) 75%, var(--fg));
  --searchresults-border-color: color-mix(var(--fg), transparent);
  --searchresults-li-bg: color-mix(var(--roost-yellow) 20%, transparent);
  --search-mark-bg: color-mix(var(--roost-yellow), transparent);
  --footnote-highlight: var(--search-mark-bg);

  --copy-button-filter: none;
  --copy-button-filter-hover: invert(20%);

  --blockquote-note-color: color-mix(blue, var(--fg));
  --blockquote-tip-color: color-mix(lime, var(--fg));
  --blockquote-important-color: color-mix(fuchsia, var(--fg));
  --blockquote-warning-color: var(--warning-border);
  --blockquote-caution-color: color-mix(red, var(--fg));

  --overlay-bg: color-mix(var(--fg), transparent);
}

html:not(.js) {
  --sidebar-resize-indicator-width: 0px;
}

@media (prefers-color-scheme: dark) {
  .roost,
  html:not(.js) {
    --color-scheme: dark;
    --bg: color-mix(var(--roost-charcoal) 90%, black);
    --fg: rgba(255 255 255 / 0.9);
    --copy-button-filter: invert(80%);
    --copy-button-filter-hover: invert(100%);
  }
}

/* Theme overrides */

.roost body {
  background-color: var(--bg);
  min-height: calc(100vh + var(--menu-bar-height));
}

.roost #mdbook-menu-bar {
  background-color: var(--roost-charcoal);
  border: none;
  box-shadow: 0 0.25em 1em rgba(0 0 0 / 0.25);
}

.roost #mdbook-theme-toggle {
  x-display: none;
}

.roost #mdbook-searchbar {
  border-radius: 999px;
  transition: none;
}

.roost #mdbook-searchbar:focus-visible {
  outline: 1px solid color-mix(var(--searchbar-shadow-color), transparent);
}

.roost ul#mdbook-searchresults li {
  margin-block: 1.25em;
}

.roost #mdbook-sidebar {
  z-index: 102;
}

.roost #mdbook-sidebar-resize-handle {
  background-color: var(--sidebar-bg);
}

.roost :not(pre):not(a) > .hljs {
  background: color-mix(var(--fg) 10%, transparent);
}

.roost .nav-wide-wrapper {
  --icons: color-mix(var(--fg) 25%, transparent);
  --icons-hover: var(--fg);
}

.roost .content {
  padding: 2em 1em 1em;
}

.roost .content a {
  font-weight: bold;
  text-decoration: underline;
}

.roost a:link.mobile-nav-chapters {
  color: var(--roost-yellow);
}

