/* Reading scale for the editorial homepage. Load after the section styles.
   The assurance composition owns its own type; SVG geometry is untouched. */
:root {
  --proof-reading-size: 18px;
  --proof-support-size: 16px;
  --proof-action-size: 15px;
  --proof-label-size: 12px;
}

/* Keep the hero's established display typography; enlarge its useful copy. */
.hero-support { font-size: var(--proof-reading-size); line-height: 1.65; max-width: none; }
.hero-kicker { font-size: 16px; }
.hero-cta { font-size: var(--proof-action-size); }
.landscape-caption { font-size: 14px; }
.hero-video-toggle, .menu-close, .footer-top { font-size: 13px; }
.menu-note, .site-footer p { font-size: 14px; }
.menu-body nav a > span { font-size: var(--proof-label-size); }

/* Narratives should read comfortably at normal browser zoom. */
.proof-outcome-restored p,
.proof-intro-surface .proof-surface-copy .proof-lead,
.story-section-heading .proof-lead,
.story-rigor-visible .story-section-heading .proof-lead,
.story-public .proof-lead,
.story-contact-lead,
.story-compound-copy > p:not(.proof-kicker) {
  font-size: var(--proof-reading-size);
  line-height: 1.65;
}
.proof-outcome-restored p { max-width: 34ch; }
.story-open-answer > p,
.story-compound-rail > p:not(.story-compound-payoff),
.story-contact-invitation .proof-contact-note {
  font-size: var(--proof-support-size);
  line-height: 1.65;
}
.proof-section:not(.proof-assurance) .proof-kicker,
.story-compound-copy .proof-kicker,
.story-open-number,
.story-open-technique,
.story-diagram-label,
.story-folio .proof-folio-label,
.story-folio .proof-claim-number,
.proof-public-record > .proof-folio-label {
  font-size: var(--proof-label-size);
  line-height: 1.6;
}

/* Evidence remains compact, but its content is no longer fine print. */
.story-folio .proof-claim h4 { font-size: 18px; line-height: 1.4; }
.story-folio .proof-claim p,
.story-folio .proof-decision > p,
.story-folio .proof-scope-note p,
.proof-details-grid p,
.proof-public-limits p,
.proof-evidence-blocker {
  font-size: var(--proof-support-size);
  line-height: 1.65;
}
.story-folio .proof-result,
.story-folio .proof-scope-note > span,
.story-folio .proof-evidence-state { font-size: var(--proof-label-size); }
.story-folio .proof-example-switch button { font-size: 14px; }
.proof-evidence-details summary,
.proof-public-limits summary { font-size: var(--proof-action-size); }
.proof-details-grid h4 { font-size: 17px; line-height: 1.4; }
.proof-details-grid pre { font-size: 14px; }
.proof-details-grid pre code { font-size: inherit; }
.story-folio .proof-folio-foot { font-size: 13px; }

/* Supporting labels are HTML so they can grow without distorting diagrams. */
.story-trace-targets strong { font-size: 15px; }
.story-retry-pair { font-size: 15px; }
.story-duplicate-risk > p,
.story-open-formal > p { font-size: 14px; }
.story-open-conditions caption { font-size: 14px; }
.story-open-conditions th { font-size: 13px; }
.story-open-conditions td { font-size: 15px; }
.story-rigor-foot > p,
.story-rigor-foot > div { font-size: 13px; }
.story-layer-labels > span { font-size: 14px; }
.proof-sphere-caption p { font-size: var(--proof-support-size); }
.proof-sphere-footer .proof-art-note { font-size: 12px; }
.proof-intro-surface .proof-motion-tools button { font-size: 13px; }

/* Clear invitations and provenance, with quiet visual weight. */
.story-record-primary,
.story-compound-copy > a,
.proof-record-links,
.proof-public-limits > a { font-size: var(--proof-action-size); }
.story-public .proof-public-additional { font-size: 14px; }
.story-record-context { font-size: 13px; }
.story-public-verdict,
.story-public-verdict > code { font-size: 14px; }
.story-public-input code { font-size: 13px; }
.story-contact .proof-contact-action { font-size: 17px; }

@media (max-width: 1100px) {
  /* Keep the supporting column comfortable before it stacks on phones. */
  .story-compound-layout { column-gap: 24px; }
  .story-layer-labels > span { font-size: 13px; }
}
@media (max-width: 760px) {
  :root {
    --proof-reading-size: 16px;
    --proof-support-size: 16px;
    --proof-action-size: 15px;
  }
  .hero-kicker { font-size: 15px; }
  .landscape-caption { font-size: 13px; }
  .story-layer-labels > span { font-size: 13px; }
  .story-folio .proof-claim { grid-template-columns: 22px minmax(0, 1fr); }
  .story-folio .proof-result { grid-column: 2; padding-top: 0; }
  .story-folio .proof-folio-top { gap: 18px; }
  .story-folio .proof-example-switch { gap: 18px; flex-wrap: wrap; }
  .story-open-diagram .story-diagram-label { font-size: 12px; letter-spacing: .025em; }
  .story-trace-targets strong { font-size: 14px; }
  .story-rigor-foot > div { gap: 12px 20px; }
}
@media (max-width: 430px) {
  .story-compound-rail { grid-template-columns: 1fr; }
  .story-compound-rail h3 { max-width: none; }
  .story-change-progression { grid-column: 1; grid-row: auto; }
  .story-compound-rail .story-compound-payoff { grid-column: 1; grid-row: auto; }
  .story-layer-labels > span { font-size: 12px; }
  .story-public-input code { font-size: 12px; }
}
