.source-reader.panel-col { max-width: 1260px; padding: 84px 44px 120px; }
.panel.source-reader-panel { height:100dvh; max-height:100dvh; overflow-y:auto; }
.source-reader > h2 { font-size: clamp(34px, 4vw, 58px); font-weight: 300; line-height: 1.1; margin: 0 0 48px; }
.source-section { margin: 0 0 52px; }
.source-reader h3 { font-size: clamp(25px, 2.7vw, 36px); line-height: 1.18; font-weight: 400; margin: 0 0 20px; }
.source-reader p { font-size: 18px; line-height: 1.65; margin: 0 0 20px; white-space: pre-line; }
.source-reader a { color: inherit; text-underline-offset: .2em; overflow-wrap: anywhere; }
.source-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.source-row > * { min-width: 0; }
.source-reader figure { margin: 20px 0; }
.source-reader img, .source-reader video { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; background: #faf9f6; }
.source-reader > .source-section > figure { max-width: 1000px; margin-inline: auto; }
.source-collage { position: relative; width: 100%; margin: 24px 0; }
.source-collage > figure { position: absolute; margin: 0; }
.source-collage > figure img, .source-collage > figure video { width: 100%; height: 100%; }
.source-reader pre { max-width: 100%; overflow: auto; padding: 20px; margin: 0; background: #f5f4ef; font: 13px/1.65 ui-monospace, Consolas, monospace; }
@media (max-width: 1120px) {
  .panel.source-reader-panel .source-row { grid-template-columns:1fr; gap:24px; }
  .panel.source-reader-panel .source-collage { aspect-ratio:auto !important; }
  .panel.source-reader-panel .source-collage > figure { position:static; width:100% !important; height:auto !important; margin-bottom:18px; }
  .panel.source-reader-panel .source-collage > figure :is(img,video) { height:auto; }
  .panel.compact-reader .compact-columns, .panel.compact-reader .case-media-grid { grid-template-columns:1fr; }
  .panel.compact-reader .panel-col { padding-inline:clamp(22px,4vw,44px); }
}
@media (max-width: 760px) {
  .source-reader.panel-col { padding: 76px 22px 90px; }
  .source-row { grid-template-columns: 1fr; gap: 24px; }
  .source-reader p { font-size: 17px; }
  .source-collage { aspect-ratio: auto !important; }
  .source-collage > figure { position: static; width: 100% !important; height: auto !important; margin-bottom: 18px; }
  .source-collage > figure img, .source-collage > figure video { height: auto; }
}
