/* Lex palette + typography */
@import url("https://fonts.googleapis.com/css2?family=Merriweather:wght@400;500;700&display=swap");

:root {
  --warm-bg: #292524;
  --warm-surface: #463a2f;
  --warm-surface-strong: #3f342a;
  --warm-code-bg: #332d28;
  --warm-border: #665340;
  --warm-border-strong: #7b6149;
  --warm-text: #f4e9d7;
  --warm-text-muted: #d5c2a6;
  --warm-text-subtle: #b79e81;
  --warm-gold: #c78d3b;
  --warm-gold-soft: #ddb06d;

  --bs-body-color: var(--warm-text);
  --bs-body-bg: var(--warm-bg);
  --bs-border-color: var(--warm-border);
  --bs-link-color: var(--warm-gold-soft);
  --bs-link-hover-color: var(--warm-gold);
  --bs-emphasis-color: var(--warm-text);
}

html {
  font-size: 92%;
}

body {
  background-color: var(--warm-bg);
  color: var(--warm-text);
  font-family: "Merriweather", "Times New Roman", serif;
  font-size: 1rem;
  line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--warm-text);
}

p,
li,
dt,
dd {
  color: var(--warm-text);
}

figcaption,
.figure-caption,
.quarto-figure figcaption {
  color: var(--warm-text-muted) !important;
}

a,
.nav-link {
  color: var(--warm-gold-soft);
}

.navbar-brand {
  color: var(--warm-text);
}

.navbar .nav-link,
.navbar .nav-link i,
.navbar .menu-text {
  color: var(--warm-text);
}

a:hover,
.nav-link:hover,
.navbar-brand:hover {
  color: var(--warm-gold);
}

.navbar,
#quarto-header {
  background-color: transparent !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

body.nav-fixed #title-block-header.quarto-title-block {
  margin-top: -82px;
}

body.nav-fixed #title-block-header .quarto-title-banner {
  padding-top: 5.5rem;
}

.navbar .navbar-nav .nav-link.active,
.navbar .navbar-nav .show > .nav-link {
  color: var(--warm-text);
}

.nav-link.active,
#TOC .nav-link.active {
  color: var(--warm-gold) !important;
}

#TOC .nav-link,
#TOC ul > li > a {
  border-left-color: transparent !important;
}

#TOC .nav-link.active,
#TOC ul > li > a.active {
  border-left-color: var(--warm-gold) !important;
}

.quarto-title-banner {
  background-image: url("media/banner.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--warm-text);
  z-index: 0;
}

.quarto-title-banner .title,
#title-block-header .title,
#title-block-header .subtitle,
#title-block-header .quarto-title-meta-heading,
#title-block-header .quarto-title-meta-contents,
#title-block-header .quarto-title-meta-contents p,
#title-block-header .quarto-category,
#title-block-header .quarto-title .quarto-categories .quarto-category {
  color: var(--warm-text) !important;
}

#title-block-header .quarto-title-meta {
  border-top: 1px solid var(--warm-border);
  color: var(--warm-text-muted);
}

#title-block-header .quarto-title-meta-heading {
  color: var(--warm-text-subtle) !important;
}

#title-block-header .quarto-category {
  background-color: rgba(199, 141, 59, 0.15);
  border: 1px solid rgba(199, 141, 59, 0.45);
}

.quarto-listing .listing-title a,
.quarto-listing .listing-description,
.quarto-listing .listing-description a,
.quarto-listing .listing-subtitle,
.quarto-listing .listing-subtitle a,
.quarto-listing .listing-author,
.quarto-listing .listing-date,
.quarto-listing .metadata,
.quarto-listing .body {
  color: var(--warm-text) !important;
}

.quarto-listing .listing-category {
  color: var(--warm-text) !important;
  background-color: rgba(199, 141, 59, 0.15);
  border: 1px solid rgba(199, 141, 59, 0.45);
  border-radius: 999px;
  padding: 0.2rem 0.6rem;
}

.quarto-listing .quarto-post.image-right {
  padding-block: 0.35rem;
}

