.lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; }
.lightbox[hidden] { display: none; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(31,27,22,0.94); }
.lightbox-figure { position: relative; margin: 0; max-width: 92vw; max-height: 86vh; display: grid; gap: var(--space-2); justify-items: center; animation: lb-in .25s ease-out; }
@media (prefers-reduced-motion: reduce) { .lightbox-figure { animation: none; } }
@keyframes lb-in { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: none; } }
.lightbox-img { max-width: 92vw; max-height: 80vh; object-fit: contain; background: var(--paper); box-shadow: 0 12px 48px rgba(0,0,0,.4); }
.lightbox-caption { color: var(--paper); font-size: var(--fs-sm); text-align: center; max-width: 60ch; }
.lightbox-btn { position: absolute; background: rgba(245,241,232,.12); color: var(--paper); border: 1px solid rgba(245,241,232,.3); width: 44px; height: 44px; border-radius: 50%; font-size: 1.5rem; line-height: 1; display: grid; place-items: center; transition: background .2s; }
.lightbox-btn:hover, .lightbox-btn:focus-visible { background: var(--seal); border-color: var(--seal); }
.lightbox-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox-close { top: 1rem; right: 1rem; }
.lightbox-counter { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); color: var(--paper); font-family: var(--font-en); font-size: var(--fs-sm); letter-spacing: .1em; }
