/* Full, unaltered photo; a single unobtrusive viewer on the current page. */
.photo-lightbox { position:fixed; inset:0; width:100%; height:100svh; max-width:none; max-height:none; margin:0; padding:64px 28px 76px; overflow:hidden; border:0; border-radius:0; color:#fff; background:transparent; box-shadow:none; }
.photo-lightbox::backdrop { background:#00121aeb; backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.photo-lightbox[open] { display:grid; grid-template-rows:minmax(0,1fr); animation:photo-viewer-in .18s ease-out; }
.photo-lightbox-stage { display:grid; place-items:center; min-width:0; min-height:0; pointer-events:none; }
.photo-lightbox-image { display:block; width:100%; height:100%; max-width:1920px; object-fit:contain; pointer-events:auto; touch-action:pan-y pinch-zoom; user-select:none; -webkit-user-select:none; transition:opacity .16s; }
.photo-lightbox.is-loading .photo-lightbox-image { opacity:.35; }
.photo-lightbox button { display:grid; place-items:center; width:44px; height:44px; padding:10px; border:0; border-radius:50%; background:#ffffff14; color:#fff; transition:background .18s,box-shadow .18s; }
.photo-lightbox button:hover,.photo-lightbox button:focus-visible { background:#80b7ce3d; box-shadow:0 0 20px #8fcbe34d; }
.photo-lightbox button:active { background:#b9ddeb42; }
.photo-lightbox button:disabled { opacity:.3; cursor:default; }
.photo-lightbox button svg { width:24px; height:24px; }
.photo-lightbox-close { position:absolute; top:max(12px,env(safe-area-inset-top,0px)); right:max(16px,env(safe-area-inset-right,0px)); }
.photo-lightbox-controls { position:absolute; bottom:max(16px,env(safe-area-inset-bottom,0px)); left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:18px; }
.photo-lightbox-controls [data-photo-prev] svg { transform:rotate(180deg); }
.photo-lightbox-controls > span { min-width:58px; text-align:center; color:#e4f0f6; font:14px/1.4 Arial,sans-serif; font-variant-numeric:tabular-nums; }
.photo-lightbox-error { grid-area:1/1; margin:0; pointer-events:auto; font:15px/1.6 Arial,sans-serif; text-align:center; }
.photo-lightbox-error button { width:auto; height:auto; min-height:44px; padding:8px 16px; margin:12px auto 0; border-radius:24px; font:inherit; }
@supports(height:100dvh) { .photo-lightbox { height:100dvh; } }
@media(max-width:760px) { .photo-lightbox { padding:calc(60px + env(safe-area-inset-top,0px)) 8px calc(76px + env(safe-area-inset-bottom,0px)); } }
@media(prefers-reduced-motion:reduce) { .photo-lightbox[open] { animation:none; } .photo-lightbox * { transition:none; } }
@keyframes photo-viewer-in { from { opacity:0; } to { opacity:1; } }
