/* Content remains visible without JavaScript; only registered reveal targets wait. */
.vanessa-reveal-pending { opacity: 0; translate: var(--reveal-offset,0px 28px); }
.vanessa-hero-entry-pending { opacity: 0; }
#main-content { overflow-x: clip; }

/* Gallery controls sit over the centre of the photograph, behind a fine bronze ring. */
.vanessa-photo-frame--gallery { overflow: hidden; border-radius: var(--photo-radius,5px); }
.vanessa-photo-frame--gallery::after { content: ''; position: absolute; inset: 0; z-index: 4; pointer-events: none; background: #1b140c40; opacity: 0; transition: opacity .3s ease; }
.vanessa-photo-frame--gallery > .vanessa-zoom-button,
.vanessa-photo-frame--gallery:hover > .vanessa-zoom-button,
.vanessa-photo-frame--gallery:focus-within > .vanessa-zoom-button {
    top: 50%; left: 50%; right: auto; bottom: auto; width: 60px; height: 60px;
    border: 1px solid #e7d0adcc; background: #2b2117ad; color: #fff2df;
    box-shadow: 0 6px 28px #0004, inset 0 0 0 5px #ffffff06;
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    opacity: 0; pointer-events: none; transform: translate(-50%,-50%) scale(.86);
    transition: opacity .3s ease, transform .38s cubic-bezier(.22,.61,.36,1), background-color .25s ease;
}
.vanessa-photo-frame--gallery > .vanessa-zoom-button::after { content: ''; position: absolute; inset: -6px; border: 1px solid #e7d0ad4d; border-radius: 50%; pointer-events: none; }
.vanessa-photo-frame--gallery > .vanessa-zoom-button svg { width: 25px; height: 25px; stroke-width: 1.4; }
@media(hover:hover) and (pointer:fine) {
    .vanessa-photo-frame--gallery:hover > .vanessa-zoom-button { opacity: 1; pointer-events: auto; transform: translate(-50%,-50%) scale(1); }
    .vanessa-photo-frame--gallery:hover::after { opacity: 1; }
}
.vanessa-photo-frame--gallery:has(:focus-visible) > .vanessa-zoom-button { opacity: 1; pointer-events: auto; transform: translate(-50%,-50%) scale(1); }
.vanessa-photo-frame--gallery:has(:focus-visible)::after { opacity: 1; }
.vanessa-photo-frame--gallery > .vanessa-zoom-button:hover { background: #4b3721e8; }
@media(max-width:600px) { .vanessa-photo-frame--gallery > .vanessa-zoom-button { width: 48px; height: 48px; } .vanessa-photo-frame--gallery > .vanessa-zoom-button svg { width: 22px; height: 22px; } }
@media(prefers-reduced-motion:reduce) {
    .vanessa-photo-frame--gallery::after, .vanessa-photo-frame--gallery > .vanessa-zoom-button { transition: none; }
}
@media print { .vanessa-hero-entry-pending { opacity: 1 !important; } .vanessa-reveal-pending { opacity: 1 !important; translate: none !important; } }
