.see-more-photos{position:absolute;z-index:12;right:5%;bottom:3%;border:1px solid #c9aa74;background:#21150deb;color:#f3dfbd;padding:8px 12px;font:clamp(9px,.7vw,14px) "DM Mono",monospace;letter-spacing:.06em;cursor:pointer}.see-more-photos:hover{background:#5d3820}.visitor-gallery{position:fixed;z-index:110;inset:0;display:none;overflow:auto;padding:clamp(60px,8vh,100px) 8vw;background:radial-gradient(circle at 50% 10%,#4a3421,#0d0906 64%);color:#f1dfbe}.visitor-gallery.open{display:block}.visitor-gallery h2{margin:0;text-align:center;font:clamp(26px,4vw,56px) Georgia,serif;letter-spacing:.06em}.visitor-gallery>p{text-align:center;margin:7px 0 34px;color:#d4ba88;font:clamp(14px,1.3vw,21px) "Patrick Hand",cursive}.visitor-gallery-close{position:fixed;right:20px;top:13px;border:1px solid #a9895b;background:#16110ce8;color:#f4e7cf;width:38px;height:38px;border-radius:50%;font-size:26px;cursor:pointer}.visitor-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,270px));justify-content:center;gap:34px}.visitor-gallery-grid .photo-frame{position:relative;width:100%;aspect-ratio:1}.visitor-gallery-grid .photo{display:block}.visitor-gallery-grid .captured-photo{display:block!important;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.visitor-gallery-grid .photo-back{font-size:16px}@media(max-width:680px){.visitor-gallery{padding:68px 6vw}.visitor-gallery-grid{grid-template-columns:repeat(2,minmax(130px,1fr));gap:22px}.see-more-photos{right:2%;bottom:1%}}
.visitor-gallery-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:72px 60px}.visitor-gallery-grid .photo-frame.css-polaroid{flex:0 0 clamp(165px,16vw,250px);width:clamp(165px,16vw,250px);height:auto;aspect-ratio:var(--frame-ratio,1)}.visitor-gallery-grid .photo-frame.css-polaroid.wide{flex-basis:clamp(250px,22vw,340px);width:clamp(250px,22vw,340px)}

/* Full-photo viewer for the archive and the nine-photo contact sheet. */
.photo-viewer{position:fixed;z-index:150;inset:0;display:none;place-items:center;background:#090604ed;backdrop-filter:blur(6px)}
.photo-viewer.open{display:grid}
.photo-viewer-polaroid{position:relative;box-sizing:border-box;width:min(72vw,900px);height:min(76svh,690px);margin:0;padding:clamp(16px,2.2vw,30px) clamp(16px,2.2vw,30px) clamp(46px,5vw,70px);background:#f0e5cd;border:1px solid #c9ad7e;box-shadow:0 22px 70px #000c;transform:rotate(-.45deg)}
.photo-viewer-image{position:relative;width:100%;height:100%;display:grid;place-items:center;background:#e8dcc5;overflow:hidden}
.photo-viewer-image img{position:absolute!important;inset:0!important;display:block;max-width:none!important;max-height:none!important;width:100%!important;height:100%!important;object-fit:contain!important}
.photo-viewer-polaroid figcaption{position:absolute;left:8%;right:8%;bottom:clamp(13px,1.7vw,24px);color:#4b3421;text-align:center;font:clamp(15px,1.25vw,22px) "Patrick Hand",cursive;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-viewer-close,.photo-viewer-nav{position:fixed;z-index:2;border:1px solid #b99a68;background:#17100ae8;color:#f3e4c6;cursor:pointer;box-shadow:0 4px 18px #0007}
.photo-viewer-close{top:18px;right:22px;width:42px;height:42px;border-radius:50%;font-size:29px;line-height:1}
.photo-viewer-nav{top:50%;width:52px;height:68px;font-size:48px;line-height:.8;transform:translateY(-50%)}
.photo-viewer-nav:hover,.photo-viewer-close:hover{background:#604022}
.photo-viewer-nav.previous{left:4vw}.photo-viewer-nav.next{right:4vw}
.photo-viewer-count{position:fixed;bottom:18px;margin:0;color:#e9d3a7;font:12px "DM Mono",monospace;letter-spacing:.12em}
@media(max-width:700px){.photo-viewer-polaroid{width:78vw;height:min(66svh,600px);padding:14px 14px 46px}.photo-viewer-nav{width:42px;height:56px;font-size:39px}.photo-viewer-nav.previous{left:8px}.photo-viewer-nav.next{right:8px}}

/* The photos speak for themselves; keep the polaroid margins but no labels. */
.photo-wall .photo-frame.css-polaroid figcaption,
.visitor-gallery-grid .photo-frame.css-polaroid figcaption,
.photo-viewer-polaroid figcaption{display:none!important}

/* First-visit state: empty slots develop quietly instead of showing mock photos. */
.camera-stage .photo-wall .photo-loading{position:relative;width:100%;height:100%;min-width:0;box-sizing:border-box;border:1px solid #c8ad7b40;background:linear-gradient(110deg,#21170f22 18%,#e4c58b1c 43%,#21170f22 67%);background-size:240% 100%;box-shadow:inset 0 0 0 6px #e8dcc20c;animation:photo-develop 1.8s ease-in-out infinite}
.visitor-gallery-grid .archive-photo-loading{position:relative;min-height:190px;box-sizing:border-box;border:1px solid #c8ad7b40;background:linear-gradient(110deg,#21170f55 18%,#e4c58b2b 43%,#21170f55 67%);background-size:240% 100%;box-shadow:inset 0 0 0 6px #e8dcc20c;animation:photo-develop 1.8s ease-in-out infinite}
.camera-stage .photo-wall .photo-loading:nth-child(2){animation-delay:.12s}.camera-stage .photo-wall .photo-loading:nth-child(3){animation-delay:.24s}.camera-stage .photo-wall .photo-loading:nth-child(4){animation-delay:.36s}.camera-stage .photo-wall .photo-loading:nth-child(5){animation-delay:.48s}.camera-stage .photo-wall .photo-loading:nth-child(6){animation-delay:.6s}.camera-stage .photo-wall .photo-loading:nth-child(7){animation-delay:.72s}.camera-stage .photo-wall .photo-loading:nth-child(8){animation-delay:.84s}.camera-stage .photo-wall .photo-loading:nth-child(9){animation-delay:.96s}
@keyframes photo-develop{0%,100%{background-position:110% 0;opacity:.38}50%{background-position:-90% 0;opacity:.82}}

/* Captions are gone, so the photograph can sit much lower in each polaroid. */
.photo-frame.css-polaroid .photo{height:89%!important}
.photo-viewer-polaroid{padding-bottom:clamp(18px,2vw,30px)}
