:root{
  --sage:#7e9278;
  --sage-soft:#dfe6da;
  --forest:#435646;
  --forest-deep:#2f3c31;
  --olive:#68765c;
  --ivory:#f8f3e9;
  --paper:#fffaf1;
  --gold:#c3a05a;
  --gold-soft:#ddc995;
  --terracotta:#9d6851;
  --taupe:#b7aa98;
  --ink:#273029;
  --muted:#6d716b;
  --shadow:0 22px 70px rgba(40,46,38,.13);
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Montserrat', Arial, sans-serif;
  --script:'Allura','Brush Script MT',cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;width:100%;height:auto}
a{color:inherit}
.skip-link{position:fixed;left:12px;top:-60px;z-index:9999;padding:10px 14px;background:#fff;color:#111;border-radius:4px}.skip-link:focus{top:12px}
.site-header{position:fixed;inset:0 0 auto 0;height:76px;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,70px);transition:.35s ease;color:#fff;border-bottom:1px solid rgba(255,255,255,.18)}
.site-header.scrolled{background:rgba(47,60,49,.96);box-shadow:0 8px 30px rgba(0,0,0,.12);backdrop-filter:blur(14px)}
.brand{text-decoration:none;font-family:var(--serif);font-size:29px;letter-spacing:.08em;font-weight:600}.brand span{color:var(--gold);font-family:var(--script);font-size:1.25em}
.site-nav{display:flex;align-items:center;gap:28px}.site-nav a{text-decoration:none;text-transform:uppercase;font-size:11px;letter-spacing:.16em;font-weight:600;position:relative;padding:8px 0}.site-nav a:not(.nav-rsvp)::after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:1px;background:var(--gold);transition:.25s}.site-nav a:hover::after{right:0}.nav-rsvp{border:1px solid rgba(255,255,255,.75);padding:9px 18px!important;border-radius:999px}.menu-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}.menu-toggle span{display:block;width:25px;height:1.5px;background:#fff;margin:6px 0;transition:.25s}
.hero{min-height:100svh;position:relative;display:grid;place-items:center;color:#fff;overflow:hidden}.hero-image{position:absolute;inset:0;background:url('images/engagement.webp') center 28%/cover no-repeat;transform:scale(1.01)}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,31,26,.23) 0%,rgba(24,30,25,.08) 38%,rgba(20,27,21,.58) 100%),linear-gradient(90deg,rgba(17,23,18,.24),transparent 45%,rgba(17,23,18,.08))}.hero-content{position:relative;z-index:2;text-align:center;padding:135px 20px 90px;text-shadow:0 2px 22px rgba(0,0,0,.28);max-width:1000px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.32em;font-size:12px;font-weight:600;margin:0 0 12px}.hero h1{font-family:var(--script);font-size:clamp(80px,11vw,150px);font-weight:400;line-height:.8;margin:8px 0 18px}.hero h1 span{color:var(--gold-soft);font-size:.78em}.gold-rule{display:flex;align-items:center;justify-content:center;gap:12px;margin:20px auto;max-width:270px}.gold-rule i{height:1px;flex:1;background:var(--gold-soft)}.gold-rule b{color:var(--gold-soft);font-size:15px}.hero-date{font-family:var(--serif);font-size:clamp(22px,3vw,32px);letter-spacing:.08em;margin:0}.hero-place{text-transform:uppercase;letter-spacing:.22em;font-size:11px;margin:8px 0 28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:999px;background:var(--forest);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:600;border:1px solid var(--forest);transition:.25s}.button:hover{background:transparent;color:var(--forest)}.button-light{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.85);backdrop-filter:blur(5px)}.button-light:hover{background:#fff;color:var(--forest)}.scroll-cue{position:absolute;z-index:2;bottom:26px;width:28px;height:48px;border:1px solid rgba(255,255,255,.65);border-radius:999px}.scroll-cue span{position:absolute;width:3px;height:7px;background:#fff;border-radius:3px;left:50%;top:10px;transform:translateX(-50%);animation:scrollDot 1.8s infinite}@keyframes scrollDot{0%{opacity:0;transform:translate(-50%,0)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,15px)}}
.section{padding:clamp(80px,9vw,140px) clamp(22px,6vw,90px)}.ivory{background:var(--ivory)}.narrow{max-width:920px;margin:auto;text-align:center}.section-kicker{color:var(--sage);margin-bottom:14px}.section-kicker.light{color:var(--gold-soft)}.intro blockquote{font-family:var(--serif);font-size:clamp(31px,4vw,50px);font-weight:400;line-height:1.28;margin:0;color:var(--forest)}.botanical-divider{color:var(--gold);font-size:31px;margin-top:28px}
.story-section{background:var(--paper);position:relative}.story-section::before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,var(--sage-soft),transparent 68%);left:-180px;top:30px;opacity:.55}.split-layout{max-width:1260px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(44px,7vw,100px);align-items:center}.story-copy h2,.section-heading h2,.engagement-copy h2,.details-card h2,.rsvp-card h2{font-family:var(--serif);font-size:clamp(44px,5.5vw,72px);line-height:.98;font-weight:500;color:var(--forest);margin:0 0 28px}.story-copy p,.engagement-copy p{font-family:var(--serif);font-size:21px;line-height:1.65;color:#4f574f}.story-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:280px 240px;gap:16px}.photo-card{margin:0;overflow:hidden;border-radius:2px;box-shadow:var(--shadow);background:#ddd}.photo-card img{height:100%;object-fit:cover}.photo-tall{grid-row:1/3}.photo-square img{object-position:center 35%}.photo-wide img{object-position:center 34%}
.quote-band{background:var(--terracotta);color:#fff;text-align:center;padding:72px 20px}.quote-band-inner{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:12px;font-family:var(--serif)}.quote-band-inner span{font-size:clamp(52px,8vw,98px);font-weight:500;line-height:.8}.quote-band-inner i{font-size:30px;color:var(--gold-soft)}.quote-band-inner p{flex-basis:100%;font-family:var(--sans);text-transform:uppercase;letter-spacing:.25em;font-size:10px;margin:24px 0 0}
.section-heading{text-align:center;max-width:800px;margin:0 auto clamp(46px,6vw,80px)}.wedding-grid{max-width:1220px;margin:auto;display:grid;grid-template-columns:1.2fr .8fr;background:var(--paper);box-shadow:var(--shadow);overflow:hidden}.venue-image-wrap{position:relative;min-height:580px}.venue-image-wrap img{width:100%;height:100%;object-fit:cover}.venue-caption{position:absolute;left:26px;bottom:24px;color:#fff;background:rgba(47,60,49,.84);padding:10px 15px;text-transform:uppercase;letter-spacing:.14em;font-size:9px}.wedding-details{padding:clamp(38px,5vw,72px);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.date-lockup span{display:block;text-transform:uppercase;letter-spacing:.26em;font-size:11px;color:var(--sage)}.date-lockup strong{display:block;font-family:var(--serif);font-size:clamp(44px,5vw,64px);line-height:1;color:var(--forest);font-weight:500}.date-lockup em{font-family:var(--serif);font-size:24px;color:var(--terracotta)}.detail-rule{width:74px;height:1px;background:var(--gold);margin:24px 0}.detail-label{text-transform:uppercase;letter-spacing:.22em;font-size:10px;font-weight:600;color:var(--sage);margin:0}.detail-big{font-family:var(--serif);font-size:40px;margin:1px 0 0;color:var(--forest)}.outdoor-note{font-family:var(--serif);font-style:italic;margin:0;color:var(--muted)}.wedding-details h3{font-family:var(--serif);font-size:28px;line-height:1.1;margin:4px 0 8px;color:var(--forest)}.wedding-details p{margin-top:4px}.wedding-details .button{margin-top:20px}
.forest{background:var(--forest-deep);color:#f7f4eb}.engagement-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,90px);align-items:center}.engagement-copy h2{color:#fff}.engagement-copy p{color:#e9e9df}.engagement-photo{margin:0;position:relative}.engagement-photo::before{content:"";position:absolute;inset:-18px 18px 18px -18px;border:1px solid rgba(195,160,90,.65);z-index:0}.engagement-photo img{position:relative;z-index:1;aspect-ratio:4/5;object-fit:cover;object-position:center 35%;box-shadow:0 25px 80px rgba(0,0,0,.25)}
.schedule{background:var(--paper)}.timeline{max-width:980px;margin:auto;position:relative}.timeline::before{content:"";position:absolute;left:190px;top:16px;bottom:16px;width:1px;background:linear-gradient(var(--gold),var(--sage),var(--gold))}.timeline-item{display:grid;grid-template-columns:160px 1fr;gap:60px;padding:30px 0;position:relative}.timeline-item::before{content:"";position:absolute;left:184px;top:48px;width:13px;height:13px;background:var(--paper);border:2px solid var(--gold);border-radius:50%;z-index:2}.timeline-item time{text-align:right;font-family:var(--serif);font-size:27px;color:var(--terracotta);padding-top:5px}.timeline-item div{padding-left:0}.timeline-item span{font-size:9px;letter-spacing:.22em;color:var(--sage);font-weight:600}.timeline-item h3{font-family:var(--serif);font-size:35px;color:var(--forest);font-weight:500;margin:0;line-height:1}.timeline-item p{margin:8px 0 0;color:var(--muted)}
.sage{background:var(--sage-soft)}.details-inner{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 130px 1fr;gap:40px;align-items:center}.details-card{text-align:center}.details-card h2{font-size:46px;margin-bottom:14px}.details-card p{font-family:var(--serif);font-size:20px}.details-ornament{width:120px;height:120px;border:1px solid rgba(67,86,70,.34);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--forest);font-family:var(--serif);font-size:21px}.details-ornament b{font-family:var(--script);font-size:36px;color:var(--gold);font-weight:400}
.gallery-grid{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:210px;gap:13px}.gallery-grid figure{margin:0;overflow:hidden;background:#ddd}.gallery-grid img{height:100%;object-fit:cover;transition:transform .6s ease}.gallery-grid figure:hover img{transform:scale(1.025)}.g1{grid-column:1/6;grid-row:1/3}.g2{grid-column:6/10;grid-row:1/2}.g3{grid-column:10/13;grid-row:1/3}.g4{grid-column:6/10;grid-row:2/4}.g5{grid-column:1/6;grid-row:3/4}.g6{grid-column:10/13;grid-row:3/4}.g1 img{object-position:center 35%}.g2 img{object-position:center 48%}.g4 img{object-position:center 30%}
.rsvp{min-height:760px;position:relative;display:grid;place-items:center;color:#fff;padding:90px 22px}.rsvp-bg{position:absolute;inset:0;background:linear-gradient(rgba(37,49,39,.52),rgba(28,38,30,.76)),url('images/sunrise.webp') center 50%/cover no-repeat}.rsvp-card{position:relative;z-index:1;width:min(710px,94vw);text-align:center;padding:clamp(42px,6vw,76px);background:rgba(47,60,49,.88);border:1px solid rgba(221,201,149,.6);box-shadow:0 30px 90px rgba(0,0,0,.28);backdrop-filter:blur(6px)}.rsvp-card::before,.rsvp-card::after{content:"";position:absolute;width:32px;height:32px;border-color:var(--gold-soft);border-style:solid}.rsvp-card::before{left:15px;top:15px;border-width:1px 0 0 1px}.rsvp-card::after{right:15px;bottom:15px;border-width:0 1px 1px 0}.rsvp-card h2{color:#fff;font-size:clamp(46px,6vw,72px)}.rsvp-date{text-transform:uppercase;letter-spacing:.2em;font-size:11px}.rsvp-phone{display:block;font-family:var(--serif);font-size:clamp(40px,6vw,62px);text-decoration:none;color:var(--gold-soft);line-height:1;margin:18px 0 28px}.rsvp-card small{display:block;margin-top:16px;opacity:.72;font-size:11px}
footer{background:#253128;color:#fff;text-align:center;padding:55px 20px}.footer-mark{font-family:var(--script);font-size:48px;color:#fff}.footer-mark span{color:var(--gold)}footer p{text-transform:uppercase;letter-spacing:.18em;font-size:9px;opacity:.75}footer a{display:inline-block;margin-top:10px;color:var(--gold-soft);text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:9px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media (max-width:900px){
  .site-header{height:68px;padding:0 18px}.menu-toggle{display:block;z-index:3}.site-nav{position:fixed;inset:0 0 auto auto;width:min(84vw,360px);height:100dvh;background:rgba(47,60,49,.985);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:70px 42px;gap:18px;transform:translateX(100%);transition:.3s ease;box-shadow:-30px 0 70px rgba(0,0,0,.2)}.site-nav.open{transform:none}.site-nav a{font-family:var(--serif);font-size:25px;text-transform:none;letter-spacing:.02em;font-weight:500}.nav-rsvp{margin-top:8px;font-family:var(--sans)!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.16em!important}.menu-toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .hero{min-height:100svh}.hero-image{background-position:center 26%}.hero-content{padding-top:115px}.hero h1{font-size:clamp(77px,22vw,112px)}.hero-date{font-size:23px}.hero-place{font-size:9px}
  .split-layout,.wedding-grid,.engagement-grid{grid-template-columns:1fr}.story-copy{max-width:680px}.story-collage{order:-1;grid-template-rows:240px 190px}.wedding-grid{max-width:720px}.venue-image-wrap{min-height:360px}.wedding-details{padding:46px 25px 54px}.engagement-photo{order:-1}.engagement-photo img{aspect-ratio:4/4.8}.details-inner{grid-template-columns:1fr}.details-ornament{margin:auto}.timeline{max-width:640px}.timeline::before{left:24px}.timeline-item{grid-template-columns:1fr;gap:6px;padding:24px 0 24px 58px}.timeline-item::before{left:18px;top:39px}.timeline-item time{text-align:left;font-size:22px}.gallery-grid{grid-auto-rows:190px}.g1{grid-column:1/8}.g2{grid-column:8/13}.g3{grid-column:8/13;grid-row:2/3}.g4{grid-column:1/7;grid-row:3/5}.g5{grid-column:7/13;grid-row:3/4}.g6{grid-column:7/13;grid-row:4/5}.rsvp{min-height:680px}
}
@media (max-width:560px){
  html{scroll-padding-top:66px}.section{padding:78px 18px}.hero-image{background-position:center 26%}.hero-shade{background:linear-gradient(180deg,rgba(20,25,21,.2) 0%,rgba(22,28,23,.08) 32%,rgba(21,28,22,.68) 100%)}.hero-content{align-self:end;padding:0 18px 112px}.eyebrow{font-size:9px;letter-spacing:.34em}.hero h1{font-size:78px}.hero-date{font-size:21px}.button{min-height:46px}.intro blockquote{font-size:34px}.story-copy h2,.section-heading h2,.engagement-copy h2,.details-card h2,.rsvp-card h2{font-size:45px}.story-copy p,.engagement-copy p{font-size:19px}.story-collage{grid-template-columns:1fr 1fr;grid-template-rows:210px 160px;gap:8px}.photo-tall{grid-row:1/3}.quote-band{padding:56px 18px}.quote-band-inner span{font-size:62px}.wedding-grid{box-shadow:0 18px 50px rgba(40,46,38,.1)}.venue-image-wrap{min-height:280px}.venue-caption{left:14px;bottom:14px}.date-lockup strong{font-size:48px}.engagement-photo::before{inset:-10px 10px 10px -10px}.timeline-item h3{font-size:31px}.details-card h2{font-size:40px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:210px;gap:7px}.gallery-grid figure{grid-column:auto!important;grid-row:auto!important}.gallery-grid .g1,.gallery-grid .g4{grid-row:span 2!important}.gallery-grid .g1 img,.gallery-grid .g4 img{height:100%;object-fit:cover}.rsvp{min-height:660px;padding:70px 14px}.rsvp-card{padding:44px 20px}.rsvp-phone{font-size:40px}.footer-mark{font-size:43px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll-cue span{animation:none}.gallery-grid img{transition:none}}
