@import url("research-palette.css");

html[data-theme="dark"] {
  --page: #1e221d;
  --panel: #2a3027;
  --ink: #e8ebe1;
  --muted: #b5beb0;
  --accent: #b6cba9;
  --rule: #465044;
}

/* Feed the reading palette into the existing navigation and evidence controls. */
html[data-theme] {
  --pst-color-background: var(--page);
  --pst-color-on-background: var(--page);
  --pst-color-surface: var(--panel);
  --pst-color-on-surface: var(--ink);
  --pst-color-text-base: var(--ink);
  --pst-color-text-muted: var(--muted);
  --pst-color-heading: var(--ink);
  --pst-color-primary: var(--accent);
  --pst-color-primary-bg: var(--panel);
  --pst-color-secondary: var(--accent);
  --pst-color-link: var(--accent);
  --pst-color-link-hover: var(--ink);
  --pst-color-link-higher-contrast: var(--accent);
  --pst-color-border: var(--rule);
  --pst-color-border-muted: var(--rule);
  --pst-color-table: var(--ink);
  --pst-color-table-inner-border: var(--rule);
  --pst-color-table-outer-border: var(--rule);
  --pst-color-table-row-hover-bg: var(--panel);
  --pst-color-blockquote-notch: var(--rule);
  --pst-color-inline-code: var(--accent);
  --pst-color-target: var(--panel);
  --bs-body-bg: var(--page);
  --bs-body-color: var(--ink);
}

body {
  background: var(--page);
  color: var(--ink);
  font: 16px/1.95 var(--sans);
  -webkit-font-smoothing: antialiased;
}

::selection { background: var(--panel); color: var(--ink); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

.bd-header .navbar-brand .title {
  color: var(--ink);
  font: 600 25px/1.4 var(--serif);
  letter-spacing: normal;
}

.bd-header__inner, .bd-container__inner { max-width: 1440px; margin-inline: auto; }
.bd-header .navbar-nav .nav-link, .bd-sidebar { font-size: 14px; }

.bd-main .bd-content .bd-article-container {
  max-width: 1020px;
  min-width: 0;
  padding: 24px clamp(22px, 3vw, 40px) 40px;
}

.bd-article h1 {
  margin: 22px 0 26px;
  font: 400 clamp(32px, 4.2vw, 52px)/1.42 var(--serif);
  letter-spacing: -.025em;
  text-wrap: pretty;
}

.bd-article h2 {
  margin-block: 40px 16px;
  padding-top: 22px;
  border-top: 1px solid var(--rule);
  font: 600 26px/1.55 var(--sans);
  letter-spacing: normal;
}

.bd-article h3 { font: 600 21px/1.55 var(--sans); letter-spacing: normal; }
.bd-article :is(p, li) { line-height: 1.95; }
.bd-article :is(p, ul, ol, blockquote) { max-width: 72ch; }
.bd-article :is(h1, h2, h3, h4, p, li, td, th) { overflow-wrap: anywhere; }
.bd-article code.literal,
.bd-article code.literal .pre { white-space: normal; overflow-wrap: anywhere; }
.bd-article a { text-decoration-thickness: 1px; text-underline-offset: .22em; }
.bd-article :is(img, video) { max-width: 100%; }
.bd-article .highlight pre { max-width: 100%; overflow-x: auto; }
.bd-article :is(details, .admonition, .sd-card) { border-radius: 0; box-shadow: none; }
.bd-article details { border-block: 1px solid var(--rule); padding-block: 12px; }
.bd-article summary { color: var(--accent); }
.bd-article .table-wrapper { max-width: 100%; overflow-x: auto; }

@media (min-width: 960px) {
  .bd-sidebar-primary:not(.pst-squeeze) { --pst-sidebar-primary-width: clamp(190px, 19vw, 250px); }
}

@media (max-width: 700px) {
  .bd-main .bd-content .bd-article-container { padding: 12px 20px 40px; }
  .bd-article h1 { font-size: clamp(28px, 8.7vw, 34px); line-height: 1.48; }
  .bd-article h2 { font-size: 24px; }
}