.quarto-listing .quarto-post.image-right + .quarto-post.image-right {
  margin-top: 0.9rem;
}

.sidebar,
#TOC,
.toc-active,
.quarto-margin-sidebar {
  background-color: var(--warm-bg);
  border-color: var(--warm-border);
}

pre,
code,
.sourceCode,
div.sourceCode {
  background-color: var(--warm-code-bg) !important;
  border-color: var(--warm-border) !important;
  color: var(--warm-text-muted) !important;
}

blockquote {
  border-left: 4px solid var(--warm-border-strong);
  color: var(--warm-text-muted);
}

table,
th,
td {
  border-color: var(--warm-border) !important;
}

th {
  color: var(--warm-text-muted);
}

td {
  color: var(--warm-text);
}

/* Vega / Altair hover tooltips */
#vg-tooltip-element,
.vg-tooltip {
  background: var(--warm-surface-strong) !important;
  border: 1px solid var(--warm-border-strong) !important;
  box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.35) !important;
  color: var(--warm-text) !important;
  font-family: "Merriweather", "Times New Roman", serif !important;
}

#vg-tooltip-element table,
.vg-tooltip table,
#vg-tooltip-element tr,
.vg-tooltip tr,
#vg-tooltip-element td,
.vg-tooltip td,
#vg-tooltip-element th,
.vg-tooltip th {
  background: transparent !important;
  border-color: var(--warm-border) !important;
  color: var(--warm-text) !important;
}

#vg-tooltip-element .key,
.vg-tooltip .key,
#vg-tooltip-element th {
  color: var(--warm-text-muted) !important;
  font-weight: 600 !important;
}

#vg-tooltip-element .value,
.vg-tooltip .value,
#vg-tooltip-element td {
  color: var(--warm-text) !important;
}

.btn,
.btn-primary,
.btn-secondary {
  background-color: var(--warm-surface);
  border-color: var(--warm-border-strong);
  color: var(--warm-text);
}

.btn:hover,
.btn-primary:hover,
.btn-secondary:hover {
  background-color: var(--warm-surface-strong);
  border-color: var(--warm-border-strong);
  color: var(--warm-text);
}

hr,
.quarto-listing-border,
.table,
.table > :not(caption) > * > * {
  border-color: var(--warm-border) !important;
}

.footnotes,
#quarto-appendix.default {
  background-color: var(--warm-bg);
  color: var(--warm-text);
  border-top: 1px solid var(--warm-border);
}

.footnotes {
  padding-top: 1em;
}

#quarto-appendix.default {
  padding-top: 1.5em;
  margin-top: 2em;
  z-index: 998;
}

/* Mermaid diagram colors */
:root {
  --mermaid-label-fg-color: var(--warm-text);
  --mermaid-edge-color: var(--warm-text);
  --mermaid-label-bg-color: var(--warm-bg);
  --mermaid-fg-color: var(--warm-text);
  --mermaid-font-family: "Merriweather", "Times New Roman", serif;
}

.mermaid .edgePath .path,
.mermaid path.flowchart-link,
.mermaid .flowchart-link,
.mermaid .messageLine0,
.mermaid .messageLine1,
.mermaid .loopLine {
  stroke: var(--warm-text) !important;
}

.mermaid .edge-thickness-normal,
.mermaid .edge-thickness-thick {
  stroke: var(--warm-text) !important;
}

.mermaid .edge-thickness-normal {
  stroke-width: 2.5px !important;
}

.mermaid .edge-thickness-thick {
  stroke-width: 4px !important;
}

.mermaid .marker,
.mermaid .arrowheadPath,
.mermaid marker path {
  fill: var(--warm-text) !important;
}

.mermaid .edgeLabel,
.mermaid .edgeLabel .label,
.mermaid .edgeLabel div,
.mermaid .edgeLabel span,
.mermaid .edgeLabel p,
.mermaid .messageText,
.mermaid .label {
  color: var(--warm-text) !important;
  fill: var(--warm-text) !important;
  background-color: transparent !important;
}

