[hidden] { display: none !important; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
img.is-missing { min-height: 180px; background: #eeeae3; color: #4d473f; object-fit: contain; }
.artworkimage.has-missing-image img.is-missing { display: none !important; }
.artworkimage.has-missing-image { background: #eeeae3; cursor: default; }
.image-placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; width: 100%; height: 100%; min-height: 220px; aspect-ratio: 4 / 3;
  box-sizing: border-box; padding: 32px 24px; text-align: center;
  background: linear-gradient(145deg, #f4f1eb, #e9e3d9); color: #655b4d;
  border: 1px solid #dcd4c7;
}
.image-placeholder-mark {
  display: block; width: 32px; height: 32px; margin-bottom: 8px;
  border: 1px solid #a99880; border-radius: 50%; position: relative;
}
.image-placeholder-mark::after {
  content: ''; position: absolute; inset: 9px; border: 1px solid #a99880;
  transform: rotate(45deg);
}
.image-placeholder-title { font-family: Georgia, serif; font-size: clamp(20px, 2.4vw, 28px); line-height: 1.25; }
.image-placeholder-note { font-size: 12px; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
#pagination button { color: #594334 !important; }
#overlay-container button { border: 0; background: #111; color: white; cursor: pointer; font: inherit; }
#overlay-close { background: transparent !important; font-size: 40px !important; }
#overlay-prev, #overlay-next { position: absolute; top: 50%; width: 44px; height: 44px; border-radius: 50%; font-size: 28px !important; }
#overlay-prev { left: 2%; }
#overlay-next { right: 2%; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
