:root{--paper:#faf8f2;--olive:#404b38;--muted:#68705f;--gold:#a58d57;--line:#d4d8c7;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#eef0e7;color:var(--olive);font:16px/1.75 var(--sans)}a{color:inherit}button,input,textarea,select{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.skip{position:fixed;top:-100px}.skip:focus{top:0;background:white;z-index:10;padding:12px}header{max-width:1150px;margin:auto;padding:22px 6%;display:flex;align-items:center;justify-content:space-between;gap:20px}header a{text-decoration:none;font-size:13px}header>span{text-transform:uppercase;letter-spacing:.19em;font-size:11px}.monogram{font:30px var(--serif)}.monogram i{color:var(--gold)}.invitation{padding:24px 24px 75px}.card{position:relative;max-width:740px;margin:auto;text-align:center;background:var(--paper);padding:45px 36px 38px;border:1px solid #d4d7c6;outline:1px solid #d4d7c6;outline-offset:-12px;box-shadow:0 18px 65px #39462a10}.floral{display:block;width:300px;max-width:80%;height:auto;margin:0 auto 27px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.2em;font-weight:600;margin:0 0 22px}h1{font:400 64px/.98 var(--serif);letter-spacing:-.03em;margin:24px 0 18px}h1 span{display:block}h1 i{display:block;font:66px/.8 'Italianno',cursive;color:var(--gold);margin:10px 0}.invitation-line{font:23px/1.5 var(--serif);margin:24px 0}.date{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;max-width:340px;margin:25px auto}.date span{display:block;font-size:13px;letter-spacing:.04em}.date strong{font:500 34px/1.5 var(--serif)}address{font:21px/1.6 var(--serif);margin:24px 0;font-style:normal}.card-actions{display:flex;align-items:center;justify-content:center;gap:26px}.button{display:inline-flex;align-items:center;justify-content:center;gap:27px;min-height:51px;border:0;background:var(--olive);color:var(--paper);padding:13px 25px;text-decoration:none;font:500 14px/1.6 var(--sans);cursor:pointer}.button:hover{background:#5c684e}.button:disabled{cursor:wait;opacity:.65}.subtle-link{font-size:13px;text-underline-offset:5px}.deadline{font-size:12px;color:var(--muted);margin:20px 0 0}.reply-section{background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:85px max(7%,calc((100vw - 1050px)/2))}.reply-intro h2{font:400 48px/1.1 var(--serif);letter-spacing:-.02em;margin:0 0 32px}h2 em{font-weight:400}.reply-intro img{display:block;width:88%;height:360px;object-fit:cover;border-radius:170px 170px 2px 2px;margin-top:25px}.handwritten{font:44px/1.3 'Italianno',cursive;margin:13px 0}.reply-card{padding:4px 0}.reply-card h3,.travel h3{font:500 34px/1.2 var(--serif);margin:0 0 15px}.form-intro{color:var(--muted);font-size:14px;line-height:1.7;margin-bottom:23px}fieldset{border:0;padding:0;margin:0 0 20px}legend,form>label,#attending-fields>label{display:block;font-size:14px;font-weight:600;margin:18px 0 7px}legend{margin:0 0 8px}.choices{display:flex;gap:12px;flex-wrap:wrap}.choices label{border:1px solid var(--line);padding:10px 12px;font-size:13px;cursor:pointer;flex:1;white-space:nowrap}.choices label:has(input:checked){background:#edf0e5;border-color:var(--olive)}input[type=radio]{accent-color:var(--olive);margin:0 6px 0 0}form input:not([type=radio]),textarea,form select{width:100%;background:#fffefa;border:1px solid var(--line);border-radius:0;padding:11px 12px;color:var(--olive);min-height:46px}textarea{resize:vertical}label span{font-size:12px;font-weight:400;color:var(--muted)}.hint,.privacy{font-size:12px;color:var(--muted);margin:5px 0 0}.privacy{margin-top:12px}form .button{margin-top:23px;width:100%}.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#form-error{background:#f8e6df;color:#8a3424;padding:12px;font-size:14px}#confirmation{padding:45px 0;outline:none}.confirmation-mark{display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:54px;height:54px;margin-bottom:20px;font-size:28px}.travel{max-width:1050px;margin:auto;padding:70px 7%}.travel>div{display:grid;grid-template-columns:1fr 1fr;gap:60px}.travel h3{font-size:29px}.travel p:not(.eyebrow){font-size:14px;color:var(--muted)}footer{text-align:center;padding:36px 24px;background:var(--olive);color:var(--paper)}footer>p:not(.handwritten){font-size:12px}footer>a{font-size:11px;color:#d5ddc9;text-underline-offset:4px}[hidden]{display:none!important}@media(max-width:700px){header{padding:18px 7%}header>span{display:none}.invitation{padding:12px 14px 45px}.card{padding:35px 24px 30px}.floral{width:235px;margin-bottom:25px}h1{font-size:52px}.eyebrow{font-size:10px;letter-spacing:.14em}.invitation-line{font-size:21px}.card-actions{flex-direction:column;gap:16px}.reply-section{grid-template-columns:1fr;padding:55px 7%;gap:35px}.reply-intro h2{font-size:42px}.reply-intro img{width:100%;height:320px;max-width:320px;margin:25px auto 0}.reply-intro .handwritten{text-align:center}.travel{padding:50px 7%}.travel>div{grid-template-columns:1fr;gap:18px}.choices{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.people-fieldset{margin-top:22px}.person-row{margin-top:15px;padding:15px;background:#eef0e766;border:1px solid var(--line)}.person-number{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.person-fields{display:grid;grid-template-columns:minmax(0,1fr) 115px;gap:10px;align-items:end}.person-fields label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}.person-fields input,.person-fields select{min-width:0}.remove-person{grid-column:1/-1;justify-self:end;border:0;background:none;text-decoration:underline;text-underline-offset:3px;color:var(--muted);font-size:12px;cursor:pointer;padding:6px}.remove-person:disabled{visibility:hidden}.add-person{margin-top:12px;padding:10px 16px;border:1px solid var(--olive);color:var(--olive);background:transparent;cursor:pointer;font-size:14px}.add-person:disabled{opacity:.5;cursor:default}.guest-table{width:100%;border-collapse:collapse;font-size:14px;white-space:normal}.guest-table th,.guest-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}.guest-table th:last-child,.guest-table td:last-child{width:110px}
.rsvp-teaser{text-align:center;background:var(--paper);padding:65px 24px}.rsvp-teaser h2{font:48px var(--serif);margin:10px}.rsvp-app{max-width:960px;min-height:65vh;margin:30px auto 70px;padding:0 24px}.rsvp-app>.floral{width:220px;margin:10px auto 25px}.rsvp-app>.eyebrow,.rsvp-app>h1{text-align:center}.rsvp-app>h1{font-size:56px;margin:12px 0 36px}.rsvp-app h2{font:34px/1.2 var(--serif);margin:8px 0 16px}.lookup-card{max-width:600px;margin:auto;background:var(--paper);border:1px solid var(--line);padding:32px}.lookup-card p,.party-intro p{font-size:14px}.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.rsvp-app label{display:block;font-size:13px;font-weight:600}.rsvp-app input:not([type=radio]),.rsvp-app select{display:block;width:100%;margin-top:6px;background:#fffefa;border:1px solid var(--line);color:var(--olive);padding:11px;min-width:0}.party-intro{margin:30px 0}.party-intro>a{font-size:13px}.guest-card{background:var(--paper);border:1px solid var(--line);padding:28px;margin:22px 0}.guest-heading{display:grid;grid-template-columns:1fr 145px;gap:24px;align-items:start}.guest-heading .eyebrow{margin:0 0 8px}.guest-heading h2{font-size:30px}.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:24px}.event-grid fieldset{margin:0}.event-grid legend{font-size:15px}.event-grid legend span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin:3px 0 10px}.event-options{display:flex;flex-wrap:wrap;gap:6px}.event-options label{padding:8px 10px;border:1px solid var(--line);cursor:pointer;font-size:12px;display:flex;align-items:center;gap:5px}.event-options label:has(input:checked){background:var(--olive);color:var(--paper);border-color:var(--olive)}.event-options input{margin:0;accent-color:var(--gold)}.rsvp-app #error{background:#f8e6df;color:#8a3424;padding:15px}.rsvp-app #saved{background:#e2ebd9;padding:18px;border:1px solid #bacbab}.text-button{background:transparent;border:0;color:var(--olive);text-decoration:underline;text-underline-offset:4px;padding:10px 0;cursor:pointer;font:inherit;font-size:14px}.text-button:disabled{opacity:.4;cursor:default}.remove-guest{margin-top:18px}.totals{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:28px 0}.totals>div{background:var(--paper);padding:20px}.totals strong{font:36px var(--serif);display:block}.totals span,.totals small{display:block;font-size:13px}.totals small{font-size:11px;color:var(--muted)}.manage-actions{display:flex;flex-wrap:wrap;align-items:center;gap:25px;margin:24px 0}.manage-actions a{font-size:13px}.party-list article{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:24px 0}.party-list p{font-size:13px;margin:0}.party-list small{font-size:12px;color:var(--muted)}.party-label{margin-top:20px}.guest-card .name-fields{max-width:500px}@media(max-width:650px){.rsvp-app{padding:0 18px}.lookup-card{padding:24px}.guest-card{padding:20px}.guest-heading{grid-template-columns:1fr}.guest-heading>label{max-width:170px}.event-grid{grid-template-columns:1fr;gap:18px}.event-grid fieldset{border-top:1px solid var(--line);padding-top:15px}.event-grid legend{padding-top:15px}.event-options label{padding:10px 18px}.totals{grid-template-columns:1fr;gap:8px}.totals>div{padding:12px 18px}.totals strong{float:left;margin-right:20px}.party-list article{flex-direction:column;gap:8px}.party-list button{align-self:flex-start}.name-fields{grid-template-columns:1fr}.rsvp-app>h1{font-size:46px}}
/* RSVP: centered wide canvas, compact cards, and a persistent save action. */
.rsvp-app{width:100%;max-width:1280px;margin:24px auto 48px;padding:0 32px;min-width:0}.rsvp-app #app{width:100%;min-width:0}.rsvp-app>.floral{width:170px;margin-bottom:12px}.rsvp-app>h1{font-size:44px;margin:8px 0 24px}.rsvp-app>.eyebrow{margin-bottom:8px}.party-intro{text-align:center;max-width:760px;margin:20px auto 28px}.party-intro h2{font-size:38px;margin:12px 0}.party-intro p{margin:8px 0}.party-intro .hint{font-size:13px}#party-form{width:100%;margin:0}#party-form #members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}#party-form .guest-card{min-width:0;margin:0;padding:24px;border-radius:12px}#party-form .guest-heading{grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:14px}#party-form .guest-heading h2{font-size:27px;overflow-wrap:anywhere;margin:4px 0}#party-form .eyebrow{font-size:10px;margin:0;letter-spacing:.12em}#party-form .guest-heading>label{font-size:11px;max-width:none}#party-form select{font-size:16px;padding:10px 8px;min-height:44px;margin-top:4px;border-radius:6px}#party-form .event-grid{grid-template-columns:1fr;gap:16px;margin-top:16px}#party-form .event-grid fieldset{min-width:0;border:0;padding:0;margin:0}#party-form .event-grid legend{width:100%;padding:0;margin:0 0 8px;font-size:14px;line-height:1.4}#party-form .event-grid legend span{display:inline-block;margin:0 0 0 8px;font-size:12px}#party-form .event-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}#party-form .event-options label{justify-content:center;min-height:46px;padding:10px;border-radius:6px;font-size:14px;font-weight:500}#party-form .event-options label:focus-within{outline:2px solid var(--gold);outline-offset:2px}#party-form .event-options input{width:16px;height:16px;flex-shrink:0}.guest-summary{font-size:12px;line-height:1.5;color:var(--muted);margin:12px 0 0}.guest-toggle{font-size:12px;min-height:44px;margin:8px 0 -8px}.is-collapsed .guest-content{display:none}.save-bar{position:sticky;bottom:12px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 24px #26351b18;padding:16px 20px;margin-top:24px}.save-bar strong,.save-bar span{display:block;font-size:14px;line-height:1.5}.save-bar span{font-size:12px;color:var(--muted)}#party-form .save-bar .button{width:auto;min-width:200px;margin:0;border-radius:6px}body:has(#party-form) header{max-width:1280px;width:100%;padding:18px 32px}header nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center}header nav a{padding:8px 3px;min-height:40px;display:inline-flex;align-items:center}header nav a[aria-current]{border-bottom:1px solid var(--olive)}
@media(max-width:760px){.rsvp-app{padding:0 16px;margin-top:12px}.rsvp-app>.floral{width:130px}.rsvp-app>h1{font-size:34px;margin-bottom:18px}.party-intro{margin:16px auto 22px}.party-intro h2{font-size:30px}.party-intro p{font-size:13px}.party-intro .hint{font-size:11px}#party-form #members{grid-template-columns:1fr;gap:12px}#party-form .guest-card{padding:18px}#party-form .guest-heading h2{font-size:24px}#party-form .guest-heading{grid-template-columns:minmax(0,1fr) 104px;gap:10px}.save-bar{bottom:0;border-radius:10px 10px 0 0;padding:12px 14px max(12px,env(safe-area-inset-bottom));gap:10px;margin-top:18px}.save-bar strong{font-size:12px}.save-bar span{font-size:11px}#party-form .save-bar .button{min-width:0;white-space:nowrap;font-size:12px;padding:12px 14px}body:has(#party-form) header{padding:12px 16px}header{gap:12px}header nav{gap:3px;font-size:10px}header nav a{font-size:11px}}

/* Prevent iOS focus zoom without restricting the user's ability to zoom. */
.rsvp-app input:not([type=radio]),.rsvp-app select,.rsvp-app textarea{font-size:max(16px,1rem)}

.totals .invited-total{grid-column:1/-1}
