.column img { cursor: zoom-in; }
.column img:focus-visible { outline: 3px solid white; outline-offset: 2px; }
body.photo-viewer-open { overflow: hidden; }
.photo-viewer[hidden] { display: none; }
.photo-viewer { position: fixed; z-index: 1000; inset: 0; background: rgba(0,0,0,.96); color: white; }
.photo-viewer__stage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: none; cursor: zoom-in; user-select: none; }
.photo-viewer__stage.is-zoomed { cursor: grab; }
.photo-viewer__stage.is-zoomed:active { cursor: grabbing; }
.photo-viewer__image { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; transform-origin: center; will-change: transform; pointer-events: none; }
.photo-viewer__close { position: absolute; z-index: 2; top: max(12px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; background: rgba(0,0,0,.7); color: white; font: 32px/1 Arial,sans-serif; cursor: pointer; }
.photo-viewer__close:focus-visible { outline: 3px solid white; outline-offset: 3px; }
.photo-viewer__nav { position: absolute; z-index: 2; top: 50%; transform: translateY(-50%); width: 44px; height: 54px; border: 1px solid rgba(255,255,255,.45); border-radius: 8px; background: rgba(0,0,0,.65); color: white; font: 38px/1 Arial,sans-serif; cursor: pointer; }
.photo-viewer__prev { left: max(12px, env(safe-area-inset-left)); }
.photo-viewer__next { right: max(12px, env(safe-area-inset-right)); }
.photo-viewer__nav:disabled { opacity: .25; cursor: default; }
.photo-viewer__nav:focus-visible { outline: 3px solid white; outline-offset: 3px; }
.photo-viewer__hint { position: absolute; bottom: max(15px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); color: #fff; background: rgba(0,0,0,.65); border-radius: 20px; padding: 8px 14px; font: 12px/1.2 Arial,sans-serif; white-space: nowrap; pointer-events: none; }
@media (hover:hover) and (pointer:fine) { .photo-viewer__hint { display: none; } }
