.rsvp-page .page-bar{width:min(800px,calc(100% - 80px))}
.rsvp-details-link{font-size:15px;text-decoration:none;min-height:44px;display:flex;align-items:center}
.reply-paper{max-width:800px;padding:48px 62px 34px}
.reply-intro{text-align:center}
.reply-intro h1{width:min(560px,94%);margin:26px auto 22px;padding:0;line-height:0}
/* Level the lettering's photographed baseline while preserving its script. */
.reply-intro h1 img{display:block;width:100%;height:auto;transform:rotate(-4deg);transform-origin:center;color:var(--wine);font:400 40px/1.4 'EB Garamond',Georgia,serif}
/* Reuse the original calligraphy alpha as a mask in the Olive ink colour. */
@supports (mask-image:url("")) or (-webkit-mask-image:url("")){
 .reply-intro h1{position:relative}
 .reply-intro h1::before{content:"";position:absolute;inset:0;background:var(--wine);-webkit-mask:url('assets/rsvp-lettering-v1.png') center/contain no-repeat;mask:url('assets/rsvp-lettering-v1.png') center/contain no-repeat;mask-mode:alpha;transform:rotate(-4deg);transform-origin:center;pointer-events:none}
 .reply-intro h1 img{opacity:0}
}

.reply-confirmation h2{font:400 min(98px,18cqw)/1.7 'Ballet',cursive;font-optical-sizing:none;font-variation-settings:'opsz' 48;font-synthesis:none;color:var(--wine);margin:8px 0 1px;padding:0 .12em}
.reply-couple{font-size:23px;margin:0 0 4px;color:var(--wine)}
.reply-date{font-size:16px;margin:0;color:var(--muted)}
.reply-intro .intro-ornament{margin:20px auto 18px}
.reply-welcome{font-size:22px;line-height:1.4;font-style:italic;margin:0;color:var(--muted)}
.reply-deadline{font-size:15px;margin:17px 0 0;line-height:1.4;color:var(--wine)}
.reply-deadline time{border-bottom:1px solid #a6816945;padding-bottom:2px}
.reply-preview{width:fit-content;max-width:100%;text-align:center;margin:19px auto 28px;padding:6px 13px;border:1px solid var(--line);font-size:12px;line-height:1.4;color:var(--muted)}
.reply-form{padding-top:25px;border-top:1px solid var(--line)}
.reply-chapter{display:flex;align-items:center;gap:14px;margin:0 0 22px}
.reply-chapter>span{font-size:10px;letter-spacing:.1em;color:#9b7c55}
.reply-chapter h2{font-size:24px;line-height:1.3;font-weight:400;color:var(--wine);margin:0}
.identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form-field{min-width:0}
.form-field label,.attendance-fieldset>legend{display:block;font-size:17px;line-height:1.4;color:var(--ink);margin-bottom:8px}
.optional{font-size:12px;color:#877768;font-style:italic;white-space:nowrap;margin-left:5px}
.required-mark{font-size:12px;color:var(--wine);margin-left:2px}
.reply-form input:not([type=radio]),.reply-form select,.reply-form textarea{display:block;min-width:0;width:100%;min-height:46px;border:1px solid #9c816d65;background:#fffaf380;border-radius:2px;padding:11px 12px;font:400 17px/1.3 'EB Garamond',Georgia,serif;color:var(--ink);box-shadow:inset 0 1px 2px #694b3710;transition:border-color .18s,background .18s;}
.reply-form input::placeholder,.reply-form textarea::placeholder{color:#968675;font-size:16px;opacity:1}
.reply-form input:focus-visible,.reply-form select:focus-visible,.reply-form textarea:focus-visible{outline:2px solid #4b513455;outline-offset:2px;border-color:var(--wine);background:#fffcf6}
.reply-form textarea{resize:vertical;min-height:100px}
.reply-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%234b5134' stroke-width='1'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;background-size:11px;padding-right:34px}
.field-note{margin:7px 0 0;font-size:13px;line-height:1.4;color:var(--muted);font-style:italic}
.attendance-fieldset{margin:28px 0 0;padding:0;border:0;min-width:0}
.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:4px}
.attendance-option{position:relative;display:flex;align-items:center;gap:12px;min-height:102px;padding:18px 14px;border:1px solid #9c816d65;border-radius:2px;background:#fffaf34d;cursor:pointer;transition:border-color .2s,background .2s;}
.attendance-option>input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.choice-dot{display:block;flex:0 0 16px;width:16px;height:16px;border:1px solid #9c816d99;border-radius:50%;background:#fffbf1;box-shadow:inset 0 0 0 4px #fffbf1;transition:background .2s,border-color .2s}
.attendance-option strong{display:block;font-weight:400;color:var(--wine);font-size:20px;line-height:1.25}
.attendance-option small{display:block;font-size:13px;line-height:1.4;margin-top:4px;color:var(--muted);font-style:italic}
.attendance-option:has(input:checked){border-color:var(--wine);background:#4b513407}
.attendance-option input:checked~.choice-dot{background:var(--wine);border-color:var(--wine)}
.attendance-option:has(input:focus-visible){outline:2px solid #4b513455;outline-offset:3px}
.choice-heart{position:absolute;right:10px;top:9px;width:14px;height:14px;fill:none;stroke:#a38164;stroke-width:.9;pointer-events:none}
.attending-section{margin-top:30px;padding-top:28px;border-top:1px solid var(--line)}
.party-field{max-width:340px;margin-bottom:23px}
.party-field select{max-width:230px}
.guest-rows{display:grid;gap:20px}
.guest-card{min-width:0;margin:0;padding:17px 19px 19px;border:1px solid #ad92704f;background:#fffaf329}
.guest-card>legend{font-size:16px;padding:0 9px;color:var(--wine)}
.guest-number{font-size:10px;margin-right:9px;color:#9b7c55}
.guest-fields{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:17px}
.guest-fields label{font-size:15px}
.guest-name-field{grid-column:1/-1}
.guest-fields .optional{display:block;margin-left:0}
.guest-fields input,.guest-fields select{font-size:16px!important}
.guest-fields input::placeholder{font-size:14px!important}
.song-field{margin-top:25px}
.note-field{margin-top:28px}
.reply-error{padding:12px 15px;border:1px solid #a34c5b66;background:#a34c5b0a;font-size:16px;line-height:1.4;color:#81293c}
.reply-actions{margin-top:28px;text-align:center}
.send-reply{font-family:'EB Garamond',Georgia,serif;font-size:19px;min-height:50px;min-width:230px;cursor:pointer;box-shadow:0 3px 7px #4b172620}
.send-reply .icon{width:14px;height:14px;flex-basis:14px;margin-left:8px}
.reply-actions>p{font-style:italic;font-size:14px;color:var(--muted);margin:12px 0 0}
.reply-signoff{text-align:center;padding-top:6px}
.reply-signoff .signoff-ornament{margin-top:27px;margin-bottom:22px}
.reply-signoff .eyebrow{font-size:9px;color:var(--muted)}
.reply-signoff .details-signature{font-size:min(56px,12cqw);margin:8px auto 0}
.reply-signoff .signoff-return{margin-top:8px}
.reply-confirmation{text-align:center;padding:25px 0 8px;border-top:1px solid var(--line)}
.confirmation-heart{display:block;width:36px;height:36px;margin:7px auto 3px;fill:none;stroke:var(--wine);stroke-width:.85}
.reply-confirmation h2{font-size:min(78px,18cqw);margin:5px 0 2px}
.confirmation-greeting{font-size:23px;margin:0 0 9px;overflow-wrap:anywhere;color:var(--wine)}
.confirmation-copy{font-size:19px;line-height:1.45;margin:0 auto 22px;max-width:400px;font-style:italic;color:var(--muted)}
.reply-summary{padding:6px 20px;text-align:left;background:#fffbf580;border:1px solid var(--line);max-width:470px;margin:0 auto}
.reply-summary>dl{margin:0}
.summary-item{padding:12px 0;border-bottom:1px solid var(--line)}
.summary-item:last-child{border-bottom:0}
.summary-item>dt{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#9b7c55}
.summary-item>dd{margin:5px 0 0;font-size:18px;line-height:1.4;color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap}
.confirmation-preview{font-size:13px;line-height:1.5;color:var(--muted);margin:21px 0 7px;font-style:italic}
.edit-reply{font-family:inherit;cursor:pointer;margin-top:3px;font-size:16px}
.reply-noscript{text-align:center;font-size:16px;color:var(--wine)}
@media(max-width:760px){.rsvp-page .page-bar{width:calc(100% - 36px)}.reply-paper{padding:36px 38px 30px}.attendance-option{gap:9px;padding-inline:12px}.attendance-option strong{font-size:19px}.guest-fields{grid-template-columns:1fr}.guest-fields .optional{display:inline;margin-left:5px}}
@media(max-width:560px){.rsvp-page .page-bar{width:calc(100% - 24px)}.rsvp-details-link{font-size:13px}.reply-paper{padding:29px 24px 25px}.reply-intro h1{width:96%;margin:20px auto 18px}.reply-couple{font-size:21px}.reply-date{font-size:14px}.reply-welcome{font-size:19px}.reply-deadline{font-size:14px}.reply-intro .intro-ornament{margin:17px auto}.reply-preview{font-size:11px;margin-top:17px;margin-bottom:23px;padding-inline:10px}.reply-form{padding-top:23px}.reply-chapter{gap:11px;margin-bottom:19px}.reply-chapter h2{font-size:22px}.identity-grid{grid-template-columns:1fr;gap:20px}.form-field label,.attendance-fieldset>legend{font-size:16px}.attendance-options{grid-template-columns:1fr;gap:10px}.attendance-option{min-height:83px;padding:16px;gap:13px}.attendance-option strong{font-size:21px}.attendance-option small{font-size:14px}.choice-heart{width:17px;height:17px;top:13px;right:14px}.guest-card{padding:14px 14px 17px}.guest-fields{gap:15px}.guest-fields label{font-size:15px}.guest-fields .optional{display:block;margin:0}.reply-form input:not([type=radio]),.reply-form select,.reply-form textarea{font-size:17px}.attending-section{padding-top:25px}.send-reply{min-width:0;width:100%;font-size:19px}.reply-summary{padding-inline:15px}.reply-signoff .details-signature{font-size:12cqw}.confirmation-greeting{font-size:22px}.confirmation-copy{font-size:18px}.reply-confirmation h2{line-height:1.8}}
@media(prefers-reduced-motion:reduce){.attendance-option,.choice-dot{transition:none}}
