.sources-hero,
.sources-section {
  width: 100%;
  max-width: var(--layout-box-page);
  margin-inline: auto;
  padding-inline: var(--layout-gutter);
}

.sources-hero {
  padding-top: calc(var(--rhythm-page-top-clear) + var(--rhythm-section-compact));
  padding-bottom: var(--rhythm-section);
}

.sources-eyebrow,
.sources-section-number,
.sources-section-label,
.sources-designated dt,
.sources-definitions dt,
.sources-treatment span,
.sources-history-class h3,
.sources-lineage-root,
.sources-matrix thead th,
.sources-matrix-role {
  font-family: var(--mono);
  font-size: var(--type-label-size);
  font-weight: var(--type-label-weight);
  letter-spacing: var(--type-label-ls);
  line-height: var(--type-label-lh);
  text-transform: uppercase;
}

.sources-eyebrow {
  margin: 0;
  color: var(--theme-provenance-ink);
}

.sources-hero-index {
  display: flex;
  align-items: baseline;
  gap: var(--rhythm-title-content);
  margin-bottom: var(--rhythm-title-content);
}

.sources-hero-index .sources-section-number {
  margin: 0;
}

.sources-hero h1 {
  max-width: 12ch;
  margin: 0;
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: clamp(3.25rem, 7vw, 6rem);
  font-weight: 300;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.sources-standfirst {
  max-width: 48rem;
  margin: var(--rhythm-title-content) 0 0;
  color: var(--theme-ink-secondary);
  font-size: clamp(1.05rem, 1.6vw, 1.28rem);
  line-height: 1.58;
}

.sources-principle {
  max-width: 25ch;
  margin: var(--rhythm-section-compact) 0 0;
  padding-block: var(--rhythm-title-content);
  border-top: 1px solid var(--theme-rule-strong);
  border-bottom: 1px solid var(--theme-rule-strong);
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: clamp(1.7rem, 3vw, 2.75rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.16;
}

/* A fragment link has to land below the fixed navigation. Section 03 introduced the first in-page
   fragment links this page has ever carried, and on a cold load at 1440 the font settle shifts the
   sections above by ~46px, which put both targets behind the bar with nothing visible. */
.sources-section {
  scroll-margin-top: calc(var(--rhythm-page-top-clear) + 1rem);
  display: grid;
  grid-template-columns: minmax(10rem, var(--layout-sidehead)) minmax(0, 50rem);
  column-gap: var(--layout-sidehead-gap);
  justify-content: start;
  padding-top: var(--rhythm-section);
  padding-bottom: var(--rhythm-section);
  border-top: 1px solid var(--theme-rule-standard);
}

.sources-section-head {
  align-self: start;
}

.sources-section-number {
  margin: 0 0 var(--rhythm-title-content);
  color: var(--theme-provenance-ink);
}

.sources-section h2 {
  margin: 0;
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: var(--type-section-title-size);
  font-weight: var(--type-section-title-weight);
  letter-spacing: var(--type-section-title-ls);
  line-height: var(--type-section-title-lh);
}

.sources-section h2.sources-section-label {
  color: var(--theme-provenance-ink);
  font-family: var(--mono);
  font-size: var(--type-label-size);
  font-weight: var(--type-label-weight);
  letter-spacing: var(--type-label-ls);
  line-height: var(--type-label-lh);
}

.sources-section-body,
.sources-designated,
.sources-exits {
  min-width: 0;
}

.sources-designated {
  padding: var(--rhythm-title-content);
  border-top: 2px solid var(--theme-rule-strong);
  border-bottom: 1px solid var(--theme-rule-standard);
  background: var(--theme-surface-raised);
}

.sources-designated-fields {
  display: grid;
  grid-template-columns: 0.8fr 1.25fr 1fr;
  margin: 0;
}

.sources-designated-fields > div {
  min-width: 0;
  padding-right: var(--rhythm-title-content);
}

.sources-designated-fields > div + div {
  padding-left: var(--rhythm-title-content);
  border-left: 1px solid var(--theme-rule-standard);
}

.sources-designated dt,
.sources-definitions dt,
.sources-treatment span,
.sources-history-class h3,
.sources-lineage-root {
  color: var(--theme-provenance-ink);
}

.sources-designated dd {
  margin: 0.55rem 0 0;
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: var(--type-subsection-title-size);
  line-height: var(--type-subsection-title-lh);
}

.sources-designated > p {
  max-width: 62ch;
  margin: var(--rhythm-title-content) 0 0;
  padding-top: var(--rhythm-title-content);
  border-top: 1px solid var(--theme-rule-subtle);
  color: var(--theme-ink-secondary);
  font-size: var(--type-body-size);
  line-height: var(--type-body-lh);
}

.sources-definitions {
  margin: 0;
  border-bottom: 1px solid var(--theme-rule-standard);
}

.sources-definitions > div {
  display: grid;
  grid-template-columns: minmax(9rem, 11rem) minmax(0, 1fr);
  gap: var(--rhythm-title-content);
  padding: var(--rhythm-title-content) 0;
  border-top: 1px solid var(--theme-rule-standard);
}

.sources-definitions dd {
  max-width: 62ch;
  margin: 0;
  color: var(--theme-ink-secondary);
  font-size: var(--type-body-size);
  line-height: var(--type-body-lh);
}

.sources-closing-line {
  max-width: 65ch;
  margin: var(--rhythm-title-content) 0 0;
  color: var(--theme-ink-primary);
  font-size: var(--type-body-size);
  line-height: var(--type-body-lh);
}

.sources-quantity {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  column-gap: var(--rhythm-section-compact);
  padding: var(--rhythm-title-content) 0;
  border-top: 2px solid var(--theme-rule-strong);
  border-bottom: 1px solid var(--theme-rule-standard);
}

.sources-quantity h3 {
  margin: 0;
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: var(--type-subsection-title-size);
  font-weight: var(--type-subsection-title-weight);
  letter-spacing: var(--type-subsection-title-ls);
  line-height: var(--type-subsection-title-lh);
}

.sources-quantity-copy > p,
.sources-treatment {
  margin: 0.6rem 0 0;
  color: var(--theme-ink-secondary);
  font-size: var(--type-body-supporting-size);
  line-height: var(--type-body-supporting-lh);
}

.sources-treatment {
  margin-top: 0;
}

.sources-treatment span {
  display: block;
  margin-bottom: 0.55rem;
}

.sources-row-link {
  display: inline-flex;
  min-height: 44px;
  grid-column: 1 / -1;
  align-items: center;
  justify-self: start;
  margin-top: var(--rhythm-title-content);
  color: var(--theme-ink-link);
  font-family: var(--mono);
  font-size: var(--type-metadata-size);
  letter-spacing: var(--type-metadata-ls);
  text-decoration: underline;
  text-decoration-color: var(--theme-rule-interactive);
  text-underline-offset: 0.25em;
}

.sources-history-classes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--rhythm-title-content);
}

