.image-lightbox-trigger { cursor: zoom-in; }
.image-lightbox-trigger:focus-visible { outline: 3px solid #00a8cc; outline-offset: 5px; }
.image-lightbox {
  position: fixed;
  inset: 0;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  height: 100%;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 4.5rem 1rem 1rem;
  border: 0;
  background: transparent;
  color: #fff;
}
.image-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.image-lightbox::backdrop { background: rgba(0, 0, 0, .9); }
.image-lightbox figure { margin: 0; width: 100%; height: 100%; min-height: 0; display: flex; flex-direction: column; align-items: center; gap: .75rem; }
.image-lightbox-stage { flex: 1; min-height: 0; width: 100%; overflow: auto; display: flex; align-items: center; justify-content: center; overscroll-behavior: contain; }
.image-lightbox-stage:focus-visible { outline: 2px solid #00d4ff; outline-offset: -2px; }
.image-lightbox img { display: block; max-width: 100%; max-height: 100%; flex-shrink: 0; min-height: 0; width: auto; height: auto; object-fit: contain; border-radius: .35rem; }
.image-lightbox figcaption { color: #fff; font-size: .9rem; line-height: 1.5; max-width: 75ch; text-align: center; overflow: auto; max-height: 5rem; flex-shrink: 0; margin: 0; }
.image-lightbox-toolbar { position: absolute; top: 1rem; right: 1rem; left: 1rem; display: flex; justify-content: flex-end; gap: .75rem; }
.image-lightbox-toolbar button { min-width: 44px; min-height: 44px; padding: .5rem 1rem; border: 1px solid #fff; border-radius: .4rem; background: #fff; color: #172536; cursor: pointer; font: inherit; }
.image-lightbox-toolbar button:focus-visible { outline: 3px solid #00d4ff; outline-offset: 4px; }

.image-lightbox-diagram { display: block; }
.image-lightbox img[src^="blob:"] { background: #fff; }

.image-lightbox-toolbar button:disabled { opacity: .6; cursor: wait; }
.image-lightbox.is-zoomed .image-lightbox-stage { display: block; }
.image-lightbox.is-zoomed img { max-width: none; max-height: none; height: auto; margin: 0 auto; }
