/* Proof pages use the installed ThinkCodec tokens and motion runtime. */
.proof-page h1 { max-width: 18ch; }
.proof-page .hero-actions { flex-wrap: wrap; }
.proof-page .proof-index { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 32px; }
.proof-page a:not(.button) { text-decoration: underline; text-underline-offset: 4px; }
.proof-page .proof-index a { min-height: 44px; display: inline-flex; align-items: center; }
.proof-page .proof-section { padding-block: 48px; border-bottom: 1px solid var(--line); scroll-margin-top: 112px; }
.proof-page .proof-section > h2 { font-size: clamp(1.9rem,4vw,3rem); margin-bottom: 24px; max-width: 26ch; }
.proof-page .proof-section > p + p { margin-top: 20px; }
.proof-page .proof-section > p + :is(figure,table,div,ul,ol) { margin-top: 24px; }
.proof-page p { color: var(--ink); }
.proof-page .proof-note, .proof-page figcaption, .proof-page caption { color: var(--muted); font-size: 14px; line-height: 1.6; }
.proof-page .proof-note { margin-block: 20px; }
.proof-page p.proof-note { font-size: 16px; }
.proof-page .sample-banner { background: var(--teal-dark); border-left: 4px solid var(--teal); color: var(--ink); padding: 18px 20px; font-size: 16px; }
.proof-page .proof-grid { display: grid; gap: 8px; grid-template-columns: 1fr; }
.proof-page .proof-tile { background: var(--surface); padding: 24px; min-width: 0; }
.proof-page .proof-tile h3 { margin-bottom: 16px; }
.proof-page .case-board { display: grid; gap: 24px; grid-template-columns: minmax(0,1fr); }
.proof-page .proof-phone { max-width: 260px; margin: 0 auto; }
.proof-page .proof-phone img { width: 100%; height: auto; display: block; border: 1px solid var(--line); }
.proof-page figcaption { margin-top: 14px; }
.proof-page .proof-flow { max-width: 390px; margin-block: 28px; }
.proof-page .proof-flow svg { width: 100%; }
.proof-page .proof-flow rect { fill: var(--surface); stroke: var(--line); }
.proof-page .proof-flow text { fill: var(--ink); font: 16px Inter, sans-serif; }
.proof-page .proof-route { fill: none; stroke: var(--teal); stroke-width: 2; }
.proof-page .proof-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin-block: 28px; text-align: left; }
.proof-page caption { text-align: left; margin-bottom: 12px; }
.proof-page :is(th,td) { padding: 14px 8px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; font-size: 16px; }
.proof-page th { font-weight: 500; }
.proof-page thead th { color: var(--muted); font-size: 14px; }
.proof-page .metric-table th:first-child { width: 68%; }
.proof-page .metric-table td { font-variant-numeric: tabular-nums; color: var(--teal); }
.proof-page .header-table th:first-child { width: 62%; }
.proof-page .observed { color: var(--teal); }
.proof-page .not-observed { color: var(--data); }
.proof-page .proof-bars { width: 100%; max-width: 560px; margin-block: 24px; }
.proof-page .proof-bars text { font: 16px Inter, sans-serif; fill: var(--ink); }
.proof-page .proof-bars rect { fill: var(--teal-dark); }
.proof-page .proof-bars .bar { fill: var(--teal); }
.proof-page :is(ul,ol) { padding-left: 22px; }
.proof-page li + li { margin-top: 12px; }
.proof-page details { background: var(--surface); margin-block: 20px; padding: 20px; }
.proof-page summary { cursor: pointer; min-height: 44px; display: list-item; }
.proof-page details > :not(summary) { margin-top: 18px; }
.proof-page .requirement { padding-block: 24px; border-bottom: 1px solid var(--line); }
.proof-page .requirement h3 { font-size: 17px; overflow-wrap: anywhere; }
.proof-page .requirement p { margin-top: 14px; }
.proof-page .status { display: inline-block; color: var(--data); font-size: 16px; margin-top: 12px; }
.proof-page .status.met { color: var(--teal); }
.proof-page .proof-strip { padding: 28px; background: var(--surface); margin-block: 32px; }
.proof-page .proof-strip p + a { margin-top: 20px; }
.proof-page .proof-cta { padding-block: 48px 72px; }
.proof-page .proof-cta h2 { margin-bottom: 24px; }
@media (min-width: 760px) {
 .proof-page .proof-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .proof-page .case-board { grid-template-columns: minmax(0,1fr) 260px; gap: 48px; }
 .proof-page .proof-section { padding-block: 64px; }
 .proof-page .requirement { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 8px 28px; }
 .proof-page .requirement h3 { grid-column: 1; }
 .proof-page .requirement .status { grid-column: 1; }
 .proof-page .requirement p { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) { .proof-page * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Sample layouts: phone rows read as a label followed by its complete detail. */
.proof-page .sample-banner { max-width: none; border: 0; padding-inline: max(20px,calc((100vw - 1184px)/2)); }
.proof-page .page-hero { padding-block: 28px 32px; border-bottom: 0; }
.proof-page .proof-intro { display: grid; gap: 28px; }
.proof-page .proof-intro-copy { min-width: 0; }
.proof-page .studio-label { margin-bottom: 18px; font-size: 16px; }
.proof-page .hero-subhead { font-size: 16px; line-height: 1.65; margin-top: 20px; }
.proof-page .hero-actions { margin-top: 24px; }
.proof-page .proof-excerpt { background: var(--surface); padding: 20px; min-width: 0; }
.proof-page .proof-excerpt .proof-table { margin: 0; }
.proof-page .proof-excerpt caption { color: var(--ink); }
.proof-page .proof-index { margin-top: 0; padding-block: 16px 28px; gap: 0 24px; }
.proof-page .proof-index a { font-size: 16px; }
.proof-page .proof-section { border: 0; }
.proof-page :is(.proof-note, figcaption, caption, thead th) { font-size: 16px; }
.proof-page .proof-pair { display: grid; gap: 24px; align-items: start; }
.proof-page .proof-pair :is(figure, .proof-table) { margin: 0; min-width: 0; }
.proof-page .proof-flow { max-width: none; }
.proof-page .proof-flow svg { height: auto; }
.proof-page .proof-bars { max-width: none; margin: 0; }
.proof-page .risk-table th:first-child { width: 5.25rem; }
.proof-page .proof-strip h2 { margin-bottom: 20px; }
@media (max-width: 759px) {
 .proof-page .proof-table:not(.risk-table),
 .proof-page .proof-table:not(.risk-table) :is(caption, tbody, tr, th, td) { display: block; width: 100%; }
 .proof-page .proof-table:not(.risk-table) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
 .proof-page .proof-table:not(.risk-table) tbody th { border: 0; padding: 16px 0 4px; color: var(--teal); }
 .proof-page .proof-table:not(.risk-table) td { padding: 0 0 16px; }
 .proof-page .proof-table:not(.risk-table) caption { padding-bottom: 8px; }
 .proof-page .proof-excerpt .proof-table tbody tr:last-child td { border: 0; padding-bottom: 0; }
 .proof-page .risk-table :is(th,td) { padding-inline: 4px; }
 .proof-page .proof-section > h2 { font-size: 1.9rem; }
 .proof-page .proof-cta h2 { font-size: 1.9rem; }
}
@media (min-width: 760px) {
 .proof-page .page-hero { padding-block: 48px; }
 .proof-page .proof-intro { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items: center; }
 .proof-page .page-hero h1 { font-size: clamp(2.4rem,5vw,4.25rem); }
 .proof-page .proof-excerpt { padding: 28px; }
 .proof-page .proof-excerpt th:first-child { width: 38%; }
 .proof-page .proof-excerpt :is(th,td) { padding-inline: 0; }
 .proof-page .proof-excerpt td { padding-left: 20px; }
 .proof-page .proof-pair { grid-template-columns: minmax(0,.9fr) minmax(0,1.4fr); gap: 48px; }
 .proof-page .proof-pair .proof-table th:first-child { width: 32%; }
 .proof-page .proof-pair .risk-table th:first-child { width: 5.25rem; }
 .proof-page .proof-table:not(.risk-table) th:first-child { width: 32%; }
}

/* Evidence and its operating policy form a single chapter on wide screens. */
@media (min-width: 1000px) {
 .proof-page .proof-chapter { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items: start; }
 .proof-page .proof-chapter .proof-section { min-width: 0; }
 .proof-page .proof-chapter h2 { font-size: 2.25rem; }
}

@media (min-width: 1000px) {
 .proof-page .proof-close { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; background: var(--surface); padding: 32px; margin-block: 48px 72px; }
 .proof-page .proof-close :is(.proof-section,.proof-cta) { padding: 0; min-width: 0; }
 .proof-page .proof-close h2 { font-size: 2.25rem; }
}
