:root{--cream:#f8f4ec;--ink:#29251f;--gold:#bd8b3e;--dark:#17130f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,sans-serif}.nav{position:fixed;z-index:20;top:0;left:0;width:100%;height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;color:#fff;transition:.3s}.nav.scrolled{background:rgba(20,17,13,.94);height:70px}.monogram{font:36px Parisienne;color:#dcae62;text-decoration:none}.monogram i{font-size:20px}.nav nav{display:flex;gap:32px}.nav nav a{color:#fff;text-decoration:none;text-transform:uppercase;font-size:11px;letter-spacing:2px}.menu{display:none;background:none;border:0;color:#fff;font-size:26px}.hero{height:100vh;min-height:680px;background:url('assets/images/DSC03341.webp') center 38%/cover no-repeat;position:relative;display:flex;align-items:center;padding:0 6vw}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,8,.67),rgba(10,10,8,.15) 65%,rgba(0,0,0,.05))}.hero-copy{position:relative;color:#fff;max-width:590px}.eyebrow,.kicker{font-size:11px;letter-spacing:4px;color:var(--gold);font-weight:500}.hero h1{font:500 clamp(54px,7vw,96px)/.88 'Cormorant Garamond';letter-spacing:7px;margin:20px 0}.hero h1 span,h2 em{display:block;font:400 45px Parisienne;color:#d8a65a;letter-spacing:0;margin:5px 0}.rule{width:290px;height:1px;background:#cda35e;margin:24px 0}.date{letter-spacing:5px;font-family:'Cormorant Garamond';font-size:18px}.place{font:italic 22px 'Cormorant Garamond';margin-top:-8px}.btn{display:inline-block;margin-top:20px;padding:15px 28px;text-decoration:none;text-transform:uppercase;font-size:10px;letter-spacing:2px}.gold{background:var(--gold);color:#fff}.section{padding:110px 8vw}.story{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;align-items:center}.story h2,.timeline h2,.gallery h2,.gifts h2,.day h2{font:500 clamp(42px,5vw,70px)/.95 'Cormorant Garamond';margin:12px 0 28px}.story p{line-height:1.9;font-family:'Cormorant Garamond';font-size:19px}.textlink{font-size:10px;letter-spacing:2px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:5px}.framed{margin:0;border:1px solid var(--gold);padding:8px;position:relative}.framed img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.center{text-align:center}.moments{display:grid;grid-template-columns:repeat(3,1fr);margin-top:60px;border-top:1px solid #d9cdbb}.moments article{padding:36px;border-right:1px solid #d9cdbb;border-bottom:1px solid #d9cdbb}.moments b{font:15px 'Cormorant Garamond';color:var(--gold);letter-spacing:2px}.moments h3{font:28px 'Cormorant Garamond';margin:12px 0}.moments p{font:16px 'Cormorant Garamond';line-height:1.5}.day{background:#eee6da;padding:100px 8vw}.day-head{text-align:center}.day-grid{display:grid;grid-template-columns:1fr 1fr 2fr;margin-top:45px;background:#fff}.day-grid article{padding:55px 35px;border-right:1px solid #e2d8c9}.day-grid article span{font:50px 'Cormorant Garamond';color:#d9c8ac}.day-grid h3{font:32px 'Cormorant Garamond';margin:5px 0 20px}.day-grid p,.day-grid strong{font:15px 'Cormorant Garamond';line-height:1.6}.day-photo img{width:100%;height:100%;object-fit:cover}.masonry{columns:3;column-gap:12px;margin-top:45px}.masonry img{width:100%;display:block;margin:0 0 12px;break-inside:avoid;cursor:pointer;transition:.3s}.masonry img:hover{transform:scale(.99);filter:brightness(.9)}.quote{height:480px;background:url('assets/images/couple-quote.webp') center 48%/cover fixed;display:grid;place-items:center;position:relative}.quote:before{content:"";position:absolute;inset:0;background:rgba(20,15,10,.38)}.quote div{position:relative;color:white;text-align:center}.quote p{font:italic clamp(38px,5vw,65px) 'Cormorant Garamond';margin:0}.quote span{font:40px Parisienne;color:#e3b66c}.gifts{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.gifts p{font:19px/1.8 'Cormorant Garamond'}.outline{border:1px solid var(--gold);color:var(--ink)}footer{text-align:center;background:var(--dark);color:#eee;padding:65px 20px}.footer-mark{font:60px Parisienne;color:#d4a252}.footer-mark i{font-size:28px}footer p{letter-spacing:3px;font:13px 'Cormorant Garamond'}.small{opacity:.55;font-size:10px!important;margin-top:30px}@media(max-width:800px){.nav{height:68px}.menu{display:block}.nav nav{display:none;position:absolute;top:68px;left:0;width:100%;padding:25px;background:#17130f;flex-direction:column}.nav.open nav{display:flex}.hero{min-height:720px;background-position:58% center;align-items:flex-end;padding-bottom:90px}.shade{background:linear-gradient(0deg,rgba(8,7,5,.82),rgba(8,7,5,.05) 70%)}.hero h1{font-size:55px}.hero h1 span{font-size:34px}.story,.gifts{grid-template-columns:1fr}.story-copy{order:2}.moments{grid-template-columns:1fr}.moments article{border-right:0}.day-grid{grid-template-columns:1fr}.day-photo{height:340px}.masonry{columns:2}.section{padding:80px 6vw}.quote{background-attachment:scroll;height:360px}}

/* Preserve the photographer's intended orientation in the gallery. */
.masonry img{height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;}
.masonry img.portrait{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;object-position:center top;}
@media(max-width:800px){.masonry img.portrait{aspect-ratio:2/3}}
.moment-photo{width:100%;aspect-ratio:4/3;object-fit:cover;margin:-36px -36px 28px;width:calc(100% + 72px);max-width:none}.gallery-note{text-align:center;font:italic 16px 'Cormorant Garamond';opacity:.65;margin-top:20px}.lightbox{position:fixed;z-index:100;inset:0;background:rgba(8,7,5,.96);display:none;align-items:center;justify-content:center;padding:4vw}.lightbox.open{display:flex}.lightbox img{max-width:90vw;max-height:88vh;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.4)}.lightbox button{position:absolute;border:0;background:none;color:#fff;cursor:pointer;font-family:'Cormorant Garamond';font-size:55px}.lightbox-close{right:28px;top:16px}.lightbox-prev{left:24px;top:48%}.lightbox-next{right:24px;top:48%}.masonry img.portrait{aspect-ratio:auto;object-fit:contain}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:800px){.moment-photo{margin:-36px -36px 28px}.lightbox{padding:70px 12px}.lightbox-prev{left:6px}.lightbox-next{right:6px}}

/* V4 editorial wedding album */
.gallery-story{padding-bottom:70px}.gallery-intro{max-width:720px;margin:20px auto 70px;text-align:center;font:19px/1.7 'Cormorant Garamond';opacity:.72}.album-chapter{display:grid;grid-template-columns:260px 1fr;gap:55px;align-items:start;margin:0 auto 110px;max-width:1320px}.album-chapter.reverse{grid-template-columns:1fr 260px}.album-chapter.reverse .chapter-copy{grid-column:2;grid-row:1}.album-chapter.reverse .editorial-grid{grid-column:1;grid-row:1}.chapter-copy{position:sticky;top:105px;padding-top:12px}.chapter-copy>span{display:block;font:62px/1 'Cormorant Garamond';color:#ded0ba;margin-bottom:18px}.chapter-copy h3{font:500 38px/1 'Cormorant Garamond';margin:10px 0 20px}.chapter-copy p:not(.kicker){font:17px/1.7 'Cormorant Garamond';opacity:.72}.editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:12px}.editorial-grid figure{margin:0;overflow:hidden;background:#e9e0d2;min-height:260px}.editorial-grid figure.wide{grid-column:span 2}.editorial-grid figure.tall{grid-row:span 2}.editorial-grid img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover;object-position:center;cursor:zoom-in;transition:transform .65s ease,filter .4s ease}.editorial-grid figure:not(.portrait) img{aspect-ratio:3/2}.editorial-grid figure.wide img{aspect-ratio:16/8.5}.editorial-grid figure.portrait img{aspect-ratio:2/3;object-fit:cover;object-position:center top}.editorial-grid figure.tall img{height:100%;min-height:650px}.editorial-grid figure:hover img{transform:scale(1.018);filter:brightness(.94)}.final-chapter{margin-bottom:20px}.lightbox:after{content:'←  →  Navigate   ·   ESC Close';position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.55);font:10px Montserrat;letter-spacing:1.5px;white-space:nowrap}
@media(max-width:950px){.album-chapter,.album-chapter.reverse{grid-template-columns:1fr;gap:30px;margin-bottom:80px}.album-chapter.reverse .chapter-copy,.album-chapter.reverse .editorial-grid{grid-column:auto;grid-row:auto}.album-chapter.reverse .chapter-copy{order:0}.chapter-copy{position:static;max-width:560px}.chapter-copy>span{font-size:48px}.editorial-grid figure.tall img{min-height:520px}}
@media(max-width:600px){.gallery-intro{margin-bottom:50px}.editorial-grid{grid-template-columns:1fr;gap:8px}.editorial-grid figure.wide{grid-column:auto}.editorial-grid figure,.editorial-grid img{min-height:0}.editorial-grid figure:not(.portrait) img,.editorial-grid figure.wide img{aspect-ratio:4/3}.editorial-grid figure.portrait img{aspect-ratio:2/3}.editorial-grid figure.tall img{min-height:0}.album-chapter{margin-bottom:70px}.chapter-copy h3{font-size:34px}.lightbox:after{display:none}}


/* V5 — cinematic opening + corrected editorial rows */
body{overflow-x:hidden}
.intro-screen{position:fixed;z-index:999;inset:0;background:#17130f;color:#fff;display:grid;place-content:center;text-align:center;transition:opacity 1s ease,visibility 1s ease}
.intro-screen.hide{opacity:0;visibility:hidden;pointer-events:none}
.intro-mark{font:clamp(64px,9vw,120px) Parisienne;color:#d7aa61;line-height:1}
.intro-mark i{font-size:.45em}.intro-screen p{font:12px Montserrat;letter-spacing:4px;text-transform:uppercase;opacity:.68;margin-top:24px}
.hero{overflow:hidden}.hero:after{content:"";position:absolute;inset:-2%;background:inherit;background-size:cover;background-position:center 38%;z-index:-1;animation:heroDrift 16s ease-out both;transform-origin:center}
.hero{background-image:none;background-color:#1a1815}
@keyframes heroDrift{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-copy{opacity:0;transform:translateY(24px);animation:heroCopyIn 1.1s .9s ease forwards}
@keyframes heroCopyIn{to{opacity:1;transform:none}}
.scroll-cue{position:absolute;z-index:2;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;color:#fff;text-decoration:none;font:9px Montserrat;letter-spacing:3px;opacity:.72}
.scroll-cue span{display:block;width:1px;height:34px;background:linear-gradient(#d8a65a,transparent);animation:scrollPulse 1.8s infinite}
@keyframes scrollPulse{0%,100%{transform:scaleY(.45);transform-origin:top;opacity:.5}50%{transform:scaleY(1);opacity:1}}

/* Do not force photos into a row crop. Native ratio wins. */
.editorial-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:14px;align-items:start}
.editorial-grid figure,.editorial-grid figure.wide,.editorial-grid figure.tall{grid-column:span 6;grid-row:auto;margin:0;min-height:0;overflow:hidden;background:#e9e0d2}
.editorial-grid figure.wide{grid-column:span 12}
.editorial-grid figure.portrait{grid-column:span 4}
.editorial-grid figure.portrait.tall{grid-column:span 6}
.editorial-grid img,.editorial-grid figure:not(.portrait) img,.editorial-grid figure.wide img,.editorial-grid figure.portrait img,.editorial-grid figure.tall img{display:block;width:100%;height:auto!important;min-height:0!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important}
.editorial-grid figure:hover img{transform:scale(1.012);filter:brightness(.96)}

/* Chapter-specific rhythm so rows feel intentional, not accidental. */
.ceremony-grid figure:nth-child(2),.ceremony-grid figure:nth-child(3){grid-column:span 6}
.couple-grid figure:nth-child(1){grid-column:span 5}.couple-grid figure:nth-child(2){grid-column:span 7}.couple-grid figure:nth-child(3),.couple-grid figure:nth-child(4),.couple-grid figure:nth-child(5){grid-column:span 4}.couple-grid figure:nth-child(6){grid-column:span 12}
.family-grid figure:nth-child(1){grid-column:span 8}.family-grid figure:nth-child(2){grid-column:span 4}.family-grid figure:nth-child(3){grid-column:span 8}.family-grid figure:nth-child(4){grid-column:span 4}.family-grid figure:nth-child(5),.family-grid figure:nth-child(6){grid-column:span 6}
.details-grid figure:nth-child(1),.details-grid figure:nth-child(3){grid-column:span 4}.details-grid figure:nth-child(2){grid-column:span 8}.details-grid figure:nth-child(4),.details-grid figure:nth-child(5),.details-grid figure:nth-child(6){grid-column:span 4}

/* Gentle image reveal without moving the photo geometry around. */
.editorial-grid figure{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.editorial-grid figure.visible{opacity:1;transform:none}
@media(max-width:950px){.editorial-grid figure,.editorial-grid figure.wide,.editorial-grid figure.tall,.editorial-grid figure.portrait,.editorial-grid figure.portrait.tall,.couple-grid figure:nth-child(n),.family-grid figure:nth-child(n),.details-grid figure:nth-child(n),.ceremony-grid figure:nth-child(n){grid-column:span 6}.editorial-grid figure.wide{grid-column:span 12}}
@media(max-width:600px){.editorial-grid{grid-template-columns:1fr;gap:10px}.editorial-grid figure,.editorial-grid figure.wide,.editorial-grid figure.tall,.editorial-grid figure.portrait,.editorial-grid figure.portrait.tall,.couple-grid figure:nth-child(n),.family-grid figure:nth-child(n),.details-grid figure:nth-child(n),.ceremony-grid figure:nth-child(n){grid-column:1}.scroll-cue{bottom:14px}.intro-screen p{font-size:9px;letter-spacing:2px}}

/* V7 — reliable fixed header + anchor scrolling */
:root{--nav-height:84px}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 18px)}
section[id],footer[id]{scroll-margin-top:calc(var(--nav-height) + 18px)}
.nav{z-index:500;will-change:height,background-color,box-shadow,backdrop-filter}
.nav.scrolled{background:rgba(20,17,13,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.12)}
.nav nav a{position:relative;padding:10px 0}
.nav nav a:after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;background:#d8a65a;transition:right .25s ease}
.nav nav a:hover:after,.nav nav a.active:after{right:0}
.nav nav a.active{color:#e6bd78}
/* restore the hero image behind the cinematic drift layer */
.hero:after{background-image:url('assets/images/DSC03341.webp');background-repeat:no-repeat;background-size:cover;background-position:center 38%}
@media(max-width:800px){:root{--nav-height:68px}.nav.scrolled{height:68px}.nav.open{background:#17130f}.nav nav{max-height:calc(100vh - 68px);overflow:auto}.nav nav a{padding:8px 0}}

/* V8 hero visibility fix: keep cinematic image layer inside the hero stacking context */
.hero{isolation:isolate;background-color:#1a1815}
.hero:after{z-index:0!important;pointer-events:none}
.hero .shade{z-index:1}
.hero .hero-copy{z-index:2}
.hero .scroll-cue{z-index:2}

/* V9 — real multi-image hero + sharper story image */
.hero{background:none!important;isolation:isolate;overflow:hidden}
.hero:after{display:none!important}
.hero-slides{position:absolute;inset:0;z-index:0;overflow:hidden;background:#17130f}
.hero-slide{position:absolute;inset:-2%;opacity:0;background-size:cover;background-position:center 38%;transform:scale(1.055);transition:opacity 1.15s ease;will-change:opacity,transform}
.hero-slide.active{opacity:1;animation:heroKenBurns 7s ease-out both}
@keyframes heroKenBurns{from{transform:scale(1.055)}to{transform:scale(1)}}
.hero-slide.portrait-focus{background-position:center 44%}
.hero .shade{z-index:1}
.hero .hero-copy,.hero .scroll-cue,.hero-controls{z-index:2}
.hero-controls{position:absolute;right:5vw;bottom:34px;display:flex;align-items:center;gap:13px;color:#fff}
.hero-controls>button{width:35px;height:35px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(12,10,8,.18);color:#fff;font:27px/30px 'Cormorant Garamond';cursor:pointer;backdrop-filter:blur(5px)}
.hero-dots{display:flex;gap:8px;align-items:center}
.hero-dots button{width:22px;height:2px;padding:0;border:0;background:rgba(255,255,255,.38);cursor:pointer;transition:.3s}
.hero-dots button.active{width:38px;background:#d8a65a}
.framed img{image-rendering:auto}
@media(max-width:800px){.hero-slide{background-position:58% center}.hero-slide.portrait-focus{background-position:center 38%}.hero-controls{right:6vw;bottom:66px}.hero-controls>button{width:31px;height:31px;font-size:23px}.hero-dots button{width:14px}.hero-dots button.active{width:25px}}
@media(prefers-reduced-motion:reduce){.hero-slide.active{animation:none}.hero-slide{transition:none}}


/* ===== V11 CINEMATIC WEDDING FILM ===== */
.film-section{
  padding:clamp(80px,10vw,150px) clamp(20px,5vw,80px);
  background:#17120e;
  color:#f8f3ea;
  text-align:center;
}
.film-heading{max-width:850px;margin:0 auto 45px}
.film-section .eyebrow,.island-story .eyebrow{
  text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;
  color:#c89a4b;margin-bottom:15px
}
.film-heading h2{
  margin:0;font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(2.8rem,6vw,6.2rem);font-weight:400;line-height:.95
}
.film-sub{margin-top:22px;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;opacity:.72}
.film-sub span{color:#c89a4b;padding:0 10px}
.film-frame{
  width:min(1280px,100%);aspect-ratio:16/9;margin:0 auto;
  position:relative;overflow:hidden;background:#080706;
  box-shadow:0 30px 80px rgba(0,0,0,.35)
}
.film-frame iframe{width:100%;height:100%;border:0;display:block}
.film-poster{
  width:100%;height:100%;display:flex;flex-direction:column;
  justify-content:center;align-items:center;padding:30px;
  background:
    linear-gradient(rgba(10,7,5,.35),rgba(10,7,5,.72)),
    url('assets/images/couple-quote.webp') center 42%/cover no-repeat;
}
.film-play{
  width:84px;height:84px;border:1px solid rgba(255,255,255,.75);
  border-radius:50%;display:grid;place-items:center;padding-left:5px;
  font-size:1.5rem;margin-bottom:25px;transition:.3s ease
}
.film-frame:hover .film-play{transform:scale(1.08);background:rgba(255,255,255,.1)}
.film-poster p{font-family:Georgia,serif;font-size:clamp(1.4rem,2.5vw,2.2rem);margin:0 0 10px}
.film-poster small{opacity:.65;max-width:500px;line-height:1.6}
.film-copy{max-width:780px;margin:40px auto 0;font-family:Georgia,serif;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.8;opacity:.8}

.island-story{
  min-height:82vh;display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);
  background:#f3ecdf;color:#211a14
}
.island-copy{padding:clamp(70px,9vw,150px);display:flex;flex-direction:column;justify-content:center}
.island-copy h2{font-family:Georgia,serif;font-size:clamp(3rem,6vw,6.4rem);font-weight:400;line-height:.9;margin:0 0 35px}
.island-copy h2 em{font-weight:400;color:#b98332}
.island-copy>p:not(.eyebrow):not(.island-note){font-size:1.05rem;line-height:1.9;max-width:560px}
.island-note{text-transform:uppercase;letter-spacing:.22em;font-size:.7rem;margin-top:30px;color:#8c6a3d}
.island-media{min-height:650px}
.drone-placeholder{
  width:100%;height:100%;min-height:650px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:white;text-align:center;
  background:
    linear-gradient(rgba(10,22,25,.15),rgba(10,22,25,.45)),
    url('assets/images/hero/DSC03704.webp') center/cover no-repeat;
}
.drone-placeholder span{letter-spacing:.35em;font-size:.7rem}
.drone-placeholder strong{font-family:Georgia,serif;font-size:clamp(4rem,8vw,8rem);font-weight:400}
.drone-placeholder small{letter-spacing:.2em;text-transform:uppercase;opacity:.75}
@media(max-width:800px){
  .island-story{grid-template-columns:1fr}
  .island-copy{padding:75px 24px}
  .island-media,.drone-placeholder{min-height:65vh}
  .film-section{padding:80px 18px}
  .film-frame{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .film-play{transition:none}
}