.sources-history-class {
  padding: var(--rhythm-title-content) 0;
  border-top: 2px solid var(--theme-rule-strong);
  border-bottom: 1px solid var(--theme-rule-standard);
}

.sources-history-class--reconstructed {
  border-top-style: dashed;
}

.sources-history-class h3 {
  margin: 0;
}

.sources-history-class p {
  margin: 0.7rem 0 0;
  color: var(--theme-ink-secondary);
  font-size: var(--type-body-size);
  line-height: var(--type-body-lh);
}

.sources-lineage {
  border-top: 2px solid var(--theme-rule-strong);
  border-bottom: 1px solid var(--theme-rule-standard);
}

.sources-lineage-root {
  margin: 0;
  padding: var(--rhythm-title-content) 0;
}

.sources-lineage ul {
  margin: 0 0 var(--rhythm-title-content) 0.45rem;
  padding: 0 0 0 var(--rhythm-title-content);
  border-left: 1px solid var(--theme-rule-strong);
  list-style: none;
}

.sources-lineage li {
  position: relative;
  display: grid;
  grid-template-columns: minmax(10rem, 1.1fr) minmax(11rem, 1fr) minmax(9rem, 0.85fr);
  gap: var(--rhythm-title-content);
  padding: var(--rhythm-title-content) 0;
  border-top: 1px solid var(--theme-rule-subtle);
}

