/* Complete scenes, natural paper colour; captions live in the opened image. */
.authorPortraits { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line, #d9d6cc); }
.portraitFold > summary { cursor: pointer; font: 18px var(--serif, serif); }
.portraitGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 18px; }
.portraitThumbnail { display: flex; justify-content: center; align-items: center; border: 0; background: transparent; padding: 0; width: 100%; height: 160px; cursor: zoom-in; }
.portraitThumbnail img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.portraitThumbnail:focus-visible { outline: 2px solid var(--accent, #72512e); outline-offset: 5px; }
.portraitMore { margin-top: 18px; }
.portraitMore > summary { cursor: pointer; font-size: 12px; color: var(--muted, #68665e); }
.portraitDialog { box-sizing: border-box; width: min(1120px, 96vw); max-width: 96vw; max-height: 94vh; padding: 20px; border: 1px solid var(--line, #d9d6cc); background: var(--paper, #faf8f2); color: var(--ink, #292820); overflow: auto; }
.portraitDialog::backdrop { background: #171612bf; }
.portraitDialogToolbar { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-bottom: 18px; }
.portraitPosition { margin-right: auto; font-size: 12px; }
.portraitDialogToolbar button { color: inherit; background: transparent; border: 1px solid var(--line, #d9d6cc); border-radius: 3px; padding: 6px 10px; font: inherit; font-size: 12px; cursor: pointer; }
.portraitDialogToolbar button:disabled { opacity: .4; cursor: default; }
.portraitDialogBody { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(240px, 1fr); gap: 26px; align-items: start; }
.portraitFull { display: flex; justify-content: center; min-width: 0; }
.portraitFull img { max-width: 100%; max-height: 76vh; width: auto; height: auto; object-fit: contain; }
.portraitCaption { min-width: 0; overflow-wrap: anywhere; font: 13px/1.65 var(--sans, sans-serif); }
.portraitCaption h2 { margin: 0 0 8px; font: 23px/1.45 var(--serif, serif); }
.portraitCaption h3 { margin: 20px 0 5px; font-size: 12px; font-weight: 600; }
.portraitCaption p { margin: 6px 0; }
.portraitCaption a { color: var(--accent, #72512e); text-underline-offset: 3px; }
.portraitCollection { font-family: var(--serif, serif); font-size: 16px; }
@media (max-width: 640px) {
  .portraitGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .portraitThumbnail { height: 140px; }
  .portraitDialog { padding: 14px; }
  .portraitDialogBody { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .portraitFull img { max-height: 58vh; }
  .portraitDialogToolbar { gap: 6px; }
}
