@font-face{font-family:Editorial;src:url('assets/bodoni-moda.ttf');font-weight:400 500}@font-face{font-family:Handwritten;src:url('assets/handwritten.ttf')}
:root{--blue:#154ab5;--ink:#123d80;--paper:#fff9eb;--yellow:#f8c72e;--red:#c63221;color:var(--ink);background:var(--paper);font-family:Georgia,serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5;background-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="140" height="140"%3E%3Cfilter id="n"%3E%3CfeTurbulence type="fractalNoise" baseFrequency=".7" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Cpath fill="%23967237" opacity=".035" filter="url(%23n)" d="M0 0h140v140H0z"/%3E%3C/svg%3E')}a{color:inherit;text-underline-offset:5px}button,input{font:inherit}button{cursor:pointer}button[hidden],[hidden]{display:none!important}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.topline{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:18px 4vw;font-size:14px}.topline a{text-decoration:none}.languages{display:flex;align-items:center;gap:2px}.languages button{border:0;background:none;color:inherit;min-width:38px;min-height:44px;font-size:12px;opacity:.55}.languages button[aria-pressed=true]{opacity:1;text-decoration:underline;text-underline-offset:5px}.languages span{font-size:12px;opacity:.4}.rsvp-layout{width:min(1180px,94%);margin:0 auto 70px;display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:5vw}.painted-side{align-self:stretch;position:relative;min-height:650px;display:flex;align-items:center;justify-content:center;isolation:isolate}.painted-side:before{content:'';position:absolute;left:2%;right:8%;top:12%;bottom:15%;z-index:-1;background:var(--blue);border-radius:48% 48% 3% 3%/33% 33% 2% 2%;transform:rotate(-3deg)}.painted-side:after{content:'';position:absolute;inset:16% 12% 19% 6%;z-index:-1;border:2px solid #f8c72eb0;border-radius:48% 48% 3% 3%/33% 33% 2% 2%;transform:rotate(-3deg)}.painted-side img{width:120%;max-width:none;transform:rotate(-3deg) translate(-4%,8%);filter:drop-shadow(0 10px 8px #154ab515)}.painted-side span{position:absolute;bottom:10%;left:17%;font-family:Handwritten,cursive;font-size:32px;transform:rotate(-8deg)}.response-sheet{padding:12px 0 30px;max-width:550px;width:100%;margin:auto}.response-sheet header{text-align:center;margin-bottom:28px}.monogram{width:65px;height:57px;object-fit:contain;display:block;margin:0 auto 12px}.couple{font-size:12px;letter-spacing:.17em;margin:0 0 8px}h1,h2{font-family:Editorial,Georgia,serif;font-weight:400}h1{font-size:58px;line-height:1;margin:10px 0 13px}.occasion{font-size:15px;margin:0}.field{display:flex;flex-direction:column;margin-bottom:17px;min-width:0}.field label,legend{font-size:16px;margin-bottom:7px}.field input{border:0;border-bottom:1px solid #154ab55c;background:#fffdf533;color:var(--ink);border-radius:0;padding:9px 5px;min-height:44px;width:100%;transition:border-color .2s}.field input:focus{outline:none;border-bottom:2px solid var(--blue);padding-bottom:8px}.field input[aria-invalid=true]{border-color:var(--red)}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.attendance{border:0;margin:7px 0 24px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance legend{padding:0 0 6px}.attendance label{display:flex;align-items:center;gap:9px;border:1px solid #154ab550;padding:12px 10px;font-size:15px;cursor:pointer;min-height:54px}.attendance label:has(input:checked){border-color:var(--blue);background:#f8c72e20}.attendance input{width:17px;height:17px;accent-color:var(--blue);flex:none;margin:0}.attendance .field-error{grid-column:1/-1}#companions{border-top:1px solid #154ab528;padding:18px 0 6px;margin-bottom:18px}#companions h2{font-size:27px;margin:0 0 4px}.hint{font-size:14px;margin:0 0 16px;line-height:1.5}.companion-row{display:flex;gap:14px;align-items:center}.companion-row .field{flex:1}.remove{border:0;background:none;color:var(--ink);font-size:22px;width:38px;height:44px}.text-button{border:0;border-bottom:1px solid var(--blue);background:none;color:var(--blue);font-size:14px;padding:7px 0;min-height:44px}.primary{display:block;width:100%;padding:14px 22px;background:var(--blue);color:var(--paper);border:1px solid var(--blue);font-size:17px;letter-spacing:.025em;min-height:52px}.primary:hover{background:#103d97}.primary:disabled{opacity:.6;cursor:wait}.privacy{font-size:12px;text-align:center;margin:14px 0 0;color:#46638c}.field-error,.form-error{color:#aa2d1c;font-size:14px}.field-error:empty,.form-error:empty{display:none}.field-error{margin-top:5px}.form-error{margin:12px 0}.sunburst{font-size:62px;color:var(--yellow);display:block}#confirmation{text-align:center;padding:38px 0 70px}#confirmation h2{font-size:38px;line-height:1.2}#confirmation p{font-size:18px;max-width:380px;margin:0 auto 30px}#confirmation a{font-size:15px}
.admin-sheet{max-width:1150px;width:92%;margin:15px auto 70px}.admin-sheet header{text-align:center}.admin-sheet h1{font-size:48px}.admin-meta{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:34px 0 22px;padding:20px 0;border-top:1px solid #154ab530;border-bottom:1px solid #154ab530}.admin-counts{display:flex;gap:28px;flex-wrap:wrap}.admin-counts strong{font:32px Editorial,Georgia,serif;display:block}.admin-counts span{font-size:14px}.admin-status{font-size:14px;margin:12px 0}.admin-tools{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.admin-tools label{font-size:14px}.admin-tools select,.admin-tools input{font:inherit;padding:9px;background:transparent;border:1px solid #154ab560;color:var(--ink);max-width:100%}.guest-list{display:grid;gap:18px}.guest-response{padding:22px;border:1px solid #154ab530;border-left:3px solid var(--blue);background:#fffdf844}.guest-response.new{border-left-color:var(--yellow)}.guest-heading{display:flex;gap:20px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.guest-heading h2{margin:0;font-size:28px;overflow-wrap:anywhere}.guest-heading span{font-size:14px}.guest-response p{margin:8px 0;overflow-wrap:anywhere}.guest-response .contact{display:flex;gap:20px;flex-wrap:wrap;font-size:15px}.guest-response .date{font-size:13px;color:#46638c}.new-label{font:12px Georgia,serif;letter-spacing:.08em;color:#8e6200;margin-left:10px}.empty{text-align:center;padding:45px 10px;font-size:18px}.admin-note{font-size:14px;color:#46638c}.admin-tools button{border:0;background:var(--blue);color:white;padding:10px 18px;min-height:44px}.guest-response button{min-height:44px}.export{font-size:14px;padding:9px 16px;border:1px solid #154ab560;background:transparent;color:var(--ink)}
@media(max-width:760px){.topline{padding:8px 5vw}.topline a{font-size:13px}.rsvp-layout{display:block;width:88%;margin-bottom:30px}.painted-side{display:none}.response-sheet{padding:9px 0 25px}.response-sheet header{margin-bottom:25px}.monogram{width:59px;height:52px}h1{font-size:50px}.occasion{font-size:14px}.couple{font-size:12px}.contact-fields{grid-template-columns:1fr;gap:0}.attendance{gap:8px}.attendance label{font-size:14px;padding:12px 9px}.admin-sheet{width:90%}.admin-sheet h1{font-size:37px}.admin-counts{gap:20px}.admin-meta{margin-top:24px}.guest-response{padding:17px}.guest-heading{gap:4px}.guest-heading h2{font-size:25px}.guest-response .contact{gap:5px;flex-direction:column}.admin-tools{align-items:stretch}.admin-tools label{width:100%}.admin-tools input,.admin-tools select{width:100%}}@media(min-width:761px) and (max-height:780px){.painted-side{min-height:580px}.response-sheet header{margin-bottom:20px}.monogram{width:52px;height:46px}h1{font-size:49px}}

@media(max-width:760px){.response-sheet header{position:relative;isolation:isolate}.response-sheet header:after{content:'';position:absolute;z-index:-1;right:-8px;top:0;width:80px;height:100px;background:url('assets/ceramic-terrace.webp') center/contain no-repeat;transform:rotate(-12deg);opacity:.9;pointer-events:none}}

/* The guest form has its own painted page; management styling stays unchanged. */
@font-face{font-family:CapriForm;src:url('assets/dm-sans.ttf');font-weight:100 900;font-display:swap}
.guest-rsvp{position:relative;min-height:100svh;isolation:isolate;color:#19447b;font-family:CapriForm,Arial,sans-serif;background-color:#fff9eb}
.guest-rsvp .botanical-border{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none}
.guest-rsvp .botanical-border img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.guest-rsvp .topline{padding:20px 4vw;font-size:14px}
.guest-rsvp .languages button{font-size:14px}
.guest-rsvp .rsvp-layout{display:block;width:min(540px,48%);margin:12px auto 0;padding-bottom:72px}
.guest-rsvp .response-sheet{max-width:none;padding:0}
.guest-rsvp .response-sheet header{margin-bottom:35px}
.guest-rsvp .response-sheet header:after{display:none}
.guest-rsvp .monogram{width:91px;height:80px;margin-bottom:21px;filter:brightness(0) saturate(100%) invert(24%) sepia(62%) saturate(1916%) hue-rotate(202deg) brightness(88%) contrast(104%)}
.guest-rsvp .couple{font-size:12px;letter-spacing:.16em;margin-bottom:15px}
.guest-rsvp h1{font-size:65px;font-weight:400;letter-spacing:-.04em;margin:0 0 14px}
.guest-rsvp .occasion{font-size:15px}
.guest-rsvp .field{margin-bottom:23px}
.guest-rsvp .field label,.guest-rsvp legend{font-size:15px;font-weight:500;line-height:1.5;margin-bottom:4px}
.guest-rsvp .field input{font-size:17px;padding:8px 0;background:transparent;border-color:#19447b66;min-height:46px}
.guest-rsvp .contact-fields{gap:26px}
.guest-rsvp .attendance{grid-template-columns:1fr;margin:9px 0 28px;gap:9px}
.guest-rsvp .attendance legend{padding-bottom:10px;font-size:17px}
.guest-rsvp .attendance label{border:0;border-bottom:1px solid #19447b30;background:transparent;padding:13px 2px;font-size:16px;gap:12px;min-height:48px}
.guest-rsvp .attendance label:has(input:checked){background:#f8c72e12;border-bottom-color:#19447b80}
.guest-rsvp .attendance input{accent-color:#19447b;width:18px;height:18px}
.guest-rsvp #companions{border-color:#19447b36;padding-top:22px}
.guest-rsvp #companions h2{font-size:30px}
.guest-rsvp .hint{font-size:15px;line-height:1.6}
.guest-rsvp .primary{background:#19447b;border-color:#19447b;border-radius:2px;min-height:56px;font-size:17px;letter-spacing:.03em}
.guest-rsvp .primary:hover{background:#123d80}
.guest-rsvp .privacy{font-size:13px;line-height:1.7;max-width:370px;margin:17px auto 0;color:#46638c}
@media(max-width:760px){
 .guest-rsvp .topline{padding:10px 5vw}.guest-rsvp .topline a{font-size:13px}
 .guest-rsvp .rsvp-layout{width:80%;margin:20px auto 0;padding-bottom:55px}
 .guest-rsvp .botanical-border img{width:100%;height:auto;min-height:0;object-fit:contain}
 .guest-rsvp .monogram{width:83px;height:73px;margin-bottom:21px}
 .guest-rsvp h1{font-size:57px}.guest-rsvp .response-sheet header{margin-bottom:32px}
 .guest-rsvp .occasion{font-size:14px;line-height:1.6}.guest-rsvp .couple{font-size:11px;letter-spacing:.13em}
 .guest-rsvp .contact-fields{grid-template-columns:1fr;gap:0}.guest-rsvp .field{margin-bottom:21px}
 .guest-rsvp .attendance legend{font-size:16px}.guest-rsvp .attendance label{font-size:15px}
 .guest-rsvp .privacy{font-size:13px}.guest-rsvp #confirmation h2{font-size:34px}
}
@media(max-width:760px){
 .guest-rsvp .rsvp-layout{padding-top:132px}
 .guest-rsvp .botanical-border>img{clip-path:inset(0 0 30% 0)}
 .guest-rsvp .botanical-border::after{content:"";position:absolute;bottom:0;left:0;right:0;height:210px;background:url('assets/rsvp-botanical-mobile.webp') center bottom/100% auto no-repeat}
}
.guest-rsvp .languages{background:#fff9ebed;border-radius:24px;padding:0 4px}
@media(max-width:760px){.guest-rsvp .rsvp-layout{padding-top:78px;padding-bottom:170px}}
@media(min-width:761px){
 .guest-rsvp .botanical-border>img{width:70%;height:auto;object-fit:contain;clip-path:inset(0 35% 0 0)}
 .guest-rsvp .botanical-border::after{content:"";position:absolute;bottom:0;right:0;width:70%;height:100%;clip-path:inset(0 0 0 67%);background:url('assets/rsvp-botanical-desktop.webp') right bottom/100% auto no-repeat}
}
.guest-rsvp .topline>a{background:#fff9ebed;border-radius:24px;padding:7px 11px;margin-left:-11px}
