@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--cream:#fbf6ee;--pink:#f4d5d6;--rose:#a44558;--ink:#553b3c;--sage:#6d785e;--line:#e9dcd0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.7 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a,button,input,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--sage);outline-offset:4px}header{max-width:1320px;margin:auto;min-height:96px;display:flex;align-items:center;justify-content:space-between;padding:20px 5%;gap:20px}.brand{font:600 23px 'Cormorant Garamond',Georgia,serif;white-space:nowrap}.brand span{color:#c8838e;font-size:28px;vertical-align:middle;margin-right:7px}nav{display:flex;align-items:center;gap:30px;font-size:13px}.nav-cta{border:1px solid #cda9a8;border-radius:30px;padding:10px 20px}.wrap{width:min(1140px,90%);margin:auto}.hero{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center;padding:45px 0 85px}.eyebrow{font-size:11px;letter-spacing:2.5px;font-weight:700;color:var(--sage);margin:0 0 22px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}h1{font-size:clamp(68px,7.5vw,104px);letter-spacing:-4px;line-height:.95;margin:0 0 22px;color:var(--rose)}h1 em{display:block;font-weight:400}h2{font-size:clamp(38px,4.5vw,56px);line-height:1.08;margin-bottom:25px;letter-spacing:-1.3px}h2 em{color:var(--rose);font-weight:400}h3{font-size:29px;line-height:1.15;margin-bottom:10px}.surname{font-size:13px;letter-spacing:2px}.age{display:flex;align-items:center;gap:16px;font:italic 27px 'Cormorant Garamond',Georgia,serif;color:var(--rose);margin:23px 0}.age span{height:1px;background:#dababa;width:42px}.intro{font-size:16px;margin-bottom:28px;color:#796264}.button{display:inline-flex;justify-content:center;align-items:center;gap:22px;padding:15px 23px;border:1px solid var(--rose);border-radius:8px;background:var(--rose);color:white;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#87384a;transform:translateY(-2px)}.button:disabled{opacity:.65;cursor:wait;transform:none}.hero-date{font-size:12px;margin:20px 0 0;color:#796264}.hero-date span{padding:0 10px;color:#b97e87}.portrait{position:relative;padding-bottom:20px}.portrait img{display:block;width:100%;height:auto;border-radius:48% 48% 12px 12px;box-shadow:0 15px 40px #8c664715}.portrait-note{position:absolute;bottom:0;left:50%;transform:translateX(-50%) rotate(-3deg);white-space:nowrap;background:#f7e3dc;padding:10px 22px;font:italic 22px 'Cormorant Garamond',Georgia,serif;box-shadow:0 5px 15px #553b3c0d}.celebrate{background:#f2eee3;padding:70px 0;text-align:center;border-block:1px solid #eae4d9}.celebrate p:not(.eyebrow){color:#796264}.event-details{display:grid;grid-template-columns:1fr 1fr 1fr;max-width:900px;margin:38px auto 25px}.event-details div{padding:0 25px;border-right:1px solid #d9d4c7}.event-details div:last-child{border:0}.event-details span{display:block;letter-spacing:2px;font-size:10px;color:var(--sage);margin-bottom:10px}.event-details strong{display:block;font:500 31px 'Cormorant Garamond',Georgia,serif}.event-details small{font-size:12px;color:#796264}.text-link{font-size:12px;border-bottom:1px solid #ac8989;padding-bottom:4px;color:var(--rose)}.location{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;padding:88px 0;align-items:center}.location h3{font-size:25px}.location p{font-size:14px}.muted{color:#8a7475}.map-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.map-links .button{font-size:12px;padding:12px 15px;gap:5px}.secondary{background:transparent;color:var(--rose)}.secondary:hover{background:#f3dfdc}.map-frame{border:1px solid var(--line);padding:10px;background:#fffaf5;border-radius:180px 180px 12px 12px;overflow:hidden}.map-frame iframe{border:0;width:100%;height:350px;display:block;border-radius:170px 170px 5px 5px;background:#e7e6dd}.map-frame p{text-align:center;margin:13px 0 3px;font-size:12px}.map-frame span{color:#bd888b;margin:0 8px}.rsvp-section{background:#f7e6e2;padding:75px 0}.rsvp-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.flower{display:block;color:#c67f8b;font-size:66px;line-height:1.1;margin-bottom:25px}.rsvp-copy>p:not(.eyebrow){font-size:15px;color:#796264}.rsvp-copy .small-note{font-size:12px!important;margin-top:35px}form{background:#fffbf7;border:1px solid #e9d4ce;padding:32px;border-radius:16px;box-shadow:0 14px 40px #8b414109}form h3{margin-bottom:24px}label,legend{font-size:12px;font-weight:600}label small{font-weight:400;color:#84696a}.field{margin-bottom:17px}.field>label{display:block;margin-bottom:7px}input:not([type=radio]),textarea{width:100%;border:1px solid #ddcfc9;border-radius:7px;padding:10px 12px;background:white;color:var(--ink);font-size:14px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9d8a86;font-size:13px}fieldset{padding:0;border:0;margin:0 0 20px}legend{margin-bottom:9px}.choices{display:flex;gap:12px;flex-wrap:wrap}.choices label{padding:10px 12px;border:1px solid #e1d3cd;border-radius:7px;font-weight:400;cursor:pointer}.choices label:has(input:checked){background:#f8e5e2;border-color:#c48d96}input[type=radio]{accent-color:var(--rose)}.counts{display:grid;grid-template-columns:1fr 1fr;gap:16px}form .button{width:100%}#form-status{font-size:13px;margin:12px 0 0}#form-status[data-state=error]{color:#a02039}#form-status[data-state=success]{color:#46603a}#form-status[data-state=info]{color:#80693c}.form-footnote{font-size:10px;text-align:center;color:#8c7772;margin:12px 0 0}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}[hidden]{display:none!important}footer{text-align:center;padding:38px 20px}footer>span{font-size:31px;color:#bf7a84}footer p{font:italic 23px 'Cormorant Garamond',Georgia,serif;margin:5px 0}footer strong{font-size:10px;letter-spacing:1.6px;font-weight:500;color:var(--sage)}.skip{position:fixed;left:10px;top:-70px;background:white;padding:10px;z-index:99}.skip:focus{top:10px}@media(max-width:760px){header{min-height:80px;padding:15px 5%}.brand{font-size:20px}nav{gap:0}nav>a:not(.nav-cta){display:none}.nav-cta{font-size:11px;padding:8px 12px}.hero{grid-template-columns:1fr;gap:30px;padding:25px 0 55px;text-align:center}.hero-copy{order:2}.portrait{width:min(410px,100%);margin:auto}.portrait-note{font-size:20px}h1{font-size:72px}h1 em{display:inline}.eyebrow{font-size:10px;letter-spacing:2px;margin-bottom:17px}.age{justify-content:center;margin:18px 0}.surname{font-size:11px}.hero .intro{font-size:14px}.hero .button{font-size:12px}.celebrate{padding:50px 0}.celebrate p{font-size:14px}.event-details{grid-template-columns:1fr;gap:22px;margin:30px auto}.event-details div{border:0}.event-details strong{font-size:29px}.event-details span{margin-bottom:4px}.location{grid-template-columns:1fr;gap:32px;padding:55px 0}.map-frame iframe{height:300px}.rsvp-section{padding:45px 0}.rsvp-layout{grid-template-columns:1fr;gap:25px}.rsvp-copy{text-align:center}.flower{font-size:45px;margin-bottom:15px}.rsvp-copy .small-note{margin-top:18px}form{padding:23px}.choices{gap:8px}.choices label{font-size:11px}.counts label{font-size:11px}h2{font-size:42px}.location h2 br{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.guest-row{border:1px solid var(--line);padding:12px;border-radius:10px;margin:15px 0;min-width:0}.guest-row legend{padding:0 5px}.guest-fields{display:grid;grid-template-columns:minmax(120px,1.15fr) minmax(180px,1.35fr) minmax(135px,.85fr);gap:10px;align-items:end}.guest-field{display:block;min-width:0}.guest-field>span{display:block;margin:0 0 5px;font-size:11px;color:#796264}.guest-field input,.guest-field select{width:100%;min-width:0;height:42px;padding:8px 10px;border:1px solid #ddcfc9;border-radius:7px;background:white;color:var(--ink);font:inherit;font-size:12px}.guest-field input[readonly]{background:#f2eee3}.remove-guest{background:none;border:0;color:var(--rose);font-size:11px;cursor:pointer;padding:6px 0 0;text-decoration:underline}#add-guest{margin-bottom:22px}#load-invite{margin-top:12px}select:focus-visible{outline:3px solid var(--sage)}@media(max-width:560px){.guest-fields{grid-template-columns:minmax(95px,1fr) minmax(145px,1.3fr) minmax(110px,1fr);gap:6px}.guest-row{padding:8px}.guest-field input,.guest-field select{padding:7px 6px;font-size:10px}.guest-field>span{font-size:10px}}
.guest-row{margin:16px 0}.guest-fields>input,.guest-fields>select{width:100%;min-width:0;height:42px;padding:8px 10px;border:1px solid #ddcfc9;border-radius:7px;background:white;color:var(--ink);font:inherit;font-size:12px}.guest-fields>.guest-field{margin:0}.responsible-fields{grid-template-columns:minmax(0,1.4fr) minmax(130px,1fr)}.companion-headings,.responsible-headings{font-size:11px;font-weight:600;color:#796264;margin:0 0 5px}.companion-row{padding:10px 0;border-top:1px solid #eee2dc}.companion-row:first-of-type{border-top:0}.companions-section{padding-bottom:8px}dialog#remove-confirmation{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:min(440px,calc(100vw - 32px));width:100%;color:var(--ink);background:#fffbf7;box-shadow:0 20px 70px #553b3c30}dialog#remove-confirmation::backdrop{background:#3e272b66;backdrop-filter:blur(2px)}dialog#remove-confirmation h3{font-size:28px;margin-bottom:10px}dialog#remove-confirmation p{font-size:14px;color:#796264}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.dialog-actions .button{width:auto;padding:11px 16px;font-size:12px}
@media(max-width:560px){.guest-fields{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);gap:6px}.responsible-fields{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.guest-fields>input,.guest-fields>select{padding:7px 5px;font-size:10px}.responsible-fields .guest-field input,.responsible-fields .guest-field select{padding:7px 5px;font-size:10px}}
.invite-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.invite-header #invite-greeting{margin:0 0 4px;font:500 21px/1.25 'Cormorant Garamond',Georgia,serif;color:var(--ink)}.invite-code-badge{display:inline-block;padding:3px 9px;border:1px solid #ead4d0;border-radius:20px;background:#fbf1ed;color:var(--rose);font-size:10px;letter-spacing:.5px}.invite-switch{flex:0 0 auto;border:0;border-bottom:1px solid #ac8989;background:transparent;color:var(--rose);font:600 11px 'DM Sans',sans-serif;padding:4px 0;cursor:pointer}.invite-switch:hover{color:#87384a;border-color:#87384a}@media(max-width:420px){.invite-header{gap:8px}.invite-header #invite-greeting{font-size:18px}.invite-switch{font-size:10px}}
.guest-fields>select,.guest-field select{appearance:none;-webkit-appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='m2 2 5 5 5-5' stroke='%23a44558' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px 9px}
.invite-card-heading .eyebrow{margin:0 0 4px;font-size:9px;letter-spacing:2px}.invite-card-heading h3{font-size:32px;line-height:1.12;margin:0 0 24px;color:var(--ink)}#rsvp-form{background:#fffbf7;border:1px solid #eadbd1;border-radius:16px;padding:28px;box-shadow:0 16px 40px #76545210}.invite-header{align-items:center;margin:0 0 13px}.invite-header #invite-greeting{font-size:22px}.invite-instructions{font-size:12px;line-height:1.5;color:#8a7475;margin:0 0 16px}.guest-list{display:grid;gap:9px}.guest-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 11px;border:1px solid #eadfd8;border-radius:12px;background:#fffdfb;min-width:0}.guest-identity{display:grid;gap:2px;min-width:0}.guest-name{font-size:14px;line-height:1.3;font-weight:600;overflow-wrap:anywhere}.guest-age{font-size:11px;line-height:1.3;color:#8a7475}.guest-card-owner .guest-age{color:var(--sage)}.guest-actions{display:flex;align-items:center;gap:6px;font-size:10px;line-height:1.2;color:#c1a7a3}.guest-action{appearance:none;border:0;background:transparent;color:var(--rose);font:600 10px 'DM Sans',sans-serif;padding:2px 0;cursor:pointer}.guest-action:hover{text-decoration:underline}.attendance-toggle{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:3px;border-radius:24px;background:#f7eeea}.attendance-toggle button{min-width:38px;border:0;border-radius:20px;padding:7px 10px;background:transparent;color:#896e6c;font:600 10px 'DM Sans',sans-serif;cursor:pointer}.attendance-toggle button.is-selected{background:var(--rose);color:white;box-shadow:0 2px 6px #a4455830}.attendance-toggle button:focus-visible{outline-offset:2px}.add-companion-link{display:block;border:0;background:transparent;color:#9b7775;font:500 11px 'DM Sans',sans-serif;padding:11px 0 16px;cursor:pointer}.add-companion-link:hover{color:var(--rose);text-decoration:underline}.add-companion-link:disabled{opacity:.45;cursor:not-allowed}#rsvp-form .message-field{margin:0 0 14px}.message-field label span{font-weight:400;color:#907979}.message-field textarea{min-height:57px;background:#fffdfb;border-color:#eadfd8}.invite-save{width:100%;min-height:46px;border-radius:24px;font-size:12px;letter-spacing:.15px}.invite-header .invite-switch{font-size:10px}#rsvp-form .form-footnote{font-size:10px;line-height:1.5;margin:11px 0 0;color:#8a7475}#guest-dialog,#remove-confirmation{border:1px solid #eadbd1;border-radius:16px;padding:27px;max-width:min(420px,calc(100vw - 32px));width:100%;color:var(--ink);background:#fffbf7;box-shadow:0 20px 70px #553b3c30}#guest-dialog::backdrop,#remove-confirmation::backdrop{background:#3e272b66;backdrop-filter:blur(2px)}#guest-dialog form{border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}#guest-dialog .eyebrow{font-size:9px;letter-spacing:2px;margin:0 0 6px}#guest-dialog h3,#remove-confirmation h3{font-size:30px;line-height:1.1;margin:0 0 9px}#guest-dialog .dialog-intro,#remove-confirmation p{font-size:13px;line-height:1.5;color:#826e6d;margin:0 0 20px}#guest-dialog .field{margin:0 0 15px}#guest-dialog .field>label{display:block;margin:0 0 6px;font-size:11px}#guest-dialog input,#guest-dialog select{height:44px;border-color:#eadfd8;background-color:#fffdfb;font-size:13px}#guest-dialog select{appearance:none;-webkit-appearance:none;padding:8px 34px 8px 12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='m2 2 5 5 5-5' stroke='%23a44558' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px 9px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:21px}.dialog-actions .button{width:auto;min-height:40px;padding:10px 15px;font-size:11px;border-radius:22px}.dialog-actions .secondary{border-color:#d7c4bc;background:transparent;color:var(--rose)}@media(max-width:760px){#rsvp-form{padding:24px 20px}.invite-card-heading h3{font-size:30px}}@media(max-width:420px){#rsvp-form{padding:22px 16px}.guest-card{gap:7px;padding:10px 8px}.guest-name{font-size:13px}.guest-age{font-size:10px}.attendance-toggle{gap:2px;padding:2px}.attendance-toggle button{min-width:34px;padding:7px 8px;font-size:9px}.guest-actions{gap:4px;font-size:9px}.guest-action{font-size:9px}.invite-header #invite-greeting{font-size:19px}#guest-dialog,#remove-confirmation{padding:23px 19px}}
.attendance-toggle{gap:7px;padding:0;border-radius:0;background:transparent}.attendance-toggle button{min-width:0;padding:7px 13px;border:1px solid #f0e2dc;border-radius:22px;background:#f8f1ed;color:#8e7772;font-size:10px}.attendance-toggle button.is-selected{border-color:var(--rose);background:var(--rose);color:#fff;box-shadow:none}.guest-card-owner .guest-age{color:#8a7475}
#rsvp-confirmation{border:1px solid #eadbd1;border-radius:16px;padding:27px;max-width:min(460px,calc(100vw - 32px));width:100%;color:var(--ink);background:#fffbf7;box-shadow:0 20px 70px #553b3c30}#rsvp-confirmation::backdrop{background:#3e272b66;backdrop-filter:blur(2px)}#rsvp-confirmation .eyebrow{font-size:9px;letter-spacing:2px;margin:0 0 6px}#rsvp-confirmation h3{font-size:30px;line-height:1.1;margin:0 0 9px}#rsvp-confirmation .dialog-intro{font-size:13px;line-height:1.5;color:#826e6d;margin:0 0 16px}.rsvp-confirmation-list{list-style:none;padding:0;margin:0;border-top:1px solid #eadfd8}.rsvp-confirmation-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 2px;border-bottom:1px solid #eadfd8;font-size:13px}.rsvp-confirmation-item>span{overflow-wrap:anywhere}.rsvp-confirmation-item strong{flex:0 0 auto;font-size:12px}.confirmed-yes{color:#718064}.confirmed-no{color:#9a7774}#companion-age:disabled{opacity:1;color:#796264;background-color:#f8f0eb;cursor:not-allowed}@media(max-width:420px){#rsvp-confirmation{padding:23px 19px}#rsvp-confirmation h3{font-size:27px}.rsvp-confirmation-item{font-size:12px}}
.rsvp-deadline-note{font-size:11px;line-height:1.45;color:#8a7475;margin:-15px 0 20px}.rsvp-closed{border:1px solid #e4c7c0;border-radius:12px;background:#f8eeea;color:#755b59;padding:14px 16px;margin:12px 0;font-size:13px;line-height:1.5}.guest-action:disabled,.attendance-toggle button:disabled,.add-companion-link:disabled{opacity:.52;cursor:not-allowed}.guest-action:disabled:hover,.add-companion-link:disabled:hover{text-decoration:none}

#guest-dialog .age-field{border:0;padding:0;min-width:0}
#guest-dialog .age-field legend{display:block;margin:0 0 6px;padding:0;font-size:11px;font-weight:600}
#guest-dialog .age-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%;padding:3px;border-radius:24px;background:#f7eeea}
#guest-dialog .age-toggle button{min-width:0;padding:9px 5px;border:1px solid #f0e2dc;border-radius:22px;background:#f8f1ed;color:#8e7772;font:600 11px/1.2 'DM Sans',sans-serif;cursor:pointer}
#guest-dialog .age-toggle button.is-selected{border-color:var(--rose);background:var(--rose);color:#fff}
#guest-dialog .age-toggle button:focus-visible{outline:2px solid var(--sage);outline-offset:2px}
#guest-dialog .age-toggle button:disabled{opacity:1;cursor:default}
@media(max-width:420px){#guest-dialog .age-toggle{gap:3px;padding:2px}#guest-dialog .age-toggle button{padding:8px 3px;font-size:10px}}

#guest-dialog .age-toggle{padding:0;background:transparent}
#guest-dialog .age-toggle button{background:#fffbf7}
#guest-dialog .age-toggle button.is-selected{border-color:var(--sage);background:var(--sage);color:#fff}

.attendance-toggle button.is-selected,#guest-dialog .age-toggle button.is-selected{border-color:rgba(164,69,88,.42);background:rgba(164,69,88,.14);color:var(--rose);box-shadow:none}

.attendance-toggle button,#guest-dialog .age-toggle button{background:transparent}
.attendance-toggle button.is-selected,#guest-dialog .age-toggle button.is-selected{border-color:rgba(164,69,88,.62);background:rgba(164,69,88,.28);color:var(--rose)}

footer{border-top:1px solid var(--line)}

footer{border-top:0}
footer::before{content:"";display:block;width:min(1140px,90%);height:1px;margin:0 auto 28px;background:#d8bdb7}

dialog .dialog-actions{border-top:1px solid #d8bdb7;padding-top:18px}
