.gallery-page { min-height: 65vh; }
.gallery-page .gallery-heading h1 { margin: 0; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 1.03; letter-spacing: -.055em; }
.gallery-lock { max-width: 540px; margin: 0 auto; padding: clamp(24px, 5vw, 42px); border: 1px solid rgba(24, 40, 43, .12); border-radius: 26px; background: #fffdf8; box-shadow: 0 16px 40px rgba(24, 40, 43, .09); }
.gallery-lock-icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 18px; border-radius: 17px; background: #d9eee5; font-size: 1.5rem; }
.gallery-lock h2 { margin: 0 0 12px; font-size: 1.65rem; }
.gallery-lock p { color: var(--muted); line-height: 1.6; }
.gallery-unlock-form { display: grid; gap: 16px; margin-top: 24px; }
.gallery-unlock-form .button { justify-content: center; width: fit-content; }
.gallery-unlock-status { min-height: 1.5em; margin: 0; color: #ad3d32 !important; font-size: .9rem; font-weight: 700; }
.gallery-return-link { margin-top: 4px; }
.gallery-setup-notice { font-size: .88rem; }
.gallery-unlocked-actions { display: flex; justify-content: end; margin: 0 0 18px; }
.gallery-unlocked-actions .button { padding: 10px 18px; }
.gallery-bottom-actions { display: flex; justify-content: center; margin-top: 32px; }
.gallery-page [hidden] { display: none !important; }
body.is-night .gallery-lock { border-color: rgba(255,255,255,.15); background: #203851; }
body.is-night .gallery-lock-icon { background: #33536d; }
body.is-night .gallery-lock p { color: rgba(255,255,255,.78); }
body.is-night .gallery-unlock-status { color: #ffc3ad !important; }
body.is-halloween .gallery-lock { border-color: rgba(255,190,110,.25); background: #2d193b; }
body.is-halloween .gallery-lock-icon { background: #52305e; }
body.is-halloween .gallery-lock p { color: rgba(255,244,231,.78); }
body.is-halloween .gallery-unlock-status { color: #ffca9e !important; }
