:root{color-scheme:light;--paper:#fff9ef;--ink:#42382f;--terracotta:#984568;--olive:#5b7049;--line:#d7c6ad}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,"Times New Roman",serif;-webkit-font-smoothing:antialiased}
.hero{min-height:760px;min-height:100svh;display:grid;grid-template-columns:minmax(0,46%) minmax(0,54%);background:var(--paper)}
.hero__paper{position:relative;min-height:inherit;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;padding:clamp(29px,4vw,58px) 28px 38px;background:var(--paper)}
.hero__paper:before{content:"";position:absolute;inset:20px;border:1px solid rgba(151,125,91,.24);pointer-events:none}
.masthead,.eyebrow,.hero__announcement,.date-label,.place,.hero__footnote,.photo-caption,.note__eyebrow{font-family:Arial,Helvetica,sans-serif;text-transform:uppercase;letter-spacing:.20em}
.masthead{display:flex;align-items:center;gap:17px;color:var(--terracotta);font-size:12px;font-weight:700;white-space:nowrap}
.masthead__line{width:27px;height:1px;background:var(--terracotta);opacity:.65}
.hero__invitation{padding:65px 0 50px;max-width:100%;width:100%}
.eyebrow{color:var(--olive);font-size:12px;font-weight:700;margin:0 0 27px}
h1{display:flex;flex-direction:column;align-items:center;font-size:clamp(57px,6vw,106px);font-weight:400;line-height:.96;letter-spacing:-.06em;margin:0}
h1 span[data-field]{max-width:100%;overflow-wrap:anywhere}
.ampersand{font-size:.55em;font-style:italic;line-height:1.1;color:var(--terracotta);font-weight:400;margin:0 0 -.02em;letter-spacing:0}
.hero__announcement{font-size:12px;line-height:1.7;margin:30px 0 0;color:#756d5e}
.ornament{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--terracotta);margin:31px auto 30px;font-size:18px}
.ornament span{width:54px;height:1px;background:var(--line)}
.date-label{color:var(--olive);font-size:12px;font-weight:700;margin:0 0 13px}
.date{font-size:clamp(27px,3.1vw,45px);letter-spacing:.05em;line-height:1.2;margin:0;white-space:nowrap;color:var(--terracotta)}
.place{font-size:12px;margin:20px 0 0;color:#726955}
.venue-address{display:flex;flex-direction:column;gap:4px;margin:20px auto 0;font:15px/1.4 Arial,Helvetica,sans-serif;color:var(--ink);font-style:normal}
.venue-address strong{font-family:Georgia,"Times New Roman",serif;font-size:20px;font-weight:400;color:var(--terracotta);margin-bottom:3px}
.mini-map{width:min(100%,350px);height:215px;margin:20px auto 0;border:1px solid var(--line);background:#f1e9dc;display:grid;place-items:center}
.mini-map__placeholder{max-width:250px;padding:15px;font:14px/1.5 Arial,Helvetica,sans-serif;color:#6b6457;margin:0}
.mini-map__iframe{width:100%;height:100%;border:0;display:block}
.mini-map__iframe[hidden],.map-link[hidden]{display:none}
.map-link{display:inline-block;margin-top:12px;color:var(--terracotta);font:700 12px/1.5 Arial,Helvetica,sans-serif;text-decoration:underline;text-underline-offset:3px}
.hero__footnote{font-size:11px;color:#918471;margin:0;line-height:1.6}
.hero__image{position:relative;background:url("assets/bocaux-fleurs.webp") 63% center/cover no-repeat;min-height:760px;min-height:100svh}
.photo-caption{position:absolute;right:35px;bottom:33px;color:#fff9ed;text-shadow:0 1px 12px rgba(43,28,14,.65);font-size:10px;font-weight:700}
.note{background:#f1e9dc;padding:104px 24px 110px;text-align:center}
.note__inner{max-width:750px;margin:auto}
.note__eyebrow{font-size:11px;color:var(--olive);font-weight:700;margin:0 0 27px}
.note h2{font-weight:400;letter-spacing:-.045em;line-height:1.12;font-size:clamp(34px,4.2vw,61px);margin:0 0 23px}
.note p:not(.note__eyebrow){font-size:18px;line-height:1.6;color:#685e51;max-width:480px;margin:0 auto}
.note__signoff{font-size:27px;font-style:italic;color:var(--terracotta);margin-top:48px}
.rsvp-link,.submit-button{display:inline-flex;align-items:center;justify-content:center;gap:27px;background:var(--terracotta);color:#fffaf2;border:1px solid var(--terracotta);padding:16px 24px;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font:700 12px Arial,Helvetica,sans-serif;min-height:52px;cursor:pointer;transition:background .2s ease,transform .2s ease}
.rsvp-link:hover,.submit-button:hover{background:#762f4c;transform:translateY(-2px)}
.rsvp-link:focus-visible,.submit-button:focus-visible,.back-link:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--olive);outline-offset:3px}
.hero .rsvp-link{margin-top:28px}
.rsvp-page{display:grid;grid-template-columns:minmax(270px,36%) minmax(0,64%);min-height:100svh}
.rsvp-page__photo{background:url("assets/bocaux-fleurs.webp") 73% center/cover no-repeat}
.rsvp-page__content{padding:45px clamp(28px,7vw,100px) 80px;max-width:920px;width:100%;margin:auto}
.back-link{font:700 12px Arial,Helvetica,sans-serif;color:var(--terracotta);text-decoration:none;letter-spacing:.08em}
.back-link:hover{text-decoration:underline}
.rsvp-heading{margin:78px 0 42px}
.rsvp-heading .eyebrow{margin-bottom:18px}
.rsvp-heading h1,.result-card h1{display:block;font-size:clamp(42px,5vw,75px);line-height:1.04;letter-spacing:-.05em}
.rsvp-heading>p:last-child,.result-card>p:not(.eyebrow){font-size:18px;line-height:1.55;color:#685e51;max-width:550px}
.rsvp-form{max-width:580px}
.form-row{margin-bottom:23px}
.form-row label,.choice-group legend{display:block;font:700 13px/1.45 Arial,Helvetica,sans-serif;letter-spacing:.03em;margin-bottom:9px}
.form-row label span,.choice-group legend span{color:var(--terracotta)}
.form-row input,.form-row textarea{display:block;width:100%;border:1px solid #c9baa5;border-radius:0;background:#fffcf6;color:var(--ink);font:17px/1.4 Georgia,"Times New Roman",serif;padding:13px 15px;min-height:50px}
.form-row textarea{resize:vertical}
.choice-group{border:0;padding:0;margin:5px 0 26px}
.choice-options{display:flex;flex-wrap:wrap;gap:12px}
.choice-options label{display:flex;align-items:center;gap:10px;background:#fffcf6;border:1px solid #c9baa5;padding:14px 17px;font:15px/1.4 Arial,Helvetica,sans-serif;cursor:pointer}
.choice-options label:has(input:checked){border-color:var(--terracotta);background:#f7e7ee}
.choice-options input{width:18px;height:18px;accent-color:var(--terracotta);margin:0}
.attendance-details[hidden]{display:none}
.trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.privacy-note{color:#71695d;font:13px/1.5 Arial,Helvetica,sans-serif;margin:5px 0 25px}
.result-page{min-height:100svh;display:grid;place-items:center;padding:30px;background:linear-gradient(90deg,rgba(255,249,239,.93),rgba(255,249,239,.92)),url("assets/bocaux-fleurs.webp") center/cover}
.result-card{background:var(--paper);border:1px solid var(--line);max-width:580px;padding:clamp(35px,6vw,74px);text-align:center}
.result-card h1{margin-bottom:20px}
.result-card .rsvp-link{margin-top:22px}
@media(max-width:800px){
 .hero{display:flex;flex-direction:column;min-height:0;background:#e4d7c4}
 .hero__image{order:0;min-height:280px;height:35svh;background-position:70% 56%}
 .hero__paper{order:1;z-index:1;min-height:0;margin:-75px 17px 20px;padding:30px 22px 28px;box-shadow:0 12px 34px rgba(63,46,30,.12)}
 .hero__paper:before{inset:11px}
 .hero__invitation{padding:47px 0 37px}
 h1{font-size:clamp(58px,12vw,91px)}
 .date{font-size:clamp(27px,7vw,39px)}
 .note{padding:82px 27px 89px}
 .note p:not(.note__eyebrow){font-size:17px}
 .rsvp-page{display:flex;flex-direction:column}
 .rsvp-page__photo{height:190px;background-position:center 36%}
 .rsvp-page__content{padding:28px 25px 75px}
 .rsvp-heading{margin:48px 0 37px}
 .rsvp-heading h1{font-size:clamp(43px,10vw,66px)}
}
@media(max-width:360px){.hero__paper{padding-left:18px;padding-right:18px;margin-left:12px;margin-right:12px}h1{font-size:55px}.date{font-size:25px}.masthead{font-size:10px}.hero__announcement{font-size:11px}}
@media(prefers-reduced-motion:reduce){.rsvp-link,.submit-button{transition:none}}
