.image-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#fff;overflow:hidden}
.image-viewer::backdrop{background:rgba(4,15,24,.9);animation:viewer-backdrop-in .3s ease both}
.image-viewer.is-closing::backdrop{animation:viewer-backdrop-out .24s ease both}
.image-viewer figure{box-sizing:border-box;width:100%;height:100%;margin:0;padding:64px 24px 32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.image-viewer img{display:block;max-width:100%;max-height:calc(100% - 42px);width:auto;height:auto;object-fit:contain;border-radius:5px;box-shadow:0 24px 70px #0008;cursor:zoom-out}
.image-viewer figcaption{max-width:900px;text-align:center;font-size:14px;line-height:1.5;color:#e4f0f0}
.image-viewer-close{position:absolute;z-index:1;top:18px;right:18px;width:44px;height:44px;border:1px solid #ffffff55;border-radius:50%;background:#102a43dd;color:#fff;font:32px/1 Arial,sans-serif;cursor:pointer}
.image-viewer-close:hover{background:#1c5262}
.image-viewer-close:focus-visible{outline:2px solid #7fe2d5;outline-offset:3px}
@keyframes viewer-backdrop-in{from{background:rgba(4,15,24,0)}to{background:rgba(4,15,24,.9)}}
@keyframes viewer-backdrop-out{from{background:rgba(4,15,24,.9)}to{background:rgba(4,15,24,0)}}
@media(prefers-reduced-motion:reduce){.image-viewer::backdrop,.image-viewer.is-closing::backdrop{animation:none}}
