/* Light mode = the thesis slide deck (green / red / gray on warm off-white).
   Dark mode = Ravenclaw (midnight navy, silver-blue, bronze). The header toggle switches; the
   first visit follows the viewer's system setting.
   Variable names are roles, not colours: --c-green = primary (links, titles, interaction),
   --c-red = accent (footer stripe, hero label, open tab, Inbox and PDF tags, quotes; never hover).
   EB Garamond is kept for a few display titles only (site name, page title, home section titles). */
:root, [data-md-color-scheme="default"] {
  --serif: "EB Garamond", ui-serif, Georgia, serif;
  --c-green: #085930;
  --c-green-dark: #053d20;   /* hover */
  --c-header: #085930;
  --c-red: #C05656;
  --c-text: #404040;
  --c-heading: #333333;
  --c-strong: #262626;
  --c-muted: #6b6b6b;
  --c-bg: #FAF7F0;           /* warm off-white instead of pure white */
  --c-surface: #FFFDF8;      /* cards, tables */
  --c-line: rgba(64, 64, 64, 0.15);
  --c-link-line: rgba(192, 86, 86, 0.3);
  --c-link: #C05656;         /* links: the slide red */
  --c-link-hover: #9E3F3F;
  --c-green-tint: rgba(8, 89, 48, 0.07);
  --c-red-tint: rgba(192, 86, 86, 0.09);
  --c-soft: rgba(64, 64, 64, 0.07);
  --c-chip-analysis: #555555;
  --c-chip-progress: #085930;
  --c-node-note: #8DB09B;     /* knowledge map: plain notes */
  --c-footer: #C05656;
  --c-on-fill: #ffffff;      /* text on filled chips/buttons */
  --c-shadow: rgba(0, 0, 0, 0.08);
}

[data-md-color-scheme="slate"] {
  --serif: "EB Garamond", ui-serif, Georgia, serif;
  --c-green: #A9B9EA;        /* silver-blue: links, titles */
  --c-green-dark: #D5DEF8;   /* hover: brighter */
  --c-header: #26346A;       /* Ravenclaw blue, lifted: clearly lighter than the page */
  --c-red: #C9A063;          /* bronze, lifted for dark */
  --c-text: #CDD1DC;         /* silver */
  --c-heading: #E6E9F2;
  --c-strong: #F2F4F9;
  --c-muted: #8E95A8;
  --c-bg: #0D1220;           /* near-black navy, not pure black */
  --c-surface: #151C31;      /* cards, tables */
  --c-line: rgba(169, 185, 234, 0.16);
  --c-link-line: rgba(201, 160, 99, 0.35);
  --c-link: #C9A063;         /* links: Ravenclaw bronze/gold */
  --c-link-hover: #E2BE85;
  --c-green-tint: rgba(169, 185, 234, 0.08);
  --c-red-tint: rgba(201, 160, 99, 0.12);
  --c-soft: rgba(205, 209, 220, 0.08);
  --c-chip-analysis: #5D6478;
  --c-chip-progress: #2E4385;   /* Ravenclaw blue, lifted */
  --c-node-note: #8E9CC9;
  --c-footer: #946B2D;         /* original bronze: white text stays readable */
  --c-on-fill: #ffffff;
  --c-shadow: rgba(0, 0, 0, 0.35);
  --md-code-bg-color: #0A0F1B;
  --md-code-fg-color: #CDD1DC;
  --md-default-fg-color--lighter: rgba(205, 209, 220, 0.4);
  --md-default-fg-color--lightest: rgba(205, 209, 220, 0.12);
}

:root, [data-md-color-scheme] {
  --md-primary-fg-color: var(--c-header);
  --md-primary-fg-color--light: var(--c-green);
  --md-primary-fg-color--dark: var(--c-green-dark);
  --md-primary-bg-color: #ffffff;
  --md-accent-fg-color: var(--c-green-dark);
  --md-typeset-a-color: var(--c-link);
  --md-typeset-color: var(--c-text);
  --md-default-fg-color: var(--c-text);
  --md-default-fg-color--light: var(--c-muted);
  --md-default-bg-color: var(--c-bg);
  --md-footer-bg-color: var(--c-footer);
  --md-footer-bg-color--dark: var(--c-footer);
}

