.main-nav .active { color: var(--sand-light); }
.gallery-hero { min-height: 680px; height: calc(100vh - 118px); position: relative; display: flex; align-items: center; overflow: hidden; background: radial-gradient(circle at 72% 40%, #293239 0, #131718 34%, #090a0a 72%); }
.gallery-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.15),rgba(0,0,0,.55)),linear-gradient(0deg,#090a0a,transparent 28%); }
.gallery-hero-grid { position:absolute; inset:0; opacity:.2; background-image:linear-gradient(rgba(183,195,207,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(183,195,207,.13) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(90deg,transparent,#000); }
.gallery-hero-content { position:relative; z-index:2; width:min(760px,86vw); margin-left:7vw; }
.gallery-hero-content h1 { color:transparent; font-family:Inter,Arial,sans-serif; font-size:clamp(76px,10vw,142px); font-weight:900; line-height:.84; letter-spacing:-.075em; -webkit-text-stroke:1.5px #d7dde2; paint-order:stroke fill; }
.gallery-hero-content h1 em { color:transparent; letter-spacing:-.065em; -webkit-text-stroke:1.25px var(--sand-light); }
.gallery-hero-content p:not(.eyebrow) { max-width:620px; margin:30px 0; color:#b8bbb5; line-height:1.75; }
.gallery-hero-index { position:absolute; z-index:2; right:4vw; bottom:30px; color:var(--muted); font:600 9px Inter,sans-serif; letter-spacing:.18em; }
.gallery-section { padding:100px 4vw 130px; }
.gallery-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,470px); align-items:end; gap:60px; margin-bottom:55px; }
.gallery-heading h2 { color:transparent; font-family:Inter,Arial,sans-serif; font-size:clamp(58px,7.4vw,104px); font-weight:900; line-height:.87; letter-spacing:-.07em; -webkit-text-stroke:1.25px #cbd2d8; paint-order:stroke fill; }
.gallery-heading h2 em { color:transparent; letter-spacing:-.06em; -webkit-text-stroke:1px var(--sand-light); }
.gallery-heading>p { color:var(--muted); line-height:1.7; }
.gallery-toolbar { min-height:54px; margin:-25px 0 22px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.gallery-toolbar[hidden] { display:none; }
.gallery-toolbar button { padding:12px 0; border:0; background:none; color:var(--sand-light); cursor:pointer; font:700 9px Inter,sans-serif; letter-spacing:.15em; }
.gallery-toolbar span { color:var(--muted); font:700 9px Inter,sans-serif; letter-spacing:.15em; text-align:right; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid var(--line); background:var(--line); }
.gallery-card { min-width:0; background:#090a0a; cursor:pointer; }
.gallery-card:focus-visible { outline:2px solid var(--sand-light); outline-offset:3px; }
.gallery-card-media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#080909; }
.gallery-card-media img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease,filter .45s ease; }
.gallery-card:hover img { transform:scale(1.025); filter:contrast(1.05); }
.gallery-card-media::after { content:"PREVIEW"; position:absolute; right:14px; bottom:14px; padding:6px 8px; border:1px solid rgba(255,255,255,.25); background:rgba(0,0,0,.58); color:#ddd; font:700 8px Inter,sans-serif; letter-spacing:.16em; }
.gallery-card-info { padding:21px; }
.gallery-album-card .gallery-card-media { background:linear-gradient(145deg,#222a2e,#0b0d0e 72%); }
.gallery-album-card .gallery-card-media.no-cover::before { content:"TOC"; color:rgba(255,255,255,.045); font:800 italic 120px/1 "Barlow Condensed",Impact,sans-serif; letter-spacing:-.08em; }
.gallery-album-card .gallery-card-media::after { content:"OPEN EVENT"; }
.gallery-album-description { min-height:42px; margin:0 0 20px; color:var(--muted); font-size:12px; line-height:1.55; }
.gallery-album-count { color:var(--white); font:700 10px Inter,sans-serif; letter-spacing:.12em; }
.gallery-card-index { display:block; color:var(--sand-light); font:700 8px Inter,sans-serif; letter-spacing:.16em; }
.gallery-card h3 { margin:10px 0 18px; font:800 22px/1.12 Inter,Arial,sans-serif; letter-spacing:-.035em; }
.gallery-card-bottom { display:flex; justify-content:space-between; align-items:center; }
.gallery-card-price { font-size:13px; font-weight:700; }
.gallery-card-open { width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); color:var(--white); font-size:18px; }
.gallery-loading,.gallery-empty { grid-column:1/-1; min-height:300px; display:grid; place-items:center; background:#0b0c0c; color:var(--muted); font:700 11px Inter,sans-serif; letter-spacing:.15em; text-align:center; padding:40px; }
.delivery-section { padding:90px 6vw 115px; border-top:1px solid var(--line); background:#101212; }
.delivery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:35px; background:var(--line); }
.delivery-grid>div { min-height:210px; padding:30px; background:#101212; }
.delivery-grid span { color:var(--sand-light); font:700 9px Inter,sans-serif; }
.delivery-grid h3 { margin:45px 0 12px; font:800 23px/1.12 Inter,Arial,sans-serif; letter-spacing:-.035em; }
.delivery-grid p { margin:0; color:var(--muted); line-height:1.65; font-size:13px; }
.photo-dialog { position:fixed; z-index:51; inset:5vh 5vw; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr); max-width:1280px; max-height:90vh; margin:auto; visibility:hidden; opacity:0; transform:translateY(18px); transition:.22s; overflow:auto; border:1px solid var(--line); background:#111312; }
.photo-dialog.open { visibility:visible; opacity:1; transform:none; }
.photo-dialog-close { position:absolute; z-index:3; top:16px; right:16px; width:44px; height:44px; border:1px solid var(--line); background:rgba(9,10,10,.82); color:var(--white); font-size:28px; cursor:pointer; }
.photo-dialog-media { position:relative; min-height:560px; display:grid; place-items:center; overflow:hidden; background:#080909; }
.photo-dialog-media img { width:100%; height:100%; object-fit:contain; }
.photo-dialog-media span { position:absolute; left:18px; bottom:18px; padding:7px 9px; border:1px solid rgba(255,255,255,.22); background:rgba(0,0,0,.62); font:700 8px Inter,sans-serif; letter-spacing:.16em; }
.photo-dialog-content { padding:76px 50px 45px; }
.photo-dialog-content h2 { margin-top:15px; font-family:Inter,Arial,sans-serif; font-size:clamp(44px,5vw,70px); font-weight:900; line-height:.94; letter-spacing:-.06em; }
.photo-dialog-description { margin:28px 0 18px; color:#b8bbb5; line-height:1.7; }
.photo-dialog-note { padding-left:15px; border-left:2px solid var(--sand); color:#d3d3ce; font-size:13px; line-height:1.6; }
.photo-dialog-buy { display:flex; flex-direction:column; align-items:flex-start; gap:20px; margin-top:32px; }
.photo-dialog-price { font-size:24px; }
.photo-dialog-buy .button { width:100%; }
.photo-checkout-status { min-height:18px; color:#e2aeae; font-size:12px; line-height:1.5; }
.gallery-backdrop { display:none; position:fixed; z-index:50; inset:0; background:rgba(0,0,0,.72); }
.gallery-backdrop.open { display:block; }
body.gallery-overlay-open { overflow:hidden; }
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-heading{grid-template-columns:1fr}.photo-dialog{inset:3vh 3vw;grid-template-columns:1fr}.photo-dialog-media{min-height:430px}.delivery-grid{grid-template-columns:1fr}.gallery-hero{min-height:620px}.main-nav.open{display:flex}}
@media(max-width:560px){body{overflow-x:hidden}.site-header>.menu-toggle{display:block!important}.gallery-hero{height:540px;min-height:540px;width:100%;max-width:100vw}.gallery-hero-content{margin-left:6vw}.gallery-hero-content h1{font-size:62px}.gallery-hero-content p:not(.eyebrow){font-size:13px}.gallery-hero-index{right:6vw;max-width:88vw;text-align:right;white-space:nowrap}.gallery-section{padding:70px 4vw 90px;max-width:100vw}.gallery-heading{gap:25px}.gallery-heading h2{font-size:clamp(45px,12.2vw,52px)}.gallery-grid{grid-template-columns:1fr}.photo-dialog{inset:0;height:100dvh;max-height:100dvh;border:0}.photo-dialog-media{min-height:300px}.photo-dialog-content{padding:32px 20px}.photo-dialog-content h2{font-size:42px}}
