:root{color-scheme:light;--paper:#fffaf2;--ink:#544851;--muted:#756872;--rose:#895567;--line:#e6d9dd;--lavender:#f0eaf4;--blush:#f9e9e8;--sage:#eaf0e7;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f3edf0;font-synthesis:none}*{box-sizing:border-box}body{margin:0;padding:48px 24px 20px;background:radial-gradient(ellipse at 0 0,#e9e4f1,transparent 55%),radial-gradient(ellipse at 100% 90%,#f7e4e1,transparent 60%);min-height:100vh}.storybook{max-width:1080px;margin:auto;display:grid;grid-template-columns:1fr 1fr;background:var(--paper);border:1px solid #e6d9d7;border-radius:160px 160px 16px 16px / 80px 80px 16px 16px;box-shadow:0 18px 80px #6446560d;overflow:hidden}.invitation{text-align:center;padding:64px 28px 32px;position:relative;background:linear-gradient(150deg,#fffaf2 50%,#f6eee8)}.eyebrow{font-size:.75rem;letter-spacing:.19em;line-height:1.8;font-weight:600;color:var(--muted);margin:0 0 17px}h1,h2,h3,.theme,.closing,.signature{font-family:Georgia,"Times New Roman",serif;font-weight:400}h1{font-size:2.1rem;line-height:1.25;margin:0;color:var(--rose)}h1 span{display:block;font-size:clamp(4rem,7vw,5.8rem);letter-spacing:-.055em;font-style:italic;margin-bottom:4px}.theme{font-size:1.6rem;font-style:italic;color:#7a6b89;margin:22px 0 0}.flourish{color:#ab8556;font-size:1.5rem;letter-spacing:.25em;margin:20px 0}.date{font-size:1rem;font-weight:600;margin:0 0 8px}.time,.location{font-size:.9375rem;margin:0;line-height:1.6;color:var(--muted)}.time span{padding:0 6px}.venue{font-family:Georgia,serif;font-size:1.35rem;margin:23px 0 4px}.artwork{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;mix-blend-mode:multiply;margin:6px auto 0}.closing{font-style:italic;line-height:1.6;font-size:1.125rem;margin:4px 0 0;color:var(--muted)}.reply{padding:64px 42px 40px;border-left:1px solid var(--line)}.reply>.eyebrow{font-size:.75rem;letter-spacing:.13em;max-width:none}h2{font-size:2.5rem;line-height:1.2;margin:0 0 12px;letter-spacing:-.025em}.intro{font-size:1rem;color:var(--muted);margin:0 0 28px}form{display:grid;gap:17px}.field{display:flex;flex-direction:column;gap:7px}label,legend{font-size:.875rem;font-weight:600}.optional{font-size:.8125rem;font-weight:400;color:var(--muted);margin-left:7px}input,textarea,button{font:inherit}input:not([type=radio]),textarea{border:1px solid #d9cbd1;border-radius:8px;background:#fffdf9;color:var(--ink);width:100%;padding:13px 14px;font-size:1rem;min-height:48px}textarea{resize:vertical;line-height:1.5}::placeholder{color:#8a7d85;opacity:1}fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0;margin-bottom:10px}.choices,.counts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choices label{display:flex;align-items:center;gap:9px;border:1px solid #d9cbd1;padding:14px 10px;border-radius:8px;cursor:pointer;line-height:1.4;font-weight:500}.choices label:has(input:checked){background:var(--lavender);border-color:#92809d}.choices input{accent-color:var(--rose);width:17px;height:17px;flex-shrink:0;margin:0}.hint{font-size:.875rem;color:var(--muted);margin:0 0 12px}.submit{border:0;border-radius:8px;background:var(--rose);color:white;padding:16px 20px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:54px}.submit:hover{background:#754558}.submit:disabled{opacity:.6;cursor:wait}.privacy{font-size:.8125rem;color:var(--muted);text-align:center;margin:-8px 0 0;line-height:1.5}.error{color:#9a283e;background:#fcebed;padding:12px;border-radius:8px;font-size:.9375rem;line-height:1.5;margin:0}input:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid #ae91b7;outline-offset:3px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}[hidden]{display:none!important}#success{background:var(--sage);border:1px solid #d4dfcf;border-radius:70px 70px 10px 10px;padding:42px 24px;text-align:center;margin-top:30px;line-height:1.7}#success h3{font-size:2rem;line-height:1.25;margin:0}.success-star{font-size:3rem;color:#8e7753;margin:0 0 15px}.signature{font-size:1.1rem;font-style:italic}footer{text-align:center;font-family:Georgia,serif;font-style:italic;font-size:.875rem;color:var(--muted);padding:24px 8px 8px}@media(max-width:760px){body{padding:18px 12px}.storybook{grid-template-columns:1fr;border-radius:120px 120px 12px 12px / 60px 60px 12px 12px}.invitation{padding:44px 24px 28px}.invitation>.eyebrow{margin-bottom:8px}h1 span{font-size:4.7rem}.artwork{max-width:400px;margin-top:0}.reply{border-left:0;border-top:1px solid var(--line);padding:32px 24px}.reply>.eyebrow{max-width:none}h2{font-size:2.25rem}}@media(max-width:360px){.choices{grid-template-columns:1fr}.reply{padding:28px 18px}h1{font-size:1.8rem}h1 span{font-size:4rem}}

/* Colors drawn from the supplied birthday invitation. */
:root{--paper:#fff6e7;--ink:#5e4566;--muted:#796278;--rose:#a84359;--line:#eed6cd;--lavender:#f0e7f5;--blush:#ffe2d9;background:#f9ece3}body{background:radial-gradient(ellipse at 0 0,#f7e3d4,transparent 55%),radial-gradient(ellipse at 100% 90%,#eae0ef,transparent 60%)}.storybook{max-width:1200px;grid-template-columns:1.1fr 1fr;border-radius:20px;border-color:#ecd3c9}.invitation{padding:0;background:#fff2df}.original-invite{display:block;width:100%;height:auto}.event-details{padding:26px 24px 30px;border-top:1px dashed #e9b5a7}.event-details .venue{margin-top:15px}.reply-direction{font-size:.875rem;color:var(--muted);margin:18px 0 0}.reply{padding-top:44px;background:linear-gradient(145deg,#fff8ed,#fff4e8)}.reply h2{color:#826293}.submit{background:#aa4358}.submit:hover{background:#90384c}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.storybook{grid-template-columns:1fr;border-radius:14px}.invitation{padding:0}.event-details{padding:22px}.reply{padding:30px 24px}}

.mobile-nav{display:none}@media(max-width:760px){.mobile-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1200px;margin:0 auto 14px;padding:4px 5px;font-family:Georgia,serif;font-size:1rem}.mobile-nav a{color:var(--rose);font-family:system-ui,sans-serif;font-weight:600;padding:10px 14px;border:1px solid #dba5a8;border-radius:24px;text-decoration:none}.reply{scroll-margin-top:16px}#rsvp-title{scroll-margin-top:24px}}

.reply h2{margin-bottom:22px}.reply{padding-bottom:28px}

/* Balanced desktop form beside the square invitation. */
@media(min-width:761px){
 .reply{padding-top:36px;padding-bottom:24px}
 .reply>.eyebrow{margin-bottom:15px}
 .reply h2{margin-bottom:19px}
 form{gap:15px}
 .field{gap:7px}
 input:not([type=radio]),textarea{padding:12px 13px;min-height:46px}
 textarea{height:88px;min-height:88px}
 .choices label{padding:13px 10px}
 .submit{min-height:51px;padding:15px 19px}
 .privacy{margin:-4px 0 0}
}
