/* Readable typography for the Prefix Steering project page. */
body { font-size: 20px; line-height: 1.75; }
/* One content width from the TL;DR to the paper viewer, so every block shares both edges. */
.project-nav, .project-footer, main { max-width: 1056px; }
.project-nav > div { font-size: 16px; }
.project-wordmark { font-size: 26px; }
.project-hero { padding-top: 52px; padding-bottom: 44px; max-width: none; }
.project-eyebrow { font-size: 14px; }
.project-subtitle {
  display: block;
  margin: 24px auto 0;
  max-width: 820px;
  color: var(--color-ink-soft);
  font-size: clamp(24px, 2.8vw, 31px);
  line-height: 1.35;
  text-wrap: balance;
  letter-spacing: -.015em;
}
.project-lede { max-width: 800px; font-size: 22px; line-height: 1.65; }
.project-authors { font-size: 20px; gap: 16px 32px; }
.project-affiliations { font-size: 18px; }
sup { font-size: 12px; }
.project-resource { gap: 9px; font-size: 16px; padding: 12px 22px; border-radius: 999px; }
/* Solid pills for available resources, dashed outlines for those still in progress. */
.project-resource:not(.project-resource--pending) { background: var(--color-ink); border-color: var(--color-ink); color: var(--color-bg); }
.project-status { font-size: 14px; }
.paper-figure { background: white; border-radius: 8px; }
.project-figure figcaption { font-size: 16px; line-height: 1.7; }
.project-tldr { max-width: none; }
.project-section { max-width: none; }
.project-section > h2 { font-size: 40px; }
.project-section > h2::before { font-size: 16px; }
.project-takeaway p { font-size: 28px; }
.paper-figure {
  display: block;
  width: 100%;
  height: auto;
  padding: 14px;
  border: 1px solid var(--color-border);
}
/* The SVGs carry a white canvas; dim it in dark mode so it does not glare. */
html[data-theme='dark'] .paper-figure { border-color: transparent; filter: brightness(.86) sepia(.08); }
.pdf-viewer__title { font-size: 24px; }
.pdf-viewer__meta, .pdf-viewer__links a, .pdf-viewer figcaption, .project-footer { font-size: 15px; }
@media (max-width: 700px) {
  body { font-size: 18px; }
  .project-lede { font-size: 20px; }
  .project-authors { font-size: 19px; }
  .project-affiliations { font-size: 17px; }
  .project-subtitle { font-size: 23px; }
  .project-subtitle br { display: none; }
  .project-section > h2 { font-size: 34px; }
  .project-takeaway p { font-size: 25px; }
  .paper-figure { padding: 5px; }
  .project-resources { gap: 8px; }
  .project-resource { gap: 7px; padding: 9px 15px; font-size: 15px; }
}

.figure-conclusion { border-left: 3px solid var(--color-accent); padding: 12px 22px; background: var(--color-surface); }
.dim-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; margin-top: 36px; }
.dim-comparison h3 { font-size: 32px; margin-bottom: 18px; }
.dim-comparison p { font-size: 20px; color: var(--color-ink-soft); }
.dim-comparison .project-figure { margin: 0; }
@media (max-width: 700px) {
    .dim-comparison { gap: 18px; }
}


