.gallery-page{--gallery-max:1760px;background:var(--charcoal);max-width:none;min-height:70vh;color:var(--cream);margin:0;padding:0}.gallery-intro{background:var(--charcoal);padding-block:clamp(28px,3.5vw,48px) clamp(20px,2.5vw,34px)}.gallery-intro .shell{justify-items:start;gap:clamp(10px,1.2vw,16px);display:grid}.gallery-intro h1{font-family:var(--serif);letter-spacing:-.035em;margin:0;font-size:clamp(2.4rem,4.5vw,4.25rem);font-weight:400;line-height:.95}.gallery-band{background:var(--charcoal);padding-block-end:clamp(12px,1.2vw,18px)}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;grid-auto-flow:dense;gap:clamp(8px,1vw,14px);display:grid}.gallery-intro .shell,.gallery-grid{width:min(calc(100% - clamp(24px, 4vw, 48px)), var(--gallery-max));margin-inline:auto}.gallery-photo{isolation:isolate;min-width:0;margin:0;position:relative;overflow:hidden}.gallery-photo[data-size=regular]{grid-area:span 1/span 1}.gallery-photo[data-size=wide]{grid-area:span 1/span 2}.gallery-photo[data-size=tall]{grid-area:span 2/span 1}.gallery-photo[data-size=feature]{grid-area:span 2/span 2}.gallery-image{background:var(--panel);width:100%;height:100%;position:relative;overflow:hidden}.gallery-image img{object-fit:cover;object-position:50% 56%}.gallery-photo[data-size=wide] .gallery-image img{object-position:50% 60%}.gallery-photo[data-size=tall] .gallery-image img,.gallery-photo[data-size=feature] .gallery-image img{object-position:50% 54%}.gallery-photo figcaption{z-index:1;background:linear-gradient(to top, color-mix(in srgb, var(--charcoal) 90%, transparent), color-mix(in srgb, var(--charcoal) 62%, transparent) 62%, transparent);color:var(--cream);font-family:var(--sans);margin:0;padding:28px 12px 10px;font-size:clamp(.78rem,1vw,.9rem);line-height:1.3;position:absolute;bottom:0;left:0;right:0}.gallery-empty{width:min(100% - 32px, var(--max));color:var(--text-muted);font-family:var(--serif);margin:0 auto;padding-block:clamp(64px,10vw,120px);font-size:clamp(1.2rem,2.5vw,1.65rem);font-style:italic}@media (max-width:1024px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:190px}.gallery-photo[data-size=tall]{grid-area:span 1/span 2}}@media (max-width:640px){.gallery-intro{padding-block:26px 20px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px;gap:8px}.gallery-photo[data-size=tall]{grid-area:span 2/span 1}.gallery-photo figcaption{padding:26px 9px 8px;font-size:.75rem}}
