
:root{--cream:#f7f1e8;--paper:#fffdf8;--ink:#203c2e;--text:#5e5a52;--gold:#b9975b;--line:#e2d5c0;--soft:#ede3d4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--cream);color:var(--text);font-size:18px;line-height:1.6}h1,h2,h3{font-family:Georgia,serif;color:var(--ink);font-weight:700;line-height:1.05}a{color:inherit}.container{max-width:1180px;margin:0 auto;padding:0 24px}.nav{position:sticky;top:0;z-index:20;display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding:14px;background:rgba(247,241,232,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);font-size:12px;text-transform:uppercase;letter-spacing:.15em}.nav a{text-decoration:none}.hero{min-height:100svh;background-size:cover;background-position:center;display:grid;place-items:center;text-align:center;color:white;padding:60px 24px}.hero h1{font-size:clamp(60px,12vw,150px);color:white;margin:0;text-shadow:0 4px 26px rgba(0,0,0,.35)}.hero .date{margin-top:20px;font-weight:900;letter-spacing:.22em;text-transform:uppercase}.hero p{font-family:Georgia,serif;font-size:clamp(24px,4vw,42px);margin:14px 0 0;color:white}.section{padding:90px 0}.section-title{text-align:center;font-size:clamp(40px,6vw,76px);margin:0 0 20px}.intro{max-width:780px;margin:0 auto 34px;text-align:center}.story-card{max-width:900px;margin:0 auto;background:var(--paper);border:1px solid var(--line);padding:clamp(28px,5vw,64px);box-shadow:0 18px 50px rgba(50,35,20,.07)}.story-card p{margin:0 0 18px}.quote{font-family:Georgia,serif;color:var(--gold);font-size:24px}.countdown-wrap{text-align:center;background:var(--ink);color:white;padding:74px 20px}.countdown-wrap h2{color:white;margin:0 0 18px;font-size:clamp(34px,6vw,72px);letter-spacing:.08em}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:780px;margin:28px auto}.timebox{border:1px solid rgba(255,255,255,.25);padding:20px 10px}.timebox strong{display:block;font-size:clamp(34px,7vw,64px);line-height:1}.timebox span{text-transform:uppercase;letter-spacing:.16em;font-size:11px}.buttons{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-block;background:var(--gold);color:white;text-decoration:none;border:0;padding:15px 22px;text-transform:uppercase;letter-spacing:.14em;font-weight:900;font-size:13px;cursor:pointer}.btn.secondary{background:transparent;border:1px solid var(--gold);color:var(--gold)}.slideshow-section{background:var(--paper);padding:90px 0}.slideshow{max-width:1000px;margin:0 auto;background:#111;border:1px solid var(--line);position:relative;overflow:hidden}.photo-stage{height:min(72vh,760px);min-height:420px;display:flex;align-items:center;justify-content:center;background:#111;overflow:hidden}.slide-image{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;opacity:0;transition:opacity .35s ease}.slide-image.loaded{opacity:1}.slide-meta{display:flex;justify-content:space-between;gap:18px;color:white;background:rgba(0,0,0,.72);padding:12px 18px;font-size:14px}.arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.75);font-size:32px;cursor:pointer}.prev{left:16px}.next{right:16px}.thumbs{max-width:1000px;margin:18px auto 0;display:flex;gap:8px;overflow:auto;padding-bottom:6px}.thumb{border:2px solid transparent;background:none;padding:0;cursor:pointer;flex:0 0 72px;height:54px;opacity:.65}.thumb.active{border-color:var(--gold);opacity:1}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:var(--paper);border:1px solid var(--line);padding:34px;min-height:220px}.card h3{font-size:34px;margin:0 0 16px}.schedule{max-width:720px;margin:0 auto}.schedule-row{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:18px 0}.schedule-row strong{color:var(--ink)}.rsvp{background:var(--paper);border-top:1px solid var(--line)}form{max-width:760px;margin:0 auto;display:grid;gap:14px}input,select,textarea{width:100%;padding:15px;border:1px solid var(--line);background:white;font:inherit;color:var(--text)}.notice{background:var(--cream);border:1px solid var(--line);padding:16px;text-align:center}.submit{background:var(--ink);color:white;border:0;padding:17px 20px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;cursor:pointer}.footer{text-align:center;padding:60px 20px;color:var(--ink);font-family:Georgia,serif;font-size:28px}@media(max-width:780px){body{font-size:16px}.nav{gap:12px;font-size:10px}.cards{grid-template-columns:1fr}.countdown{grid-template-columns:repeat(2,1fr)}.photo-stage{height:62vh;min-height:320px}.arrow{width:42px;height:42px}.card{min-height:0}.schedule-row{display:block}.hero h1{font-size:58px}}

.email-reminder{display:none;margin-top:8px;background:var(--cream);border:1px solid var(--line);padding:14px;text-align:center;color:var(--ink)}
.email-reminder.show{display:block}
@media(max-width:780px){
  .container{padding:0 18px}
  .nav{gap:18px;font-size:10px;letter-spacing:.12em;padding:12px 8px;overflow-x:auto;justify-content:flex-start;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .nav a{white-space:nowrap;flex:0 0 auto}
  .section{padding:54px 0}
  .slideshow-section{padding:54px 0}
  .section-title{margin-bottom:18px}
  .card{padding:26px 24px}
  .card h3{font-size:36px}
  .card .btn,.btn{width:100%;text-align:center}
  .buttons .btn{width:auto}
  .photo-stage{height:58vh;min-height:300px}
  .slide-image{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
}



/* Final polish: keep hero copy off faces and remove photo captions */
.hero{display:flex;align-items:center;justify-content:flex-start;text-align:left;padding:80px 8vw;background-position:center center;}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,30,24,.58) 0%,rgba(20,30,24,.28) 42%,rgba(20,30,24,.18) 100%);pointer-events:none;}
.hero{position:relative;}
.hero>div{position:relative;z-index:1;max-width:520px;}
.hero h1{font-size:clamp(54px,8vw,118px);}
.slide-caption{display:none;}
.slide-meta{justify-content:flex-end;}
@media(max-width:780px){
  .hero{align-items:flex-start;justify-content:flex-start;text-align:left;padding:92px 24px 40px;background-position:64% center;}
  .hero>div{max-width:320px;}
  .hero h1{font-size:52px;}
  .hero .date{font-size:11px;letter-spacing:.16em;}
  .hero p{font-size:26px;}
}
