.proof-index { display:flex; flex-wrap:wrap; gap:8px 16px; margin:12px 0 20px; }
.proof-demo { margin:20px 0; padding:14px; border:1px solid #dce3e8; border-radius:6px; background:#fafcfd; }
.proof-demo figcaption { font-weight:600; margin:0 0 8px; }
.proof-svg-scroll { overflow-x:auto; margin:8px 0; }
.proof-scene { display:block; width:100%; min-width:680px; max-width:760px; height:auto; margin:auto; }
.proof-scene rect { fill:#fff; stroke:#d0dae2; }
.proof-scene text { fill:#35495b; font-family:inherit; font-size:11px; }
.proof-math { text-align:center; font-size:11px; color:#153f67; line-height:1.7; padding-top:2px; }
.proof-math math { font-size:11px; }
.proof-route { fill:none; stroke:#557d90; stroke-width:1.4; }
.proof-scene [data-proof-stage] { opacity:.36; transition:opacity .35s ease,stroke .35s ease; }
.proof-scene .is-complete { opacity:1; }
.proof-scene g.is-current rect { fill:#f0f6fb; stroke:#5281a6; }
.proof-scene path.is-current { stroke-dasharray:4 3; }
.proof-demo[data-playing="true"] .proof-scene path.is-current { animation:proof-travel .8s linear infinite; }
.proof-status { min-height:3.2em; margin:10px 0; }
.proof-readings { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; border-top:1px solid #dce3e8; padding-top:12px; }
.proof-readings h4 { margin:0 0 6px; font-size:12px; }
.proof-readings output { display:block; line-height:1.7; overflow-wrap:anywhere; overflow-x:auto; color:#183f65; min-height:6em; }
.proof-count { min-height:3.2em; margin-bottom:0; }
.proof-demo .proof-comparison-title { font-size:13px; margin:18px 0 6px; }
.proof-signer-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:14px 0 18px; }
.proof-demo .proof-signer-case { min-width:0; margin:0; padding:12px 0 0; border:0; border-top:1px solid #dce3e8; background:none; box-shadow:none; border-radius:0; }
.proof-demo .proof-signer-case h4 { margin:0 0 6px; font-size:13px; }
.proof-derivation { list-style:none; margin:10px 0 0; padding:0; }
.proof-demo .proof-derivation li { margin:0 0 8px; padding:8px 10px; border-left:2px solid #dce3e8; }
.proof-derivation li strong { display:block; margin-bottom:4px; font-size:12px; }
.proof-derivation li.is-current { border-left-color:#5281a6; background:#edf3f8; }
.proof-calculation { display:block; overflow-x:auto; padding:3px 0; color:#153f67; }
.proof-calculation math { font-size:15px; }
.proof-ring-readings { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.proof-ring-readings output { min-height:0; }
.proof-ring-readings > div { min-width:0; }
.proof-ring-readings p { margin:8px 0 0; }
.course-body h3[id] { scroll-margin-top:20px; }
@keyframes proof-travel { to { stroke-dashoffset:-14; } }
@media (max-width:680px) { .proof-readings { grid-template-columns:1fr; } .proof-readings output { min-height:0; } .proof-demo { padding:10px; } .proof-status { min-height:5em; } }
@media (max-width:760px) { .proof-signer-comparison { grid-template-columns:1fr; gap:8px; } }
@media (prefers-reduced-motion:reduce) { .proof-scene [data-proof-stage] { transition:none; } .proof-demo[data-playing="true"] .proof-scene path.is-current { animation:none; } }
