.lightbox {
  inline-size: min(calc(100% - 32px), 1100px);
  max-inline-size: none;
  block-size: min(960px, calc(100dvh - 32px));
  max-block-size: none;
  margin: auto;
  border: 1px solid var(--color-muted-dark);
  padding: 0;
  color: var(--color-dark);
  background: var(--color-canvas);
  box-shadow: 0 24px 80px rgb(22 17 14 / .2);
}

.lightbox::backdrop { background: rgb(22 17 14 / .76); backdrop-filter: blur(4px); }

.lightbox__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
  block-size: 100%;
  min-inline-size: 0;
  padding: clamp(12px, 2vw, 24px);
}

.lightbox__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lightbox__title { min-inline-size: 0; font-family: var(--font-display); font-size: clamp(22px, 2.5vw, 30px); line-height: 1.2; font-weight: 400; }
.lightbox__close { flex: 0 0 auto; inline-size: 44px; aspect-ratio: 1; display: grid; place-items: center; padding: 10px; border: 1px solid transparent; background: transparent; transition: background-color .18s, border-color .18s, opacity .18s; }
.lightbox__close-icon { inline-size: 100%; block-size: auto; pointer-events: none; }

.lightbox__figure { min-inline-size: 0; min-block-size: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; }
.lightbox__figure::-webkit-scrollbar { display: none; }
.lightbox__figure--swipe { cursor: grab; touch-action: pan-y pinch-zoom; user-select: none; }
.lightbox__figure--settling { scroll-snap-type: none; }
.lightbox__figure--dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.lightbox__track { display: flex; block-size: 100%; }
.lightbox__image { flex: 0 0 100%; inline-size: 100%; block-size: 100%; min-inline-size: 0; min-block-size: 0; object-fit: contain; scroll-snap-align: start; scroll-snap-stop: always; }

.lightbox__actions { display: flex; align-items: center; justify-content: center; gap: clamp(24px, 4vw, 48px); padding-block-start: 10px; border-block-start: 1px solid var(--color-muted-dark); }
.lightbox__actions--light { --lightbox-control-background: transparent; --lightbox-control-hover: var(--color-surface); --lightbox-arrow-filter: brightness(0) opacity(.78); }
.lightbox__caption { color: var(--color-secondary); font-size: 14px; font-variant-numeric: tabular-nums; letter-spacing: .12em; text-align: center; }
.lightbox__previous,
.lightbox__next { display: grid; place-items: center; flex: 0 0 auto; inline-size: 48px; block-size: 58px; padding: 4px 14px; border: 1px solid transparent; background: var(--lightbox-control-background, var(--color-dark)); transition: background-color .18s, border-color .18s, opacity .18s; }
.lightbox__arrow { inline-size: 18px; block-size: auto; pointer-events: none; filter: var(--lightbox-arrow-filter, none); }
.lightbox__previous:disabled,
.lightbox__next:disabled { opacity: .25; cursor: default; }

@media (hover: hover) {
  .lightbox__previous:hover:not(:disabled),
  .lightbox__next:hover:not(:disabled) { background: var(--lightbox-control-hover, var(--color-secondary)); border-color: var(--color-accent); }
  .lightbox__close:hover { background: var(--color-surface); border-color: var(--color-accent); opacity: .7; }
}

@media (prefers-reduced-motion: reduce) {
  .lightbox__figure { scroll-behavior: auto; }
  .lightbox__close, .lightbox__previous, .lightbox__next { transition: none; }
}
