/* Harvey Mudd College brand palette (official identity-standards colors:
   hmc.edu/communications/identity-standards/color-palette/). School
   colors are black + gold; blue/orange/yellow/brown/cool-gray are the
   official secondary palette, used here for variety in the callout types. */
:root {
  --hmc-black: #000000;
  --hmc-gold: #fdb913;
  --hmc-white: #ffffff;
  --hmc-cool-gray: #5b6770;
  --hmc-blue: #007fa3;
  --hmc-orange: #e57200;
  --hmc-yellow: #ffd100;
  --hmc-brown: #603d20;
}

/* Light mode: black header/nav, HMC gold for the header wordmark/icons,
   and a deepened HMC blue for body links (pure gold fails WCAG contrast
   on a white background, so it's reserved for dark mode and for
   non-text accents like borders and hover fills). */
[data-md-color-scheme="default"] {
  --md-primary-fg-color: var(--hmc-black);
  --md-primary-fg-color--light: #2b2b2b;
  --md-primary-fg-color--dark: var(--hmc-black);
  --md-primary-bg-color: var(--hmc-gold);
  --md-primary-bg-color--light: var(--hmc-gold);

  --md-accent-fg-color: #00647f;
  --md-accent-fg-color--transparent: #00647f1f;
  --md-accent-bg-color: var(--hmc-white);
  --md-accent-bg-color--light: var(--hmc-white);

  --md-typeset-a-color: #00647f;

  --hmc-callout-definition: var(--hmc-blue);
  --hmc-callout-example: #a85a00;
  --hmc-callout-theorem: #a17a00;
  --hmc-callout-lemma: var(--hmc-brown);
  --hmc-callout-corollary: var(--hmc-cool-gray);
  --hmc-callout-proof: var(--hmc-black);
}

/* Dark mode: black header (matching light mode), gold as the accent/link
   color (excellent contrast on dark surfaces - the classic "black and
   gold" look), and neutral (zero-saturation) grays for the page surface
   itself so it reads as true black/gray. (Material's slate scheme tints
   its surface via a single --md-hue variable at a fixed saturation, so
   rotating that hue - as an earlier version of this file did, aiming for
   "neutral" - just swaps one tint for another; 0deg is red, which is why
   the background came out a warm reddish-brown instead of gray. Setting
   the actual surface colors directly, rather than trying to steer the
   hue, is what actually removes the tint.) */
[data-md-color-scheme="slate"] {
  --md-default-bg-color: hsla(0, 0%, 9%, 1);
  --md-default-bg-color--light: hsla(0, 0%, 9%, 0.54);
  --md-default-bg-color--lighter: hsla(0, 0%, 9%, 0.26);
  --md-default-bg-color--lightest: hsla(0, 0%, 9%, 0.07);
  --md-default-fg-color: hsla(0, 0%, 100%, 0.87);
  --md-default-fg-color--light: hsla(0, 0%, 100%, 0.60);
  --md-default-fg-color--lighter: hsla(0, 0%, 100%, 0.32);
  --md-default-fg-color--lightest: hsla(0, 0%, 100%, 0.07);

  --md-code-bg-color: hsla(0, 0%, 14%, 1);
  --md-code-fg-color: hsla(0, 0%, 88%, 1);

  --md-primary-fg-color: var(--hmc-black);
  --md-primary-fg-color--light: #2b2b2b;
  --md-primary-fg-color--dark: var(--hmc-black);
  --md-primary-bg-color: var(--hmc-gold);
  --md-primary-bg-color--light: var(--hmc-gold);

  --md-accent-fg-color: var(--hmc-gold);
  --md-accent-fg-color--transparent: #fdb9131f;
  --md-accent-bg-color: var(--hmc-black);

  --md-typeset-a-color: var(--hmc-gold);

  --hmc-callout-definition: #5fc1e8;
  --hmc-callout-example: var(--hmc-orange);
  --hmc-callout-theorem: var(--hmc-gold);
  --hmc-callout-lemma: #c9a074;
  --hmc-callout-corollary: #9aa7af;
  --hmc-callout-proof: #e6e6e6;
}

