.photo-zoom-host{position:relative}
.photo-zoom-trigger{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:zoom-in;color:var(--cream);font:inherit}
.photo-zoom-badge{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(231,183,92,.65);border-radius:50%;background:rgba(5,8,12,.82);color:var(--gold);pointer-events:none;transition:background .2s ease}
.photo-zoom-badge svg{width:20px;height:20px}
.photo-zoom-trigger:hover .photo-zoom-badge{background:#05080c}
.photo-zoom-trigger:focus-visible{outline:3px solid var(--gold);outline-offset:-5px}
.photo-viewer{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(3,6,10,.97);color:var(--cream);overscroll-behavior:contain}
.photo-viewer::backdrop{background:rgba(3,6,10,.8);backdrop-filter:blur(10px)}
.photo-viewer-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;width:100%;max-width:1600px;height:100%;margin:auto;padding:24px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));pointer-events:none}
.photo-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.photo-viewer-header h2{margin:0;color:var(--gold);font-family:Montserrat,Arial,sans-serif;font-size:1rem;line-height:1.5;letter-spacing:.06em}
.photo-viewer button{min-height:44px;padding:10px 18px;border:1px solid rgba(231,183,92,.55);border-radius:999px;background:#111820;color:var(--cream);font:600 .875rem/1.4 Montserrat,Arial,sans-serif;cursor:pointer;pointer-events:auto}
.photo-viewer button:hover{background:#252117;border-color:var(--gold)}
.photo-viewer button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.photo-viewer-close{display:flex;align-items:center;gap:12px;flex-shrink:0}
.photo-viewer-close span{font-size:1.7rem;font-weight:400;line-height:1}
.photo-viewer-figure{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;min-height:0;margin:0}
.photo-viewer-stage{position:relative;display:grid;place-items:center;min-height:0}
.photo-viewer-image{display:block;width:100%;height:100%;min-height:0;object-fit:contain;pointer-events:auto;touch-action:pan-y pinch-zoom}
.photo-viewer-image[hidden]{display:none}
.photo-viewer-status{position:absolute;max-width:36rem;margin:0;padding:16px;text-align:center;color:var(--cream);font:1rem/1.6 Montserrat,Arial,sans-serif;background:#111820;border-radius:12px;pointer-events:auto}
.photo-viewer-figure figcaption{max-height:18vh;margin:0;overflow:auto;text-align:center;font:500 1rem/1.5 Montserrat,Arial,sans-serif;color:var(--cream);pointer-events:auto}
.photo-viewer-navigation{display:flex;align-items:center;justify-content:center;gap:24px}
.photo-viewer-counter{min-width:64px;text-align:center;color:var(--muted);font:500 .875rem/1.5 Montserrat,Arial,sans-serif;font-variant-numeric:tabular-nums}
@media(max-width:600px){.photo-viewer-panel{gap:14px;padding:16px max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.photo-viewer-header h2{font-size:.875rem;letter-spacing:.02em}.photo-viewer button{padding:10px 16px}.photo-viewer-navigation{gap:12px}.photo-viewer-figure figcaption{font-size:.875rem}.photo-zoom-badge{top:10px;right:10px;width:32px;height:32px}}
@media(prefers-reduced-motion:reduce){.photo-zoom-badge{transition:none}}
