
:root {
  --ink: #0e0c08;
  --ink-soft: #17130e;
  --cream: #f7f1e7;
  --paper: #efe7db;
  --gold: #c6a15b;
  --gold-soft: #e2c995;
  --line: rgba(198,161,91,.32);
  --muted: #817565;
  --white: #fffdf8;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: "Barlow", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; }
#main-content { overflow: clip; }

.gallery-hero {
  position: relative;
  min-height: 760px;
  background: var(--ink);
  color: var(--cream);
  display: grid;
  align-items: center;
  isolation: isolate;
  border-bottom: 1px solid rgba(198,161,91,.35);
}
.gallery-hero__texture {
  position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(circle at 12% 18%, rgba(198,161,91,.18), transparent 24%),
    linear-gradient(115deg, transparent 0 50%, rgba(255,255,255,.025) 50% 51%, transparent 51% 100%);
  background-size: auto, 46px 46px;
}
.gallery-hero__inner {
  width: min(1420px, calc(100% - 72px));
  margin: 0 auto;
  padding: 105px 0 90px;
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  gap: 82px;
  align-items: center;
}
.gallery-hero__kicker,
.section-head__label,
.section-head__eyebrow,
.gallery-close > * > p:first-child {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 12px;
  font-weight: 700;
  color: var(--gold-soft);
}
.gallery-hero h1 {
  margin: 14px 0 20px;
  font: 600 clamp(80px, 10vw, 158px)/.78 "Cormorant Garamond", Georgia, serif;
  letter-spacing: -.055em;
}
.gallery-hero__lead {
  max-width: 590px;
  margin: 0;
  font: 500 clamp(18px, 1.8vw, 26px)/1.5 "Cormorant Garamond", Georgia, serif;
  color: #d8cfc1;
}
.gallery-hero__cta {
  display: inline-flex; gap: 18px; align-items: center;
  margin-top: 34px;
  color: var(--white);
  text-decoration: none;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--gold);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 700;
}
.gallery-hero__collage {
  position: relative;
  min-height: 560px;
}
.hero-photo {
  position: absolute;
  overflow: hidden;
  background: #211c16;
  box-shadow: 0 30px 90px rgba(0,0,0,.44);
  border: 1px solid rgba(226,201,149,.24);
}
.hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.hero-photo--one { left: 2%; top: 9%; width: 39%; height: 76%; z-index: 3; transform: rotate(-2.2deg); }
.hero-photo--two { left: 32%; top: 0; width: 47%; height: 48%; z-index: 2; transform: rotate(1.8deg); }
.hero-photo--three { right: 0; bottom: 2%; width: 55%; height: 49%; z-index: 4; transform: rotate(-1deg); }
.gallery-hero__footer {
  position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%);
  width: min(1420px, calc(100% - 72px));
  display: flex; justify-content: space-between;
  color: rgba(247,241,231,.45);
  font-size: 10px; letter-spacing: .18em; font-weight: 700;
}

