/* Load after the unmodified, self-hosted PhotoSwipe stylesheet. */
:root { --image-viewer-ready: 1; }
a[data-image-viewer] { cursor: zoom-in; display: block; }
a.image-viewer-link { display: block; }
.cqt-gallery-grid a[data-image-viewer] img { width: var(--viewer-thumbnail-width); }
.image-viewer {
  --pswp-bg: #11171b;
  --pswp-placeholder-bg: #20282e;
  color: #f5f5f2;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}
/* Opt-in light image pane keeps black transparent artwork legible without a tile. */
.image-viewer.image-viewer-light { --pswp-bg: #f7f5f0; --pswp-placeholder-bg: #f7f5f0; }
.image-viewer .pswp__img { background: transparent; }
.image-viewer .image-viewer-toolbar {
  position: absolute;
  z-index: 20;
  inset: 0 0 auto;
  display: grid;
  grid-template-columns: 44px 44px minmax(100px, 1fr) 44px 44px;
  align-items: center;
  gap: 6px;
  padding: calc(8px + env(safe-area-inset-top, 0px)) max(8px, env(safe-area-inset-right, 0px)) 8px max(8px, env(safe-area-inset-left, 0px));
  background: #11171b;
  border-bottom: 1px solid #39434b;
  user-select: none;
  touch-action: manipulation;
}
.image-viewer .image-viewer-control,
.image-viewer .image-viewer-original {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  margin: 0;
  padding: 0;
  color: #f5f5f2;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 5px;
  box-shadow: none;
  cursor: pointer;
  font: inherit;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.image-viewer .image-viewer-control { font-size: 32px; line-height: 1; }
.image-viewer .image-viewer-original { justify-self: center; padding: 0 6px; font-size: 14px; }
.image-viewer .image-viewer-control:disabled { opacity: .35; cursor: default; }
.image-viewer .image-viewer-control:not(:disabled):hover,
.image-viewer .image-viewer-original:hover { background: #2b353e; }
.image-viewer .image-viewer-footer {
  position: absolute;
  z-index: 20;
  inset: auto 0 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  height: calc(clamp(80px, 16vh, 128px) + env(safe-area-inset-bottom, 0px));
  padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
  background: #11171b;
  border-top: 1px solid #39434b;
}
.image-viewer .image-viewer-count { color: #c5ced5; font-size: 13px; white-space: nowrap; padding-top: 3px; }
.image-viewer .image-viewer-caption {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #9ca9b2 #263038;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  user-select: text;
  font-size: 15px;
  line-height: 1.5;
  padding: 0 6px 3px;
}
.image-viewer .image-viewer-caption p { margin: 0 0 .35em; }
.image-viewer .image-viewer-caption p:last-child { margin-bottom: 0; }
.image-viewer .image-viewer-caption a,
.image-viewer .pswp__error-msg a { color: #d8eafb; text-decoration: underline; text-underline-offset: 3px; }
.image-viewer .image-viewer-caption a { display: inline-block; min-height: 24px; }
.image-viewer :focus-visible { outline: 2px solid #e1c47c; outline-offset: 2px; }
.image-viewer .image-viewer-caption:focus-visible { outline-offset: -2px; }
.image-viewer .pswp__error-msg-container { padding: 80px 24px 144px; }
.image-viewer .pswp__error-msg { max-width: 32rem; color: #f5f5f2; font-size: 17px; }
/* Neither a tap nor a zoom can hide controls, captions, or photographer credits. */
.image-viewer .image-viewer-toolbar,
.image-viewer .image-viewer-footer { opacity: 1; visibility: visible; }
.image-viewer-loading {
  position: fixed;
  z-index: 100001;
  inset: auto 16px max(16px, env(safe-area-inset-bottom, 0px)) auto;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: calc(100% - 32px);
  padding: 8px 12px;
  color: #f5f5f2;
  background: #17232c;
  border: 1px solid #6a7b89;
  border-radius: 6px;
  box-shadow: 0 4px 24px #0003;
  font: 15px/1.4 system-ui, sans-serif;
}
.image-viewer-loading button {
  min-height: 44px;
  padding: 0 12px;
  color: inherit;
  background: transparent;
  border: 1px solid #899aa8;
  border-radius: 4px;
  font: inherit;
  cursor: pointer;
}
.image-viewer-loading button:focus-visible { outline: 2px solid #e1c47c; outline-offset: 2px; }
@media (min-width: 900px) {
  .image-viewer .image-viewer-toolbar { padding-inline: max(24px, calc((100vw - 1000px) / 2)); }
  .image-viewer .image-viewer-footer { padding-inline: max(24px, calc((100vw - 1000px) / 2)); }
}
@media (max-width: 340px) {
  .image-viewer .image-viewer-toolbar { gap: 2px; padding-inline: 4px; grid-template-columns: 44px 44px minmax(88px, 1fr) 44px 44px; }
  .image-viewer .image-viewer-original { font-size: 12px; padding-inline: 0; }
  .image-viewer .image-viewer-footer { gap: 8px; padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .image-viewer, .image-viewer *, .image-viewer-loading { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
