/* Carrossel em ecrã inteiro */
.lightbox {
  position: fixed; inset: 0; z-index: 40;
  background: color-mix(in srgb, var(--paper-deep) 94%, transparent);
  display: grid; grid-template-rows: 1fr auto;
  opacity: 0; pointer-events: none;
  transition: opacity .35s var(--ease);
}
.lightbox.is-open { opacity: 1; pointer-events: auto; }
.lb-stage { display: grid; place-items: center; padding: clamp(16px, 4vmin, 120px) calc(var(--touch) + 2 * var(--gap)); min-height: 0; overflow: hidden; touch-action: pan-y; }
.lb-stage img, .lb-stage video {
  max-width: 100%; max-height: calc(100dvh - var(--touch) - 2 * clamp(16px, 4vmin, 120px) - 2 * var(--gap));
  object-fit: contain;
  box-shadow: 1vmin 1vmin 0 var(--edge-cream), var(--shadow);
  user-select: none; -webkit-user-drag: none;
}
.lb-prev, .lb-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: var(--touch); height: calc(var(--touch) * 1.6);
  font-size: var(--s2); font-family: var(--mono);
  background: var(--veil); border: 1px solid var(--rule);
}
.lb-prev { left: var(--gap); }
.lb-next { right: var(--gap); }
.lb-prev:hover, .lb-next:hover { color: var(--accent); border-color: var(--accent); }
.lightbox.is-single .lb-prev, .lightbox.is-single .lb-next { display: none; }
.lb-bar {
  display: flex; align-items: center; gap: 1.2em;
  padding: 0 calc(var(--gap) * 1.4) var(--gap);
  font-size: var(--s-1);
}
.lb-caption { font-family: var(--serif); font-size: var(--s1); text-transform: uppercase; letter-spacing: .08em; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-counter { color: var(--muted); }
.lb-close { min-height: var(--touch); padding: 0 .9em; border: 1px solid var(--rule); }
.lb-close:hover { color: var(--accent); border-color: var(--accent); }
