:root{
  --cream:#e8e3cf;
  --cream-soft:#f4f0df;
  --dark:#141411;
  --dark-soft:#24231d;
  --ink:#1e1d19;
  --muted:#6f6a5b;
  --line:rgba(30,29,25,.16);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-weight:300;
  line-height:1.7;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}

h1,h2,h3{
  font-family:'Cormorant Garamond', serif;
  font-weight:500;
  line-height:.95;
  margin:0;
}
h1{font-size:clamp(4.2rem,10vw,9.8rem);letter-spacing:-.06em}
h2{font-size:clamp(3rem,6vw,6.5rem);letter-spacing:-.05em}
h3{font-size:clamp(2.4rem,4vw,4.5rem);letter-spacing:-.04em}
em{font-style:italic;font-weight:400}
p{font-size:1rem;color:var(--muted)}

.eyebrow{
  margin:0 0 18px;
  text-transform:uppercase;
  letter-spacing:.26em;
  font-size:.72rem;
  font-weight:500;
  color:var(--muted);
}
.light-text{color:#d8d1b9}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:24px;
  padding:13px 28px;
  border:1px solid var(--ink);
  border-radius:999px;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  background:transparent;
  cursor:pointer;
  transition:.35s ease;
}
.btn:hover{background:var(--ink);color:var(--cream)}
.btn.light{border-color:var(--cream);color:var(--cream)}
.btn.light:hover{background:var(--cream);color:var(--dark)}

.hero{min-height:100vh;padding:34px 5vw 70px;position:relative;overflow:hidden}
.hero:before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 85% 15%, rgba(255,255,255,.34), transparent 34%);
  pointer-events:none;
}
.nav{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}
.brand{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;letter-spacing:.08em}
.nav-links{display:flex;gap:32px;text-transform:uppercase;font-size:.72rem;letter-spacing:.18em}
.nav-links a{position:relative;color:#363429}
.nav-links a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:#363429;transition:.3s}
.nav-links a:hover:after{width:100%}

.hero-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.84fr);
  gap:7vw;
  align-items:center;
  min-height:calc(100vh - 120px);
  position:relative;
  z-index:1;
}
.hero-content{max-width:820px;padding-top:40px}
.hero-content p:not(.eyebrow){max-width:470px;margin-top:26px}
.hero-collage{position:relative;min-height:600px}
.hero-img{position:absolute;object-fit:cover;filter:saturate(.9);box-shadow:0 28px 60px rgba(0,0,0,.16)}
.hero-img-main{right:4%;top:0;width:72%;height:520px}
.hero-img-small{left:0;bottom:8%;width:46%;height:310px;border:12px solid var(--cream)}
.caption-card{
  position:absolute;right:0;bottom:0;background:var(--dark);color:var(--cream);
  padding:22px 28px;font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-style:italic;
}

