.gallery-section{position:relative;padding:110px 0;background:transparent;color:#ebefe8;--gallery-accent:#D5B791;--gallery-muted:#afbeb4;scroll-margin-top:70px}
.gallery-wrap{max-width:1280px;padding:0 64px;margin:0 auto}
.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:55px}
.gallery-eyebrow{font:11px/1.7 monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--gallery-accent);margin:0 0 24px}
.gallery-heading :is(h1,h2){font:400 clamp(40px,5.5vw,74px)/1.08 Georgia,serif!important;letter-spacing:-.035em;margin:0;color:inherit}
.gallery-heading :is(h1,h2) span{color:var(--gallery-muted)}
.gallery-heading>a,.gallery-source,.gallery-view-all{font-size:12px;color:var(--gallery-accent);text-decoration:none;border-bottom:1px solid #d5b79166;padding-bottom:4px}
.gallery-grid{--gallery-columns:3;--gallery-row-gap:34px;columns:var(--gallery-columns);column-gap:28px}
.gallery-grid.is-masonry{position:relative;columns:auto}
.gallery-grid.is-masonry>.gallery-photo{position:absolute;margin:0}
.gallery-photo{break-inside:avoid;margin:0 0 34px}
.gallery-open{position:relative;display:block;overflow:hidden;border-radius:3px;background:#21342b}
.gallery-open img{display:block;width:100%;height:auto;transition:transform .5s cubic-bezier(.2,.7,.2,1);filter:saturate(.9)}
.gallery-open:hover img,.gallery-open:focus-visible img{transform:scale(1.035);filter:saturate(1)}
.gallery-enlarge{position:absolute;right:12px;bottom:12px;width:32px;height:32px;display:grid;place-items:center;background:#172320d9;color:#ebefe8;border-radius:50%;font-size:19px}
.gallery-photo figcaption{display:flex;gap:15px;margin-top:17px}
.gallery-number{font:10px/1.8 monospace;color:var(--gallery-accent);padding-top:3px}
.gallery-photo h3{font:400 20px/1.3 Georgia,serif!important;margin:0 0 8px;color:inherit}
.gallery-caption{font-size:13px;line-height:1.65;color:var(--gallery-muted);margin:0 0 10px}
.gallery-source{font-size:11px}
.gallery-empty{color:var(--gallery-muted)}
.gallery-lightbox{margin:auto;position:fixed;inset:0;border:1px solid #d5b79144;border-radius:8px;padding:20px;background:#101b16;color:#ebefe8;max-width:min(1100px,calc(100vw - 36px));width:100%;max-height:calc(100svh - 36px);overflow:auto;z-index:200000}
.gallery-lightbox::backdrop{background:#050b08ed;backdrop-filter:blur(8px)}
.gallery-lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;font:12px monospace;margin-bottom:16px}
.gallery-lightbox button{border:1px solid #d5b79166;color:#ebefe8;background:transparent;padding:8px 13px;cursor:pointer;border-radius:3px}
.gallery-lightbox button:disabled{opacity:.3;cursor:default}
.gallery-lightbox img{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100svh - 235px);object-fit:contain;margin:auto}
.gallery-lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}
.gallery-lightbox-footer>div{text-align:center}
.gallery-lightbox h3{font:400 23px/1.3 Georgia,serif!important;color:inherit;margin:0 0 5px}
.gallery-lightbox p{font-size:13px;color:#afbeb4;margin:0 0 8px}
.gallery-lightbox a{color:#D5B791;font-size:12px}
.gallery-section :is(a,button):focus-visible{outline:2px solid var(--gallery-accent);outline-offset:5px}
[data-theme=light] .gallery-section{background:transparent;color:#20302b;--gallery-accent:#785831;--gallery-muted:#55665a}
@media(max-width:1000px){.gallery-grid{--gallery-columns:2}}
@media(max-width:600px){.gallery-section{padding:70px 0}.gallery-wrap{padding:0 24px 0 64px}.gallery-heading{display:block;margin-bottom:35px}.gallery-heading>a{display:inline-block;margin-top:24px}.gallery-heading :is(h1,h2){font-size:42px!important}.gallery-grid{--gallery-columns:1}.gallery-lightbox{padding:14px}.gallery-lightbox-footer{gap:10px}.gallery-lightbox h3{font-size:20px!important}}
@media(prefers-reduced-motion:reduce){.gallery-open img{transition:none}.gallery-open:hover img,.gallery-open:focus-visible img{transform:none}}

.gallery-section{isolation:isolate;overflow:clip}
.gallery-wrap{position:relative;z-index:1}
.gallery-section>.scroll-reveal-text{background-image:linear-gradient(var(--gallery-accent),var(--gallery-accent));font-size:clamp(5rem,18vw,20rem)}
@media(max-width:768px){.gallery-section>.scroll-reveal-text{top:130px!important;font-size:clamp(2rem,16vw,6rem)}}

.gallery-footer{display:flex;justify-content:flex-end;padding-top:28px;border-top:1px solid color-mix(in srgb,var(--gallery-accent) 25%,transparent)}
.gallery-view-all{display:inline-flex;gap:5px;align-items:center}

.gallery-document{background:#172320!important}
.gallery-document .gallery-archive{padding-top:70px;padding-bottom:180px;background:linear-gradient(to bottom,#172320 calc(100% - 160px),#0a0a0a)}
.gallery-document .footer-reveal{margin-top:0!important;border-top:0!important}
[data-theme=light] .gallery-document{background:#e8efe7!important}
[data-theme=light] .gallery-document .gallery-archive{background:linear-gradient(to bottom,#e8efe7 calc(100% - 160px),#f5f5f5)}
.gallery-pagination{margin-top:35px;--gallery-page-bg:#21342b;--gallery-page-border:#425448;--gallery-page-hover:#304438;--gallery-page-selected-ink:#172320}
[data-theme=light] .gallery-pagination{--gallery-page-bg:#f1f5ed;--gallery-page-border:#bacbbb;--gallery-page-hover:#dce6d8;--gallery-page-selected-ink:#fff}
.gallery-pagination p{color:var(--gallery-muted)}
.gallery-pagination :is(a,span).border{background-color:var(--gallery-page-bg)!important;border-color:var(--gallery-page-border)!important;color:var(--gallery-accent);min-width:44px;min-height:44px;justify-content:center}
.gallery-pagination a:hover{background-color:var(--gallery-page-hover)!important;border-color:var(--gallery-accent)!important;color:var(--gallery-accent)}
.gallery-pagination span.cursor-default{color:var(--gallery-muted)}
.gallery-pagination [aria-disabled=true]>span{opacity:.5}
.gallery-pagination [aria-current=page]>span{background-color:var(--gallery-accent)!important;border-color:var(--gallery-accent)!important;color:var(--gallery-page-selected-ink)}
.gallery-pagination nav{background:transparent;padding:0;position:static;z-index:auto}
@media(max-width:600px){.gallery-document .gallery-archive{padding-top:45px}}
