/* ==========================================================================
   gallery.html — darkroom contact sheet
   ========================================================================== */

.gallery-main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--edge) 96px;
}

.gallery-header {
  padding: 56px 0 40px;
}

.gallery-header h1 {
  font-family: var(--display);
  font-weight: 500;
  color: var(--heading);
  font-size: clamp(2rem, 5vw, 2.8rem);
  margin: 10px 0 12px;
}

.gallery-header p {
  max-width: 52ch;
  line-height: 1.6;
}

.contact-sheet {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 3px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
}

.frame-cell {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--card);
}

.frame-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(15%) contrast(1.02);
  transition: transform 0.4s ease, filter 0.4s ease;
}

.frame-cell:hover img,
.frame-cell:focus-within img {
  transform: scale(1.04);
  filter: grayscale(0%) contrast(1.05);
}

.frame-cell__number {
  position: absolute;
  top: 8px;
  left: 8px;
  font-family: var(--mono);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  color: var(--gold);
  background: rgba(13, 13, 13, 0.65);
  padding: 2px 6px;
  border-radius: 2px;
  z-index: 2;
}

.frame-cell__exif {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 10px 8px;
  font-family: var(--mono);
  font-size: 0.65rem;
  letter-spacing: 0.03em;
  color: var(--heading);
  background: linear-gradient(0deg, rgba(13, 13, 13, 0.92), rgba(13, 13, 13, 0));
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.frame-cell:hover .frame-cell__exif,
.frame-cell:focus-within .frame-cell__exif {
  transform: translateY(0);
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .frame-cell img { transition: none; }
  .frame-cell__exif { transition: none; }
}