section{padding:96px 5vw}
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0}
.dark{background:var(--dark);color:var(--cream);padding:8vw}
.dark p{color:#d8d1b9}.dark h2{color:var(--cream)}
.cream{background:var(--cream-soft);padding:8vw}
.note-row{display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:center;border-top:1px solid var(--line);padding:24px 0}
.note-row:last-child{border-bottom:1px solid var(--line)}
.note-row img{height:120px;width:96px;object-fit:cover}
.note-row p{margin:0;color:#3a382f}

.section-heading{max-width:850px;margin-bottom:70px}
.editorial-story{padding-top:120px}
.story-spread{display:grid;grid-template-columns:.9fr 1fr;gap:8vw;align-items:center;margin:80px 0}
.story-spread.reverse{grid-template-columns:1fr 1fr}
.spread-copy{max-width:520px}
.spread-copy span,.reason-card span{font-family:'Cormorant Garamond',serif;font-size:2rem;color:#9d9275}
.tall{height:650px;background-size:cover;background-position:center;filter:saturate(.9)}
.image-one{background-image:url('https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=900&q=85')}
.image-two{background-image:url('https://images.unsplash.com/photo-1523438885200-e635ba2c371e?auto=format&fit=crop&w=900&q=85')}
.image-three{background-image:url('https://images.unsplash.com/photo-1501901609772-df0848060b33?auto=format&fit=crop&w=900&q=85')}
.mini-collage{position:relative;min-height:560px}
.mini-img{position:absolute;background-size:cover;background-position:center;box-shadow:0 24px 50px rgba(0,0,0,.13)}
.mini-img:first-child{top:0;left:0;width:70%;height:430px}
.mini-img:last-child{right:0;bottom:0;width:48%;height:330px;border:12px solid var(--cream)}

.gallery-band{display:grid;grid-template-columns:1fr .86fr;gap:0;background:var(--cream-soft);padding:0;min-height:660px}
.moving-photo{background:url('https://images.unsplash.com/photo-1516589178581-6cd7833ae3b2?auto=format&fit=crop&w=1000&q=85') center/cover;min-height:660px;animation:slowFloat 8s ease-in-out infinite alternate}
.memory-panel{padding:8vw;display:flex;flex-direction:column;justify-content:center}
.memory-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.memory-list span,.dream-list span{border:1px solid var(--line);border-radius:999px;padding:10px 16px;color:#4a463a;background:rgba(255,255,255,.35);font-size:.9rem}

.about{display:flex;justify-content:center;text-align:center;padding:130px 5vw}
.about div{max-width:760px}

.reasons-section{background:var(--cream-soft)}
.reasons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.reason-card{min-height:260px;border:1px solid var(--line);padding:34px;display:flex;flex-direction:column;justify-content:space-between;background:var(--cream)}
.reason-card p{font-family:'Cormorant Garamond',serif;font-size:2rem;line-height:1.05;color:var(--ink)}

.feature{display:grid;grid-template-columns:.9fr 1fr;padding:0;background:var(--dark)}
.portrait{min-height:740px;background:url('https://images.unsplash.com/photo-1522673607200-164d1b6ce486?auto=format&fit=crop&w=1000&q=85') center/cover;filter:saturate(.85)}
.date{font-size:.85rem;text-transform:uppercase;letter-spacing:.16em;color:#a69c83!important}

.future-dreams{display:grid;grid-template-columns:.8fr 1fr;gap:50px;align-items:center}
.dream-list{display:flex;flex-wrap:wrap;gap:14px}

.finale{background:var(--dark);color:var(--cream);text-align:center;position:relative;overflow:hidden;min-height:680px;display:grid;place-items:center}
.finale:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 10%,rgba(232,227,207,.16),transparent 35%)}
.finale-intro{position:relative;z-index:2;max-width:720px}
.finale-intro p{color:#d8d1b9}
.celebration-card{
  position:fixed;inset:4vw;z-index:20;background:var(--cream-soft);color:var(--ink);
  display:grid;grid-template-columns:.9fr 1fr;box-shadow:0 30px 90px rgba(0,0,0,.55);
  opacity:0;pointer-events:none;transform:translateY(30px) scale(.96);transition:.55s ease;
}
.celebration-card.show{opacity:1;pointer-events:auto;transform:none}
.card-photo{background:url('https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1000&q=85') center/cover}
.card-copy{padding:7vw;display:flex;flex-direction:column;justify-content:center;text-align:left}
.card-copy span{margin-top:28px;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--muted)}
.close-card{position:absolute;right:20px;top:14px;border:none;background:transparent;font-size:2rem;cursor:pointer;color:var(--ink)}

footer{text-align:center;padding:34px 5vw;background:var(--cream);border-top:1px solid var(--line)}
footer p{font-size:.85rem;margin:0}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease, transform .9s ease}
.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.12s}.delay-2{transition-delay:.22s}.delay-3{transition-delay:.32s}
@keyframes slowFloat{from{background-position:center top}to{background-position:center bottom}}

@media(max-width:980px){
  .hero-layout,.split,.story-spread,.story-spread.reverse,.gallery-band,.feature,.future-dreams,.celebration-card{grid-template-columns:1fr}
  .hero-collage{min-height:500px}.hero-img-main{height:420px}.hero-img-small{height:250px}
  .reasons-grid{grid-template-columns:1fr 1fr}.portrait,.moving-photo{min-height:520px}.celebration-card{overflow:auto}.card-photo{min-height:360px}
}
@media(max-width:620px){
  .hero{padding:24px 22px 50px}.nav{align-items:flex-start}.nav-links{gap:14px;flex-wrap:wrap;justify-content:flex-end}
  .hero-layout{gap:30px}.hero-collage{min-height:390px}.hero-img-main{width:78%;height:330px}.hero-img-small{width:54%;height:210px;border-width:8px}.caption-card{font-size:1.05rem;padding:16px 18px}
  section,.dark,.cream,.memory-panel{padding:70px 22px}.split,.feature,.gallery-band{padding:0}
  .note-row{grid-template-columns:78px 1fr}.note-row img{width:78px;height:98px}.tall{height:430px}.mini-collage{min-height:440px}.mini-img:first-child{height:330px}.mini-img:last-child{height:240px}
  .reasons-grid{grid-template-columns:1fr}.reason-card{min-height:210px}.future-dreams{gap:24px}.celebration-card{inset:18px}.card-copy{padding:42px 26px}h1{font-size:4rem}
}