.mermaid .edgeLabel rect,
.mermaid .label-container,
.mermaid .labelBkg {
  fill: var(--warm-bg) !important;
  stroke: var(--warm-border) !important;
}

/* Mermaid subgraph readability */
.mermaid svg g.cluster > rect,
.mermaid svg .cluster rect,
.mermaid svg rect[class*="cluster"] {
  fill: transparent !important;
  fill-opacity: 0 !important;
  stroke: var(--warm-border) !important;
  stroke-opacity: 0.8 !important;
}

.mermaid svg g.cluster foreignObject,
.mermaid svg g.cluster foreignObject div,
.mermaid svg g.cluster .label-container {
  background: transparent !important;
  fill: transparent !important;
}

.mermaid svg .cluster .label,
.mermaid svg .cluster-label text,
.mermaid svg .cluster .label text {
  fill: var(--warm-text) !important;
  color: var(--warm-text) !important;
}

#quarto-search .aa-DetachedSearchButton {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--warm-text) !important;
}

#quarto-search .aa-DetachedSearchButton:hover {
  background-color: transparent !important;
  border: none !important;
  color: var(--warm-text) !important;
}

#quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,
#quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder,
#quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonQuery {
  color: var(--warm-text-muted) !important;
}

#quarto-search-results .aa-DetachedOverlay {
  background: rgba(22, 18, 15, 0.82) !important;
}

#quarto-search-results .aa-DetachedContainer,
#quarto-search-results .aa-Panel,
#quarto-search-results .aa-PanelLayout,
#quarto-search-results .aa-Source,
#quarto-search-results .aa-List,
#quarto-search-results .aa-DetachedFormContainer,
#quarto-search-results .aa-DetachedSearchButton {
  background-color: var(--warm-surface) !important;
  color: var(--warm-text) !important;
  border-color: var(--warm-border) !important;
}

#quarto-search-results .aa-DetachedContainer {
  border: 1px solid var(--warm-border-strong) !important;
}

#quarto-search-results .aa-Form {
  background-color: var(--warm-surface-strong) !important;
  border: 1px solid var(--warm-border-strong) !important;
  border-radius: 0.6rem !important;
}

#quarto-search-results .aa-InputWrapperPrefix,
#quarto-search-results .aa-InputWrapper,
#quarto-search-results .aa-InputWrapperSuffix,
#quarto-search-results .aa-Label,
#quarto-search-results .aa-SourceHeader,
#quarto-search-results .aa-SourceHeaderTitle,
#quarto-search-results .aa-SourceFooter {
  color: var(--warm-text-muted) !important;
}

#quarto-search-results .aa-Input,
#quarto-search-results .aa-Input::placeholder {
  color: var(--warm-text-muted) !important;
}

#quarto-search-results .aa-Input:focus {
  color: var(--warm-text) !important;
}

#quarto-search-results .aa-SubmitIcon,
#quarto-search-results .aa-ClearIcon,
#quarto-search-results .aa-LoadingIcon,
#quarto-search-results .aa-DetachedCancelButton,
#quarto-search-results .aa-CopyButton {
  color: var(--warm-text-subtle) !important;
}

#quarto-search-results .aa-SubmitButton,
#quarto-search-results .aa-ClearButton,
#quarto-search-results .aa-CopyButton,
#quarto-search-results .aa-DetachedCancelButton {
  background: transparent !important;
  border: none !important;
}

#quarto-search-results .aa-DetachedCancelButton:hover,
#quarto-search-results .aa-CopyButton:hover,
#quarto-search-results .aa-ClearButton:hover,
#quarto-search-results .aa-SubmitButton:hover {
  color: var(--warm-gold-soft) !important;
}

#quarto-search-results .search-result-header,
#quarto-search-results .search-result-header-no-results,
#quarto-search-results .search-result-title,
#quarto-search-results .search-result-section,
#quarto-search-results .search-result-text,
#quarto-search-results .search-result-crumbs,
#quarto-search-results .quarto-search-no-results {
  color: var(--warm-text) !important;
}

#quarto-search-results .aa-Item {
  border-radius: 0.4rem;
  color: var(--warm-text) !important;
}

