/* Old Gander - lightbox (shared by both designs) */
.og-lb { position: fixed; inset: 0; z-index: 99999; background: rgba(12,10,8,.93); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s; font-family: Georgia, serif; }
.og-lb.on { opacity: 1; }
.og-lb-stage { flex: 1; width: 100%; display: flex; align-items: center; justify-content: center; overflow: auto; padding: 56px 78px 8px; min-height: 0; }
.og-lb-stage img { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; box-shadow: 0 0 30px rgba(0,0,0,.6); background: #222; }
.og-lb.zoom .og-lb-stage { align-items: flex-start; justify-content: flex-start; }
.og-lb.zoom .og-lb-stage img { max-width: none; max-height: none; cursor: zoom-out; }
.og-lb-cap { color: #eee3cc; text-align: center; padding: 6px 70px 18px; min-height: 52px; font-size: 1rem; font-style: italic; max-width: 900px; }
.og-lb-cap small { display: block; font-style: normal; color: #a99f88; letter-spacing: .08em; margin-top: 2px; }
.og-lb button { position: absolute; background: rgba(20,24,34,.72); border: 2px solid rgba(255,255,255,.85); color: #fff; font-size: 34px; font-weight: 700; line-height: 1; width: 58px; height: 58px; padding: 0 0 4px; border-radius: 50%; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.6); }
.og-lb button:hover, .og-lb button:focus-visible { background: rgba(226,178,92,.9); border-color: #fff; color: #10192b; outline: none; }
.og-lb-x { top: 12px; right: 14px; }
.og-lb-prev { left: 10px; top: 50%; margin-top: -29px; }
.og-lb-next { right: 10px; top: 50%; margin-top: -29px; }
.og-lb-count { position: absolute; top: 22px; left: 20px; color: #bbb; font-size: .85rem; letter-spacing: .1em; }
@media (max-width: 700px) { .og-lb-stage { padding: 56px 8px 8px; } .og-lb-cap { padding: 6px 14px 16px; } .og-lb-prev, .og-lb-next { top: auto; bottom: 14px; margin: 0; } }

@media (prefers-reduced-motion: reduce) { .og-lb { transition: none !important; } }
@media print { .og-lb { display: none !important; } }

/* a closed viewer must not stay on top of the page: author display:flex was overriding the hidden attribute, leaving an invisible full-screen layer that blocked every click */
.og-lb[hidden] { display: none; }
.og-lb:not(.on) { pointer-events: none; }

/* phones: the page is shown at ~40% scale (like "Desktop site"), so the viewer controls are sized from the screen width to stay finger-sized.
   Buttons sit in the bottom corners, the caption between them; tapping the photo does nothing (pinch to zoom instead). */
.og-phone .og-lb button { width: 13vw; height: 13vw; font-size: 9vw; border-width: .6vw; padding: 0 0 1vw; }
.og-phone .og-lb-x { top: 2vw; right: 2vw; }
.og-phone .og-lb-prev, .og-phone .og-lb-next { top: auto; bottom: 3vw; margin: 0; }
.og-phone .og-lb-prev { left: 3vw; } .og-phone .og-lb-next { right: 3vw; }
.og-phone .og-lb-stage { padding: 16vw 2vw 2vw; }
.og-phone .og-lb-stage img { cursor: default; }
.og-phone .og-lb-cap { font-size: 3.6vw; line-height: 1.35; padding: 1vw 18vw 3vw; min-height: 17vw; max-width: none; }
.og-phone .og-lb-count { top: 4.5vw; left: 3vw; font-size: 3.4vw; }