/* Overview: the idea and the main finding, side by side. */
.project-page { --c-prefix: #00909a; --c-full: #b9733d; --c-prompt: #7b58c2; --c-base: var(--color-ink-soft); }
html[data-theme='dark'] .project-page { --c-prefix: #1fa3a3; --c-full: #bf7a45; --c-prompt: #9a7bdb; }
.prefix-overview {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 8px;
}
.overview-card { position: relative; display: flex; flex-direction: column; padding: 26px 28px 24px; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface); }
.overview-label { color: var(--color-accent-strong); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.overview-card h3 { margin: 8px 0 18px; font-size: 27px; }
.overview-steps { margin: 18px 0 0; padding-left: 22px; color: var(--color-ink-soft); font-size: 17px; line-height: 1.55; }
.overview-steps li + li { margin-top: 10px; }
.overview-steps li::marker { color: var(--color-accent-strong); font-weight: 700; }
.overview-steps strong { color: var(--color-ink); font-weight: 600; }
.overview-caption { margin-top: 12px; color: var(--color-ink-soft); font-size: 15px; line-height: 1.6; }

/* Schematic: shared tokens in ink, each method in its own color. */
.overview-schematic { display: block; width: 100%; height: auto; overflow: visible; font-family: var(--font-body); }
.sch-head { fill: var(--color-ink-soft); font-size: 9px; letter-spacing: .12em; }
.sch-divider { stroke: var(--color-border); stroke-dasharray: 3 3; }
.sch-name { fill: var(--color-ink); font-size: 12.5px; font-weight: 600; }
.sch-name--ours { fill: var(--c-prefix); }
.sch-sub { fill: var(--color-ink-soft); font-size: 10px; }
.sch-track { stroke: var(--color-border); stroke-width: 1.2; }
.sch-dot { fill: var(--color-ink-soft); }
.sch-gen circle { fill: var(--color-surface); stroke: var(--color-ink-soft); stroke-width: 1.2; }
.sch-arc { fill: none; stroke-width: 1.3; opacity: .55; }
.sch-prompt { stroke: var(--c-prompt); }
.sch-prefix { stroke: var(--c-prefix); opacity: .7; }
.sch-prompt-token { fill: color-mix(in srgb, var(--c-prompt) 16%, var(--color-surface)); stroke: var(--c-prompt); stroke-width: 1.4; }
.sch-p { fill: var(--c-prompt); font-family: var(--font-display); font-size: 12px; font-style: italic; }
.sch-full circle { fill: var(--c-full); }
.sch-full-arc { stroke: var(--c-full); }
.sch-arrow--extra { opacity: .38; }
.sch-bracket { fill: none; stroke: var(--color-ink-soft); stroke-width: 1; opacity: .7; }
.sch-note { fill: var(--color-ink-soft); font-size: 9.5px; font-style: italic; }
.sch-arrow { fill: none; stroke: var(--c-full); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.sch-arrow--ours { stroke: var(--c-prefix); stroke-width: 1.8; }
.sch-band { fill: color-mix(in srgb, var(--c-prefix) 9%, transparent); }
.sch-halo { fill: color-mix(in srgb, var(--c-prefix) 22%, transparent); }
.sch-ours { fill: var(--c-prefix); }

/* Duration chart. */
.chart-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 8px; padding: 0; list-style: none; color: var(--color-ink-soft); font-size: 13px; }
.chart-legend li { display: inline-flex; align-items: center; gap: 7px; }
.chart-key { display: inline-block; width: 16px; height: 0; border-top: 2px solid; }
.chart-key--prefix { border-color: var(--c-prefix); }
.chart-key--full { width: 9px; height: 9px; border: 0; background: var(--c-full); transform: rotate(45deg); }
.chart-key--prompt { border-top-style: dashed; border-color: var(--c-prompt); }
.chart-key--base { border-top-style: dashed; border-color: var(--c-base); }
.duration-chart { position: relative; flex: 1; }
.duration-chart__fallback { color: var(--color-ink-soft); font-size: 15px; }
.duration-svg { display: block; width: 100%; height: auto; font-family: var(--font-body); }
.dc-title { fill: var(--color-ink); font-size: 12.5px; font-weight: 600; }
.dc-tick { fill: var(--color-ink-soft); font-size: 11px; font-variant-numeric: tabular-nums; }
.dc-axis, .dc-note { fill: var(--color-ink-soft); font-size: 10.5px; }
.dc-label { fill: var(--color-ink); font-size: 11px; font-weight: 600; }
.dc-grid { stroke: var(--color-border); stroke-width: 1; }
.dc-ref { stroke-width: 1.5; stroke-dasharray: 4 3; }
.dc-ref--prompt { stroke: var(--c-prompt); }
.dc-ref--base { stroke: var(--c-base); }
.dc-line { fill: none; stroke: var(--c-prefix); stroke-width: 2; stroke-linejoin: round; }
.dc-dot { fill: var(--color-surface); stroke: var(--c-prefix); stroke-width: 2; }
.dc-dot--first { fill: var(--c-prefix); }
.dc-full { fill: var(--c-full); stroke: var(--color-surface); stroke-width: 2; }
.dc-guide { stroke: var(--color-ink-soft); stroke-width: 1; }
.dc-hit { fill: transparent; cursor: crosshair; }
.dc-tooltip { position: absolute; top: 42%; transform: translate(12px, -50%); display: grid; gap: 1px; padding: 7px 11px; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-raised); box-shadow: 0 6px 18px rgb(0 0 0 / .12); color: var(--color-ink-soft); font-size: 13px; line-height: 1.4; white-space: nowrap; pointer-events: none; }
.dc-tooltip[hidden] { display: none; }
.dc-tooltip--left { transform: translate(calc(-100% - 12px), -50%); }
.dc-tooltip strong { color: var(--color-ink); }
.chart-data { overflow-x: auto; margin-top: 10px; color: var(--color-ink-soft); font-size: 14px; }
.chart-data summary { cursor: pointer; width: max-content; }
.chart-data table { width: 100%; margin-top: 8px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.chart-data th, .chart-data td { padding: 3px 8px; border-bottom: 1px solid var(--color-border); text-align: right; font-weight: 400; }
.chart-data thead th { color: var(--color-ink); font-weight: 600; }

@media (max-width: 860px) {
  .prefix-overview,   .overview-card { padding: 20px 12px 18px; }
  .overview-card > :not(svg, .duration-chart) { padding-inline: 6px; }
  .overview-card h3 { font-size: 24px; }
}

/* Section building blocks shared by 01–03. */
.section-lede { max-width: 820px; margin-top: 18px; color: var(--color-ink-soft); font-size: 19px; line-height: 1.65; }
.claim-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }
.claim-card { padding: 22px 22px 20px; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface); }
.claim-card h3 { margin: 6px 0 10px; font-size: 22px; }
.claim-card p:not(.overview-label, .claim-math) { color: var(--color-ink-soft); font-size: 16px; line-height: 1.6; }
.claim-math { margin: 4px 0 12px; color: var(--color-ink); font-family: var(--font-display); font-size: 21px; line-height: 1.4; }
.lemma-card .claim-math { margin: 10px 0; }
.card-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 28px; }
.lemma-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32px; align-items: center; margin-top: 24px; }
.lemma-card p:not(.overview-label, .claim-math, .overview-caption) { color: var(--color-ink-soft); font-size: 16px; line-height: 1.6; }
.takeaway { margin-top: 30px; padding: 18px 24px; border-left: 3px solid var(--color-accent); background: var(--color-surface); }
.takeaway span { color: var(--color-accent-strong); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.takeaway p { margin-top: 6px; font-size: 19px; line-height: 1.6; }
.project-section > h2 + .section-lede { margin-top: 14px; }
.project-section .project-figure { margin-top: 28px; }

/* Example transcript. */
.transcript { display: block; padding: 18px 20px; border-radius: 10px; background: var(--color-bg); font-size: 16px; line-height: 1.6; }
.transcript-role { display: block; margin-bottom: 2px; color: var(--color-ink-soft); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.transcript-role--model { color: var(--c-prefix); }
.transcript mark { padding: 0 3px; border-radius: 3px; background: color-mix(in srgb, var(--c-prefix) 22%, transparent); color: var(--color-ink); font-weight: 600; }

/* Strength and matching charts. */
.strength-chart, .matching-chart { position: relative; }
.sc-shade { fill: color-mix(in srgb, var(--c-prefix) 8%, transparent); }
.sc-line { fill: none; stroke-width: 1.6; stroke-linejoin: round; }
.sc-break { stroke-dasharray: 2 3; }
.sc-prefix1 { stroke: var(--c-prefix); }
.sc-prefix5 { stroke: var(--c-prefix); stroke-dasharray: 5 3; }
.sc-full { stroke: var(--c-full); }
.sc-mark { stroke-dasharray: none; stroke-width: 1.6; }
.sc-mark.sc-prefix1 { fill: var(--c-prefix); stroke: var(--color-surface); }
.sc-mark.sc-prefix5 { fill: var(--color-surface); stroke: var(--c-prefix); }
.sc-mark.sc-full { fill: var(--c-full); stroke: var(--color-surface); }
.sc-prompt { fill: var(--c-prompt); }
.sc-base { fill: var(--c-base); }
.sc-ring { fill: none; stroke: var(--color-ink); stroke-width: 1.2; }
.mc-band { fill: color-mix(in srgb, var(--c-prefix) 14%, transparent); }
.chart-key--prefix5 { border-top-style: dashed; border-color: var(--c-prefix); }
.chart-key--fullline { border-color: var(--c-full); }
.chart-key--promptpt, .chart-key--basept { width: 9px; height: 9px; border: 0; }
.chart-key--promptpt { background: var(--c-prompt); }
.chart-key--basept { background: var(--c-base); }

/* Strength-policy table. */
.policy-block { margin-top: 36px; }
.policy-block h3 { font-size: 27px; }
.policy-block > p { max-width: 820px; margin-top: 10px; color: var(--color-ink-soft); font-size: 17px; line-height: 1.6; }
.policy-table-wrap { margin-top: 18px; overflow-x: auto; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface); }
.chart-data .policy-table { margin-top: 10px; }
.policy-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 15px; font-variant-numeric: tabular-nums; }
.policy-table caption { caption-side: bottom; padding: 12px 18px; color: var(--color-ink-soft); font-size: 14px; text-align: left; }
.policy-table th, .policy-table td { padding: 10px 12px; border-bottom: 1px solid var(--color-border); text-align: right; white-space: nowrap; }
.policy-table thead th { color: var(--color-ink-soft); font-size: 13px; font-weight: 600; white-space: normal; }
.policy-table th:first-child { width: 15%; }
.policy-table tbody th { color: var(--color-ink); font-weight: 600; text-align: left; }
.policy-table td span, .policy-table td small { display: block; }
.policy-table td small { color: var(--color-ink-soft); font-size: 12px; }
.policy-table td.is-best span { color: var(--c-prefix); font-weight: 700; }
.policy-table tbody tr:last-child > * { border-bottom: 0; }
@media (max-width: 860px) {
  .card-pair, .claim-grid, .lemma-card { grid-template-columns: 1fr; }
  .lemma-card { gap: 18px; }
  .section-lede, .takeaway p { font-size: 17px; }
}

