.article-body .post-gallery-hint{font:12px/1.6 Arial,Helvetica,sans-serif;color:var(--muted);margin:0 0 20px}
.post-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.post-gallery-item{display:block;aspect-ratio:3/2;overflow:hidden;cursor:zoom-in;background:#e9e7e2}
.article-body .post-gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:filter .18s ease}
.post-gallery-item:hover img{filter:brightness(.94)}
.post-gallery-item:focus-visible,.post-gallery-dialog button:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.post-gallery-dialog{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:68px 32px 16px;box-sizing:border-box;border:0;background:var(--paper);color:var(--ink);overflow:hidden}
.post-gallery-dialog::backdrop{background:var(--paper)}
.post-gallery-dialog[open]{display:grid;grid-template-rows:minmax(0,1fr) 56px;gap:12px}
.post-gallery-close{position:absolute;right:24px;top:16px;padding:12px;border:0;background:transparent;color:inherit;font:12px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.04em;cursor:pointer}
.post-gallery-image{min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.post-gallery-image img{display:block;width:100%;height:100%;object-fit:contain}
.post-gallery-image img[hidden]{display:none}
.post-gallery-error{font:14px/1.6 Arial,Helvetica,sans-serif}
.post-gallery-controls{display:flex;align-items:center;justify-content:center;gap:20px}
.post-gallery-controls button{border:0;background:transparent;color:inherit;font:32px/1 Georgia,serif;min-width:44px;min-height:44px;cursor:pointer}
.post-gallery-counter{font:12px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.08em;min-width:50px;text-align:center}
html.post-gallery-expanded{overflow:hidden}
@media(max-width:520px){.post-gallery{gap:10px}.post-gallery-dialog{padding:64px 12px 12px}.post-gallery-close{right:8px}}
@media(prefers-reduced-motion:reduce){.post-gallery-item img{transition:none}}

.biography-gallery{margin:0 0 34px}.biography-gallery-hero{grid-template-columns:1fr;gap:24px}.biography-gallery-hero .post-gallery-item{aspect-ratio:auto;height:auto}.biography-gallery-hero .post-gallery-item img{height:auto;object-fit:contain}.biography-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:34px}.biography-gallery-grid .post-gallery-item{aspect-ratio:1}.biography-gallery-grid .post-gallery-item img{object-fit:cover}@media(max-width:700px){.biography-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
