.lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-lg);
  padding-left: max(var(--space-lg), env(safe-area-inset-left, 0px));
  padding-right: max(var(--space-lg), env(safe-area-inset-right, 0px));
  padding-top: max(var(--space-lg), env(safe-area-inset-top, 0px));
  padding-bottom: max(var(--space-lg), env(safe-area-inset-bottom, 0px));
  background: rgba(1, 3, 2, 0.72);
  backdrop-filter: blur(var(--glass-blur-strong)) saturate(1.05);
  -webkit-backdrop-filter: blur(var(--glass-blur-strong)) saturate(1.05);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--dur-slow) var(--ease-fade),
    visibility 0s linear var(--dur-slow);
}

@media (prefers-reduced-motion: reduce) {
  .lightbox {
    transition: opacity 0.01ms, visibility 0.01ms;
  }
}

.lightbox.is-open {
  opacity: 1;
  visibility: visible;
  transition:
    opacity var(--dur-slow) var(--ease-fade),
    visibility 0s linear 0s;
}

.lightbox-frame {
  max-width: min(96vw, 1200px);
  max-height: 78vh;
  max-height: 78dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(0.96);
  opacity: 0;
  transition:
    transform calc(var(--dur-slow) * 0.95) var(--ease-fade),
    opacity calc(var(--dur-slow) * 0.95) var(--ease-fade);
}

.lightbox.is-open .lightbox-frame {
  transform: scale(1);
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .lightbox-frame {
    transform: none;
    opacity: 1;
    transition: none;
  }
}

.lightbox-frame img {
  max-width: 100%;
  max-height: 78vh;
  max-height: 78dvh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius);
  box-shadow:
    var(--photo-radiance-hover),
    0 40px 80px rgba(0, 0, 0, 0.65);
}

.lightbox-close {
  position: absolute;
  top: max(var(--space-md), env(safe-area-inset-top, 0px));
  right: max(var(--space-md), env(safe-area-inset-right, 0px));
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius);
  background: var(--glass-fill);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--color-text);
  font-size: 1.25rem;
  cursor: pointer;
  touch-action: manipulation;
  z-index: 2;
}

.lightbox-close:hover,
.lightbox-close:focus-visible {
  border-color: var(--color-accent);
  outline: none;
}

.lightbox-prev,
.lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.75rem;
  min-width: 2.75rem;
  height: 3.5rem;
  min-height: 3.5rem;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius);
  background: rgba(6, 14, 11, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--color-text);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  touch-action: manipulation;
  z-index: 2;
}

.lightbox-prev {
  left: max(var(--space-sm), env(safe-area-inset-left, 0px));
}

.lightbox-next {
  right: max(var(--space-sm), env(safe-area-inset-right, 0px));
}

.lightbox-prev:hover,
.lightbox-prev:focus-visible,
.lightbox-next:hover,
.lightbox-next:focus-visible {
  border-color: var(--color-accent);
  outline: none;
}

.lightbox-hint {
  position: absolute;
  bottom: max(var(--space-md), env(safe-area-inset-bottom, 0px));
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