/* Custom admonition types for CS81 notes: the Obsidian source uses
   Definition / Example / Theorem / Lemma / Corollary / Proof callouts.
   Material ships a built-in "example" type; the rest are defined here,
   colored per light/dark scheme via the --hmc-callout-* tokens above. */
:root {
  --md-admonition-icon--definition: var(--md-admonition-icon--note);
  --md-admonition-icon--theorem: var(--md-admonition-icon--abstract);
  --md-admonition-icon--lemma: var(--md-admonition-icon--abstract);
  --md-admonition-icon--corollary: var(--md-admonition-icon--success);
  --md-admonition-icon--proof: var(--md-admonition-icon--quote);
}

.md-typeset .admonition.definition,
.md-typeset details.definition {
  border-color: var(--hmc-callout-definition);
}
.md-typeset .definition > .admonition-title,
.md-typeset .definition > summary {
  background-color: color-mix(in srgb, var(--hmc-callout-definition) 12%, transparent);
}
.md-typeset .definition > .admonition-title::before,
.md-typeset .definition > summary::before {
  background-color: var(--hmc-callout-definition);
  -webkit-mask-image: var(--md-admonition-icon--definition);
          mask-image: var(--md-admonition-icon--definition);
}

.md-typeset .admonition.example,
.md-typeset details.example {
  border-color: var(--hmc-callout-example);
}
.md-typeset .example > .admonition-title,
.md-typeset .example > summary {
  background-color: color-mix(in srgb, var(--hmc-callout-example) 12%, transparent);
}
.md-typeset .example > .admonition-title::before,
.md-typeset .example > summary::before {
  background-color: var(--hmc-callout-example);
}

.md-typeset .admonition.theorem,
.md-typeset details.theorem {
  border-color: var(--hmc-callout-theorem);
}
.md-typeset .theorem > .admonition-title,
.md-typeset .theorem > summary {
  background-color: color-mix(in srgb, var(--hmc-callout-theorem) 14%, transparent);
}
.md-typeset .theorem > .admonition-title::before,
.md-typeset .theorem > summary::before {
  background-color: var(--hmc-callout-theorem);
  -webkit-mask-image: var(--md-admonition-icon--theorem);
          mask-image: var(--md-admonition-icon--theorem);
}

.md-typeset .admonition.lemma,
.md-typeset details.lemma {
  border-color: var(--hmc-callout-lemma);
}
.md-typeset .lemma > .admonition-title,
.md-typeset .lemma > summary {
  background-color: color-mix(in srgb, var(--hmc-callout-lemma) 12%, transparent);
}
.md-typeset .lemma > .admonition-title::before,
.md-typeset .lemma > summary::before {
  background-color: var(--hmc-callout-lemma);
  -webkit-mask-image: var(--md-admonition-icon--lemma);
          mask-image: var(--md-admonition-icon--lemma);
}

.md-typeset .admonition.corollary,
.md-typeset details.corollary {
  border-color: var(--hmc-callout-corollary);
}
.md-typeset .corollary > .admonition-title,
.md-typeset .corollary > summary {
  background-color: color-mix(in srgb, var(--hmc-callout-corollary) 12%, transparent);
}
.md-typeset .corollary > .admonition-title::before,
.md-typeset .corollary > summary::before {
  background-color: var(--hmc-callout-corollary);
  -webkit-mask-image: var(--md-admonition-icon--corollary);
          mask-image: var(--md-admonition-icon--corollary);
}

.md-typeset .admonition.proof,
.md-typeset details.proof {
  border-color: var(--hmc-callout-proof);
}
.md-typeset .proof > .admonition-title,
.md-typeset .proof > summary {
  background-color: color-mix(in srgb, var(--hmc-callout-proof) 10%, transparent);
}
.md-typeset .proof > .admonition-title::before,
.md-typeset .proof > summary::before {
  background-color: var(--hmc-callout-proof);
  -webkit-mask-image: var(--md-admonition-icon--proof);
          mask-image: var(--md-admonition-icon--proof);
}

/* Search highlight + selected nav item read better in HMC gold than the
   default accent-derived tint. */
.md-typeset mark {
  background-color: color-mix(in srgb, var(--hmc-gold) 45%, transparent);
}
