:root { --figure-rail: 2.4fr; --phone-width: 168px; }
.source-gallery { display: grid; gap: var(--s6); margin: var(--s6) 0; }
.source-figure { min-width: 0; }
.source-image { border: 1px solid var(--rule); background: transparent; align-self: start; }
.source-image img { display: block; width: 100%; height: auto; max-height: none; }
.source-figure figcaption { display: block; padding-top: var(--s3); font: var(--action)/1.8 var(--sans); }
.source-stamp { display: inline-block; margin-bottom: var(--s2); }
.source-figure figcaption h4 { font: 700 var(--deck)/1.65 var(--serif); margin: 0 0 var(--s2); color: var(--forest); text-wrap: pretty; }
.source-credit { grid-column: auto; }
.figure-spread > .source-figure > figcaption { display: grid; grid-template-columns: minmax(180px,1fr) minmax(0,2.5fr); column-gap: var(--s6); border-top: 1px solid var(--rule); margin-top: var(--s3); }
.figure-spread .source-stamp { justify-self: start; }
.figure-spread figcaption h4 { grid-column: 1; grid-row: 2; }
.figure-spread figcaption p { grid-column: 2; grid-row: 1/3; }
.figure-spread .source-credit { grid-column: 2; }
.figure-rail > .source-figure { display: grid; grid-template-columns: minmax(0,var(--figure-rail)) minmax(0,1fr); gap: var(--s6); align-items: start; }
.figure-rail figcaption { padding-top: 0; border-top: 2px solid var(--forest); padding-top: var(--s3); }
.reading-spread { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: var(--s8); align-items: start; margin: var(--s6) 0; }
.reading-spread .source-gallery { margin: 0; }
.reading-spread .source-figure figcaption { display: block; }
.reading-text .column-section + .column-section { margin-top: var(--s6); }
.reading-storyboard { display: flow-root; }
.reading-storyboard .source-gallery { float: left; width: 44%; margin: 0 var(--s8) var(--s5) 0; }
.reading-storyboard .reading-text { display: contents; }
.reading-storyboard .column-section + .column-section { margin-top: var(--s6); }
.figure-paired { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--s8); }
.figure-paired > .source-figure { display: grid; grid-template-columns: minmax(0,var(--phone-width)) minmax(0,1fr); gap: var(--s4); align-items: start; }
.figure-paired figcaption { padding-top: 0; }
.figure-paired figcaption h4 { font-size: var(--body); }
.figure-paired .source-image { width: 100%; }
@media (min-width:681px) and (max-width:1000px) {
 .reading-alongside { grid-template-columns: 1fr; }
 .reading-alongside .source-gallery { max-width: 560px; }
 .figure-rail > .source-figure { grid-template-columns: minmax(0,1.8fr) minmax(0,1fr); }
 .figure-paired { grid-template-columns: 1fr; }
 .figure-paired > .source-figure { grid-template-columns: 200px minmax(0,1fr); }
}
@media (max-width:680px) {
 .figure-rail > .source-figure, .reading-spread, .figure-paired { grid-template-columns: 1fr; gap: var(--s5); }
 .figure-spread > .source-figure > figcaption { display: block; }
 .figure-rail figcaption { border-top: 0; padding-top: 0; }
 .figure-paired > .source-figure { grid-template-columns: minmax(0,116px) minmax(0,1fr); gap: var(--s3); }
 .figure-paired figcaption { font-size: var(--meta); }
 .figure-paired .source-credit { font-size: var(--meta); }
 .figure-paired .image-open-label { font-size: var(--meta); justify-content: center; padding-left: 0; padding-right: 0; }
 .reading-spread .source-gallery { max-width: none; }
 .reading-storyboard .source-gallery { float: none; width: 100%; margin: 0 0 var(--s5); }
}
