/* Photo library: original timber and typography with a quieter app shell. */
.gallery-page{--library:#0e1010;--library-line:#3d403b;--library-muted:#bbbcb4}
.gallery-page:before{background:linear-gradient(#000a,#000d),url('assets/previews/charred-wood-original-1600.webp') center top/cover}
.gallery-page .wrap{width:94%;max-width:1680px}
.gallery-page .masthead{height:auto;min-height:102px;padding-block:18px;gap:32px;border-bottom:1px solid #77787155}
.gallery-page .brand{width:270px;max-width:55%}
.gallery-page .masthead nav{width:auto;min-width:0;gap:32px}
.gallery-page .masthead nav a{font-size:16px}
.masthead [aria-current=page]{text-decoration:underline;text-underline-offset:8px}
.gallery-arrival{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-block:36px 28px}
.gallery-arrival h1{font-size:clamp(34px,3.5vw,52px);line-height:1.15;max-width:19ch}
.gallery-arrival>div{display:flex;align-items:center;gap:32px;max-width:650px}
.gallery-arrival p{font-size:16px;line-height:1.6;max-width:32ch;color:var(--muted)}
.gallery-arrival .text-link{font-size:15px;max-width:170px;flex-shrink:0;text-decoration:none}.gallery-arrival .arrow{width:18px}
.collection{padding-block:0 64px}.album-sidebar{padding-block:0 18px}
.album-sidebar h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#album-filters{display:flex;gap:10px;flex-wrap:wrap}
.album-filter{display:flex;align-items:center;gap:12px;min-height:44px;padding:9px 17px;border:1px solid var(--library-line);border-radius:24px;font-size:15px;line-height:1.4;background:#101212}
.album-filter span{color:var(--library-muted);font-size:13px;font-variant-numeric:tabular-nums}
.album-filter[aria-pressed=true]{background:var(--ink);color:#171919;border-color:var(--ink)}.album-filter[aria-pressed=true] span{color:#53564f}
.album-filter:hover:not([aria-pressed=true]){border-color:#9b9e93;background:#232624}.album-picker{display:none}.gallery-content{min-width:0}
.gallery-tools{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:24px;min-height:80px;padding-block:14px;margin-bottom:20px;border-block:1px solid var(--library-line);background:var(--library)}
#gallery-summary{font-size:14px;color:var(--library-muted);font-variant-numeric:tabular-nums;margin-left:auto}
.gallery-search{position:relative;order:-1;width:320px;max-width:48%}.gallery-search .search-icon{position:absolute;left:14px;top:13px;width:20px;height:20px;color:var(--library-muted);pointer-events:none}
.gallery-search input{border:1px solid #50534c;border-radius:9px;background:#181b19;min-height:46px;padding:10px 13px 10px 44px;font-size:15px}.gallery-search input::placeholder{color:#b9bdb4}
.gallery-layout{display:flex;gap:4px;padding:3px;border-radius:10px;background:#232624;flex-shrink:0}.gallery-layout button{display:grid;place-items:center;width:42px;height:42px;border-radius:7px;color:var(--library-muted)}
.gallery-layout button[aria-pressed=true]{background:#e7e5df;color:#191b18}.gallery-layout button:hover:not([aria-pressed=true]){background:#3d413c;color:#fff}.gallery-layout svg{width:19px;height:19px}
.gallery-grid{columns:4;column-gap:14px}
.gallery-piece{position:relative;break-inside:avoid;display:inline-block;vertical-align:top;width:100%;margin:0 0 14px;border-radius:14px;overflow:hidden;background:#1b1e1b}
.gallery-photo{position:relative;display:block;overflow:hidden;border-radius:14px;isolation:isolate}.gallery-photo img{display:block;width:100%;height:auto;max-height:none;transition:filter .24s var(--ease)}
.gallery-photo:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#000c);opacity:0;transition:opacity .24s var(--ease);pointer-events:none}
.gallery-piece h3,.gallery-piece>p{position:absolute;left:16px;right:48px;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .24s var(--ease)}
.gallery-piece h3{bottom:34px;font-family:var(--sans);font-size:15px;font-weight:400;line-height:1.4;color:#fff}.gallery-piece>p{bottom:15px;font-size:12px;line-height:1.4;color:#e0e1da}
.photo-expand{position:absolute;bottom:16px;right:14px;z-index:2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#111c;color:#fff;opacity:0;transition:opacity .24s var(--ease);pointer-events:none}.photo-expand svg{width:17px;height:17px}
.gallery-piece:hover h3,.gallery-piece:hover>p,.gallery-piece:focus-within h3,.gallery-piece:focus-within>p,.gallery-piece:hover .photo-expand,.gallery-piece:focus-within .photo-expand,.gallery-piece:hover .gallery-photo:after,.gallery-piece:focus-within .gallery-photo:after{opacity:1}
.gallery-piece:hover img{filter:brightness(1.06)}.gallery-piece:focus-within{outline:2px solid var(--ink);outline-offset:3px}.gallery-photo:focus-visible{outline:0}
.gallery-grid[data-layout=grid]{columns:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}.gallery-grid[data-layout=grid] .gallery-piece{margin:0}.gallery-grid[data-layout=grid] .gallery-photo{aspect-ratio:1}.gallery-grid[data-layout=grid] img{height:100%;object-fit:cover}
.photo-failed{display:grid;place-content:center;min-height:200px;aspect-ratio:1;padding:24px;color:var(--muted);font-size:15px}
.gallery-empty{padding:70px 20px;text-align:center;background:#111513;border-radius:14px}.gallery-empty h2{font-size:34px}.gallery-empty p{margin:16px auto;color:var(--muted)}
.gallery-notice{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0;margin-bottom:20px;border-bottom:1px solid var(--library-line)}.gallery-notice p,.gallery-notice button{font-size:15px}.gallery-notice p{color:var(--muted)}.gallery-notice button{white-space:nowrap}
.load-more{display:flex;margin:28px auto 0;border-color:#6d7167;border-radius:26px;padding-inline:26px;font-size:15px}
.gallery-invitation{padding:38px 0 50px;border-top:1px solid var(--library-line);display:flex;align-items:center;gap:32px}.gallery-invitation h2{font-size:32px}.gallery-invitation p{color:var(--muted);font-size:16px}.gallery-invitation a{font-size:16px;margin-left:auto;white-space:nowrap}
.gallery-page .footer img{width:210px}.gallery-page .footer p{font-size:14px}
/* Fullscreen viewer retains the complete photograph. */
.gallery-page .photo-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:18px 28px;border:0;background:#090b0a;overflow:hidden}.gallery-page .photo-viewer[open]{display:flex;flex-direction:column}.gallery-page .photo-viewer::backdrop{background:#090b0a}
.gallery-page .viewer-toolbar{flex-shrink:0;min-height:46px;margin:0 0 14px}.gallery-page .viewer-toolbar p{font-size:14px;font-variant-numeric:tabular-nums;color:#e1e2dc}.viewer-key-hint{font-size:13px;color:#b9bdb4;margin-left:auto;margin-right:18px}
.gallery-page .viewer-close{border-radius:50%;border-color:#5b6055;width:44px;height:44px}.gallery-page .viewer-stage{flex:1;min-height:0;background:transparent;overflow:hidden;touch-action:pan-y pinch-zoom}.gallery-page .viewer-stage img{max-height:100%;max-width:100%;object-fit:contain;clip-path:inset(0);transition:none}.gallery-page .viewer-stage.loading img{opacity:.35}
.gallery-page .viewer-bottom{flex-shrink:0;width:min(100%,1100px);margin-inline:auto;padding-top:16px;gap:24px}.gallery-page .viewer-bottom h2{font-family:var(--sans);font-size:17px;letter-spacing:0;line-height:1.4;overflow-wrap:anywhere}.gallery-page .viewer-bottom p{font-size:13px;color:#b9bdb4;margin-top:3px}.gallery-page .viewer-controls{gap:10px}.gallery-page .viewer-controls button{border-radius:50%;width:44px;height:44px}
.viewer-strip{display:flex;justify-content:center;gap:9px;flex-shrink:0;padding:18px 3px 3px}.viewer-thumb{width:62px;height:48px;flex-shrink:0;padding:0;border:2px solid transparent;border-radius:7px;overflow:hidden;opacity:.6;transition:opacity .2s}.viewer-thumb img{width:100%;height:100%;object-fit:cover}.viewer-thumb[aria-current=true]{border-color:#ece9df;opacity:1}.viewer-thumb:hover{opacity:1}
.privacy-main{max-width:900px}.privacy-main h1{font-size:clamp(40px,5vw,64px)}.privacy-main h2{font-size:30px;margin-top:42px}
@media(min-width:1600px){.gallery-grid{columns:5}.gallery-grid[data-layout=grid]{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px){.gallery-page .masthead nav{gap:22px}.gallery-arrival{gap:30px}.gallery-arrival>div{display:block;max-width:40%}.gallery-arrival p{font-size:15px}.gallery-arrival .text-link{max-width:none;margin-top:8px}.gallery-grid{columns:3}.gallery-grid[data-layout=grid]{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-invitation{flex-wrap:wrap;gap:15px 28px}.gallery-invitation a{margin-left:0}}
@media(max-width:760px){.gallery-page .wrap{width:92%}.gallery-page .masthead{min-height:88px;padding-block:14px;gap:8px}.gallery-page .brand{width:235px;max-width:70%}.gallery-page .masthead nav{width:100%;gap:8px 18px}.gallery-page .masthead nav a{font-size:16px}.gallery-arrival{display:block;padding-block:26px 22px}.gallery-arrival h1{font-size:37px;max-width:18ch}.gallery-arrival>div{max-width:none}.gallery-arrival p{max-width:50ch;font-size:15px;margin-top:12px}.gallery-arrival .text-link{display:none}.album-sidebar{padding-bottom:14px}#album-filters{gap:8px;max-height:132px;overflow:auto}.album-filter{min-height:44px;padding-inline:14px;font-size:14px}.gallery-tools{flex-wrap:wrap;gap:12px;min-height:0;padding-block:12px;margin-bottom:14px}.gallery-search{width:100%;max-width:none}.gallery-search input{font-size:16px}#gallery-summary{margin-left:0;margin-right:auto;max-width:calc(100% - 110px);font-size:12px}.gallery-layout button{width:40px;height:40px}.gallery-layout{gap:6px}.gallery-grid{columns:2;column-gap:10px}.gallery-piece{margin-bottom:10px;border-radius:12px}.gallery-photo{border-radius:12px}.gallery-grid[data-layout=grid]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.collection{padding-bottom:40px}.gallery-invitation{display:block;padding-block:30px 36px}.gallery-invitation h2{font-size:31px}.gallery-invitation p{margin-top:12px;font-size:16px}.gallery-invitation a{margin-top:12px}.gallery-page .photo-viewer{padding:12px 14px max(14px,env(safe-area-inset-bottom))}.viewer-key-hint{display:none}.gallery-page .viewer-toolbar{margin-bottom:12px}.gallery-page .viewer-bottom{padding-top:14px;gap:14px}.gallery-page .viewer-bottom h2{font-size:15px}.gallery-page .viewer-bottom p{font-size:12px}.viewer-strip{gap:8px;padding-top:14px}.viewer-thumb{width:48px;height:44px}.gallery-page .viewer-controls{gap:8px}.gallery-page .viewer-controls button{min-width:44px}.gallery-piece h3{font-size:13px;left:12px;right:12px;bottom:12px}.gallery-piece>p{display:none}.photo-expand{display:none}}
@media(max-width:760px){.gallery-layout button{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.gallery-page *{transition:none!important}}
