:root{--gallery-red:#c91620;--gallery-ink:#09090a;--gallery-cream:#f7f5f0}
body.gallery-page{background:var(--gallery-ink);color:#fff}.gallery-page .site-header{position:fixed}
.gallery-event-hero{min-height:72vh;position:relative;display:flex;align-items:flex-end;padding:150px clamp(24px,7vw,110px) 72px;background:url('/assets/galleries/revere-2026-v112/hero.jpg') center 44%/cover no-repeat;overflow:hidden}.gallery-event-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.12) 35%,rgba(0,0,0,.88))}.gallery-event-hero:after{content:"";position:absolute;inset:auto 0 0;height:120px;background:linear-gradient(180deg,transparent,#09090a)}.gallery-hero-copy{position:relative;z-index:2;max-width:1000px}.gallery-kicker{font:900 11px/1 Arial;letter-spacing:3.5px;color:#fff;text-transform:uppercase;margin-bottom:18px}.gallery-kicker b{color:var(--gallery-red)}.gallery-event-hero h1{font:900 clamp(58px,7.4vw,116px)/.84 Arial;margin:0;letter-spacing:-.055em;text-transform:uppercase}.gallery-event-hero h1 span{color:var(--gallery-red)}.gallery-event-hero p{font:700 14px/1.5 Arial;letter-spacing:2.3px;margin:24px 0 0;color:#e7e7e7;text-transform:uppercase}
.gallery-intro{background:#09090a;text-align:center;padding:54px 24px 38px}.gallery-intro .eyebrow{color:var(--gallery-red);font-size:10px;letter-spacing:3px}.gallery-intro h2{font:900 clamp(30px,4vw,54px)/.95 Arial;margin:12px 0 14px;letter-spacing:-.035em}.gallery-intro p{max-width:720px;margin:auto;color:#aaa;font:400 15px/1.65 Arial}.gallery-count{margin-top:18px;font:800 10px Arial;letter-spacing:2px;color:#666}
/* Lightfolio-inspired dense masonry, preserving each photograph's natural ratio */
.photo-grid{column-count:5;column-gap:10px;padding:10px 12px 18px;background:#f4f3f0}.gallery-tile{width:100%;display:block;break-inside:avoid;margin:0 0 10px;border:0;padding:0;background:#ddd;overflow:hidden;cursor:zoom-in;border-radius:7px;box-shadow:0 1px 0 rgba(0,0,0,.05)}.gallery-tile img{display:block;width:100%;height:auto;transition:transform .4s ease,filter .3s ease}.gallery-tile:hover img{transform:scale(1.018);filter:brightness(.91)}
.gallery-end{padding:100px 24px 110px;text-align:center;background:#09090a}.gallery-end .red-rule{width:52px;height:3px;background:var(--gallery-red);margin:0 auto 25px}.gallery-end h2{font:900 clamp(38px,5vw,72px)/.92 Arial;margin:0;letter-spacing:-.045em}.gallery-end p{color:#aaa;margin:18px auto 28px}.gallery-end a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;background:var(--gallery-red);color:#fff;font:900 11px Arial;letter-spacing:1.2px;transition:transform .2s}.gallery-end a:hover{transform:scale(1.035)}
/* Immersive viewer */
.gallery-viewer{position:fixed;inset:0;background:#f7f7f6;z-index:1000;display:none;color:#222}.gallery-viewer.open{display:block}.viewer-bar{position:absolute;left:0;right:0;top:0;height:64px;display:flex;align-items:center;padding:0 16px 0 22px;border-bottom:1px solid #e7e7e5;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:12}.viewer-title{font:800 10px Arial;letter-spacing:1.7px;color:#666;text-transform:uppercase}.viewer-actions{margin-left:auto;display:flex;align-items:center;gap:2px}.viewer-btn{border:0;background:transparent;color:#555;height:42px;min-width:42px;padding:0 10px;font:800 10px Arial;letter-spacing:.7px;cursor:pointer;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .2s,color .2s}.viewer-btn:hover,.viewer-btn.active{background:#ededeb;color:#111}.viewer-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}.viewer-close{font-size:24px;font-weight:400}.viewer-stage{position:absolute;inset:64px 0 42px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px 76px}.viewer-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;transform-origin:center;transition:transform .2s ease;cursor:zoom-in}.viewer-stage img.zoom-1{transform:scale(1.45);cursor:grab}.viewer-stage img.zoom-2{transform:scale(2);cursor:grab}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:70px;border:0;background:transparent;color:#777;font-size:42px;font-weight:200;cursor:pointer;z-index:9}.viewer-nav:hover{color:#111}.viewer-prev{left:10px}.viewer-next{right:10px}.viewer-bottom{position:absolute;left:0;right:0;bottom:0;height:42px;display:flex;align-items:center;justify-content:center;color:#888;font:700 10px Arial;letter-spacing:1.7px;background:#fff;border-top:1px solid #eee}
/* Share modal */
.share-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:1200;display:none;align-items:center;justify-content:center;padding:20px}.share-backdrop.open{display:flex}.share-card{width:min(430px,100%);background:#fff;color:#171717;border-radius:8px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28);position:relative}.share-card h3{font:900 24px/1 Arial;margin:0 0 7px}.share-card p{font:400 13px/1.5 Arial;color:#777;margin:0 0 22px}.share-close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:24px;color:#777;cursor:pointer}.share-options{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.share-option{border:0;background:#f3f3f1;border-radius:7px;padding:13px 5px 10px;cursor:pointer;color:#333;font:700 9px Arial}.share-option:hover{background:#e9e9e6}.share-icon{display:flex;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;margin:0 auto 7px;background:#111;color:#fff;font:900 14px Arial}.share-caption{margin-top:18px;padding:12px;background:#f7f7f5;border-radius:6px;font:400 11px/1.5 Arial;color:#666}
/* Comments drawer */
.comment-drawer{position:absolute;top:64px;bottom:42px;right:0;width:min(390px,92vw);background:#fff;border-left:1px solid #e5e5e3;z-index:11;transform:translateX(102%);transition:transform .25s ease;display:flex;flex-direction:column}.comment-drawer.open{transform:translateX(0)}.comment-head{padding:22px 22px 16px;border-bottom:1px solid #eee}.comment-head h3{font:900 18px Arial;margin:0 0 4px}.comment-head p{font:400 11px Arial;color:#888;margin:0}.comment-list{padding:18px 22px;overflow:auto;flex:1}.comment-empty{font:400 13px/1.6 Arial;color:#999}.comment-item{padding:0 0 15px;margin:0 0 15px;border-bottom:1px solid #eee}.comment-item b{display:block;font:800 11px Arial;margin-bottom:5px}.comment-item p{font:400 13px/1.5 Arial;margin:0;color:#555}.comment-form{padding:16px 18px 18px;border-top:1px solid #eee;background:#fafaf9}.comment-form input,.comment-form textarea{width:100%;box-sizing:border-box;border:1px solid #d9d9d6;border-radius:5px;background:#fff;padding:10px 11px;font:400 12px Arial;margin-bottom:8px}.comment-form textarea{height:78px;resize:none}.comment-form button{width:100%;height:40px;border:0;border-radius:4px;background:#c91620;color:#fff;font:900 10px Arial;letter-spacing:1px;cursor:pointer}.comment-status{font:400 10px Arial;color:#888;margin:7px 0 0;min-height:12px}
/* Gallery landing retained */
.gallery-landing-hero{min-height:76vh;position:relative;display:flex;align-items:flex-end;padding:150px clamp(24px,7vw,110px) 78px;background:url('/assets/galleries/revere-2026-v112/hero.jpg') center 44%/cover no-repeat}.gallery-landing-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.78))}.gallery-landing-hero>div{position:relative;z-index:2}.gallery-landing-hero h1{font:900 clamp(60px,8vw,120px)/.84 Arial;margin:10px 0 18px;letter-spacing:-.06em}.gallery-landing-hero h1 span{color:var(--gallery-red)}.gallery-landing-hero p{max-width:620px;color:#ddd;font:400 17px/1.6 Arial}.collection-section{background:var(--gallery-cream);color:#111;padding:90px clamp(24px,7vw,110px) 110px}.collection-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.collection-head h2{font:900 clamp(38px,5vw,66px)/.9 Arial;margin:0;letter-spacing:-.045em}.collection-head p{max-width:460px;color:#666;line-height:1.6}.collection-card{display:grid;grid-template-columns:1.55fr .85fr;background:#080809;color:#fff;min-height:520px;overflow:hidden}.collection-image{position:relative;overflow:hidden}.collection-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.collection-card:hover .collection-image img{transform:scale(1.025)}.collection-info{padding:56px 48px;display:flex;flex-direction:column;justify-content:center}.collection-info small{font:900 10px Arial;letter-spacing:2.4px;color:var(--gallery-red)}.collection-info h3{font:900 clamp(38px,4vw,64px)/.9 Arial;margin:14px 0 20px;letter-spacing:-.045em}.collection-info p{color:#aaa;line-height:1.65}.collection-meta{display:flex;gap:22px;margin:20px 0 28px;color:#ddd;font:800 10px Arial;letter-spacing:1.3px}.collection-link{display:inline-flex;width:max-content;background:var(--gallery-red);padding:15px 20px;font:900 10px Arial;letter-spacing:1px;transition:transform .2s}.collection-link:hover{transform:scale(1.035)}
@media(max-width:1250px){.photo-grid{column-count:4}}@media(max-width:900px){.photo-grid{column-count:3;column-gap:7px;padding:7px}.gallery-tile{margin-bottom:7px}.collection-card{grid-template-columns:1fr}.collection-image{min-height:420px}.collection-info{padding:38px 28px}.collection-head{display:block}.viewer-stage{padding:10px 50px}.viewer-title{display:none}.viewer-btn .viewer-label{display:none}}
@media(max-width:600px){.gallery-event-hero,.gallery-landing-hero{min-height:68vh;padding:140px 20px 48px}.gallery-event-hero h1,.gallery-landing-hero h1{font-size:clamp(45px,15vw,72px)}.gallery-event-hero p{font-size:10px;letter-spacing:1.4px}.photo-grid{column-count:2;column-gap:5px;padding:5px}.gallery-tile{margin-bottom:5px;border-radius:5px}.viewer-bar{padding:0 7px}.viewer-stage{padding:8px 35px}.viewer-nav{width:34px}.viewer-prev{left:0}.viewer-next{right:0}.viewer-btn{padding:0 7px;min-width:36px}.share-options{grid-template-columns:repeat(3,1fr)}.collection-section{padding:65px 18px 80px}.collection-image{min-height:300px}}


/* V114: denser mixed-format masonry, white continuation CTA, dark luminous viewer */
.photo-grid{column-count:6;column-gap:9px;padding:9px 10px 20px;background:#f4f3f0}
.gallery-tile{margin-bottom:9px;border-radius:8px;background:#e8e6e1}
.gallery-tile img{width:100%;object-fit:cover}
/* Deliberately vary thumbnail crops. Full-screen viewer always opens the uncropped full photograph. */
.gallery-tile:nth-child(12n+1) img,.gallery-tile:nth-child(12n+6) img{aspect-ratio:1/1}
.gallery-tile:nth-child(12n+2) img,.gallery-tile:nth-child(12n+9) img{aspect-ratio:4/5}
.gallery-tile:nth-child(12n+3) img,.gallery-tile:nth-child(12n+5) img,.gallery-tile:nth-child(12n+8) img,.gallery-tile:nth-child(12n+11) img{aspect-ratio:4/3}
.gallery-tile:nth-child(12n+4) img,.gallery-tile:nth-child(12n+7) img,.gallery-tile:nth-child(12n+10) img,.gallery-tile:nth-child(12n+12) img{aspect-ratio:16/10}
/* Make the opening screen visibly mixed rather than a row of similarly wide frames. */
.gallery-tile:nth-child(1) img{aspect-ratio:1/1}.gallery-tile:nth-child(2) img{aspect-ratio:4/5}.gallery-tile:nth-child(3) img{aspect-ratio:16/9}.gallery-tile:nth-child(4) img{aspect-ratio:1/1}.gallery-tile:nth-child(5) img{aspect-ratio:4/3}.gallery-tile:nth-child(6) img{aspect-ratio:4/5}.gallery-tile:nth-child(7) img{aspect-ratio:16/10}.gallery-tile:nth-child(8) img{aspect-ratio:1/1}
.gallery-end{padding:94px 24px 104px;text-align:center;background:#f4f3f0;color:#111}
.gallery-end .red-rule{display:none}.gallery-end h2{color:#111}.gallery-end h2 span{color:var(--gallery-red)}.gallery-end p{color:#676767;margin:18px auto 29px}
.gallery-end a{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 25px;background:var(--gallery-red);color:#fff;font:900 11px Arial;letter-spacing:1.2px;transition:transform .22s ease,background .22s ease}
.gallery-end a:hover{transform:scale(1.045);background:#ad1119}.gallery-end a::before{content:"";position:absolute;top:-70%;left:-48%;width:28%;height:240%;z-index:1;pointer-events:none;transform:skewX(-20deg);background:linear-gradient(105deg,rgba(255,255,255,0),rgba(255,255,255,.10) 26%,rgba(255,255,255,.72) 50%,rgba(255,255,255,.10) 74%,rgba(255,255,255,0));transition:none}.gallery-end a:hover::before{left:122%;transition:left .78s ease-out}.gallery-end a:not(:hover)::before{left:-48%;transition:none}
/* Black immersive viewer with a soft Salem-style halo behind the photograph. */
.gallery-viewer{background:#050506;color:#fff}.viewer-bar{height:66px;border-bottom:1px solid rgba(255,255,255,.09);background:rgba(5,5,6,.96);color:#fff}.viewer-title{color:#aaa}.viewer-btn{color:#aaa}.viewer-btn:hover,.viewer-btn.active{background:#1b1b1d;color:#fff}.viewer-stage{inset:66px 0 42px;padding:24px 82px;background:radial-gradient(ellipse at center,rgba(255,255,255,.18) 0%,rgba(255,255,255,.08) 22%,rgba(255,255,255,.025) 42%,rgba(0,0,0,0) 67%)}.viewer-stage:before{content:"";position:absolute;width:min(72vw,1100px);height:min(74vh,760px);left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(255,255,255,.18),rgba(255,255,255,.055) 44%,transparent 72%);filter:blur(26px);pointer-events:none}.viewer-stage img{position:relative;z-index:1;filter:drop-shadow(0 0 22px rgba(255,255,255,.16)) drop-shadow(0 22px 44px rgba(0,0,0,.72))}.viewer-nav{color:#8b8b8e}.viewer-nav:hover{color:#fff}.viewer-bottom{background:#050506;border-top:1px solid rgba(255,255,255,.08);color:#888}.comment-drawer{top:66px;bottom:42px}
/* More colorful Lightfolio-inspired share card */
.share-card{width:min(450px,100%);border-radius:9px;padding:31px 30px 26px}.share-card h3{text-align:center;font-size:25px}.share-card p{text-align:center;max-width:340px;margin:0 auto 24px}.share-close{display:none}.share-options{gap:12px}.share-option{background:#fafafa;border:1px solid #ececea;padding:14px 4px 11px;transition:transform .18s ease,background .18s ease}.share-option:hover{background:#f4f4f2;transform:translateY(-2px)}.share-icon{width:38px;height:38px;font-size:16px;box-shadow:0 2px 7px rgba(0,0,0,.12)}.share-icon.facebook{background:#1877f2}.share-icon.xbrand{background:#111}.share-icon.instagram{background:radial-gradient(circle at 32% 105%,#ffd600 0 22%,#ff7a00 28%,#ff0169 52%,#d300c5 72%,#7638fa 100%);font-size:22px}.share-icon.email{background:#7b7b7b}.share-icon.copy{background:#c91620}.share-caption{margin-top:20px}.share-close-bottom{display:block;margin:18px auto 0;min-width:126px;height:42px;border:0;background:#111;color:#fff;font:900 10px Arial;letter-spacing:1.3px;cursor:pointer;transition:transform .18s ease,background .18s ease}.share-close-bottom:hover{transform:scale(1.04);background:#242424}
@media(max-width:1450px){.photo-grid{column-count:5}}@media(max-width:1100px){.photo-grid{column-count:4}}@media(max-width:900px){.photo-grid{column-count:3}.viewer-stage{padding:18px 52px}}@media(max-width:600px){.photo-grid{column-count:2;column-gap:5px;padding:5px}.gallery-tile{margin-bottom:5px;border-radius:6px}.viewer-stage{padding:12px 36px}.share-options{grid-template-columns:repeat(3,1fr)}}


/* v162: larger gallery recap eyebrow */
.gallery-intro .eyebrow{font-size:15px;letter-spacing:3.2px}
@media(max-width:700px){.gallery-intro .eyebrow{font-size:12px}}
