/* Gallery v4: a native scroll-snap viewer and a compact mobile contact sheet. */
.gallery-heading{gap:20px;align-items:center}.gallery-heading>div{display:grid;gap:6px}.gallery-heading>div>span{font-size:10px;color:var(--muted)}
.gallery-browse{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:10px 18px;border:1px solid var(--line);border-radius:30px;background:transparent;font-size:11px}.gallery-browse .ui-icon{width:18px;height:18px}.gallery-browse:hover{background:var(--sand)}
.project-cover{max-width:var(--cover-limit,1600px);margin-inline:auto}.archive-hero{max-width:1000px;margin-inline:auto}
.photo-viewer{--pv-bg:#171b17;--pv-fg:#f5f2eb;position:fixed;inset:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--pv-bg);color:var(--pv-fg);overflow:hidden;overscroll-behavior:none}
.photo-viewer:not([open]){display:none}.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.photo-viewer::backdrop{background:#171b17}
.pv-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:0;padding:12px max(22px,env(safe-area-inset-right)) 12px max(22px,env(safe-area-inset-left));padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid #ffffff15;z-index:2}
.pv-project{font-size:12px;line-height:1.4;min-width:0}.pv-actions{display:flex;align-items:center;gap:18px;flex-shrink:0}.photo-viewer button{background:transparent;color:inherit;border:1px solid #ffffff38;min-width:48px;min-height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:12px}.photo-viewer button:hover{background:#ffffff14}.photo-viewer button:focus-visible,.pv-track:focus-visible{outline:2px solid #b8c5a9;outline-offset:-4px}.photo-viewer button:disabled{opacity:.24}.photo-viewer .pv-fit{border-radius:30px;gap:10px;font-size:10px;padding-inline:18px}.photo-viewer .ui-icon{width:20px;height:20px;flex-shrink:0}
.pv-track{grid-row:2;display:flex;min-width:0;min-height:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pinch-zoom;cursor:grab;-webkit-overflow-scrolling:touch}.pv-track::-webkit-scrollbar{display:none}.pv-track.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}.pv-slide{flex:0 0 100%;width:100%;height:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;position:relative;overflow:hidden}
.pv-photo-scroll{height:100%;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px 20px;position:relative}.pv-image{display:block;flex:none;width:auto;height:auto;max-width:min(100%,var(--photo-max));max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}.pv-image:not([src]){visibility:hidden}.pv-slide[data-loading=true]::after{content:'';position:absolute;left:calc(50% - 12px);top:calc(50% - 12px);width:24px;height:24px;border:1px solid #ffffff25;border-top-color:var(--pv-fg);border-radius:50%;animation:pv-spin 1s linear infinite;pointer-events:none}.pv-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;font-size:12px;padding:25px;text-align:center}.photo-viewer .pv-retry{border-radius:25px;padding:10px 22px;font-size:11px}
.photo-viewer[data-view=wide] .pv-photo-scroll{display:block;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.photo-viewer[data-view=wide] .pv-image{width:min(100%,var(--photo-max));height:auto;max-height:none;margin-inline:auto}
.pv-footer{display:flex;align-items:center;justify-content:center;gap:45px;padding:12px 22px max(14px,env(safe-area-inset-bottom));border-top:1px solid #ffffff15;z-index:2}.pv-progress{text-align:center;min-width:250px}.pv-count{font-size:11px;letter-spacing:.12em;font-variant-numeric:tabular-nums}.pv-hint{font-size:10px;line-height:1.4;color:#c0c5bb;margin:6px 0 0;min-height:14px}
@keyframes pv-spin{to{transform:rotate(360deg)}}
@media(max-width:760px),(max-height:500px) and (max-width:1100px){
 .pv-header{gap:12px;padding:8px max(14px,env(safe-area-inset-right)) 8px max(18px,env(safe-area-inset-left));padding-top:max(8px,env(safe-area-inset-top))}.pv-project{font-size:11px;max-width:75%}.photo-viewer .pv-fit{display:none}.pv-actions{gap:0}.photo-viewer .pv-close{border:0;background:#ffffff0b}.pv-photo-scroll{padding:0 8px}.pv-footer{padding:10px max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom));gap:18px;justify-content:space-between}.pv-progress{min-width:0;flex:1}.pv-hint{font-size:9px;max-width:220px;margin-inline:auto;min-height:26px;display:flex;align-items:center;justify-content:center}.photo-viewer .pv-prev,.photo-viewer .pv-next{flex:0 0 48px}.pv-track{touch-action:pan-x pinch-zoom}
}
@media(max-width:760px){
 .project-heading{padding-top:28px;padding-bottom:28px}.project-heading-main{gap:20px}.project-heading h1{font-size:48px}.project-cover{margin-inline:0;height:auto;max-height:none}.project-cover .cover-trigger{height:auto;aspect-ratio:4/3}.project-cover img{height:100%;width:100%;object-fit:cover}.project-cover .gallery-open{right:14px;bottom:14px;padding:9px 12px;min-height:40px;font-size:9px}.project-story{padding-block:46px;gap:20px}.project-story h2{font-size:37px}.project-story-copy p{font-size:12px;line-height:1.85}.gallery-heading{margin-top:0;padding-inline:18px;margin-bottom:18px}.gallery-browse{font-size:10px;padding-inline:14px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 8px;padding:0 8px;margin:0 0 50px}.gallery figure,.gallery figure:nth-child(n){margin:0;grid-column:auto}.gallery .gallery-trigger{display:block;width:100%;height:auto;aspect-ratio:4/5;min-height:0}.gallery .gallery-trigger img{width:100%;height:100%;object-fit:cover}.gallery .gallery-open{display:none}.gallery figcaption{text-align:center;padding:5px 0 0;font-size:8px}.project-return{gap:24px;padding-block:32px 45px}.project-return p{font-size:28px}
}
@media(max-height:500px) and (max-width:1100px){
 .photo-viewer[open]{grid-template-rows:0 minmax(0,1fr) 0}.pv-header{position:absolute;inset:0 0 auto;pointer-events:none;border:0;padding:8px 14px;background:linear-gradient(#171b1799,transparent)}.pv-project{padding:6px 10px;border-radius:15px;background:#171b1770;max-width:65%}.pv-actions{pointer-events:auto}.photo-viewer .pv-close{background:#171b17a6;border:1px solid #ffffff38}.pv-footer{position:absolute;inset:auto 0 0;border:0;pointer-events:none;padding:6px 14px;background:linear-gradient(transparent,#171b1799)}.pv-footer button{pointer-events:auto;background:#171b17a6}.pv-progress{flex:none;min-width:74px;padding:6px 10px;background:#171b1780;border-radius:20px}.pv-hint{display:none}.pv-photo-scroll{padding:0 4px}
}
@media(prefers-reduced-motion:reduce){.pv-slide[data-loading=true]::after{animation:none}}