/* ---- type ---- */
.md-typeset { font-size: .78rem; line-height: 1.7; }
.md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4 {
  font-family: "Inter", sans-serif; color: var(--c-heading); letter-spacing: -0.005em;
}
/* page title: serif, the one display element on a page */
.md-typeset h1 { font-family: var(--serif); font-weight: 600; color: var(--c-green); font-size: 1.75rem; line-height: 1.2; margin-bottom: .5em; }
.md-typeset h2 { font-weight: 600; font-size: 1.05rem; margin-top: 1.9em; padding-bottom: .25em; border-bottom: 1px solid var(--c-line); }
.md-typeset h3 { font-weight: 600; font-size: .9rem; margin-top: 1.5em; }
.md-typeset h4 { font-weight: 600; font-size: .8rem; }
.md-header__title { font-family: var(--serif); font-size: 1.05rem; font-weight: 600; }
.md-nav { font-size: .68rem; }
.md-nav__title { font-weight: 600; }

/* ---- footer: the red stripe from the slides ---- */
.md-footer, .md-footer-meta { background: var(--c-footer); }
.md-copyright { color: #fff; }
.md-copyright a { color: #fff; text-decoration: underline; }

/* ---- links and hover: green only ---- */
.md-typeset a { color: var(--c-link); text-decoration: underline; text-decoration-color: var(--c-link-line); text-underline-offset: 2px; }
.md-typeset a:hover, .md-typeset a:focus { color: var(--c-link-hover); text-decoration-color: currentColor; }
.md-nav__link:hover, .md-nav__link:focus, .md-tabs__link:hover { color: var(--c-green-dark); }

/* ---- document formatting ---- */
.md-typeset strong { color: var(--c-strong); }
.md-typeset blockquote {
  background: var(--c-red-tint); color: var(--c-text); border-left: 3px solid var(--c-red);
  font-style: italic; padding: .6rem 1rem; border-radius: 0 .4rem .4rem 0;
}
.md-typeset code { background: var(--c-soft); color: var(--c-strong); border-radius: .2rem; }
.md-typeset pre > code { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: .4rem; }
.md-typeset table:not([class]) {
  font-size: .7rem; border: 1px solid var(--c-line); border-radius: .4rem; box-shadow: none; background: var(--c-surface);
}
.md-typeset table:not([class]) th { font-weight: 600; white-space: nowrap; background: var(--c-green-tint); color: var(--c-green); }
.md-typeset table:not([class]) td, .md-typeset table:not([class]) th { padding: .45em .8em; }
.md-typeset table:not([class]) tbody tr:hover { background: var(--c-soft); }
.md-typeset img { border: 1px solid var(--c-line); border-radius: .3rem; }
.md-typeset hr { border-bottom-color: var(--c-line); }
.md-typeset .arithmatex { overflow-x: auto; }
.md-typeset .admonition, .md-typeset details {
  border-color: var(--c-green); background: var(--c-green-tint); box-shadow: none; border-radius: .4rem; font-size: .74rem;
}
.md-typeset .admonition-title, .md-typeset summary { background: var(--c-green-tint) !important; font-weight: 600; }
.md-typeset .admonition-title::before, .md-typeset summary::before { background-color: var(--c-green) !important; }
.md-typeset .md-button { border-radius: .3rem; border-color: var(--c-green); color: var(--c-green); text-decoration: none; }
.md-typeset .md-button:hover { background: var(--c-chip-progress); border-color: var(--c-chip-progress); color: var(--c-on-fill); }
.md-typeset .md-button--primary { background: var(--c-chip-progress); border-color: var(--c-chip-progress); color: var(--c-on-fill); }
.md-typeset .md-button--primary:hover { filter: brightness(1.15); color: var(--c-on-fill); }

/* ---- chips (section + date) ---- */
.md-typeset .doc-meta { margin: 0 0 .8em; display: flex; gap: .35rem; flex-wrap: wrap; }
.chip {
  display: inline-block; font-size: .56rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  padding: .1rem .55rem; border-radius: 999px; border: 1px solid transparent; line-height: 1.6;
}
.chip-thread { background: transparent; color: var(--c-green); border-color: var(--c-green); }
.chip-progress { background: var(--c-chip-progress); color: var(--c-on-fill); }
.chip-inbox { background: var(--c-red); color: var(--c-on-fill); }
.chip-note { background: transparent; color: var(--c-text); border-color: rgba(64, 64, 64, 0.45); }
.chip-analysis { background: var(--c-chip-analysis); color: var(--c-on-fill); }
.chip-project { background: transparent; color: var(--c-muted); border-color: var(--c-line); }
.chip-pdf { background: transparent; color: var(--c-red); border-color: var(--c-red); }
.chip-date { background: var(--c-soft); color: var(--c-text); font-variant-numeric: tabular-nums; }

/* ---- cards: tag, date, title (Inter, so a grid of cards stays quiet) ---- */
.md-typeset .grid.cards > ul > li {
  border: 1px solid var(--c-line); border-radius: .5rem; padding: .75rem .95rem; box-shadow: none;
  background: var(--c-surface); transition: border-color .15s, background .15s;
}
.md-typeset .grid.cards > ul > li:hover { border-color: var(--c-green); background: var(--c-green-tint); box-shadow: none; }
.md-typeset .grid.cards > ul > li > p { margin: .2em 0; line-height: 1.4; }
.md-typeset .grid.cards > ul > li .doc-meta { margin-bottom: .45em; }
.md-typeset .grid.cards > ul > li strong a { font-weight: 600; font-size: .8rem; line-height: 1.4; text-decoration: none; color: var(--c-heading); }
.md-typeset .grid.cards > ul > li:hover strong a { color: var(--c-green-dark); }
.md-typeset .more { font-weight: 600; font-size: .72rem; text-decoration: none; }
.md-typeset .more::after { content: " →"; }
.md-typeset .section-blurb { margin-top: -.3em; color: var(--c-muted); }
.md-typeset .empty { color: var(--c-muted); font-style: italic; }

/* year / month groups on section pages */
.md-typeset h2 + h3 { margin-top: .8em; }
.md-typeset h3 { color: var(--c-muted); text-transform: uppercase; letter-spacing: .08em; font-size: .64rem; }

/* ---- home ---- */
.md-content .md-typeset .home-section { font-family: var(--serif); }
.md-typeset .hero {
  background: var(--c-green-tint); border-left: 4px solid var(--c-green); border-radius: 0 .6rem .6rem 0;
  padding: 1.2rem 1.7rem 1rem; margin: .4rem 0 1rem;
}
.md-typeset .hero h1 {
  font-family: "Inter", sans-serif; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
  color: var(--c-red); margin: 0 0 .6rem;
}
.md-typeset .hero p, .md-typeset .hero li { font-size: .84rem; line-height: 1.65; }
.md-typeset .hero h2, .md-typeset .hero h3 { border: 0; margin: 1em 0 .3em; font-size: .95rem; text-transform: none; letter-spacing: 0; color: var(--c-heading); }
.md-typeset .about { margin-top: 3rem; padding-top: .2rem; border-top: 3px solid var(--c-red); }
.md-typeset .about h2 { border: 0; margin-top: 1em; }
.md-typeset .about p { font-size: .72rem; }

/* ---- embedded slide exports ---- */
.md-typeset h2.home-section { font-family: var(--serif); font-weight: 600; font-size: 1.45rem; color: var(--c-heading); }

/* ---- top tabs: spaced capitals like the hero label; the open tab is a binder divider ---- */
.md-tabs__list { display: flex; align-items: flex-end; }
.md-tabs__item { height: auto; padding: 0; margin-right: .25rem; }
.md-tabs__link {
  display: block; margin: .45rem 0 0; padding: .5rem .95rem .45rem; border-radius: .5rem .5rem 0 0;
  font-size: .6rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; opacity: .85;
  transition: background .15s;
}
.md-tabs__link:hover { opacity: 1; background: rgba(255, 255, 255, 0.1); color: #fff; }
.md-tabs__item--active .md-tabs__link,
.md-tabs__item--active .md-tabs__link:hover { background: var(--c-bg); color: var(--c-red); opacity: 1; }

/* ---- PDF entries: cover page only ---- */
.md-typeset .pdf-cover { display: block; max-width: 760px; width: 100%; margin-top: 1rem; box-shadow: 0 2px 10px var(--c-shadow); }

/* open tab: a binder divider shaped like a skirt. Rounded top corners, and concave flares at
   the bottom that widen the tab into the page (a bigger --flare = a wider skirt). */
.md-tabs { --flare: .5rem; }
.md-tabs__item { margin-right: .45rem; }
.md-tabs__item:first-child { margin-left: var(--flare); }
.md-tabs__item--active .md-tabs__link { position: relative; border-radius: .55rem .55rem 0 0; }
.md-tabs__item--active .md-tabs__link::before,
.md-tabs__item--active .md-tabs__link::after {
  content: ""; position: absolute; bottom: 0; width: var(--flare); height: var(--flare); pointer-events: none;
}
.md-tabs__item--active .md-tabs__link::before {
  left: calc(-1 * var(--flare));
  background: radial-gradient(circle at 0 0, transparent var(--flare), var(--c-bg) calc(var(--flare) + .5px));
}
.md-tabs__item--active .md-tabs__link::after {
  right: calc(-1 * var(--flare));
  background: radial-gradient(circle at 100% 0, transparent var(--flare), var(--c-bg) calc(var(--flare) + .5px));
}

/* light/dark toggle as a pill switch: the knob sits left in light mode, right in dark mode,
   and the icon on the free side shows where a click takes you */
[data-md-component="palette"] .md-header__button.md-icon {
  position: relative; box-sizing: border-box; width: 2.7rem; height: 1.4rem; margin: 0 .6rem; padding: 0;
  border-radius: 999px; background: rgba(255, 255, 255, 0.16); border: 1px solid rgba(255, 255, 255, 0.35);
  display: inline-flex; align-items: center; vertical-align: middle; cursor: pointer; transition: background .15s;
}
[data-md-component="palette"] .md-header__button.md-icon[hidden] { display: none; }
[data-md-component="palette"] .md-header__button.md-icon:hover { background: rgba(255, 255, 255, 0.26); opacity: 1; }
[data-md-component="palette"] .md-header__button.md-icon svg {
  position: absolute; top: 50%; width: .8rem; height: .8rem; transform: translateY(-50%); opacity: .9;
}
[data-md-component="palette"] .md-header__button.md-icon::after {
  content: ""; position: absolute; top: 50%; width: 1.05rem; height: 1.05rem; border-radius: 50%;
  transform: translateY(-50%); background: #ffffff; box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
}
[data-md-color-scheme="default"] [data-md-component="palette"] .md-header__button.md-icon svg { right: .32rem; }
[data-md-color-scheme="default"] [data-md-component="palette"] .md-header__button.md-icon::after { left: .13rem; }
[data-md-color-scheme="slate"] [data-md-component="palette"] .md-header__button.md-icon svg { left: .32rem; }
[data-md-color-scheme="slate"] [data-md-component="palette"] .md-header__button.md-icon::after { right: .13rem; background: var(--c-red); }

/* home: the four sections side by side */
.md-typeset .home-columns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1.4rem; }
.md-typeset .home-below { margin-top: 1.4rem; }
.md-typeset .home-col {
  background: var(--c-surface); border: 1px solid var(--c-line); border-radius: .6rem; padding: .2rem 1rem .9rem;
}
.md-typeset .home-col h2.home-section { font-size: 1.3rem; margin: .6rem 0 .1rem; border: 0; padding: 0; }
.md-typeset .home-col h2.home-section a { color: var(--c-heading); text-decoration: none; }
.md-typeset .home-col h2.home-section a:hover { color: var(--c-green-dark); }
.md-typeset .home-col .section-blurb { font-size: .64rem; line-height: 1.45; margin: 0 0 .7rem; }
.md-typeset .home-col ul { list-style: none; margin: 0; padding: 0; }
.md-typeset .home-col ul li { margin: 0; padding: .45rem 0; border-top: 1px solid var(--c-line); font-size: .72rem; line-height: 1.4; }
.md-typeset .home-col ul li a { color: var(--c-heading); text-decoration: none; font-weight: 500; }
.md-typeset .home-col ul li a:hover { color: var(--c-green-dark); text-decoration: underline; }
.md-typeset .home-col .more { display: inline-block; margin-top: .4rem; }
.md-typeset .home-col .empty { font-size: .7rem; }
@media screen and (max-width: 76.1875em) { .md-typeset .home-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media screen and (max-width: 44.9375em) { .md-typeset .home-columns { grid-template-columns: minmax(0, 1fr); } }

/* Obsidian ==highlight== */
.md-typeset mark { background: var(--c-red-tint); color: inherit; padding: 0 .15em; border-radius: .15em; }

/* "Linked from" footer on every note (backlinks) */
.md-typeset .backlinks { margin-top: 2.5rem; padding-top: .7rem; border-top: 1px solid var(--c-line); font-size: .7rem; color: var(--c-muted); }
.md-typeset .backlinks strong { color: var(--c-muted); text-transform: uppercase; letter-spacing: .1em; font-size: .6rem; margin-right: .4rem; }

/* knowledge map */
.md-typeset .kmap-legend { display: flex; gap: .4rem; margin: .2rem 0 .6rem; }
.kmap { height: 72vh; border: 1px solid var(--c-line); border-radius: .6rem; background: var(--c-surface); overflow: hidden; }
.kmap svg { width: 100%; height: 100%; display: block; cursor: grab; }
.kmap .kmap-links line { stroke-width: 1; stroke-opacity: .9; transition: stroke-opacity .15s; }
.kmap .kmap-links line.lit { stroke: var(--c-red) !important; stroke-width: 1.6; }
.kmap .kmap-links line.dim { stroke-opacity: .15; }
.kmap .kmap-node { cursor: pointer; transition: opacity .15s; }
.kmap .kmap-node circle { stroke-width: 1.5; }
.kmap .kmap-node.dim { opacity: .18; }
.kmap .kmap-label { font: 500 9px "Inter", sans-serif; pointer-events: none; opacity: 0; transition: opacity .15s; }
.kmap .kmap-label.hub { opacity: 1; font-weight: 700; font-size: 11px; }
.kmap .kmap-node.lit .kmap-label, .kmap .kmap-node:hover .kmap-label { opacity: 1; }
.md-typeset .kmap-key { display: inline-flex; align-items: center; gap: .3rem; margin-right: .9rem; font-size: .68rem; color: var(--c-muted); }
.md-typeset .kmap-key::before { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: var(--dot); }
.md-typeset .kmap-key.hub::before { background: var(--c-surface); box-shadow: inset 0 0 0 2px var(--c-green); }
.kmap .kmap-node circle { stroke-width: unset; }

/* "Back to <page>" button, added by javascripts/backlink.js when a page was opened from another one.
   The destination title is bold in the secondary accent (red in light mode, gold in dark mode). */
.md-typeset a.backlink-button {
  display: inline-block; margin: 0 0 .6rem; padding: .2rem .75rem; border-radius: 999px;
  border: 1px solid var(--c-line); background: var(--c-surface); color: var(--c-heading);
  font-size: .68rem; font-weight: 500; text-decoration: none;
}
.md-typeset a.backlink-button:hover { border-color: var(--c-heading); color: var(--c-heading); text-decoration: none; }
.md-typeset a.backlink-button .backlink-target { color: var(--c-link); font-weight: 700; }
