.galleryintro{padding:75px 8% 65px;background:#f7f7f7}.galleryintro h1{font-size:clamp(52px,6vw,88px);margin:28px 0 32px;line-height:1.08}.galleryintro>div{display:flex;justify-content:space-between;align-items:center;gap:30px}.galleryintro>div>p{font-size:14px;line-height:1.9;color:#626262}.gallerybody{padding:45px 8% 70px}.gallerytoolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ddd;margin-bottom:35px}.galleryfilters{display:flex;gap:25px}.galleryfilters button{background:none;border:0;border-bottom:2px solid transparent;padding:18px 0;font-size:12px;cursor:pointer;color:#626262}.galleryfilters button[aria-pressed=true]{border-color:#7d1319;color:#7d1319}.galleryfilters small{display:inline;font-size:9px;margin-left:6px;color:inherit}.gallerytoolbar>p{font-size:10px;color:#707070;white-space:nowrap}.gallerygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px 22px}.gallerycard{display:block;border:0;background:none;text-align:left;padding:0;cursor:zoom-in;min-width:0}.gallerycard[hidden]{display:none}.gallerycard img{width:100%;height:auto;aspect-ratio:1.45;object-fit:cover;display:block;transition:filter .2s}.gallerycard:hover img{filter:brightness(.88)}.gallerycard span{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.5px;padding:15px 0;color:#3b3a3a}.gallerycard b{font-weight:400;color:#7d1319}.gallerynote{font-size:11px;color:#707070;margin-top:40px;line-height:1.8}.galleryend{padding:60px 8%;background:#f7f7f7;text-align:center}.galleryend .button{margin-top:0}.galleryviewer{width:min(1100px,94vw);max-width:94vw;background:#fff;padding:18px}.viewerbar,.viewercontrols{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px}.viewerbar{margin-bottom:15px}.viewerbar button,.viewercontrols button{border:0;background:none;cursor:pointer;padding:10px;font-size:10px}.galleryviewer #viewerimage{width:100%;height:70vh;max-width:100%;object-fit:contain}.viewercontrols{margin-top:12px}.viewercontrols a{font-size:9px;color:#7d1319;padding:12px}.galleryviewer::backdrop{background:#160e10e8}@media(max-width:700px){.galleryintro{padding:45px 7%}.galleryintro h1{font-size:50px;letter-spacing:-2px}.galleryintro>div{display:block}.galleryintro .textlink{margin-top:10px}.gallerybody{padding:25px 6% 45px}.gallerytoolbar{display:block}.galleryfilters{gap:0;justify-content:space-between}.galleryfilters button{font-size:11px}.gallerytoolbar>p{padding-bottom:10px}.gallerygrid{grid-template-columns:repeat(2,1fr);gap:20px 12px}.gallerycard span{font-size:9px;padding:10px 0}.galleryviewer #viewerimage{height:58vh}.viewercontrols{gap:2px}.viewercontrols button{font-size:9px;padding:8px 2px}.viewercontrols a{font-size:8px;padding:8px 2px}.galleryend{padding:45px 7%}}
/* Scroll reveals and shared-image morphs. */
.scroll-reveal{opacity:0;transform:translateY(38px) scale(.975);transition:opacity .7s ease var(--reveal-delay,0ms),transform .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}.scroll-reveal.revealed{opacity:1;transform:none}.gallerycard img{transition:filter .3s,transform .6s cubic-bezier(.2,.7,.2,1),border-radius .6s}.gallerycard:hover img{transform:scale(.985);border-radius:12px}.gallerycard:focus-visible{outline:2px solid #7d1319;outline-offset:6px}.gallerytoolbar{position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:3}.photo-open{overflow:hidden}.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:#7d1319;transform:scaleX(0);transform-origin:left;z-index:99;pointer-events:none}.galleryviewer[open]{animation:viewer-arrive .35s ease}.galleryviewer::backdrop{animation:backdrop-arrive .35s ease}@keyframes viewer-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes backdrop-arrive{from{background:#160e1000}to{background:#160e10e8}}::view-transition-group(*){animation-duration:.6s;animation-timing-function:cubic-bezier(.22,.75,.18,1)}::view-transition-old(gallery-photo),::view-transition-new(gallery-photo){height:100%;width:100%;object-fit:contain;mix-blend-mode:normal}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}.gallerycard:hover img{transform:none;border-radius:0}.galleryviewer[open],.galleryviewer::backdrop{animation:none}::view-transition-group(*){animation-duration:0s}}

/* Idea gallery hero: video backdrop with a left-weighted scrim. */
.galleryintro{position:relative;isolation:isolate;overflow:hidden;min-height:600px;background:#292727 url(/assets/gallery-hero-poster.jpg) center 42%/cover no-repeat;color:#fff}
.galleryintro video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:brightness(.92);z-index:-2;pointer-events:none}
.galleryintro:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(22,14,15,.92) 0%,rgba(26,18,18,.78) 40%,rgba(28,22,21,.42) 72%,rgba(28,22,21,.28) 100%),linear-gradient(0deg,rgba(18,12,12,.55),transparent 60%)}
.galleryintro .eyebrow{color:#f2c9cc}
.galleryintro h1,.galleryintro h1 em{color:#fff}
.galleryintro>div>p{color:#f0eded}
.galleryintro .textlink{color:#fff;border-bottom:1px solid rgba(255,255,255,.55)}
.galleryintro .textlink:hover{border-bottom-color:#fff}
@media(max-width:900px){.galleryintro{min-height:520px}}
@media(max-width:620px){.galleryintro{min-height:0}}
@media(prefers-reduced-motion:reduce){.galleryintro video{display:none}.galleryintro{background-image:url(/assets/gallery-hero-still.jpg)}}
