:root {
  --ink: #2f4037;
  --wine: #703d48;
  --cream: #f4f1e8;
  --paper: #fffdf9;
  --sage: #6f8c74;
  --coral: #c97d61;
  --line: #dfd6c9;
  --muted: #70666a;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: "DM Sans", Arial, sans-serif; }
.wrap { max-width: 1160px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }
.nav { height: 92px; display: flex; align-items: center; justify-content: space-between; }
.brand { color: var(--ink); font: 400 37px/.7 "Allura", "Brush Script MT", cursive; text-decoration: none; letter-spacing: .01em; }
.brand span { color: var(--wine); font-family: "Playfair Display", Georgia, serif; font-size: 20px; font-style: italic; padding: 0 2px; vertical-align: 1px; }
.nav-links { display: flex; gap: 27px; }
.nav-links a, .text-link { color: var(--ink); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.nav-links a:hover, .text-link:hover { color: var(--wine); }
.hero { min-height: 612px; display: grid; align-items: center; grid-template-columns: 1fr 1fr; gap: 64px; padding-top: 25px; padding-bottom: 70px; }
.eyebrow { color: var(--wine); margin: 0 0 17px; font-size: 11px; font-weight: 600; letter-spacing: .18em; }
h1, h2 { font-family: "Playfair Display", Georgia, serif; font-weight: 500; letter-spacing: -.035em; }
h1 { max-width: 610px; margin: 0; font-size: clamp(48px, 5.4vw, 76px); line-height: 1.06; }
h1 em, h2 em { color: var(--wine); font-weight: 500; }
.lead { max-width: 420px; margin: 26px 0 32px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 25px; }
.button { display: inline-block; border: 0; border-radius: 0; cursor: pointer; font: 600 12px/1 "DM Sans", Arial, sans-serif; letter-spacing: .1em; padding: 17px 22px; text-decoration: none; text-transform: uppercase; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--wine); color: #fff; }
.button-primary:hover { background: #55303e; }
.text-link span { font-size: 18px; vertical-align: -1px; padding-left: 3px; }
.art { position: relative; min-height: 465px; display: grid; place-items: center; }
.invite-card { position: relative; z-index: 2; width: min(335px, 75vw); height: 420px; padding: 68px 30px; overflow: hidden; text-align: center; background: var(--paper); border: 1px solid rgba(110,59,78,.12); box-shadow: 0 24px 45px rgba(78,48,47,.14); transform: rotate(4deg); }
.shadow-card { position: absolute; z-index: 1; width: 335px; height: 420px; background: #c7d0bf; transform: rotate(-5deg) translate(-7px, 7px); }
.card-kicker, .card-date, .card-place { position: relative; z-index: 1; margin: 0; font-size: 10px; font-weight: 600; letter-spacing: .19em; }
.initials { position: relative; z-index: 1; margin: 49px 0 23px; font: 500 47px/1 "Playfair Display", Georgia, serif; letter-spacing: -.03em; white-space: nowrap; }
.initials i { color: var(--wine); font-size: 31px; font-weight: 400; }
.rule { position: relative; z-index: 1; width: 44px; height: 1px; margin: 0 auto 23px; background: var(--wine); }
.card-place { margin-top: 10px; color: var(--muted); font-size: 9px; }
.tiny-leaf { position: absolute; color: var(--sage); font: 72px/1 Georgia, serif; opacity: .72; }
.leaf-one { top: -22px; right: -14px; transform: rotate(-22deg); }.leaf-two { bottom: -22px; left: -11px; transform: rotate(158deg); }
.star { position: absolute; color: var(--coral); font-size: 21px; }.star.one { top: 38px; left: 72px; }.star.two { right: 34px; bottom: 62px; font-size: 14px; }.star.three { bottom: 25px; left: 55px; font-size: 12px; }
.arch { position: absolute; right: 2px; bottom: -25px; width: 230px; height: 260px; border: 1px solid var(--sage); border-bottom: 0; border-radius: 230px 230px 0 0; opacity: .75; }
.water-story { padding-top: 76px; padding-bottom: 78px; text-align: center; background: var(--cream); }.water-story .eyebrow { margin-top: 22px; }.water-line { display: flex; justify-content: center; gap: 7px; height: 17px; overflow: hidden; }.water-line span { display: block; width: 112px; height: 22px; border-top: 2px solid var(--sage); border-radius: 50%; transform: translateY(5px); }.water-line span:nth-child(2) { border-color: var(--coral); transform: translateY(0) scaleX(.86); }.story-line { margin: 0; font: 500 clamp(28px, 3.5vw, 45px)/1.25 "Playfair Display", Georgia, serif; letter-spacing: -.02em; }.story-line em { color: var(--wine); font-weight: 500; }.story-note { max-width: 470px; margin: 18px auto 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.table-story { color: var(--ink); background: #e6ded0; }.table-story-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: center; min-height: 350px; }.table-copy .eyebrow { margin-bottom: 14px; }.table-copy h2 { margin: 0; font-size: clamp(34px, 4vw, 56px); line-height: 1.13; }.table-note { position: relative; max-width: 370px; padding: 33px 0 29px 47px; border-left: 1px solid rgba(110,59,78,.35); }.table-note p { margin: 0 0 19px; font: 500 20px/1.5 "Playfair Display", Georgia, serif; }.wine-mark { position: absolute; top: 28px; left: -13px; display: grid; width: 25px; height: 25px; place-items: center; color: #fff; font-size: 11px; background: var(--wine); border-radius: 50%; }.small-caps { color: var(--wine); font-size: 10px; font-weight: 600; letter-spacing: .14em; line-height: 1.6; }
.intro-band { padding: 77px 25px; color: #fff; text-align: center; background: var(--wine); }.intro-band p { max-width: 700px; margin: 0 auto 12px; font: 500 clamp(24px, 3.2vw, 42px)/1.28 "Playfair Display", Georgia, serif; }.intro-band span { font-size: 11px; letter-spacing: .16em; opacity: .75; text-transform: uppercase; }
.details { padding-top: 125px; padding-bottom: 120px; }.section-heading h2 { margin: 0; font-size: clamp(38px, 4.5vw, 60px); line-height: 1.13; }.detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 67px; border-top: 1px solid var(--line); }.detail-grid article { min-height: 225px; padding: 25px 30px 0 0; border-right: 1px solid var(--line); }.detail-grid article+article { padding-left: 30px; }.detail-grid article:last-child { border-right: 0; }.detail-number { color: var(--wine); font-size: 11px; letter-spacing: .12em; }.detail-grid h3 { margin: 31px 0 12px; font: 500 25px "Playfair Display", Georgia, serif; }.detail-grid p { max-width: 268px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.rsvp-panel { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: center; margin-bottom: 95px; padding-top: 60px; padding-bottom: 60px; color: #fff; background: #314b3d; }.rsvp-panel .eyebrow { color: #d7d9cb; }.rsvp-panel h2 { margin: 0; font-size: clamp(33px, 4vw, 55px); line-height: 1.1; }.rsvp-card { margin-right: 40px; padding: 31px; color: var(--ink); background: var(--paper); }.rsvp-label { margin: 0 0 9px; color: var(--wine); font-size: 11px; font-weight: 600; letter-spacing: .16em; }.rsvp-card>p:nth-child(2) { margin: 0 0 25px; color: var(--muted); font-size: 14px; line-height: 1.55; }.rsvp-card .button { width: 100%; text-align: center; }
.footer { display: flex; justify-content: space-between; align-items: center; padding-top: 0; padding-bottom: 33px; }.footer span { font: 500 20px "Playfair Display", Georgia, serif; }.footer p { margin: 0; color: var(--muted); font-size: 11px; letter-spacing: .06em; }
@media (max-width: 760px) { .wrap { padding-left: 22px; padding-right: 22px; }.nav { height: 75px; }.nav-links { gap: 17px; }.nav-links a { font-size: 10px; }.hero { grid-template-columns: 1fr; gap: 17px; padding-top: 50px; padding-bottom: 55px; }.art { min-height: 405px; margin-top: 10px; }.invite-card, .shadow-card { width: 282px; height: 355px; }.invite-card { padding-top: 53px; }.initials { margin: 39px 0 18px; font-size: 38px; }.initials i { font-size: 27px; }.arch { right: 0; width: 195px; height: 215px; }.water-story { padding-top: 58px; padding-bottom: 60px; }.water-line span { width: 72px; }.table-story-inner { grid-template-columns: 1fr; gap: 22px; min-height: 0; padding-top: 63px; padding-bottom: 63px; }.table-note { padding-left: 32px; }.table-note p { font-size: 18px; }.intro-band { padding: 63px 20px; }.details { padding-top: 84px; padding-bottom: 80px; }.detail-grid { grid-template-columns: 1fr; margin-top: 45px; }.detail-grid article, .detail-grid article+article { min-height: auto; padding: 25px 0 28px; border-right: 0; border-bottom: 1px solid var(--line); }.detail-grid article:last-child { border-bottom: 0; }.rsvp-panel { grid-template-columns: 1fr; gap: 30px; margin: 0 22px 60px; padding: 42px 28px; }.rsvp-card { margin: 0; }.footer { align-items: flex-start; gap: 15px; flex-direction: column; }.footer p { line-height: 1.5; } }