#quarto-search-results .aa-ItemContent,
#quarto-search-results .aa-ItemContentBody,
#quarto-search-results .aa-ItemContentTitle,
#quarto-search-results .aa-ItemContentDescription,
#quarto-search-results .aa-ItemContentSubtitle,
#quarto-search-results .aa-ItemActionButton,
#quarto-search-results .aa-ItemLink {
  color: var(--warm-text) !important;
}

#quarto-search-results .aa-Item[aria-selected="true"],
#quarto-search-results .aa-Item:hover {
  background-color: rgba(199, 141, 59, 0.16) !important;
  color: var(--warm-text) !important;
}

#quarto-search-results .aa-Item[aria-selected="true"] .aa-ItemContent,
#quarto-search-results .aa-Item[aria-selected="true"] .aa-ItemContentTitle,
#quarto-search-results .aa-Item[aria-selected="true"] .aa-ItemContentDescription,
#quarto-search-results .aa-Item[aria-selected="true"] .aa-ItemContentSubtitle,
#quarto-search-results .aa-Item:hover .aa-ItemContent,
#quarto-search-results .aa-Item:hover .aa-ItemContentTitle,
#quarto-search-results .aa-Item:hover .aa-ItemContentDescription,
#quarto-search-results .aa-Item:hover .aa-ItemContentSubtitle {
  color: var(--warm-text) !important;
}

#quarto-search-results .search-item mark,
#quarto-search-results .aa-Item mark {
  background-color: rgba(199, 141, 59, 0.28) !important;
  color: var(--warm-gold-soft) !important;
}

#quarto-search-results .search-match {
  color: var(--warm-gold) !important;
}

.aa-DetachedOverlay {
  background: rgba(22, 18, 15, 0.82) !important;
}

.aa-DetachedContainer,
.aa-DetachedContainer--modal {
  background-color: var(--warm-surface) !important;
  color: var(--warm-text) !important;
  border: 1px solid var(--warm-border-strong) !important;
}

.aa-DetachedFormContainer,
.aa-Panel,
.aa-PanelLayout,
.aa-Source,
.aa-List,
.aa-GradientBottom {
  background-color: var(--warm-surface) !important;
  color: var(--warm-text) !important;
}

.aa-Form {
  background-color: var(--warm-surface-strong) !important;
  border: 1px solid var(--warm-border-strong) !important;
  border-radius: 0.6rem !important;
}

.aa-Input,
.aa-Input::placeholder,
.aa-InputWrapper,
.aa-InputWrapperPrefix,
.aa-InputWrapperSuffix,
.aa-Label,
.aa-SourceHeader,
.aa-SourceHeaderTitle,
.aa-SourceFooter,
.aa-DetachedCancelButton,
.aa-CopyButton,
.aa-ClearButton,
.aa-SubmitButton,
.aa-SubmitIcon,
.aa-ClearIcon,
.aa-LoadingIcon {
  color: var(--warm-text-muted) !important;
}

.aa-SubmitButton,
.aa-ClearButton,
.aa-CopyButton,
.aa-DetachedCancelButton {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.aa-DetachedCancelButton:hover,
.aa-CopyButton:hover,
.aa-ClearButton:hover,
.aa-SubmitButton:hover {
  color: var(--warm-gold-soft) !important;
}

.search-result-header,
.search-result-header-no-results,
.search-result-title,
.search-result-section,
.search-result-text,
.search-result-crumbs,
.quarto-search-no-results,
.search-result-link,
.search-result-icon,
.search-item {
  color: var(--warm-text) !important;
}

.aa-Item {
  border-radius: 0.4rem;
  color: var(--warm-text) !important;
}

.aa-Item[aria-selected="true"],
.aa-Item:hover {
  background-color: rgba(199, 141, 59, 0.16) !important;
  color: var(--warm-text) !important;
}

.search-item mark,
.aa-Item mark,
.search-match {
  background-color: rgba(199, 141, 59, 0.28) !important;
  color: var(--warm-gold) !important;
}