.gallery-jump {
  position: sticky;
  top: var(--gallery-nav-offset, 0px);
  z-index: 15;
  background: rgba(247,241,231,.95);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(14,12,8,.12);
}
.gallery-jump__inner {
  width: min(1420px, calc(100% - 72px));
  margin: auto;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.gallery-jump a {
  min-height: 62px;
  padding: 0 14px;
  display: flex; align-items: center; gap: 10px;
  border-right: 1px solid rgba(14,12,8,.09);
  text-decoration: none;
  text-transform: uppercase;
  font-size: 10px; letter-spacing: .11em; font-weight: 700;
  transition: background .2s ease, color .2s ease;
}
.gallery-jump a:first-child { border-left: 1px solid rgba(14,12,8,.09); }
.gallery-jump a span { color: var(--gold); font-family: "Cormorant Garamond",serif; font-size: 19px; letter-spacing: 0; }
.gallery-jump a:hover { background: var(--ink); color: var(--cream); }

.gallery-section { padding: 120px 0 128px; scroll-margin-top: calc(var(--gallery-nav-offset, 0px) + 78px); }
.gallery-section:nth-of-type(even) { background: #f2eadf; }
.section-shell { width: min(1420px, calc(100% - 72px)); margin: 0 auto; }
.section-head {
  display: grid;
  grid-template-columns: 190px 1fr 420px;
  gap: 36px;
  align-items: start;
  padding-bottom: 48px;
  margin-bottom: 56px;
  border-bottom: 1px solid rgba(14,12,8,.16);
}
.section-head__label { color: #8d6c35; padding-top: 9px; }
.section-head__eyebrow { color: #8d6c35; margin-bottom: 8px; }
.section-head h2 {
  margin: 0;
  font: 600 clamp(46px, 5vw, 76px)/.95 "Cormorant Garamond", Georgia, serif;
  letter-spacing: -.035em;
}
.section-head__copy p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: #51493f;
}
.section-head__copy .section-head__note {
  margin-top: 18px;
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #8d6c35;
  font-weight: 700;
}

.editorial-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 30px;
  grid-auto-flow: dense;
  align-items: start;
}
.gallery-card { margin: 0; grid-column: span 4; }
.gallery-card--feature { grid-column: span 5; }
.gallery-card--hero { grid-column: span 8; }
.gallery-card--wide { grid-column: span 6; }
.gallery-card--portrait { grid-column: span 4; }
.gallery-card--archive { grid-column: span 3; }
.gallery-card--panorama { grid-column: 1 / -1; }
.gallery-card__button {
  width: 100%;
  border: 0;
  padding: 0;
  background: #ddd4c7;
  cursor: zoom-in;
  position: relative;
  overflow: hidden;
}
.gallery-card__button img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.2,.65,.25,1), filter .4s ease;
}
.gallery-card--feature .gallery-card__button img,
.gallery-card--portrait .gallery-card__button img { aspect-ratio: 4/5; }
.gallery-card--hero .gallery-card__button img { aspect-ratio: 16/9; }
.gallery-card--archive .gallery-card__button img { aspect-ratio: 1/1; object-fit: contain; background:#e4dbcf; }
.gallery-card--panorama .gallery-card__button img { aspect-ratio: auto; width:100%; height:auto; min-height:120px; object-fit:cover; }
.gallery-card__overlay {
  position: absolute; inset: 0;
  display: flex; align-items: flex-end; justify-content: space-between;
  padding: 18px;
  background: linear-gradient(to top, rgba(14,12,8,.78), transparent 50%);
  color: white;
  opacity: 0;
  transition: opacity .3s ease;
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700;
}
.gallery-card__plus { font-size: 25px; line-height: 1; font-weight: 300; }
.gallery-card__button:hover img { transform: scale(1.025); filter: saturate(.93); }
.gallery-card__button:hover .gallery-card__overlay { opacity: 1; }
.gallery-card figcaption {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 11px;
  padding-top: 13px;
}
.gallery-card__number {
  color: #a27d42;
  font: 600 15px/1 "Cormorant Garamond",serif;
}
.gallery-card figcaption strong {
  display: block;
  font: 600 18px/1.15 "Cormorant Garamond",serif;
}
.gallery-card figcaption div > span {
  display: block;
  margin-top: 5px;
  color: #71675b;
  font-size: 12px;
  line-height: 1.45;
}

/* Section-specific editorial rhythm */
.editorial-grid--section-1 .gallery-card:nth-child(1) { grid-column: 1 / span 5; }
.editorial-grid--section-1 .gallery-card:nth-child(2) { grid-column: 7 / -1; margin-top: 90px; }
.editorial-grid--section-1 .gallery-card:nth-child(3),
.editorial-grid--section-1 .gallery-card:nth-child(4),
.editorial-grid--section-1 .gallery-card:nth-child(7) { margin-top: 26px; }
.editorial-grid--section-1 .gallery-card:nth-child(5) { grid-column: 1 / span 7; margin-top: 70px; }
.editorial-grid--section-1 .gallery-card:nth-child(6) { grid-column: 8 / -1; margin-top: 130px; }
.editorial-grid--section-1 .gallery-card:nth-child(11) { grid-column: 3 / span 8; margin-top: 60px; }

.editorial-grid--section-2 .gallery-card:nth-child(1) { grid-column: 1 / span 8; }
.editorial-grid--section-2 .gallery-card:nth-child(2) { grid-column: 9 / -1; margin-top: 100px; }
.editorial-grid--section-2 .gallery-card:nth-child(6) { grid-column: 1 / span 6; }
.editorial-grid--section-2 .gallery-card:nth-child(12) { grid-column: 9 / -1; margin-top: 20px; }
.editorial-grid--section-2 .gallery-card:nth-child(14) { margin-top: 62px; }

.editorial-grid--section-3 .gallery-card:nth-child(1) { grid-column: 1 / span 8; }
.editorial-grid--section-3 .gallery-card:nth-child(2) { grid-column: 9 / -1; margin-top: 82px; }
.editorial-grid--section-3 .gallery-card:nth-child(3) { grid-column: 2 / span 6; margin-top: 55px; }
.editorial-grid--section-3 .gallery-card:nth-child(4) { grid-column: 8 / -1; margin-top: 105px; }
.editorial-grid--section-3 .gallery-card:nth-child(9) { grid-column: 1 / span 7; margin-top: 50px; }
.editorial-grid--section-3 .gallery-card:nth-child(11) { grid-column: 7 / -1; margin-top: 55px; }

.editorial-grid--section-4 .gallery-card:nth-child(1),
.editorial-grid--section-4 .gallery-card:nth-child(2) { grid-column: span 6; }
.editorial-grid--section-4 .gallery-card:nth-child(3) { grid-column: 1 / span 7; margin-top: 60px; }
.editorial-grid--section-4 .gallery-card:nth-child(4) { grid-column: 8 / -1; margin-top: 120px; }
.editorial-grid--section-4 .gallery-card:nth-child(5) { grid-column: 1 / span 8; margin-top: 70px; }
.editorial-grid--section-4 .gallery-card:nth-child(6) { grid-column: 9 / -1; margin-top: 135px; }

.editorial-grid--section-5 .gallery-card:nth-child(1) { grid-column: 1 / span 8; }
.editorial-grid--section-5 .gallery-card:nth-child(2) { grid-column: 9 / -1; margin-top: 95px; }
.editorial-grid--section-5 .gallery-card:nth-child(3) { grid-column: 1 / span 6; margin-top: 55px; }
.editorial-grid--section-5 .gallery-card:nth-child(4) { grid-column: 7 / -1; margin-top: 105px; }
.editorial-grid--section-5 .gallery-card:nth-child(5) { grid-column: 1 / span 7; margin-top: 70px; }
.editorial-grid--section-5 .gallery-card:nth-child(6) { grid-column: 9 / -1; margin-top: 70px; }

.gallery-close {
  background: var(--ink);
  color: var(--cream);
  padding: 130px 0;
  border-top: 1px solid rgba(198,161,91,.28);
}
.gallery-close__inner { width: min(1000px, calc(100% - 72px)); margin: auto; text-align: center; }
.gallery-close h2 {
  margin: 15px 0 20px;
  font: 600 clamp(50px, 7vw, 92px)/.9 "Cormorant Garamond",serif;
  letter-spacing: -.04em;
}
.gallery-close__copy { max-width: 640px; margin: 0 auto; color: #cfc4b4; line-height:1.65; }
.gallery-close a {
  display: inline-flex; gap: 18px; margin-top: 34px;
  text-decoration: none; border-bottom:1px solid var(--gold); padding-bottom:8px;
  text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:700;
}
.gallery-footer { background:#080705; color:#b9ad9b; border-top:1px solid rgba(198,161,91,.18); }
.gallery-footer__inner {
  width:min(1420px,calc(100% - 72px)); margin:auto; min-height:120px;
  display:flex; justify-content:space-between; align-items:center; gap:30px;
  font-size:12px;
}
.gallery-footer strong { display:block; color:var(--cream); font-family:"Cormorant Garamond",serif; font-size:19px; }
.gallery-footer span { display:block; margin-top:5px; }
.gallery-footer__right { text-align:right; }
.gallery-footer a { color:var(--gold-soft); text-decoration:none; }

.lightbox {
  position: fixed; inset:0; z-index:10000;
  background: rgba(8,7,5,.96);
  display:none;
  align-items:center; justify-content:center;
  color:var(--cream);
}
.lightbox.is-open { display:flex; }
.lightbox__stage { width:min(1100px,82vw); max-height:88vh; display:flex; flex-direction:column; align-items:center; }
.lightbox__image { max-width:100%; max-height:76vh; object-fit:contain; box-shadow:0 20px 80px rgba(0,0,0,.35); }
.lightbox__caption { width:100%; padding-top:16px; display:grid; grid-template-columns:220px 1fr; gap:22px; }
.lightbox__caption strong { font:600 20px/1.15 "Cormorant Garamond",serif; }
.lightbox__caption span { color:#a99e8f; font-size:12px; line-height:1.55; }
.lightbox__close, .lightbox__nav {
  position:absolute; border:0; background:transparent; color:var(--cream); cursor:pointer;
}
.lightbox__close { top:22px; right:28px; font-size:42px; font-weight:200; }
.lightbox__nav { top:50%; transform:translateY(-50%); font-size:58px; padding:20px; color:#cdb989; }
.lightbox__nav--prev { left:24px; }
.lightbox__nav--next { right:24px; }
body.lightbox-open { overflow:hidden; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
  .gallery-card__button img { transition:none; }
}

@media (max-width: 980px) {
  .gallery-hero { min-height:auto; }
  .gallery-hero__inner { width:min(100% - 40px, 800px); grid-template-columns:1fr; gap:50px; padding:85px 0 95px; }
  .gallery-hero__collage { min-height:520px; }
  .gallery-hero__footer { width:calc(100% - 40px); }
  .section-shell { width:calc(100% - 40px); }
  .section-head { grid-template-columns:1fr; gap:12px; }
  .section-head__label { padding:0; }
  .section-head__copy { max-width:660px; margin-top:10px; }
  .gallery-jump__inner { width:100%; overflow-x:auto; display:flex; }
  .gallery-jump a { flex:0 0 auto; min-width:175px; }
  .editorial-grid { gap:22px; }
  .gallery-card,
  .gallery-card--feature,
  .gallery-card--hero,
  .gallery-card--wide,
  .gallery-card--portrait,
  .gallery-card--archive,
  .editorial-grid[class*="editorial-grid--section-"] .gallery-card { grid-column:span 6; margin-top:0; }
  .gallery-card--panorama,
  .editorial-grid[class*="editorial-grid--section-"] .gallery-card--panorama { grid-column:1/-1; }
  .gallery-footer__inner { width:calc(100% - 40px); }
}
@media (max-width: 640px) {
  .gallery-hero__inner { width:calc(100% - 32px); padding:68px 0 80px; }
  .gallery-hero h1 { font-size:82px; }
  .gallery-hero__lead { font-size:19px; }
  .gallery-hero__collage { min-height:420px; }
  .hero-photo--one { left:0; top:5%; width:48%; height:73%; }
  .hero-photo--two { left:34%; width:61%; height:42%; }
  .hero-photo--three { right:0; bottom:0; width:65%; height:47%; }
  .gallery-hero__footer { display:none; }
  .gallery-section { padding:82px 0 90px; }
  .section-shell { width:calc(100% - 32px); }
  .section-head { padding-bottom:32px; margin-bottom:34px; }
  .section-head h2 { font-size:50px; }
  .editorial-grid { grid-template-columns:1fr; gap:36px; }
  .gallery-card,
  .gallery-card--feature,
  .gallery-card--hero,
  .gallery-card--wide,
  .gallery-card--portrait,
  .gallery-card--archive,
  .gallery-card--panorama,
  .editorial-grid[class*="editorial-grid--section-"] .gallery-card { grid-column:1/-1; margin-top:0; }
  .gallery-card--archive .gallery-card__button img { aspect-ratio:4/3; }
  .gallery-card figcaption { grid-template-columns:28px 1fr; }
  .gallery-card figcaption div > span { font-size:11px; }
  .gallery-close { padding:90px 0; }
  .gallery-close__inner { width:calc(100% - 32px); }
  .gallery-close h2 { font-size:52px; }
  .gallery-footer__inner { width:calc(100% - 32px); min-height:150px; flex-direction:column; justify-content:center; align-items:flex-start; }
  .gallery-footer__right { text-align:left; }
  .lightbox__stage { width:calc(100vw - 32px); }
  .lightbox__caption { grid-template-columns:1fr; gap:6px; }
  .lightbox__nav { font-size:44px; padding:8px; }
  .lightbox__nav--prev { left:2px; }
  .lightbox__nav--next { right:2px; }
  .lightbox__close { top:8px; right:14px; }
}
