/* The photo gallery (public/gallery.js), shared by the public pages and the app. */
[data-gallery], [data-gallery-open] { cursor: zoom-in; }
.thumb-row a.is-main img { outline: 2px solid var(--ink-900); outline-offset: 1px; }
.ah-photo img[data-gallery] { cursor: zoom-in; }
html.lb-open, html.lb-open body { overflow: hidden; }
.lb { position: fixed; inset: 0; z-index: 1000; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: #0B0C0D; color: var(--paper-100); }
.lb[hidden] { display: none; }
.lb-top { display: flex; align-items: center; gap: 16px; padding: 12px 16px; min-height: 56px; }
.lb-count { font: 500 13px/1 var(--font-mono); letter-spacing: .06em; color: var(--grey-400); min-width: 48px; }
.lb-caption { flex: 1; font: 500 14px/1.3 var(--font-core); color: var(--paper-100); text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-close { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(247, 245, 239, .25); background: rgba(247, 245, 239, .08); color: var(--paper-100); font: 400 28px/1 var(--font-core); cursor: pointer; }
.lb-stage { position: relative; display: flex; align-items: center; justify-content: center; min-height: 0; padding: 0 72px 8px; }
.lb-stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--radius-sm); user-select: none; cursor: pointer; }
.lb-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(247, 245, 239, .25); background: rgba(247, 245, 239, .1); color: var(--paper-100); font: 400 34px/1 var(--font-core); cursor: pointer; display: grid; place-items: center; padding-bottom: 4px; }
.lb-nav:hover, .lb-close:hover { background: rgba(247, 245, 239, .2); }
.lb-nav[hidden] { display: none; }
.lb-prev { left: 12px; }
.lb-next { right: 12px; }
.lb-strip { display: flex; gap: 8px; justify-content: center; padding: 10px 16px 16px; overflow-x: auto; }
.lb-strip[hidden] { display: none; }
.lb-strip button { flex: none; width: 56px; height: 72px; padding: 0; border: 2px solid transparent; border-radius: var(--radius-xs); background: rgba(247, 245, 239, .08); cursor: pointer; opacity: .55; overflow: hidden; }
.lb-strip button.on { border-color: var(--lime-500); opacity: 1; }
.lb-strip img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lb button:focus-visible { outline: 2px solid var(--lime-500); outline-offset: 2px; }
@media (max-width: 560px) {
  .lb-stage { padding: 0 0 8px; }
  .lb-nav { top: auto; bottom: 16px; transform: none; width: 44px; height: 44px; background: rgba(10, 11, 12, .6); }
  .lb-strip button { width: 44px; height: 56px; }
}
img[data-gallery]:focus-visible, img[data-gallery-open]:focus-visible { outline: 3px solid var(--lime-500); outline-offset: 2px; }
