/* Foundations and Flora — mathematical environments */

/* =========================================================
 *  Shared mathematical environment styling
 *  ========================================================= */

section.block:is(
  [data-taxon="definition" i],
  [data-taxon="axiom" i],
  [data-taxon="postulate" i],
  [data-taxon="theorem" i],
  [data-taxon="proposition" i],
  [data-taxon="lemma" i],
  [data-taxon="corollary" i],
  [data-taxon="claim" i],
  [data-taxon="conjecture" i],
  [data-taxon="hypothesis" i],
  [data-taxon="fact" i],
  [data-taxon="observation" i],
  [data-taxon="example" i],
  [data-taxon="remark" i],
  [data-taxon="exegesis" i],
  [data-taxon="proof" i]
) {
  --flora-env-accent: var(--flora-overlay0);

  position: relative;

  margin: 1.5rem 0;
  padding: 0.8rem 1rem 0.85rem 1.15rem;

  border: none;
  border-left: 2px solid var(--flora-env-accent);
  border-radius: 0;

  background:
  linear-gradient(
    90deg,
    color-mix(
      in srgb,
      var(--flora-env-accent) 6%,
              transparent
    ),
    transparent 40%
  );
}


/* =========================================================
 *  Environment headings
 *  ========================================================= */

section.block:is(
  [data-taxon="definition" i],
  [data-taxon="axiom" i],
  [data-taxon="postulate" i],
  [data-taxon="theorem" i],
  [data-taxon="proposition" i],
  [data-taxon="lemma" i],
  [data-taxon="corollary" i],
  [data-taxon="claim" i],
  [data-taxon="conjecture" i],
  [data-taxon="hypothesis" i],
  [data-taxon="fact" i],
  [data-taxon="observation" i],
  [data-taxon="example" i],
  [data-taxon="remark" i],
  [data-taxon="exegesis" i],
  [data-taxon="proof" i]
) > details > summary > header > h1 {
  color: var(--flora-text) !important;

  font-size: 1.08rem !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;

  margin: 0 !important;

  letter-spacing: -0.01em !important;
}


/* Environment label: "Theorem.", "Lemma.", etc. */

section.block:is(
  [data-taxon="definition" i],
  [data-taxon="axiom" i],
  [data-taxon="postulate" i],
  [data-taxon="theorem" i],
  [data-taxon="proposition" i],
  [data-taxon="lemma" i],
  [data-taxon="corollary" i],
  [data-taxon="claim" i],
  [data-taxon="conjecture" i],
  [data-taxon="hypothesis" i],
  [data-taxon="fact" i],
  [data-taxon="observation" i],
  [data-taxon="example" i],
  [data-taxon="remark" i],
  [data-taxon="exegesis" i],
  [data-taxon="proof" i]
) .taxon {
  color: var(--flora-env-accent) !important;

  font-size: 0.98rem !important;
  font-weight: 700 !important;

  letter-spacing: 0 !important;
}


/* Slugs */

section.block:is(
  [data-taxon="definition" i],
  [data-taxon="axiom" i],
  [data-taxon="postulate" i],
  [data-taxon="theorem" i],
  [data-taxon="proposition" i],
  [data-taxon="lemma" i],
  [data-taxon="corollary" i],
  [data-taxon="claim" i],
  [data-taxon="conjecture" i],
  [data-taxon="hypothesis" i],
  [data-taxon="fact" i],
  [data-taxon="observation" i],
  [data-taxon="example" i],
  [data-taxon="remark" i],
  [data-taxon="exegesis" i],
  [data-taxon="proof" i]
) .slug {
  color: var(--flora-subtext);
  font-size: 0.88em;
  font-weight: 400;
}


/* =========================================================
 *  Definition-like environments — Mauve
 *  ========================================================= */

section.block[data-taxon="definition" i],
section.block[data-taxon="axiom" i],
section.block[data-taxon="postulate" i] {
  --flora-env-accent: var(--flora-mauve);
}


/* =========================================================
 *  Main results — Blue
 *  ========================================================= */

section.block[data-taxon="theorem" i],
section.block[data-taxon="proposition" i],
section.block[data-taxon="claim" i] {
  --flora-env-accent: var(--flora-blue);
}


/* =========================================================
 *  Supporting results — Lavender
 *  ========================================================= */

section.block[data-taxon="lemma" i],
section.block[data-taxon="corollary" i] {
  --flora-env-accent: var(--flora-lavender);
}


/* =========================================================
 *  Conjectural environments — Peach
 *  ========================================================= */

section.block[data-taxon="conjecture" i],
section.block[data-taxon="hypothesis" i] {
  --flora-env-accent: var(--flora-peach);
}


/* =========================================================
 *  Examples / observations — Green
 *  ========================================================= */

section.block[data-taxon="fact" i],
section.block[data-taxon="observation" i],
section.block[data-taxon="example" i] {
  --flora-env-accent: var(--flora-green);
}


/* =========================================================
 *  Remarks — Yellow
 *  ========================================================= */

section.block[data-taxon="remark" i] {
  --flora-env-accent: var(--flora-yellow);
}


/* =========================================================
 *  Exegesis — Lavender
 *  ========================================================= */

section.block[data-taxon="exegesis" i] {
  --flora-env-accent: var(--flora-lavender);
}


/* =========================================================
 *  Proofs
 *  ========================================================= */

section.block[data-taxon="proof" i] {
  --flora-env-accent: var(--flora-lavender);

  margin: 1.25rem 0 1.5rem 0.7rem;
  padding: 0.8rem 1rem 0.85rem 1.1rem;

  border-left-width: 2px;

  background:
  linear-gradient(
    90deg,
    color-mix(
      in srgb,
      var(--flora-lavender) 6%,
              transparent
    ),
    transparent 38%
  );
}


/* Proof heading */

section.block[data-taxon="proof" i]
> details
> summary
> header
> h1 {
  font-size: 1.02rem !important;
  font-weight: 600 !important;
}


/* "Proof." */

section.block[data-taxon="proof" i] .taxon {
  color: var(--flora-lavender) !important;
  font-style: italic;
}


/* Hide anonymous proof permalink */

section.block[data-taxon="proof" i] a.hash {
  display: none;
}


/* QED square */

section.block[data-taxon="proof" i]::after {
  content: "□";

  display: block;

  margin-top: 0.6rem;

  color: var(--flora-lavender);

  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1;

  text-align: right;
}
