.expandable-photo{cursor:zoom-in;touch-action:pan-y pinch-zoom}
.expandable-photo:focus-visible{outline:3px solid currentColor;outline-offset:4px}
body:has(dialog.photo-viewer[open]){overflow:hidden}
dialog.photo-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#070b12;color:#fff;overflow:hidden;overscroll-behavior:contain}
.photo-viewer::backdrop{background:#070b12}
.photo-viewer .photo-viewer-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;user-select:none;cursor:zoom-in}
.photo-viewer-viewport[data-zoomed="true"]{cursor:grab}
.photo-viewer-viewport>img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;transform-origin:center;will-change:transform}
.photo-viewer>button{position:absolute;z-index:1;min-width:52px;min-height:52px;padding:8px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#fff;font:300 36px/1 system-ui;opacity:.8;text-shadow:0 1px 5px #000;touch-action:manipulation;cursor:pointer}
.photo-viewer>button:focus-visible{outline:2px solid #fff;outline-offset:-5px;opacity:1}
.photo-viewer>.photo-viewer-close{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}
.photo-viewer>.photo-viewer-previous{left:max(0px,env(safe-area-inset-left));top:calc(50% - 26px)}
.photo-viewer>.photo-viewer-next{right:max(0px,env(safe-area-inset-right));top:calc(50% - 26px)}
.photo-viewer-counter{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);font:12px/1.5 system-ui;background:#070b1280;padding:3px 9px;border-radius:12px;pointer-events:none}
.photo-viewer-status{position:absolute;top:45%;left:10%;right:10%;text-align:center;font:15px/1.5 system-ui;pointer-events:none}
.photo-viewer>.photo-viewer-retry{top:52%;left:50%;transform:translateX(-50%);font:16px/1.5 system-ui;text-decoration:underline}
.photo-viewer-caption{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:12px;right:12px;width:fit-content;max-width:calc(100% - 24px);margin:0 auto;padding:6px 12px;border-radius:8px;background:#070b12e6;color:#fff;text-align:center;font:15px/1.4 system-ui;pointer-events:none}
.photo-viewer [hidden]{display:none!important}
