.runatic-gallery { max-width:1280px; padding-block:3rem; }
.runatic-gallery .intro { max-width:900px; padding-bottom:3rem; }
.runatic-gallery .eyebrow { color:var(--signal); font:700 .8rem/1.5 var(--sans); letter-spacing:0; }
.runatic-gallery h1 { margin:.8rem 0 1.2rem; font:800 3rem/1.12 var(--sans); letter-spacing:0; overflow-wrap:anywhere; }
.runatic-gallery .intro p { max-width:760px; margin:0; color:var(--ink-soft); font:400 1.2rem/1.6 var(--serif); }
.runatic-gallery .jump { display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; margin-top:1.5rem; font:700 .9rem/1.6 var(--sans); }
.runatic-gallery .jump a { text-underline-offset:.25em; }
.runatic-gallery section { padding-block:2rem 3rem; border-top:1px solid var(--line); scroll-margin-top:2rem; }
.runatic-gallery .section-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.runatic-gallery h2 { margin:0; font:700 1.8rem/1.25 var(--sans); letter-spacing:0; overflow-wrap:anywhere; }
.runatic-gallery .count { flex-shrink:0; color:var(--muted); font:500 .8rem/1.5 var(--sans); }
.runatic-gallery .grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem 1.5rem; }
.runatic-gallery figure { margin:0; min-width:0; }
.runatic-gallery .photo { display:block; border:0; padding:0; width:100%; aspect-ratio:1; background:var(--paper-soft); cursor:zoom-in; }
.runatic-gallery .photo img { display:block; width:100%; height:100%; aspect-ratio:1; object-fit:contain; }
.runatic-gallery .photo:hover { outline:2px solid var(--signal); outline-offset:4px; }
.runatic-gallery figcaption { display:flex; align-items:baseline; gap:.75rem; margin-top:.75rem; font:400 1rem/1.5 var(--serif); overflow-wrap:anywhere; }
.runatic-gallery .number { flex-shrink:0; color:var(--signal); font:600 .75rem/1.5 var(--sans); }
.runatic-gallery :focus-visible,.runatic-viewer :focus-visible { outline:2px solid var(--signal); outline-offset:4px; }
.runatic-viewer { box-sizing:border-box; border:1px solid var(--line); padding:0; width:min(94%,1000px); max-width:1000px; max-height:94dvh; overflow:auto; background:var(--paper); color:var(--ink); }
.runatic-viewer::backdrop { background:rgba(0,0,0,.88); }
.runatic-viewer .viewer-top,.runatic-viewer .viewer-bottom { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 1rem; }
.runatic-viewer .viewer-top { font:600 .9rem/1.5 var(--sans); }
.runatic-viewer .viewer-image { display:block; width:min(100%,65dvh); height:auto; aspect-ratio:1; object-fit:contain; margin:auto; background:var(--paper-soft); }
.runatic-viewer .viewer-caption { margin:0; font:400 1rem/1.5 var(--serif); overflow-wrap:anywhere; }
.runatic-viewer .viewer-nav { display:flex; gap:.5rem; flex-shrink:0; }
.runatic-viewer button { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; padding:10px; border:1px solid var(--line); border-radius:4px; color:var(--ink); background:var(--paper-raised); cursor:pointer; }
.runatic-viewer button:hover { border-color:var(--signal); }
.runatic-viewer button svg { width:22px; height:22px; }
.runatic-viewer .viewer-error { margin:1rem; color:var(--signal); font:500 1rem/1.5 var(--sans); }
.runatic-viewer [hidden] { display:none; }
@media(max-width:900px) {
  .runatic-gallery .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.75rem 1rem; }
}
@media(max-width:520px) {
  .runatic-gallery { padding-block:2rem; }
  .runatic-gallery h1 { font-size:2rem; }
  .runatic-gallery h2 { font-size:1.4rem; }
  .runatic-gallery .intro p { font-size:1.05rem; }
  .runatic-gallery .grid { grid-template-columns:minmax(0,1fr); }
  .runatic-gallery .section-head { align-items:flex-start; }
  .runatic-viewer .viewer-bottom { align-items:flex-start; flex-direction:column; }
  .runatic-viewer .viewer-image { width:min(100%,55dvh); }
}
