/* ---------- lightbox ---------- */
/* a single shared in-page overlay: the current page stays put and blurs
   behind it, the image sits centered on top — used by every gallery's
   fullscreen toggle rather than the real (OS-level) Fullscreen API */
.lightbox{
  position:fixed;inset:0;
  z-index:500;
  display:flex;align-items:center;justify-content:center;
  padding:6vh 5vw;
  background:rgba(12,12,11,.55);
  backdrop-filter:blur(28px) saturate(1.1);
  -webkit-backdrop-filter:blur(28px) saturate(1.1);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s ease, visibility 0s linear .35s;
}
.lightbox.on{
  opacity:1;
  visibility:visible;
  transition:opacity .35s ease, visibility 0s linear;
}
.lightbox__stage{
  position:relative;
  max-width:100%;max-height:100%;
  line-height:0;
  transform:scale(.97);
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
}
.lightbox.on .lightbox__stage{transform:scale(1)}
.lightbox__img{
  display:block;
  max-width:min(88vw,1400px);
  max-height:88vh;
  width:auto;height:auto;
  object-fit:contain;
  box-shadow:0 40px 90px rgba(0,0,0,.5);
}
.lightbox__close{
  position:fixed;
  top:24px; right:24px;
  z-index:2;
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(15,15,15,.5);
  border:0;border-radius:50%;
  color:#fff;
}
.lightbox__close:hover{background:rgba(15,15,15,.75)}
.lightbox__close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;pointer-events:none}

.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pair .carousel__stage{aspect-ratio:3/2}
