.image-gallery{background:#191817;color:#ece7df;padding:65px 0 55px;overflow:hidden;scroll-margin-top:20px}
.gallery-heading{margin:0 6vw 48px;border-top:1px solid #ffffff26;padding-top:25px;display:flex;align-items:flex-end;justify-content:space-between;gap:45px}
.gallery-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#bcb09d;margin:0 0 25px}
.gallery-heading h2{font:normal clamp(42px,5.6vw,86px)/1.05 Georgia,serif;letter-spacing:-.045em;margin:0}.gallery-heading h2 em{color:#b5a48d;font-weight:400}
.gallery-intro{max-width:290px;font-size:16px;line-height:1.7;margin:0 0 5px;color:#ccc4b9}
.gallery-rail{display:flex;gap:4vw;align-items:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:6vw;padding:14px 6vw 35px;scrollbar-width:thin;scrollbar-color:#9f907a #ffffff12;overscroll-behavior-x:contain}
/* No axis lock or forced snapping on touch: the browser owns the whole gesture. */
@media(any-pointer:coarse){
 .image-gallery{overflow:clip}
 .gallery-rail{overflow-y:hidden;touch-action:auto;overscroll-behavior:auto;scroll-snap-type:none;scroll-behavior:auto}
 .gallery-frame{scroll-snap-align:none}
 .gallery-photo,.gallery-photo img{touch-action:auto}
 .gallery-photo:hover img{transform:none}
}
.gallery-frame{flex:0 0 clamp(240px,30vw,500px);min-width:0;margin:0;scroll-snap-align:start;transition:opacity .8s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.gallery-photo{display:block;position:relative;overflow:hidden;background:#302d29;aspect-ratio:3/4;cursor:zoom-in}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.gallery-photo:hover img{transform:scale(1.035)}.gallery-photo:focus-visible{outline-offset:-5px;outline:2px solid #fff}
.gallery-enlarge{position:absolute;bottom:18px;right:18px;display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff80;background:#19181766;color:#fff;font-size:24px;backdrop-filter:blur(8px)}
.gallery-frame figcaption{display:flex;justify-content:space-between;gap:15px;padding-top:16px;font-size:14px;letter-spacing:.04em;color:#c7bbaa}.gallery-frame figcaption span:first-child{font-size:12px}
.gallery-bottom{margin:24px 6vw 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.gallery-bottom p{font-size:14px;line-height:1.6;color:#bcb09d;margin:0}
.gallery-controls{display:flex;align-items:center;gap:22px}.gallery-controls[hidden]{display:none}
.gallery-controls button,.viewer-bottom button{background:none;border:1px solid #ffffff40;color:inherit;width:48px;height:48px;font-size:24px;cursor:pointer;transition:background .2s}.gallery-controls button:hover,.viewer-bottom button:hover{background:#ffffff16}.gallery-controls button:disabled,.viewer-bottom button:disabled{opacity:.25;cursor:default}
.gallery-frame.gallery-pending{opacity:0;transform:translateY(32px)}.gallery-frame:focus-within{opacity:1;transform:none}
.gallery-viewer{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:22px 5vw;background:#151916;color:#ece7df;overflow:auto}
.gallery-viewer::backdrop{background:#151916}.gallery-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px}.viewer-top,.viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.viewer-top>span{font-size:12px;letter-spacing:.12em}.viewer-close{background:transparent;color:inherit;border:1px solid #ffffff50;padding:12px 20px;font-size:14px;cursor:pointer;min-height:46px}.viewer-photo{height:100%;width:100%;min-height:0;object-fit:contain}.viewer-caption{font-size:14px;text-align:center;line-height:1.5}.gallery-viewer a:focus-visible,.gallery-viewer button:focus-visible{outline:2px solid #c5b799;outline-offset:4px}
@media(max-width:700px){.image-gallery{padding:40px 0}.gallery-heading{display:block;margin:0 7vw 28px}.gallery-heading h2{font-size:clamp(40px,10vw,65px)}.gallery-intro{margin-top:24px;max-width:350px}.gallery-rail{gap:6vw;padding:10px 7vw 25px;scroll-padding-inline:7vw}.gallery-frame{flex-basis:72vw}.gallery-frame:nth-child(even){flex-basis:66vw;margin-top:42px}.gallery-frame:nth-child(3n){margin-top:15px}.gallery-bottom{margin:20px 7vw 0;flex-wrap:wrap}.gallery-controls{margin-left:auto}.gallery-viewer{padding:16px 5vw}.viewer-top{gap:12px}.viewer-top>span{font-size:12px;letter-spacing:0}.viewer-close{padding:12px}.gallery-enlarge{bottom:12px;right:12px}}
@media(prefers-reduced-motion:reduce){.gallery-frame,.gallery-photo img,.gallery-controls button{transition:none}.gallery-frame.gallery-pending{opacity:1;transform:none}}
.gallery-rail.is-dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing;user-select:none}.gallery-rail.is-dragging *{cursor:grabbing}.gallery-rail.is-dragging .gallery-photo img{transform:none;transition:none}@media(hover:hover) and (pointer:fine){.gallery-rail,.gallery-photo{cursor:grab}.gallery-rail{user-select:none}.gallery-enlarge{cursor:zoom-in}}
/* One consistent format, including the former alternating mobile cards. */
.image-gallery .gallery-frame{flex-basis:clamp(240px,30vw,500px);margin-top:0}
@media(max-width:700px){.image-gallery .gallery-frame{flex-basis:72vw}}
