[data-enlarge] { cursor: zoom-in; }
.db-photo { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; overflow: hidden; }
.db-photo::after, .gal-item::after { content: ''; position: absolute; right: 10px; bottom: 10px; width: 110px; height: 50px; background: url('/assets/logo.webp') center / contain no-repeat; filter: drop-shadow(0 1px 3px rgba(0,0,0,.55)); pointer-events: none; }
/* A few supplied photos already carry a logo baked into the pixels — do not stack ours on top. */
.db-photo[data-branded]::after, .gal-item[data-branded]::after { content: none; }
.db-photo:focus-visible, .gal-item:focus-visible { outline: 3px solid #1A7CBB; outline-offset: 4px; }
.db-viewer { padding: 20px; border: 0; border-radius: 10px; color: white; background: #101b2b; width: min(1100px, 96vw); max-height: 94dvh; }
.db-viewer::backdrop { background: rgba(0,0,0,.88); }
.db-viewer-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.db-viewer button { background: #1b365d; color: white; border: 1px solid #8797ae; border-radius: 5px; min-width: 44px; min-height: 44px; padding: 8px 14px; cursor: pointer; }
.db-viewer button:focus-visible { outline: 3px solid white; outline-offset: 2px; }
.db-viewer figure { margin: 0; text-align: center; }
.db-viewer-photo { display: inline-block; position: relative; max-width: 100%; }
.db-viewer-photo > img:first-child { max-height: 68dvh; max-width: 100%; width: auto; height: auto; object-fit: contain; margin: auto; }
.db-viewer-logo { position: absolute; bottom: 14px; right: 14px; width: clamp(90px, 16vw, 170px); filter: drop-shadow(0 1px 4px rgba(0,0,0,.6)); }
.db-viewer figcaption { margin: 12px auto 0; max-width: 75ch; font-size: 14px; }
.gal-item[hidden] { display: none !important; }
