/* Галерея кадров серии: сетка превью, по клику — крупный кадр. */

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--gap-3);
}

@media (min-width: 900px) {
  .gallery { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
}

.gallery-item {
  display: block;
  padding: 0;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--surface-2);
  aspect-ratio: 16 / 9;
  cursor: zoom-in;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--image-hover-duration) var(--image-hover-easing);
}

.gallery-item:hover img,
.gallery-item:focus-visible img { transform: scale(var(--image-hover-scale)); }

/* ---------- увеличение ----------
   Обычный <dialog>: закрытие по Esc и фокус-ловушка достаются от браузера. */

/*
 * Окно подстраивается под кадр, а не кадр под окно.
 *
 * Крупные кадры у нас 500 пикселей в ширину, а окно было min(96vw, 1280px) —
 * картинку растягивало в два с половиной раза, и сжатие вылезало наружу
 * квадратами. Увеличивать нечего: крупнее исходника изображения не бывает.
 *
 * `max-content` даёт окну ширину содержимого; нижняя строка со счётчиком
 * и кнопками не даёт ему схлопнуться на узком кадре.
 */
.lightbox {
  width: max-content;
  max-width: min(96vw, 1280px);
  min-width: min(92vw, 360px);
  max-height: 94vh;
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
  overflow: hidden;
}

.lightbox::backdrop {
  background: rgb(0 0 0 / 0.86);
  backdrop-filter: blur(3px);
}

.lightbox img {
  /* Свой размер, а не размер окна. Ограничения только сверху: в экран
     картинка обязана помещаться, растягиваться — нет. */
  width: auto;
  height: auto;
  max-width: min(96vw, 1280px);
  max-height: 82vh;
  background: #000;
  display: block;
  /* Кадр уже окна — окно шире из-за нижней строки: ставим по центру. */
  margin: 0 auto;
}

.lightbox-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gap-3);
  padding: var(--gap-3) var(--gap-4);
  border-top: 1px solid var(--rule);
  font-size: var(--text-sm);
  color: var(--ink-3);
}

.lightbox-nav { display: flex; gap: var(--gap-2); }

.lightbox-btn {
  min-width: 44px;
  min-height: 40px;
  padding: var(--gap-2) var(--gap-4);
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  color: var(--ink);
  font-size: var(--text-md);
  line-height: 1;
}

.lightbox-btn:hover { background: var(--surface-3); }
.lightbox-btn[disabled] { opacity: 0.35; cursor: default; }

/* Пока JavaScript не подключился, превью работают как обычные ссылки
   на крупный файл — галерея остаётся пригодной. */
.no-js .gallery-item { cursor: pointer; }
