/* Photographic gallery: a quiet archive outside, a cinema inside. */
.photo-gallery{padding-top:42px}.photo-gallery .section-head{margin-bottom:38px}.gallery-controls{border-top:1px solid var(--line);padding:24px 0 22px;position:sticky;top:85px;background:#f4f3ebf5;backdrop-filter:blur(18px);z-index:5}.gallery-filters{gap:8px;margin:0 0 22px}.gallery-filters button{display:inline-flex;gap:9px;align-items:center;padding:10px 15px;font-size:11px;border-color:#cbd2c3;background:transparent;white-space:nowrap}.gallery-filters button:hover{background:#e4e9dc}.gallery-filters button[aria-pressed=true]{background:var(--ink);color:var(--cream)}.filter-count{font-size:9px;opacity:.65;font-variant-numeric:tabular-nums}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.gallery-count{margin:0;font-size:10px;letter-spacing:1.1px;text-transform:uppercase;font-variant-numeric:tabular-nums;color:#52614f}.gallery-layout{display:inline-flex;gap:3px;padding:3px;border:1px solid #d4dacd;border-radius:30px}.gallery-layout button{border:0;background:transparent;font-size:10px;padding:9px 15px;border-radius:30px;cursor:pointer;color:#52614f;transition:background .2s,color .2s}.gallery-layout button[aria-pressed=true]{background:var(--ink);color:white}.gallery-layout[hidden],.gallery-pagination[hidden],.gallery-card[hidden]{display:none!important}.photo-grid{columns:3;column-gap:20px}.photo-grid.is-compact{columns:5;column-gap:14px}.gallery-card{margin-bottom:20px;vertical-align:top}.is-compact .gallery-card{margin-bottom:14px}.gallery-open{position:relative;border-radius:10px;isolation:isolate;box-shadow:0 4px 24px #152c2106;transition:box-shadow .4s}.gallery-open:after{content:'↗';position:absolute;right:14px;bottom:14px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#f4f3ebe8;color:var(--ink);font-size:19px;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;pointer-events:none}.gallery-open:before{content:attr(data-number);position:absolute;top:15px;left:15px;z-index:1;font-size:10px;letter-spacing:1px;color:white;text-shadow:0 1px 6px #000b;opacity:0;transition:opacity .3s;pointer-events:none}.gallery-open:hover,.gallery-open:focus-visible{box-shadow:0 12px 35px #152c2120}.gallery-open:hover:after,.gallery-open:focus-visible:after{opacity:1;transform:translateY(0)}.gallery-open:hover:before,.gallery-open:focus-visible:before{opacity:1}.gallery-open img{transition:filter .4s;display:block}.gallery-pagination{display:flex;justify-content:center;align-items:center;padding:34px 0 0}.gallery-more{cursor:pointer;background:transparent;border:1px solid #b6c2aa;border-radius:100px;padding:16px 30px;color:var(--ink);font-size:12px;transition:background .3s,transform .3s}.gallery-more:hover{background:#e5ebdc;transform:translateY(-2px)}
.image-viewer{width:calc(100vw - 32px);max-width:1800px;height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);border-radius:14px;background:#0e1915;box-shadow:0 30px 120px #0008;color:#f4f3eb}.image-viewer::backdrop{background:#07100cf5;backdrop-filter:blur(12px)}.viewer-layout{grid-template-rows:auto minmax(0,1fr) auto;gap:14px;padding:20px 24px}.viewer-toolbar{gap:20px;min-height:44px}.viewer-brand{font-size:10px;letter-spacing:2px;color:#aebdac}.viewer-brand span{color:#738270;margin-left:12px}.viewer-tools{display:flex;align-items:center;gap:10px}.viewer-note{font-size:11px;letter-spacing:1px;font-variant-numeric:tabular-nums;color:#d5e7a5;min-width:60px}.viewer-toolbar button,.viewer-bottom button{border:1px solid #415044;background:#1d2b23;border-radius:100px;color:#f4f3eb;min-height:42px;padding:10px 17px;font-size:11px;transition:background .2s}.viewer-toolbar button:hover,.viewer-bottom button:hover{background:#344735}.viewer-toolbar .viewer-close{background:#d5e7a5;color:#14251b;border-color:#d5e7a5}.viewer-toolbar .viewer-close:hover{background:#e5f1c8}.viewer-stage{min-height:0;width:100%;height:100%;position:relative;overflow:hidden;display:block;touch-action:pan-y pinch-zoom;border-radius:8px;background:#111e17}.viewer-stage .viewer-image{width:100%;height:100%;object-fit:contain;display:block;opacity:1}.viewer-stage.is-loading .viewer-image,.viewer-stage.is-error .viewer-image{opacity:0}.viewer-stage.is-zoomed{overflow:auto;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:contain}.viewer-stage.is-zoomed .viewer-image{width:180%;height:180%;max-width:none;max-height:none;cursor:move}.viewer-status{position:absolute;top:50%;left:0;right:0;text-align:center;color:#d0dcc8;font-size:12px;pointer-events:none}.viewer-stage:not(.is-loading):not(.is-error) .viewer-status{display:none}.viewer-bottom{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:18px;align-items:center}.viewer-bottom>.viewer-prev,.viewer-bottom>.viewer-next{width:48px;height:48px;padding:0;font-size:21px}.viewer-bottom button:disabled{opacity:.35;cursor:default}.viewer-thumbs{position:relative;display:flex;align-items:center;gap:8px;overflow:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#506045 transparent;padding:5px 3px 9px;min-width:0}.viewer-thumbs button{flex:0 0 64px;width:64px;height:56px;min-height:56px;border:2px solid transparent;border-radius:7px;padding:0;background:#203124;overflow:hidden;opacity:.45;transition:opacity .2s,border-color .2s}.viewer-thumbs button[aria-pressed=true]{border-color:var(--lime);opacity:1}.viewer-thumbs button:hover{opacity:1}.viewer-thumbs img{width:100%;height:100%;object-fit:cover;display:block}.viewer-thumbs button:focus-visible{outline-offset:1px}
@media(max-width:1000px){.photo-grid.is-compact{columns:4}.viewer-brand span{display:none}}
@media(max-width:900px){.photo-grid{columns:2}.photo-grid.is-compact{columns:3}.gallery-controls{top:85px}}
@media(max-width:700px){.photo-gallery{padding-top:10px}.gallery-controls{position:relative;top:auto;padding-top:20px;padding-bottom:22px}.gallery-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px;margin-bottom:12px;scrollbar-width:thin;scrollbar-color:#becbb2 transparent}.gallery-filters button{flex:none;padding:10px 13px}.photo-grid{columns:2;column-gap:12px}.photo-grid.is-compact{columns:3;column-gap:9px}.gallery-card{margin-bottom:12px}.is-compact .gallery-card{margin-bottom:9px}.gallery-open{border-radius:7px}.gallery-open:after{width:28px;height:28px;right:8px;bottom:8px;font-size:15px}.gallery-open:before{top:10px;left:10px}.gallery-layout button{padding:8px 12px}.gallery-count{font-size:9px;letter-spacing:.5px}.gallery-pagination{padding-top:24px}.image-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.viewer-layout{padding:12px 12px max(12px,env(safe-area-inset-bottom));gap:10px}.viewer-brand{display:none}.viewer-toolbar{min-height:44px}.viewer-toolbar .viewer-note{margin-right:auto}.viewer-tools{gap:6px}.viewer-toolbar button{padding:9px 12px;font-size:10px;min-height:42px}.viewer-bottom{gap:9px;grid-template-columns:40px minmax(0,1fr) 40px}.viewer-bottom>.viewer-prev,.viewer-bottom>.viewer-next{height:42px;width:40px;font-size:18px}.viewer-thumbs{gap:6px}.viewer-thumbs button{flex-basis:48px;width:48px;height:48px;min-height:48px}.viewer-stage{border-radius:4px}.viewer-stage.is-zoomed .viewer-image{width:220%;height:220%}}
@media(hover:none){.gallery-open:after{opacity:.85;transform:none}.gallery-open:before{opacity:.8}}
@media(prefers-reduced-motion:reduce){.photo-gallery *,.image-viewer *{transition:none!important;scroll-behavior:auto!important}}

.viewer-thumbs.is-short{justify-content:center}.viewer-stage:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
