.bosco-lightbox {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: rgba(8, 12, 16, .97);
  color: #fff;
}
.bosco-lightbox::backdrop {
  background: rgba(8, 12, 16, .88);
  backdrop-filter: blur(6px);
}
.bosco-lightbox__frame {
  position: relative;
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  padding: max(62px, env(safe-area-inset-top)) clamp(20px, 6vw, 92px) max(58px, env(safe-area-inset-bottom));
}
.bosco-lightbox__image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100dvh - 130px);
  object-fit: contain;
  object-position: center;
  user-select: none;
  -webkit-user-drag: none;
}
.bosco-lightbox__close,
.bosco-lightbox__nav {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(17, 29, 41, .82);
  color: #fff;
  box-shadow: 0 10px 32px rgba(0,0,0,.28);
  cursor: pointer;
  transition: background .18s ease, transform .18s ease, border-color .18s ease;
}
.bosco-lightbox__close:hover,
.bosco-lightbox__nav:hover,
.bosco-lightbox__close:focus-visible,
.bosco-lightbox__nav:focus-visible {
  border-color: rgba(255,255,255,.48);
  background: rgba(31, 44, 56, .96);
  outline: 0;
}
.bosco-lightbox__close:focus-visible,
.bosco-lightbox__nav:focus-visible {
  box-shadow: 0 0 0 4px rgba(245,185,0,.3), 0 10px 32px rgba(0,0,0,.28);
}
.bosco-lightbox__close {
  top: max(16px, env(safe-area-inset-top));
  right: max(16px, env(safe-area-inset-right));
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 0;
}
.bosco-lightbox__close svg {
  display: block;
  width: 22px;
  height: 22px;
  margin: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bosco-lightbox__close:hover { transform: rotate(4deg) scale(1.04); }
.bosco-lightbox__nav {
  top: 50%;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  transform: translateY(-50%);
}
.bosco-lightbox__nav:hover { transform: translateY(-50%) scale(1.05); }
.bosco-lightbox__nav--prev { left: max(16px, env(safe-area-inset-left)); }
.bosco-lightbox__nav--next { right: max(16px, env(safe-area-inset-right)); }
.bosco-lightbox__nav svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bosco-lightbox__counter {
  position: absolute;
  bottom: max(18px, env(safe-area-inset-bottom));
  left: 50%;
  min-width: 58px;
  padding: 7px 11px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  background: rgba(17, 29, 41, .76);
  color: rgba(255,255,255,.9);
  font-size: .78rem;
  font-weight: 800;
  text-align: center;
  transform: translateX(-50%);
}
.bosco-lightbox__caption {
  position: absolute;
  bottom: max(18px, env(safe-area-inset-bottom));
  left: max(18px, env(safe-area-inset-left));
  max-width: min(58vw, 620px);
  margin: 0;
  overflow: hidden;
  color: rgba(255,255,255,.84);
  font-size: .78rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
[data-bosco-lightbox-trigger] { cursor: zoom-in; }
@media (max-width: 680px) {
  .bosco-lightbox__frame { padding-inline: 10px; }
  .bosco-lightbox__image { max-height: calc(100dvh - 118px); }
  .bosco-lightbox__close { width: 44px; height: 44px; }
  .bosco-lightbox__close svg { width: 21px; height: 21px; }
  .bosco-lightbox__nav { top: auto; bottom: max(14px, env(safe-area-inset-bottom)); width: 46px; height: 46px; transform: none; }
  .bosco-lightbox__nav:hover { transform: scale(1.04); }
  .bosco-lightbox__nav--prev { left: max(14px, env(safe-area-inset-left)); }
  .bosco-lightbox__nav--next { right: max(14px, env(safe-area-inset-right)); }
  .bosco-lightbox__counter { bottom: max(22px, env(safe-area-inset-bottom)); }
  .bosco-lightbox__caption { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .bosco-lightbox__close,
  .bosco-lightbox__nav { transition: none; }
}