.sources-lineage li::before {
  position: absolute;
  top: 50%;
  left: calc(-1 * var(--rhythm-title-content));
  width: calc(var(--rhythm-title-content) / 2);
  border-top: 1px solid var(--theme-rule-strong);
  content: "";
}

.sources-lineage strong {
  color: var(--theme-ink-primary);
  font-weight: 500;
}

.sources-lineage li span {
  color: var(--theme-ink-secondary);
  font-size: var(--type-body-supporting-size);
  line-height: var(--type-body-supporting-lh);
}

.sources-prose p {
  max-width: 65ch;
  margin: 0;
  color: var(--theme-ink-secondary);
  font-size: var(--type-body-size);
  line-height: var(--type-body-lh);
}

.sources-prose p + p {
  margin-top: var(--rhythm-title-content);
  color: var(--theme-ink-primary);
}

.sources-section--exits {
  padding-bottom: calc(var(--rhythm-section) + var(--rhythm-section-compact));
}

.sources-exits {
  border-bottom: 1px solid var(--theme-rule-standard);
}

.sources-exits a {
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: space-between;
  gap: var(--rhythm-title-content);
  border-top: 1px solid var(--theme-rule-standard);
  color: var(--theme-ink-primary);
  text-decoration: none;
}

.sources-exits a:hover {
  color: var(--theme-ink-link-hover);
}

.sources-exits span {
  font-family: var(--serif-display);
  font-size: var(--type-subsection-title-size);
}

.sources-exits small {
  color: var(--theme-ink-secondary);
  font-family: var(--mono);
  font-size: var(--type-metadata-size);
  letter-spacing: var(--type-metadata-ls);
  line-height: var(--type-metadata-lh);
  text-align: right;
}

@media (max-width: 900px) {
  .sources-section {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--rhythm-title-content);
  }

  .sources-section-number {
    margin-bottom: 0.6rem;
  }
}

@media (max-width: 640px) {
  .sources-hero {
    padding-top: calc(var(--rhythm-page-top-clear) + var(--rhythm-section-compact));
  }

  .sources-designated-fields,
  .sources-quantity,
  .sources-history-classes {
    grid-template-columns: minmax(0, 1fr);
  }

  .sources-designated-fields > div {
    padding: 0 0 var(--rhythm-title-content);
  }

  .sources-designated-fields > div + div {
    padding: var(--rhythm-title-content) 0;
    border-top: 1px solid var(--theme-rule-subtle);
    border-left: 0;
  }

  .sources-definitions > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.55rem;
  }

  .sources-treatment {
    margin-top: var(--rhythm-title-content);
    padding-top: var(--rhythm-title-content);
    border-top: 1px solid var(--theme-rule-subtle);
  }

  .sources-lineage li {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.45rem;
  }

  .sources-exits a {
    min-height: 72px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
  }

  .sources-exits small {
    text-align: left;
  }
}

/* ── SECTION 03, THE OBSERVATION MATRIX ────────────────────────────────────────────────────
   Sources down the side, observation dates across the top, one cell per observation actually made.

   The gaps carry as much meaning as the figures here, so every empty cell is written out in the
   page's own evidence vocabulary rather than left blank or filled with a dash a reader could take
   for a zero. There is no difference column, no total row and no ordering by value: the rows are in
   role order, which is a statement about what each source counts and never a ranking.

   This is the only section of /sources that carries figures. The rest of the page is the contract;
   this is the contract shown against real dates. */

