/* ---------- Photo lightbox ---------- */
.lb-overlay{
  position:fixed;
  inset:0;
  background:rgba(20,28,22,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1000;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
}
.lb-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}
.lb-figure{
  position:relative;
  max-width:min(92vw, 1100px);
  max-height:88vh;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:scale(.94);
  opacity:0;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s ease;
}
.lb-overlay.is-open .lb-figure{
  transform:scale(1);
  opacity:1;
}
.lb-figure img{
  max-width:100%;
  max-height:88vh;
  object-fit:contain;
  border:1px solid rgba(255,255,255,.15);
  background:#111;
  display:block;
}
.lb-caption{
  position:absolute;
  left:0; right:0; bottom:-2.1rem;
  text-align:center;
  color:#DCE6DD;
  font-size:.85rem;
}
.lb-close, .lb-prev, .lb-next{
  position:fixed;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.25);
  color:#F4F3EA;
  width:46px;
  height:46px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.lb-close:hover, .lb-prev:hover, .lb-next:hover{
  background:rgba(255,255,255,.18);
}
.lb-close{top:1.25rem; right:1.25rem;}
.lb-prev{left:1.25rem; top:50%; transform:translateY(-50%);}
.lb-next{right:1.25rem; top:50%; transform:translateY(-50%);}
.lb-prev:hover, .lb-next:hover{transform:translateY(-50%) scale(1.06);}
.lb-close svg, .lb-prev svg, .lb-next svg{width:20px; height:20px; stroke:currentColor;}
.lb-counter{
  position:fixed;
  bottom:1.25rem;
  left:50%;
  transform:translateX(-50%);
  color:#B9C7B4;
  font-size:.82rem;
  letter-spacing:.03em;
}
@media (max-width:640px){
  .lb-prev{left:.5rem;}
  .lb-next{right:.5rem;}
  .lb-close{top:.75rem; right:.75rem;}
}

/* small hint that a thumbnail is expandable */
.thumb-scroll a, .article-gallery a{position:relative; cursor:zoom-in;}
