/* Shared progressive enhancement; closed viewer and triggers have no layout delta. */
img[data-photo-viewer]{cursor:zoom-in}
.sp-vis:has(img[data-photo-viewer])::after{pointer-events:none}
img[data-photo-viewer]:focus-visible{outline:3px solid var(--v7-gold,var(--accent-text));outline-offset:4px}
html:has(.photo-viewer[open]){overflow:hidden}
.photo-viewer{box-sizing:border-box;position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border:0;color:var(--v7-text,var(--text));background:var(--v7-bg,var(--bg));font:400 14px/22px Manrope,sans-serif}
.photo-viewer::backdrop{background:rgb(0 0 0 / .9)}
.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px}
.photo-viewer__bar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.photo-viewer__controls{display:flex;gap:12px}
.photo-viewer button{box-sizing:border-box;display:grid;place-items:center;min-width:48px;min-height:48px;padding:8px;border:1px solid var(--v7-action-fill,var(--accent));border-radius:999px;background:var(--v7-surface,var(--card));color:var(--v7-gold,var(--accent-text));font:inherit;font-size:24px;cursor:pointer}
.photo-viewer button:focus-visible{outline:3px solid var(--v7-gold,var(--accent-text));outline-offset:3px}
.photo-viewer button:disabled{opacity:.35;cursor:default}
.photo-viewer__image{display:block;min-height:0;width:100%;height:100%;object-fit:contain;object-position:center}
.photo-viewer__caption{margin:0;max-width:80ch;align-self:center}
