.gallery-story { background:#f6f1e7; }
.gallery-cover { position:relative; height: min(880px, 100svh); min-height:650px; color:#fff8e8; background:#152c24; overflow:hidden; }
.gallery-cover > img,.cover-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cover-shade { background:linear-gradient(90deg,#061b13b8,transparent 85%),linear-gradient(0deg,#071a14d9,transparent 60%); }
.cover-copy { position:relative; padding-top:clamp(170px,23vh,270px); }
.cover-copy h1 { font:500 clamp(65px,8.2vw,120px)/.98 var(--serif); letter-spacing:-.055em; margin:0; }
.cover-copy h1 em { font-weight:500; color:#edbe7b; }
.cover-copy > p:not(.eyebrow) { font-size:16px; line-height:1.8; margin:27px 0; color:#eee8dc; }
.cover-explore { display:inline-flex; align-items:center; gap:50px; border-bottom:1px solid #ffffff80; padding:10px 0; font-size:12px; }
.cover-explore span { font-size:25px; }
.cover-bottom { position:absolute; bottom:36px; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cover-bottom > p { font-size:11px; letter-spacing:.1em; }
.scene-switch { display:flex; padding:5px; border:1px solid #ffffff50; border-radius:40px; background:#0a251a70; backdrop-filter:blur(12px); }
.scene-switch button { border:0; padding:14px 23px; border-radius:30px; color:#fff8e8; background:transparent; cursor:pointer; font-size:12px; }
.scene-switch button[aria-pressed=true] { background:#f4efe5; color:#12402d; }
.gallery-collection { padding-block:95px 75px; scroll-margin-top:95px; }
.collection-intro { display:flex; align-items:end; justify-content:space-between; gap:50px; margin-bottom:50px; }
.collection-intro h2 { color:var(--green); font-size:clamp(40px,4.8vw,68px); }
.collection-intro > p { max-width:340px; color:var(--muted); line-height:1.8; font-size:14px; }
.gallery-toolbar { border-block:1px solid var(--line); padding:18px 0; display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:35px; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:6px; }
.gallery-filters button { min-height:44px; padding:12px 16px; border:0; border-radius:24px; background:transparent; font-size:12px; cursor:pointer; }
.gallery-filters button[aria-pressed=true] { background:var(--green); color:var(--cream); }
.gallery-filters small { opacity:.7; margin-left:6px; font-size:9px; }
#photo-count { white-space:nowrap; color:var(--muted); font-size:11px; }
.photo-wall { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 23px; align-items:start; }
.photo-card { min-width:0; }
.photo-card[hidden] { display:none; }
.photo-image { position:relative; overflow:hidden; background:#d4d5c9; aspect-ratio:4/5; }
.photo-card:nth-child(6n+1) .photo-image,.photo-card:nth-child(6n+6) .photo-image { aspect-ratio: 1/1; }
.photo-card:nth-child(6n+2) { margin-top:55px; }
.photo-image img { width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.photo-card:hover img { transform:scale(1.045); }
.photo-plus { position:absolute; right:15px; bottom:15px; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#f8f3e9ed; color:var(--green); font-size:22px; }
.photo-caption { display:flex; flex-direction:column; gap:7px; padding-top:14px; }
.photo-caption > span { font:500 21px/1.25 var(--serif); }
.photo-caption small { color:var(--muted); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.gallery-invite { border-top:1px solid var(--line); margin-top:70px; padding-top:50px; display:flex; justify-content:space-between; align-items:center; gap:25px; }
.gallery-invite p { font:500 clamp(30px,4vw,50px) var(--serif); margin:0; color:var(--green); }
.photo-dialog { position:fixed; inset:0; width:100%; height:100dvh; max-width:none; max-height:none; margin:0; padding:22px 35px; border:0; background:#0b1712; color:#f5efdf; }
.photo-dialog[open] { display:flex; flex-direction:column; }
.photo-dialog::backdrop { background:#0b1712; }
.viewer-top,.viewer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.viewer-top > span { font:22px var(--serif); }
.viewer-top small { font:11px var(--sans); color:#a8b5a9; }
.photo-dialog button { border:1px solid #ffffff45; background:transparent; color:inherit; min-width:48px; min-height:48px; cursor:pointer; border-radius:50%; }
.viewer-top button { border-radius:30px; padding:8px 20px; display:flex; align-items:center; gap:20px; font-size:12px; }
.viewer-top button span { font-size:25px; }
.viewer-stage { display:grid; grid-template-columns:50px minmax(0,1fr) 50px; align-items:center; gap:24px; flex:1; min-height:0; margin-block:20px; }
.viewer-stage img { width:100%; height:100%; min-height:0; object-fit:contain; user-select:none; }
.viewer-stage button { font-size:23px; }
.viewer-bottom { padding-inline:74px; }
#viewer-title { font:24px var(--serif); margin:0 0 6px; }
#viewer-category,#viewer-count,.viewer-hint { color:#b6c1b8; font-size:11px; }
.viewer-hint { text-align:center; margin:15px 0 0; }
.gallery-story :is(a,button):focus-visible { outline:3px solid #db9c51; outline-offset:5px; }
@media(max-width:820px) {
 .gallery-cover { min-height:620px; height:88svh; }
 .cover-copy { padding-top:165px; }
 .collection-intro { display:block; }
 .collection-intro > p { margin-top:25px; }
 .gallery-collection { padding-block:60px; }
 .gallery-toolbar { display:block; }
 #photo-count { display:block; margin:15px 0 0; }
 .photo-wall { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 15px; }
 .photo-card:nth-child(6n+2) { margin-top:0; }
 .photo-card:nth-child(even) { margin-top:30px; }
 .photo-caption > span { font-size:18px; }
 .cover-bottom { flex-direction:column; align-items:flex-start; bottom:25px; gap:10px; }
 .cover-bottom > p { margin:0; }
 .photo-dialog { padding:15px; }
 .viewer-stage { grid-template-columns:1fr 1fr; gap:12px; grid-template-rows:minmax(0,1fr) 48px; }
 .viewer-stage img { grid-column:1/-1; grid-row:1; }
 .viewer-stage button { grid-row:2; width:48px; justify-self:end; }
 .viewer-stage [data-next] { justify-self:start; }
 .viewer-bottom { padding:0; }
 #viewer-title { font-size:21px; }
 .gallery-invite { display:block; }
 .gallery-invite a { margin-top:25px; }
}
@media(max-width:480px) {
 .cover-copy h1 { font-size:clamp(54px,15vw,70px); }
 .cover-copy > p:not(.eyebrow) { font-size:13px; }
 .cover-copy .eyebrow { font-size:9px; letter-spacing:.15em; }
 .gallery-cover > img { object-position:55% center; }
 .photo-wall { gap:24px 12px; }
 .photo-caption > span { font-size:16px; }
 .photo-caption small { font-size:8px; line-height:1.5; }
 .photo-plus { width:32px; height:32px; right:8px; bottom:8px; font-size:18px; }
 .gallery-filters button { font-size:11px; padding:10px 12px; }
 .collection-intro h2 { font-size:39px; }
}
@media(prefers-reduced-motion:reduce) { .gallery-story { scroll-behavior:auto; } .photo-image img { transition:none; } }
