.gallery-main{padding-bottom:0}.gallery-intro{min-height:310px;display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:80px;padding:70px 8% 55px;border-radius:28px;background:linear-gradient(115deg,#f2e3c9,#a8b3a4);color:#173e30}.gallery-intro h1{max-width:850px;margin-top:22px;font:500 clamp(44px,5.2vw,78px)/.98 "Playfair Display",serif;letter-spacing:-.035em}.gallery-intro>p{max-width:460px;color:#40554b;font-size:13px;line-height:1.8}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:16px 0}.gallery-tile,.gallery-tile.tile-wide,.gallery-tile.tile-tall{position:relative;grid-column:auto;grid-row:auto;aspect-ratio:3/4;overflow:hidden;border:0;border-radius:22px;background:#d8d5ce;text-align:left;cursor:pointer}.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.65,.25,1),filter .5s}.gallery-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,35,26,.74),transparent 58%);opacity:.78;transition:.35s}.gallery-tile span{position:absolute;left:24px;right:20px;bottom:23px;z-index:2;color:#fff;transform:translateY(4px);transition:.35s}.gallery-tile small{display:block;font-size:8px;letter-spacing:.18em}.gallery-tile strong{display:block;margin-top:7px;font:500 21px "Playfair Display",serif}.gallery-tile:hover img,.gallery-tile:focus img{transform:scale(1.045);filter:brightness(.9)}.gallery-tile:hover span,.gallery-tile:focus span{transform:none}.gallery-cta{margin-top:1px;padding:65px 8%;border-radius:28px 28px 0 0;background:#efe5d3;text-align:center}.gallery-cta h2{margin-top:14px;color:#24483a;font:500 clamp(34px,4vw,57px)/1.05 "Playfair Display",serif}.gallery-cta .primary-button{margin-top:24px}.active-page{color:#315c49!important;font-weight:600}.active-page:after{content:"";display:block;width:18px;height:1px;margin:4px auto 0;background:#b5944c}@media(max-width:1000px){.gallery-intro{grid-template-columns:1fr;gap:28px;padding:50px 8%}.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.gallery-intro{min-height:370px;border-radius:20px;padding:42px 26px}.gallery-intro h1{font-size:43px}.gallery-grid{grid-template-columns:1fr}.gallery-tile{border-radius:18px}.gallery-cta{padding:52px 25px}}

.scroll-expand-shell{position:relative;height:205vh;margin-bottom:18px}
.scroll-expand-sticky{--expand-progress:0;position:sticky;top:0;height:100vh;min-height:560px;overflow:hidden;border-radius:28px;background:#153b2e;isolation:isolate}
.scroll-expand-background{position:absolute;inset:-4%;z-index:0;transition:opacity .08s linear;will-change:opacity,transform}.scroll-expand-background img{width:100%;height:100%;object-fit:cover}.scroll-expand-background span{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,30,22,.18),rgba(8,30,22,.54))}
.scroll-expand-stage{position:relative;z-index:1;width:100%;height:100%;display:grid;place-items:center;overflow:hidden}
.scroll-expand-media{position:absolute;left:50%;top:50%;width:340px;height:420px;overflow:hidden;border-radius:24px;transform:translate(-50%,-50%);box-shadow:0 24px 80px rgba(7,28,20,.36);will-change:width,height,border-radius}
.scroll-expand-media img{width:100%;height:100%;object-fit:cover;animation:expand-media-life 3s ease-in-out infinite alternate}
.scroll-expand-media span{position:absolute;inset:0;background:#071d16;opacity:.48;transition:opacity .08s linear}
@keyframes expand-media-life{from{object-position:48% 50%;filter:saturate(.96) brightness(.98)}to{object-position:52% 49%;filter:saturate(1.05) brightness(1.035)}}
.scroll-expand-kicker{position:absolute;z-index:3;top:8%;left:50%;transform:translateX(-50%);color:#f3e8d6;font-size:10px;font-weight:600;letter-spacing:.24em;text-shadow:0 2px 18px rgba(0,0,0,.3)}
.scroll-expand-title{position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#f8f0e4;font:500 clamp(48px,6.6vw,96px)/.9 "Playfair Display",serif;letter-spacing:-.045em;text-align:center;pointer-events:none;text-shadow:0 3px 28px rgba(8,31,22,.25)}
.scroll-expand-title span{display:block;will-change:transform,opacity}
.scroll-expand-hint{position:absolute;z-index:3;bottom:8%;left:50%;transform:translateX(-50%);padding-bottom:23px;color:#f5ebdc;font-size:10px;font-weight:500;letter-spacing:.12em;text-align:center;white-space:nowrap}.scroll-expand-hint:after{content:"↓";position:absolute;left:50%;bottom:0;transform:translateX(-50%);animation:expand-arrow 1.5s ease-in-out infinite}@keyframes expand-arrow{50%{transform:translate(-50%,6px)}}
.scroll-expand-copy{position:absolute;z-index:4;left:50%;bottom:7%;width:min(620px,78%);padding:20px 26px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(13,47,36,.6);backdrop-filter:blur(14px);color:#f7efe3;font-size:13px;line-height:1.75;text-align:center;opacity:0;transform:translate(-50%,18px);pointer-events:none}
.scroll-expand-shell.reduced-motion{height:auto}.scroll-expand-shell.reduced-motion .scroll-expand-sticky{position:relative;height:680px}.scroll-expand-shell.reduced-motion .scroll-expand-background{opacity:.18!important}.scroll-expand-shell.reduced-motion .scroll-expand-media{width:94%!important;height:82%!important;border-radius:14px!important}.scroll-expand-shell.reduced-motion .scroll-expand-title,.scroll-expand-shell.reduced-motion .scroll-expand-kicker,.scroll-expand-shell.reduced-motion .scroll-expand-hint{display:none}.scroll-expand-shell.reduced-motion .scroll-expand-copy{opacity:1!important;transform:translate(-50%,0)!important}

.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 8px 9px;border-bottom:1px solid var(--line)}
.gallery-filters{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none}.gallery-filters::-webkit-scrollbar{display:none}
.gallery-filter{flex:none;padding:9px 14px;border:1px solid rgba(49,92,73,.16);border-radius:999px;background:transparent;color:#617068;font-size:9px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}.gallery-filter:hover{transform:translateY(-2px);border-color:rgba(49,92,73,.4);color:#315c49}.gallery-filter.active{border-color:#315c49;background:#315c49;color:#fff}
.gallery-toolbar>p{flex:none;color:#829087;font-size:9px}
.gallery-grid{grid-template-columns:repeat(12,1fr);grid-auto-rows:72px;grid-auto-flow:dense;gap:14px;padding:18px 0 24px}
.gallery-grid .gallery-tile{aspect-ratio:auto;grid-column:span 3;grid-row:span 5;min-height:0}
.gallery-grid .gallery-featured{grid-column:span 6;grid-row:span 7}
.gallery-grid .gallery-wide{grid-column:span 6;grid-row:span 5}
.gallery-grid .gallery-tall{grid-column:span 3;grid-row:span 7}
.gallery-grid .gallery-standard{grid-column:span 3;grid-row:span 5}
.gallery-tile[hidden]{display:none}
.gallery-js .gallery-tile{opacity:0;transform:translateY(24px);transition:opacity .55s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.65,.25,1) var(--reveal-delay,0ms)}
.gallery-js .gallery-tile.in-view{opacity:1;transform:none}
.gallery-js .gallery-tile.in-view:hover,.gallery-js .gallery-tile.in-view:focus{transform:translateY(-5px)}
.gallery-tile:focus-visible{outline:2px solid #b5944c;outline-offset:3px}
.gallery-tile img{animation:gallery-breathe 2.6s ease-in-out infinite alternate;will-change:object-position,filter}
.gallery-tile:nth-child(3n+2) img{animation-name:gallery-drift;animation-duration:3s}
.gallery-tile:nth-child(3n) img{animation-duration:2.2s;animation-delay:-.8s}
.gallery-local-encounter img,.gallery-devotion img{animation:none;object-position:center center}
@keyframes gallery-breathe{from{object-position:48% 50%;filter:brightness(.985) saturate(.98)}to{object-position:52% 49%;filter:brightness(1.035) saturate(1.04)}}
@keyframes gallery-drift{from{object-position:50% 48%;filter:brightness(.99) saturate(.98)}to{object-position:49% 52%;filter:brightness(1.03) saturate(1.045)}}
.gallery-lightbox{grid-template-columns:56px minmax(0,1fr) 56px;gap:20px;padding:52px 5vw 28px}
.gallery-lightbox figure{width:min(1050px,76vw);height:min(82vh,820px);display:grid;grid-template-rows:minmax(0,1fr) auto;margin:0}
.gallery-lightbox figure img{width:100%;height:100%;max-width:none;max-height:none;border-radius:18px;object-fit:contain}
.gallery-lightbox figcaption{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:15px 4px 0;color:#fff}.gallery-lightbox figcaption small{display:block;color:#bfcfc7;font-size:8px;letter-spacing:.18em}.gallery-lightbox figcaption strong{display:block;margin-top:5px;font:500 22px "Playfair Display",serif}.gallery-lightbox figcaption>span{color:#bfcfc7;font-size:10px}
.lightbox-nav{width:50px;height:50px;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font-size:20px;cursor:pointer;transition:.25s}.lightbox-nav:hover{background:#fff;color:#315c49;transform:scale(1.05)}

@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(6,1fr);grid-auto-rows:68px}.gallery-grid .gallery-featured,.gallery-grid .gallery-wide{grid-column:span 6}.gallery-grid .gallery-tall,.gallery-grid .gallery-standard{grid-column:span 3}.gallery-toolbar{align-items:flex-start;flex-direction:column}.gallery-lightbox{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}.gallery-lightbox figure{width:78vw}}
@media(max-width:600px){.scroll-expand-shell{height:190vh}.scroll-expand-sticky{min-height:520px;border-radius:20px}.scroll-expand-title{font-size:clamp(42px,13vw,62px);line-height:.94}.scroll-expand-kicker{top:7%}.scroll-expand-copy{bottom:6%;width:88%;padding:16px 18px;font-size:11px}.gallery-toolbar{padding-inline:2px}.gallery-grid{display:grid;grid-template-columns:1fr;grid-auto-rows:auto;gap:12px}.gallery-grid .gallery-tile,.gallery-grid .gallery-featured,.gallery-grid .gallery-wide,.gallery-grid .gallery-tall,.gallery-grid .gallery-standard{grid-column:auto;grid-row:auto;aspect-ratio:4/5}.gallery-lightbox{grid-template-columns:1fr;padding:58px 14px 22px}.gallery-lightbox figure{width:100%;height:76vh}.lightbox-nav{position:absolute;z-index:3;bottom:27px;width:40px;height:40px}.gallery-prev{left:14px}.gallery-next{right:14px}.gallery-lightbox figcaption{padding-inline:54px}.gallery-lightbox figcaption strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.scroll-expand-media img,.scroll-expand-hint:after,.gallery-tile img{animation:none}.gallery-js .gallery-tile{transition:none}}
