.photo-zoom{display:block;cursor:zoom-in;border-radius:10px}
.photo-zoom img{display:block}
.photo-viewer-open{overflow:hidden}
.photo-viewer{width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:16px;border:0;background:transparent;color:#fff;overflow:auto}
.photo-viewer::backdrop{background:rgba(0,0,0,.92)}
.photo-viewer[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.photo-viewer img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100dvh - 160px);object-fit:contain;flex-shrink:1;min-height:0}
.photo-viewer-close{flex-shrink:0;align-self:flex-end;min-height:44px;padding:8px 16px;border:1px solid #fff;border-radius:7px;background:#222;color:#fff}
.photo-viewer-close:hover{background:#444}
.photo-viewer-caption{margin:0;text-align:center;max-width:900px;overflow-wrap:anywhere;flex-shrink:0}
.photo-viewer-navigation{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;flex-shrink:0}
.photo-viewer-navigation .photo-viewer-caption{min-width:0;flex-shrink:1}
.photo-viewer-navigation button{flex-shrink:0;width:48px;height:48px;border:1px solid #fff;border-radius:50%;background:#222;color:#fff;font-size:1.5rem;line-height:1}
.photo-viewer-navigation button:hover{background:#444}