/* The matrix is the one section whose body is a table rather than a measure of prose, so above the
   tablet breakpoint it takes the full remaining width instead of the 50rem reading column.
   Constraining it to the reading column pushed three date columns into a horizontal scroll on a
   1440 desktop, which turned a deliberate absence into something a reader had to go looking for.

   It is written as a min-width query rather than as a plain override because the page collapses to
   one column at 900px through `.sources-section`, and a two-class selector outside a query beats
   that rule inside one: the phone kept a side-head column and the table was squeezed into 75px. */
@media (min-width: 901px) {
  .sources-section--observatory {
    grid-template-columns: minmax(10rem, var(--layout-sidehead)) minmax(0, 1fr);
  }
}

.sources-section-note {
  max-width: 32ch;
  margin: var(--rhythm-title-content) 0 0;
  color: var(--theme-ink-muted);
  font-size: 0.8rem;
  line-height: 1.5;
}

.sources-observatory-lead {
  max-width: 30ch;
  margin: 0 0 var(--rhythm-title-content);
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: clamp(1.35rem, 2.2vw, 1.62rem);
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.sources-observatory-intro {
  max-width: 68ch;
  margin: 0 0 var(--rhythm-section-compact);
  color: var(--theme-ink-secondary);
  font-size: var(--type-body-size);
  line-height: var(--type-body-lh);
}

/* The table scrolls inside its own container rather than widening the page. The almanac's agreement
   table already behaves this way, so a reader who has met one has met both. */
.sources-matrix-scroll {
  overflow-x: auto;
  border-top: 2px solid var(--theme-rule-strong);
}

.sources-matrix {
  width: 100%;
  min-width: 45.5rem;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
  table-layout: fixed;
}

/* The caption is the table's accessible name and nothing else. It inherits the table's width inside
   a narrower scroll container, so a sentence here is clipped at the container edge and unreadable at
   rest on a phone; the sentence it used to carry now sits in a paragraph above the container, where
   it can wrap. */
.sources-matrix caption {
  padding: var(--rhythm-title-content) 0 0.6rem;
  color: var(--theme-ink-secondary);
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: left;
  text-transform: uppercase;
}

.sources-matrix th,
.sources-matrix td {
  padding: 0.85rem 0.7rem;
  border-bottom: 1px solid var(--theme-rule-standard);
  text-align: right;
  vertical-align: bottom;
}

.sources-matrix thead th {
  border-bottom: 1px solid var(--theme-ink-primary);
  color: var(--theme-ink-secondary);
  text-transform: uppercase;
}

/* The date is the heading; the state is supporting metadata beneath it. Keeping the time element
   block-level prevents a narrow exceptional-date column from collapsing to the state alone. */
.sources-matrix-date {
  display: block;
  white-space: nowrap;
}

/* The corner heading labels a left-aligned column and was set right by the shared th/td rule, which
   at 0-1-1 outranked the 0-1-0 class it was written on. It put "SOURCE" 160px to the right of the
   names it heads. Matching the body rule's specificity is the fix; raising the body rule's would
   have left the same trap for the next class added here. */
.sources-matrix thead th.sources-matrix-corner {
  text-align: left;
}

/* A date the governing row has no record for is marked at the head as well as in the cell, so a
   reader scanning the header knows before reaching the row that the day was not published. */
.sources-matrix thead th[data-no-record="true"] small {
  display: block;
  margin-top: 0.2rem;
  color: var(--theme-ink-muted);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: none;
}

/* The source column is fixed so the date columns divide what is left evenly. Letting it size to its
   content put the role caption on one unbreakable line, which pushed the newest date column off the
   right edge: the one column a reader looks for first. */
/* The source column is frozen. Without it, scrolling a 758px table inside a 350px phone container
   takes the row headers off the left edge entirely, and what remains is four right-aligned mono
   figures with no source name anywhere on screen: the exact reading the whole direction exists to
   prevent, produced by scrolling. */
.sources-matrix-corner,
.sources-matrix tbody th {
  position: sticky;
  left: 0;
  z-index: 1;
  width: 11.75rem;
  padding-left: 0;
  padding-right: 1rem;
  background: var(--theme-surface-page);
  font-weight: 400;
  text-align: left;
}

/* The governing row is an editorial hierarchy, not a selected state. It gets no leading border,
   inset shadow or replacement vertical rule; its name, role, basis and measured weight do the work. */

.sources-matrix-source {
  display: block;
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: 1.05rem;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
}

.sources-matrix-role {
  display: block;
  margin-top: 0.2rem;
  color: var(--theme-ink-secondary);
}

.sources-matrix-governing .sources-matrix-role {
  color: var(--theme-object-identity-ink);
  font-weight: 500;
}

/* Price basis and coverage, on the row, on the one surface that puts two whole-market figures on the
   same date in one right-aligned mono column. Without them this table is a subtraction diagram with
   none of the explanation the rest of the direction supplies. */
.sources-matrix-basis {
  display: block;
  margin-top: 0.25rem;
  color: var(--theme-ink-secondary);
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.sources-matrix td { white-space: nowrap; }

.sources-matrix td {
  color: var(--theme-ink-primary);
  font-family: var(--mono);
  font-size: 0.86rem;
}

/* The governing row is separated by weight, not by colour, and it is the only row given a strong
   rule. Nothing else in the table may be emphasised, or the grouping starts to read as a ranking. */
.sources-matrix-governing th,
.sources-matrix-governing td {
  border-bottom: 1px solid var(--theme-rule-strong);
}

.sources-matrix-governing td { font-weight: 500; }

/* The governing row is separated by size as well as weight. A 100-weight step and a 1px rule made it
   a peer of the three rows below it on this surface, which is the opposite of what the row is. */
.sources-matrix-governing .sources-matrix-source { font-size: 1.2rem; }
.sources-matrix-governing th { border-bottom-width: 2px; }

/* The fixture warning is a sentence in the document. The dated surface renders it as an element so
   it survives a missing stylesheet; this only styles it. */
.st-ledger-fixture-warning {
  margin: 0 0 0.75rem;
  color: var(--theme-object-identity-ink, var(--theme-ink-secondary));
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-transform: uppercase;
}

.sources-observatory-scope {
  max-width: 74ch;
  margin: 0 0 var(--rhythm-title-content);
  color: var(--theme-ink-secondary);
  font-size: 0.82rem;
  line-height: 1.5;
}

/* The scroll container is focusable, so it needs the site's focus ring rather than the browser's. */
.sources-matrix-scroll:focus-visible {
  outline: 2px solid var(--theme-rule-focus);
  outline-offset: 2px;
}

/* An absence is set in the reading face, lower case and muted, so it cannot be scanned as a figure
   and cannot be mistaken for a zero. */
.sources-matrix-empty {
  color: var(--theme-ink-muted);
  font-family: var(--sans);
  font-size: 0.78rem;
  font-style: italic;
}

.sources-matrix-empty--not-captured {
  font-family: var(--mono);
  font-size: 0.88rem;
  font-style: normal;
}

.sources-matrix-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sources-observatory-key {
  margin-top: var(--rhythm-section-compact);
}

.sources-observatory-key dt > span[aria-hidden="true"] {
  display: inline-block;
  min-width: 1.35rem;
  font-family: var(--mono);
  font-size: 0.86rem;
}

/* Governed rights notes stay close to the matrix without turning its rows into licence paragraphs.
   The disclosure summary names the source; the full text is emitted verbatim from configuration. */
.sources-rights {
  margin-top: var(--rhythm-section-compact);
  padding-top: var(--rhythm-title-content);
  border-top: 2px solid var(--theme-rule-strong);
}

.sources-rights-head {
  display: grid;
  grid-template-columns: 11.75rem minmax(0, 1fr);
  gap: var(--rhythm-title-content);
  align-items: baseline;
  padding-bottom: var(--rhythm-title-content);
}

.sources-rights-head h3 {
  margin: 0;
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: 1.15rem;
  font-weight: 400;
  line-height: 1.25;
}

.sources-rights-head p {
  max-width: 62ch;
  margin: 0;
  color: var(--theme-ink-secondary);
  font-size: 0.82rem;
  line-height: 1.55;
}

.sources-rights-list {
  border-bottom: 1px solid var(--theme-rule-standard);
}

.sources-rights-item {
  border-top: 1px solid var(--theme-rule-standard);
}

.sources-rights-item summary {
  display: grid;
  grid-template-columns: 11.75rem minmax(0, 1fr) auto;
  gap: var(--rhythm-title-content);
  align-items: center;
  min-height: 48px;
  cursor: pointer;
  list-style: none;
}

.sources-rights-item summary::-webkit-details-marker { display: none; }
.sources-rights-item summary::marker { content: ""; }

.sources-rights-item summary::after {
  color: var(--theme-ink-muted);
  content: "+";
  font-family: var(--mono);
  font-size: 1rem;
}

.sources-rights-item[open] summary::after { content: "\2212"; }

.sources-rights-item summary:focus-visible {
  outline: 2px solid var(--theme-rule-focus);
  outline-offset: 2px;
}

.sources-rights-item summary span {
  color: var(--theme-ink-primary);
  font-family: var(--serif-display);
  font-size: 1rem;
}

.sources-rights-item summary small {
  color: var(--theme-ink-secondary);
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.sources-rights-item > p {
  max-width: 76ch;
  margin: 0;
  padding: 0 2rem var(--rhythm-title-content) calc(11.75rem + var(--rhythm-title-content));
  color: var(--theme-ink-secondary);
  font-size: 0.82rem;
  line-height: 1.65;
}

.sources-observatory-foot {
  max-width: 76ch;
  margin: var(--rhythm-title-content) 0 0;
  color: var(--theme-ink-muted);
  font-size: 0.8rem;
  line-height: 1.6;
}

/* The two definitions this table leans on are linked as block targets rather than as inline words.
   At 390px an inline link inside a paragraph is a 17px-tall tap target, which the page's own
   accessibility gate rejects, and padding a word inside a sentence to 44px would have broken the
   line rhythm to satisfy a rule the layout could satisfy properly instead. */
.sources-observatory-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
  gap: var(--rhythm-title-content);
  margin-top: var(--rhythm-title-content);
}

.sources-observatory-links a {
  display: block;
  min-height: 44px;
  padding: 0.7rem 0.9rem 0.75rem;
  border-top: 1px solid var(--theme-rule-standard);
  color: var(--theme-ink-link);
  text-decoration: none;
}

.sources-observatory-links a:hover { background: var(--theme-surface-hover); }

.sources-observatory-links span {
  display: block;
  font-size: 0.92rem;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.sources-observatory-links small {
  display: block;
  margin-top: 0.25rem;
  color: var(--theme-ink-muted);
  font-size: 0.78rem;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .sources-observatory-lead { max-width: 40ch; }
}

@media (max-width: 560px) {
  .sources-matrix { min-width: 43.5rem; }
  .sources-matrix th,
  .sources-matrix td { padding: 0.7rem 0.55rem; }
  /* A narrower source column so more than one date column is visible before the reader scrolls.
     The role caption wraps to three lines to pay for it, which is the right trade: the caption is
     the same on every row and the dates are not. */
  .sources-matrix-corner,
  .sources-matrix tbody th { width: 10.25rem; }
  .sources-matrix-source { font-size: 0.95rem; }
  .sources-matrix td { font-size: 0.78rem; }

  .sources-rights-head { grid-template-columns: minmax(0, 1fr); gap: 0.4rem; }
  .sources-rights-item summary { grid-template-columns: minmax(0, 1fr) auto; gap: 0.35rem 1rem; padding: 0.45rem 0; }
  .sources-rights-item summary small { grid-column: 1; }
  .sources-rights-item summary::after { grid-column: 2; grid-row: 1 / span 2; }
  .sources-rights-item > p { padding: 0 0 var(--rhythm-title-content); }
}
