.gallery-page { background: #f8f0df url("assets/paper-texture.svg") repeat; }
.gallery-home { position: fixed; z-index: 20; top: 1rem; left: 1rem; width: clamp(72px, 9vw, 110px); transform: rotate(-5deg); transition: transform .2s; }
.gallery-home:hover { transform: rotate(0) scale(1.04); }
.gallery-home img { width: 100%; filter: url(#collage-paper-cutout); }
.gallery-main { width: min(1260px, 92vw); margin: auto; padding: clamp(8rem, 13vw, 11rem) 0 6rem; }
.gallery-intro { margin: 0 auto clamp(4rem, 8vw, 7rem); max-width: 870px; text-align: center; }
.gallery-intro .eyebrow { font-size: clamp(1rem, 2.3vw, 1.45rem); white-space: nowrap; }
.gallery-intro h1 { font-family: var(--display); font-size: clamp(4rem, 11vw, 9rem); line-height: 1; margin: .3rem 0 1rem; }
.gallery-intro > p:last-of-type { font-size: clamp(1.4rem, 2.7vw, 2rem); line-height: 1.2; margin: 0 auto 2rem; }
.gallery-jump { display: flex; justify-content: center; flex-wrap: wrap; gap: .6rem 1.5rem; font-size: 1.35rem; }
.gallery-jump a { text-decoration-thickness: 1px; text-underline-offset: .25em; }
.gallery-section { margin-bottom: clamp(4rem, 8vw, 7rem); scroll-margin-top: 2rem; }
.gallery-section__heading { margin: 0 0 1.6rem; }
.gallery-section__heading .eyebrow { margin: 0; font-size: 1.25rem; }
.gallery-section h2 { font: 700 clamp(2.8rem, 6vw, 5rem)/1.04 var(--display); margin: 0; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(.8rem, 1.7vw, 1.5rem); align-items: start; }
.gallery-photo { display: block; width: 100%; margin: 0; border: 0; background: #fffaf2; padding: clamp(.45rem, 1vw, .85rem) clamp(.45rem, 1vw, .85rem) clamp(1.4rem, 3vw, 2.3rem); box-shadow: 0 5px 17px rgb(40 35 22 / .15); cursor: zoom-in; transform: rotate(-1.3deg); transition: transform .2s, box-shadow .2s; }
.gallery-photo:nth-child(3n + 2) { transform: rotate(1.4deg) translateY(.5rem); }
.gallery-photo:nth-child(3n) { transform: rotate(-.5deg); }
.gallery-photo:hover, .gallery-photo:focus-visible, .gallery-photo:nth-child(3n + 2):hover, .gallery-photo:nth-child(3n + 2):focus-visible { position: relative; z-index: 2; transform: rotate(0) translateY(-.25rem); box-shadow: 0 12px 28px rgb(40 35 22 / .23); }
.gallery-photo img { width: 100%; height: clamp(175px, 22vw, 310px); object-fit: cover; object-position: center; background: #eee8da; }
.gallery-photo--photographer { padding-bottom: .7rem; text-align: left; }
.gallery-photo__caption { display: block; padding: .55rem .25rem 0; font: 1.3rem/1.05 var(--notes); }
.gallery-photo__credit { display: block; padding: .15rem .25rem 0; font: .82rem/1.2 var(--notes); color: #636052; }
.gallery-end { font-size: 1.8rem; margin: 0 0 1rem; }
.photo-viewer { position: fixed; max-width: none; max-height: none; width: 100vw; height: 100dvh; margin: 0; padding: 1rem; border: 0; color: #fff; background: #201f1b; }
.photo-viewer::backdrop { background: #201f1b; }
.photo-viewer[open] { display: grid; grid-template-columns: minmax(45px, 7vw) minmax(0,1fr) minmax(45px, 7vw); align-items: center; }
.photo-viewer figure { margin: 0; min-width: 0; text-align: center; }
.photo-viewer img { margin: auto; max-width: 100%; max-height: calc(100dvh - 5rem); object-fit: contain; }
.photo-viewer figcaption { font: 1.2rem var(--notes); padding-top: .3rem; }
.photo-viewer__credit { display: block; font-size: .75em; color: #ded8ca; }
.photo-viewer button { z-index: 2; color: #fff; border: 0; background: transparent; cursor: pointer; font: 2rem var(--notes); min-width: 45px; min-height: 45px; }
.photo-viewer__close { position: fixed; right: 1rem; top: .5rem; }
@media (max-width: 800px) { .gallery-main { padding-top: 7.5rem; } .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gallery-photo img { height: clamp(150px, 29vw, 240px); } }
@media (max-width: 500px) { .gallery-main { width: 90vw; } .gallery-intro .eyebrow { font-size: .95rem; } .gallery-grid { gap: .75rem; } .gallery-photo { padding: .45rem .45rem 1rem; } .gallery-photo img { height: 39vw; } .gallery-photo__caption { font-size: 1.08rem; } .gallery-photo__credit { font-size: .75rem; } .photo-viewer { padding: .25rem; } .photo-viewer[open] { grid-template-columns: 42px minmax(0, 1fr) 42px; } .photo-viewer img { max-height: calc(100dvh - 4rem); } }
/* V18 camera roll */
.making-section { margin-top: clamp(5rem, 10vw, 9rem); }
.making-section__heading p, .making-section .gallery-section__heading > p:last-child { font-size: 1.45rem; line-height: 1.2; }
.making-preview-wrap { display: flex; align-items: center; justify-content: center; gap: clamp(2rem, 6vw, 7rem); margin: 3rem auto; }
.gallery-photo--archive-preview { flex: 0 1 430px; max-width: 430px; transform: rotate(-4deg); padding: .8rem .8rem 1.5rem; }
.gallery-photo--archive-preview img { height: clamp(270px, 37vw, 450px); object-fit: contain; background: #eee6d9; }
.gallery-photo--archive-preview .gallery-photo__caption { font-size: 1.6rem; text-align: center; }
.archive-frame[hidden] { display: none; }
.making-note { max-width: 290px; font: 1.7rem/1.15 var(--notes); transform: rotate(3deg); }
.making-note span { display: block; color: var(--clay); font-size: 3.5rem; }
.making-note small { display: block; font-size: 1.25rem; }
.photo-viewer__close { appearance: none; border: 0 !important; border-radius: 0 !important; outline: 0; box-shadow: none !important; background: transparent !important; }
.photo-viewer__close:focus-visible { text-decoration: underline; text-underline-offset: .12em; }
@media (max-width: 700px) { .making-preview-wrap { flex-direction: column; gap: 1rem; } .gallery-photo--archive-preview { flex: auto; width: min(82%, 410px); } .making-note { text-align: center; transform: none; } }
.gallery-home img { filter: none; }
.making-note__star { display: block; width: 56px; height: 56px; margin: 0 0 .5rem; color: var(--clay); }
@media (max-width: 700px) { .making-note__star { margin-inline: auto; } }

/* v34: Moving Pictures */
.moving-video-card{max-width:780px;margin:1rem auto 2rem;padding:clamp(16px,3vw,32px);background:rgba(255,255,255,.3);border:1px solid rgba(48,44,35,.2)}.moving-video-card video{display:block;width:100%;max-height:70vh;background:#191919;margin-top:1rem}.moving-video-card h3{margin-top:0}

/* v35: film thumbnail replaces landscape player */
.moving-video-card{text-align:center;background:transparent;border:0}.moving-video-card .film-thumb{margin:0 auto 1.2rem}.moving-video-card h3{margin:0 0 .5rem}
.photo-viewer__prev:disabled{opacity:.25;cursor:default}

/* v38: Through the Eyes of — animated Polaroid collection */
.eyes-preview-collection{display:flex;align-items:center;justify-content:center;gap:clamp(1.5rem,5vw,5rem);margin:2.5rem auto 4rem;flex-wrap:wrap}
.eyes-preview{flex:0 1 350px;width:min(82vw,350px);transform:rotate(3deg);padding:.8rem .8rem 1.4rem}
.eyes-preview img{width:100%;height:clamp(250px,33vw,365px);object-fit:cover;background:#eee6d9;display:block}
.eyes-preview .gallery-photo__caption{display:block;text-align:center;font-size:1.5rem}
.eyes-preview-note{max-width:260px;transform:rotate(-3deg);text-align:left}
.eyes-preview-note p{font-size:1.5rem;margin-bottom:.35rem}
.eyes-preview-note small{display:block}
@media(max-width:700px){.eyes-preview-collection{flex-direction:column;gap:1rem}.eyes-preview-note{text-align:center;transform:none}}

/* Collection captions stay on each Polaroid, ready for more photographers. */
.eyes-preview-collection { flex-direction: column; gap: 1.2rem; }
.eyes-preview { flex: none; }
.eyes-preview-note { width: 100%; max-width: 420px; text-align: center; transform: none; }
.eyes-preview-note p { margin-top: 0; }
.photo-viewer img { cursor: pointer; }
.photo-viewer img:focus-visible { outline: 2px dashed #fff; outline-offset: 4px; }

.eyes-preview-collection { flex-direction: row; flex-wrap: wrap; align-items: flex-start; }
.eyes-preview .gallery-photo__caption small { display: block; margin-top: .35rem; font-size: .9rem; line-height: 1.3; }