/* Line charts: one color class per series. */
.lc-line { fill: none; stroke-width: 2; stroke-linejoin: round; }
.lc-dot { stroke: var(--color-surface); stroke-width: 1.2; }
.lc-band { stroke: none; opacity: .09; }
.lc-prefix { stroke: var(--c-prefix); fill: var(--c-prefix); }
.lc-full { stroke: var(--c-full); fill: var(--c-full); }
.lc-prompt { stroke: var(--c-prompt); fill: var(--c-prompt); }
.lc-base { stroke: var(--c-base); fill: var(--c-base); }
.lc-line.lc-prefix, .lc-line.lc-full, .lc-line.lc-prompt, .lc-line.lc-base { fill: none; }
.lc-dot.lc-prefix { fill: var(--c-prefix); }
.geometry-card { margin-top: 28px; }
.geometry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.geometry-chart, .dim-chart, .models-panel { position: relative; }
.overview-caption a { color: var(--color-ink-soft); text-decoration-color: var(--color-border); }
.dim-comparison .overview-card { padding: 22px 22px 18px; }
.dim-comparison .overview-caption { font-size: 15px; }
.chart-legend--sm { gap: 2px 12px; margin-bottom: 4px; font-size: 12.5px; }

/* Models × tasks explorer. */
.models-card { margin-top: 28px; }
.models-controls { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 20px; margin-bottom: 14px; }
.models-controls [role=group] { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-bg); }
.models-controls button { padding: 6px 14px; border: 0; border-radius: 999px; background: none; color: var(--color-ink-soft); font-size: 14px; font-weight: 600; cursor: pointer; }
.models-controls button:hover { color: var(--color-ink); }
.models-controls button[aria-pressed=true] { background: var(--color-ink); color: var(--color-bg); }
.models-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.mp-path { fill: none; stroke: var(--color-ink-soft); stroke-width: 1.2; stroke-dasharray: 3 3; opacity: .7; }
.chart-key--dot1, .chart-key--dot5 { width: 9px; height: 9px; border: 0; border-radius: 50%; }
.chart-key--dot1 { background: var(--c-prefix); }
.chart-key--dot5 { border: 2px solid var(--c-prefix); }
.chart-key--path { border-top: 1.5px dashed var(--color-ink-soft); }
@media (max-width: 860px) {
  .geometry-grid { grid-template-columns: 1fr; }
  .models-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Body superscripts and subscripts follow the text color; accent superscripts are for affiliations only. */
.project-body :is(sup, sub) { margin-left: 0; color: inherit; font-size: .72em; }

/* Lemma 5: the two interventions side by side, then the matching condition as display math. */
.lemma-compare { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: center; margin: 4px 0 16px; }
.lemma-compare > div { padding: 12px 14px; border-radius: 10px; background: var(--color-bg); }
.lemma-compare > div > span:first-child { color: var(--color-ink-soft); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lemma-compare p { margin-top: 2px; color: var(--color-ink) !important; font-size: 15px !important; line-height: 1.45 !important; }
.lemma-approx { color: var(--color-ink-soft); font-size: 26px; }
.lemma-card .lemma-note { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--color-border); font-size: 14.5px !important; }

/* Strength-policy panels. */
.policy-card { margin-top: 18px; }
.policy-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.sc-other { fill: var(--c-base); opacity: .75; }
.chart-key--other { width: 8px; height: 8px; border: 0; border-radius: 50%; background: var(--c-base); }
@media (max-width: 860px) { .policy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Sidebar index: full section titles in sentence case, so each entry reads on its own. */
@media (min-width: 1540px) {
  .project-toc a { align-items: baseline; padding-block: 8px; font-size: 14px; line-height: 1.35; letter-spacing: 0; text-transform: none; white-space: normal; }
  .project-toc a span { flex: none; font-size: 12px; letter-spacing: .04em; }
}

/* The embedded PDF stays a white page; dim it in dark mode so it does not glare. */
html[data-theme='dark'] .pdf-viewer__document { filter: brightness(.82); }


/* KaTeX: one math face for inline and display math, sized to sit level with Inter. */
.project-body .katex { font-size: 1.1em; }
.claim-math .katex { font-size: 1.12em; }
.lemma-math { margin: 6px 0 4px; color: var(--color-ink); }
.lemma-math .katex-display { margin: 10px 0; }
.lemma-math .katex { font-size: 1.45em; }
.lemma-compare .katex { font-size: 1.05em; }

.theory-notation { max-width: 820px; margin-top: 16px; color: var(--color-ink-soft); font-size: 16px; line-height: 1.65; }
@media (max-width: 860px) {
    }

/* Example carousel: slides share one grid cell so the card keeps its height. */
.example-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.example-nav { display: inline-flex; gap: 6px; }
.example-nav button { width: 32px; height: 32px; padding: 0; border: 1px solid var(--color-border); border-radius: 50%; background: none; color: var(--color-ink); font-size: 18px; line-height: 1; cursor: pointer; }
.example-nav button:hover { border-color: var(--color-accent); color: var(--color-accent-strong); }
.carousel-slides { display: grid; }
.carousel-slide { grid-area: 1 / 1; }
.carousel-slide[data-inactive] { visibility: hidden; }
.carousel-slide h3 { margin: 8px 0 18px; font-size: 27px; }
.transcript { position: relative; }
.transcript p { padding-right: 34px; }
.steer-pill { display: inline-block; margin-left: 4px; padding: 0 8px; border-radius: 999px; background: color-mix(in srgb, var(--c-prefix) 18%, transparent); color: var(--c-prefix); font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 1.7; text-transform: uppercase; vertical-align: 2px; }
.transcript-omitted { color: var(--color-ink-soft); font-size: 14px; letter-spacing: .06em; text-align: center; }
.transcript-answer .katex { color: var(--color-ink); }
.transcript-answer .boxed { border-color: var(--c-prefix) !important; }
.attention-arc { position: absolute; inset: 0; overflow: visible; pointer-events: none; }
.arc-line { stroke: var(--c-prefix); stroke-width: 1.6; stroke-dasharray: 4 4; }
.arc-head { fill: var(--c-prefix); }
.arc-label { fill: var(--c-prefix); font: 600 11px var(--font-body); letter-spacing: .06em; }
.transcript[data-connector]:has(.transcript-omitted) .turn p { padding-right: 56px; }
/* Speaker labels sit in a left column so the gap between turns stays clear for the attention arc. */
.turn { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.turn + .turn { margin-top: 22px; }
.turn .transcript-role { margin: 0; }
.turn:has(.transcript-omitted) { margin-top: 10px; }
.turn:has(.transcript-omitted) + .turn { margin-top: 10px; }
.transcript-omitted { text-align: left; }
@media (max-width: 520px) { .transcript { padding: 14px 12px; } .turn { grid-template-columns: 58px minmax(0, 1fr); gap: 8px; } .turn .transcript-role { font-size: 10px; letter-spacing: .06em; } .transcript[data-connector]:has(.transcript-omitted) .turn p { padding-right: 40px; } }
.example-task { margin-top: 8px; color: var(--c-prefix); font-size: 13px; font-weight: 700; }
.carousel-slide h3 { margin-top: 2px; }

/* Section 01: the formal statements, one per slide. */
.math-card { margin-top: 0; }
.fold-card .math-card { padding: 20px 28px 26px; border-top: 1px solid var(--color-border); }
@media (max-width: 860px) { .fold-card .math-card { padding: 18px; } }
.math-card .theory-notation { max-width: none; margin: 10px 0 18px; padding-bottom: 16px; border-bottom: 1px solid var(--color-border); font-size: 15px; }
.math-body p:not(.claim-math) { color: var(--color-ink-soft); font-size: 16.5px; line-height: 1.65; }
.math-body .claim-math { margin: 6px 0; overflow-x: auto; overflow-y: hidden; }
.math-body .katex-display { margin: 8px 0; text-align: left; }
.math-body .katex-display > .katex { text-align: left; }
.math-body .claim-math .katex { font-size: 1.15em; }
[data-carousel]:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
@media (max-width: 860px) { .math-body .claim-math .katex { font-size: .8em; } }

/* Evidence and DiM inside the details carousel. */
.math-card .geometry-grid { margin-top: 4px; }
.dim-slide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 28px; align-items: center; }
.dim-slide > p { color: var(--color-ink-soft); font-size: 16.5px; line-height: 1.65; }
@media (max-width: 860px) { .dim-slide { grid-template-columns: minmax(0, 1fr); } }

/* Foldable detail card: a plain-language summary that opens to the formal result. */
.fold-card { margin-top: 24px; padding: 0; }
.fold-card > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 20px; padding: 22px 28px; cursor: pointer; list-style: none; }
.fold-card > summary::-webkit-details-marker { display: none; }
.fold-card > summary::after { content: '+'; grid-column: 2; grid-row: 1 / span 3; align-self: center; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--color-border); border-radius: 50%; color: var(--color-ink); font-size: 20px; line-height: 1; }
.fold-card[open] > summary::after { content: '−'; }
.fold-card > summary:hover::after { border-color: var(--color-accent); color: var(--color-accent-strong); }
.fold-title { color: var(--color-ink); font-family: var(--font-display); font-size: 24px; line-height: 1.25; }
.fold-gist { color: var(--color-ink-soft); font-size: 16px; line-height: 1.55; }
.fold-card .lemma-card { margin: 0; padding: 4px 28px 26px; border-top: 1px solid var(--color-border); padding-top: 22px; }
@media (max-width: 860px) { .fold-card > summary { padding: 18px; } .fold-card .lemma-card { padding: 18px; } .fold-title { font-size: 21px; } }
