/* Each photo is one full-height page. Touch movement stays native. */
.viewer.photo-viewer{padding:0;background:linear-gradient(145deg,#10202aed,#02090ff7)}
.photo-viewer .viewer-stage{display:block;width:100%;height:100%;overflow:hidden}
.photo-feed{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scroll-behavior:auto;scrollbar-width:none;touch-action:pan-y pinch-zoom;outline:none}
.photo-feed::-webkit-scrollbar{display:none}
.photo-feed{cursor:grab;user-select:none;-webkit-user-select:none}
.photo-feed.is-dragging,.photo-feed.is-drag-settling{scroll-snap-type:none}
.photo-feed.is-dragging,.photo-feed.is-dragging *{cursor:grabbing}
.photo-slide{display:grid;place-items:center;width:100%;height:100%;margin:0;padding:max(54px,calc(env(safe-area-inset-top) + 24px)) clamp(12px,3vw,48px) max(112px,calc(env(safe-area-inset-bottom) + 94px));scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden}
.photo-viewer .photo-slide img{display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:none;max-height:none;object-fit:contain;user-select:none;-webkit-user-drag:none}
.photo-viewer .viewer-footer{position:absolute;z-index:3;left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));height:auto;display:grid;grid-template-columns:minmax(0,1fr) 40px;grid-template-rows:40px 40px;gap:6px 18px;pointer-events:none}
.photo-viewer #viewerCaption{grid-column:1;grid-row:1 / 3;align-self:end;padding-bottom:9px;font-size:clamp(12px,1.1vw,15px);line-height:1.6;color:#e5f0f5;text-shadow:var(--chromatic);overflow-wrap:anywhere}
.photo-viewer .viewer-footer button{display:grid;place-items:center;grid-column:2;width:40px;height:40px;padding:10px;border:1px solid #bcddeb45;border-radius:50%;background:linear-gradient(#87adc327,#143046b3);box-shadow:inset 0 1px #eaf7ff1c,0 3px 12px #0003;color:#dcecf5;pointer-events:auto;transition:background .18s,opacity .18s}
.photo-viewer #mediaPrevious{grid-row:1}
.photo-viewer #mediaNext{grid-row:2}
.viewer-footer button svg{display:block;width:18px;height:18px}
.photo-viewer .viewer-footer button:hover:not(:disabled){background:#668fa255}
.photo-viewer .viewer-footer button:disabled{opacity:.25;cursor:default}
.photo-viewer .viewer-footer button:focus-visible{outline:1px solid #c1e7f5;outline-offset:3px}
.photo-viewer .close-button{top:max(12px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}
.motion-off .photo-viewer .viewer-footer button{transition:none}
@media(prefers-reduced-motion:reduce){.photo-viewer .viewer-footer button{transition:none}}
