:root{
  --paper:#fbf7f2;
  --paper2:#fbf7f2;
  --ink:#4a241d;
  --muted:#75524b;
  --line:#d8b9ab;
  --soft:#efe3dc;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper2);
  color:var(--ink);
  font-family:'Cormorant Garamond',serif;
  letter-spacing:.11em;
}
.page{max-width:980px;margin:auto;padding:34px 18px 80px}
.invite-card{
  max-width:760px;
  margin:0 auto;
  text-align:center;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding:8px 0 42px;
}
.monogram{
  width:min(72vw,420px);
  height:auto;
  display:block;
  margin:0 auto 28px;
  background:transparent;
}
.invite-card h1{
  font-family:'GFS Didot','Cormorant Garamond',serif;
  font-size:clamp(48px,8vw,82px);
  font-weight:400;
  line-height:1;
  letter-spacing:.18em;
  margin:0 0 28px;
  text-transform:uppercase;
}
.invite-card h1 span{
  font-family:'Cormorant Garamond',serif;
  font-weight:300;
  font-size:.78em;
  letter-spacing:.02em;
  margin:0 .1em;
}
.intro{font-size:clamp(23px,3vw,32px);line-height:1.28;margin:0 0 28px;color:var(--muted);font-weight:400}
.date{font-size:clamp(27px,4vw,39px);line-height:1.55;margin:0 0 28px;font-weight:400;letter-spacing:.19em}
.date span{font-size:.92em}.location{font-size:clamp(22px,3vw,31px);line-height:1.55;margin:0 0 32px;font-weight:400}
.families{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;gap:18px;width:100%;max-width:650px;margin:0 auto 26px}
.families p{margin:0;font-size:clamp(21px,2.8vw,29px);line-height:1.55}.section-title{font-size:clamp(18px,2.2vw,23px)!important;margin-bottom:8px!important;color:var(--muted);letter-spacing:.16em}
.divider{width:1px;height:92px;background:linear-gradient(transparent,var(--line),transparent);justify-self:center;position:relative}.divider:before,.divider:after{content:"";position:absolute;left:50%;width:5px;height:5px;background:var(--line);transform:translateX(-50%) rotate(45deg)}.divider:before{top:24px}.divider:after{bottom:24px}
.reception{font-size:clamp(22px,3vw,31px);line-height:1.35;margin:0 0 32px}.reception strong{font-weight:400}
.deadline{font-size:clamp(17px,2.4vw,23px);line-height:1.65;color:var(--muted);margin:0 0 30px;max-width:620px}
.hero-actions,.footer-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center}.footer-actions{margin-top:8px}.cta{display:inline-block;border:1px solid rgba(74,36,29,.72);color:var(--ink);text-decoration:none;padding:12px 28px;font-size:18px;letter-spacing:.18em;transition:.25s;background:rgba(255,255,255,.26)}.cta:hover,button:hover{background:var(--ink);color:var(--paper)}.cta.secondary{opacity:.82;border-color:rgba(74,36,29,.38)}
.rsvp{max-width:680px;margin:20px auto 0;text-align:center;padding:54px 0 0;border-top:1px solid rgba(74,36,29,.13)}.eyebrow{text-transform:uppercase;font-size:14px;letter-spacing:.34em;margin:0;color:var(--muted)}.rsvp h2{font-size:clamp(40px,7vw,58px);font-weight:300;margin:8px 0 8px;letter-spacing:.06em}.note{font-size:22px;color:var(--muted);margin:0 0 32px;line-height:1.4}form{display:grid;gap:18px;text-align:left}label{font-size:21px;letter-spacing:.06em}input,select,textarea{width:100%;margin-top:8px;border:1px solid rgba(74,36,29,.22);background:rgba(255,255,255,.5);padding:14px 16px;font:21px 'Cormorant Garamond',serif;color:var(--ink);border-radius:0;letter-spacing:.04em}textarea{resize:vertical}button{border:1px solid rgba(74,36,29,.72);background:transparent;color:var(--ink);padding:15px 20px;font:21px 'Cormorant Garamond',serif;letter-spacing:.16em;cursor:pointer;transition:.25s}.small{text-align:center;color:var(--muted);font-size:15px;letter-spacing:.04em;margin:0}.thanks{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px}.thanks h1{font-family:'GFS Didot','Cormorant Garamond',serif;font-size:clamp(42px,7vw,66px);font-weight:400;letter-spacing:.12em;margin:0 0 20px}.thanks p{font-size:24px;line-height:1.45;color:var(--muted)}.thanks .cta{margin-top:18px}.thanks .cta.secondary{margin-top:10px}
@media(max-width:650px){.page{padding:16px 16px 58px}.invite-card{padding-top:0}.monogram{width:min(88vw,370px);margin-bottom:24px}.invite-card h1{font-size:clamp(42px,13vw,56px);letter-spacing:.13em}.families{grid-template-columns:1fr;gap:18px}.divider{width:80px;height:1px}.divider:before,.divider:after{display:none}.date{letter-spacing:.13em}.hero-actions,.footer-actions{flex-direction:column}.cta{width:100%;max-width:330px;text-align:center}.rsvp{margin-top:20px}.intro,.location,.reception{letter-spacing:.08em}}
