:root{color-scheme:light;--cream:#fff9f2;--paper:#fffaf5;--rose:#bd7c85;--rose-deep:#a96d78;--rose-light:#f5dfe0;--text:#655048;--soft:#937c73;--gold:#d9ac75;--border:#e9d6ca;--shadow:0 18px 55px rgba(152,104,93,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100svh;font-family:'DM Sans',sans-serif;background:radial-gradient(ellipse 440px 530px at 2% 16%,#f7dcd7bb,transparent 80%),radial-gradient(ellipse 480px 460px at 100% 9%,#fdecccbb,transparent 77%),radial-gradient(ellipse 560px 510px at 98% 95%,#f5dadbbb,transparent 85%),radial-gradient(ellipse 600px 560px at 15% 90%,#fae8d4af,transparent 85%),#fff9f2;color:var(--text)}a{color:inherit}.page-grain{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E")}.site-sparkles{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.site-header{position:relative;z-index:2;max-width:1240px;margin:auto;padding:23px 44px 8px;display:flex;align-items:center;justify-content:space-between;gap:16px}.identity{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;color:#986c70;font-size:24px;letter-spacing:-1.5px}.identity-icon{display:grid;place-items:center;width:34px;height:34px}.identity-serif{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-1.4px}.identity-dot{color:#d9a0aa}.header-cta{text-decoration:none;color:var(--rose-deep);font-size:12px;letter-spacing:.02em;font-weight:700;padding:11px 18px;border:1px solid #dcb9b7;border-radius:999px;background:#fff9f6b2;transition:background .2s,transform .2s}.header-cta:hover{background:#fce8e7;transform:translateY(-2px)}.header-cta span{font-size:15px;margin-left:4px}
.layout{position:relative;z-index:1;max-width:1200px;margin:15px auto 35px;padding:0 36px;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(430px,1.08fr);gap:clamp(25px,5vw,80px);align-items:center}.invitation{min-width:0;position:relative;display:flex;flex-direction:column;align-items:center}.invitation-halo{position:absolute;inset:8% -12%;z-index:-1;background:radial-gradient(ellipse,#e9bdbc70 0%,#fceada50 43%,transparent 72%);filter:blur(19px)}.invitation-video-frame{width:min(100%,445px);aspect-ratio:9/16;max-height:74vh;position:relative;overflow:hidden;border-radius:5px;box-shadow:0 27px 54px #aa76653a,0 2px 9px #96604420;outline:9px solid #fffdf9c0}.invitation-video{width:100%;height:100%;object-fit:fill;display:block;background:#fef8f2}.video-caption{margin:23px 0 0;text-align:center;font:400 19px 'Great Vibes',cursive;letter-spacing:.015em;color:var(--rose-deep)}.video-caption span{padding:0 9px;color:var(--gold);font:16px 'Playfair Display',serif}
.rsvp-section{position:relative;max-width:590px;width:100%;justify-self:center}.rsvp-card{position:relative;background:linear-gradient(135deg,#fffdf8f8,#fff8f4f8);border-radius:20px;box-shadow:var(--shadow);border:1px solid #f6ebe0;overflow:hidden}.rsvp-card:before{position:absolute;content:'';width:160px;height:140px;left:-65px;bottom:45px;border-radius:50%;background:#eed3d44a;filter:blur(28px)}.rsvp-card:after{position:absolute;content:'✦';right:22px;top:95px;font-size:30px;color:#eccb9e99;transform:rotate(12deg)}.bunting{position:relative;height:78px;overflow:hidden}.bunting svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 2px #dbb0a044)}.card-content{position:relative;z-index:1;padding:0 clamp(22px,4.1vw,52px) 33px}.eyebrow{text-align:center;letter-spacing:.26em;font-size:10px;font-weight:700;color:#c99b9c;margin:5px 0 15px}.tiny-star{font-size:18px;letter-spacing:0;vertical-align:-2px;padding:0 10px;color:#e0b784}h1{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(30px,3.3vw,46px);line-height:1.14;letter-spacing:-.03em;text-align:center;margin:0;color:#75554d}h1 span{font:400 clamp(47px,5.4vw,72px) 'Great Vibes',cursive;color:var(--rose);line-height:1.04;letter-spacing:0}.intro{max-width:390px;margin:15px auto 24px;font:400 13px/1.9 'DM Sans',sans-serif;text-align:center;color:#947d71}.intro strong{font-weight:600;color:var(--rose-deep)}.event-meta{border-top:1px solid #edddd4;border-bottom:1px solid #edddd4;display:grid;grid-template-columns:1fr 1fr;gap:0;padding:15px 0;margin:0 auto}.event-meta-item{display:flex;align-items:flex-start;gap:11px;padding:10px 9px}.location-item{grid-column:1/-1;border-top:1px solid #f2e5db;margin-top:6px;padding-top:17px}.event-icon{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#f9e9e4;color:#c08a8c}.event-icon svg{width:17px;height:17px}.meta-label{display:block;color:#bc9890;font-size:10px;letter-spacing:.15em;font-weight:700;margin:1px 0 4px}.meta-value{display:block;color:#6c5149;font-size:12px;line-height:1.45;font-weight:600}.map-link{display:inline-block;font-size:11px;color:var(--rose-deep);text-underline-offset:3px;margin-top:5px;font-weight:700}.soft-divider{display:flex;gap:13px;align-items:center;margin:14px auto 17px;color:#d6a0a5;font:25px 'Great Vibes',cursive}.soft-divider:before,.soft-divider:after{content:'';height:1px;background:#eedbd5;flex:1}.form-heading{text-align:center}.step-pill{letter-spacing:.38em;color:#b9888a;font-size:10px;font-weight:700}.form-heading h2{font:400 25px 'Playfair Display',serif;color:#79574f;margin:7px 0 8px}.form-heading p{font-size:12px;color:#9d887d;line-height:1.6;margin:0 auto 25px;max-width:340px}.form-field{margin:0 0 21px}.form-field label,.attendance-field legend{display:block;font-size:12px;color:#745850;font-weight:700;margin-bottom:9px}.required{color:#d39096}.form-field input,.form-field textarea{font:400 13px 'DM Sans',sans-serif;display:block;width:100%;background:#fffefd;color:#614b43;border:1px solid #ead9cf;border-radius:11px;padding:15px 16px;outline:0;transition:border-color .2s,box-shadow .2s}.form-field input::placeholder,.form-field textarea::placeholder{color:#c4b5ab}.form-field input:focus,.form-field textarea:focus{border-color:#d5a0a1;box-shadow:0 0 0 4px #f3e3e4}.field-help{display:block;font:400 10px 'DM Sans',sans-serif;color:#b4a096;margin:7px 0 0 3px}.attendance-field{border:0;padding:0;margin:0 0 22px;min-width:0}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-option{min-height:60px;position:relative;background:#fffefd;border:1px solid #ead9cf;border-radius:12px;display:flex;align-items:center;gap:7px;padding:11px 9px;cursor:pointer;font-size:11px;font-weight:600;color:#856b65;transition:.2s ease}.attendance-option:hover{border-color:#d8a4aa;background:#fff6f6}.attendance-option:has(input:checked){background:#fff0f1;border-color:#c99098;box-shadow:0 0 0 2px #f8e0e4}.attendance-option input{position:absolute;opacity:0;width:1px;height:1px}.attendance-option:has(input:focus-visible){outline:3px solid #d1a7ab;outline-offset:2px}.option-mark{font-size:19px;color:#d2979f;line-height:1}.no-mark{color:#c5b0a9}.option-radio{border:1px solid #d8bfc0;width:14px;height:14px;border-radius:50%;margin-left:auto;flex:0 0 14px;background:white}.attendance-option:has(input:checked) .option-radio{border:4px solid #bf828b}.optional{font-size:11px;color:#bca59d;font-weight:400}.form-field textarea{resize:vertical;min-height:84px}.message-field{margin-bottom:16px}.submit-btn{width:100%;background:linear-gradient(110deg,#c98994,#b97886);border:1px solid #b97e87;border-radius:12px;padding:16px 19px;color:#fff;font:700 13px 'DM Sans',sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:space-between;box-shadow:0 7px 19px #c48c9344;transition:transform .2s,box-shadow .2s,filter .2s}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 10px 23px #c48c935e;filter:brightness(1.04)}.submit-btn:disabled{opacity:.65;cursor:wait;transform:none}.button-heart{font-size:23px;font-family:serif;font-weight:400;line-height:.7}.privacy-note{font-size:10px;text-align:center;color:#ab9991;margin:15px 0 0}.hidden-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%);white-space:nowrap}.form-error{background:#fff1f1;border:1px solid #edb5b5;border-radius:8px;padding:11px 14px;font-size:12px;color:#945460}.confirmation{text-align:center;padding:21px 6px 35px;animation:rise .6s ease}.confirmation-heart{width:70px;height:70px;border-radius:50%;margin:0 auto 18px;background:#fce9ea;color:#bd828d;font:54px 'Great Vibes',cursive;display:grid;place-items:center;line-height:1}.confirmation h2{font:400 28px 'Playfair Display',serif;color:#79574f;margin:0 0 12px}.confirmation p{font-size:13px;line-height:1.9;color:#92766f;margin:0 0 23px}.another-response{border:1px solid #cf9da2;background:#fff8f8;border-radius:999px;padding:12px 21px;color:#a96d78;font:700 12px 'DM Sans',sans-serif;cursor:pointer}.closing-phrase{text-align:center;font:400 32px 'Great Vibes',cursive;color:var(--rose);margin:20px 0 0}.closing-phrase span{font-family:serif;color:#daabb2}.footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:14px 24px 27px;font-size:11px;color:#ab9286}.footer strong{font-weight:600;color:#a8767d}.footer-dot{color:#d7b07b}@keyframes rise{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:925px){.site-header{padding:20px 25px 5px}.layout{grid-template-columns:1fr;max-width:650px;gap:36px;margin-top:17px}.invitation-video-frame{max-height:none;width:min(100%,390px)}.rsvp-section{max-width:550px}.video-caption{margin-top:22px}}
@media(max-width:520px){.site-header{padding:14px 18px 12px}.identity{font-size:22px}.header-cta{font-size:10px;padding:9px 11px}.layout{padding:0 17px;gap:25px;margin:3px auto 30px}.invitation-video-frame{width:min(100%,360px);outline:5px solid #fffdf9c0}.video-caption{margin-top:17px;font-size:17px}.rsvp-card{border-radius:17px}.bunting{height:63px}.card-content{padding:0 23px 29px}.eyebrow{margin-top:0}.rsvp-card:after{font-size:20px;top:72px}.intro{font-size:12px;line-height:1.8}.event-meta-item{gap:7px;padding-left:3px;padding-right:1px}.meta-value{font-size:11px}.attendance-options{gap:7px}.attendance-option{font-size:10px;padding:9px 6px;gap:5px}.option-mark{font-size:17px}.option-radio{width:12px;height:12px;flex-basis:12px}.form-heading h2{font-size:23px}.closing-phrase{font-size:28px}.footer{gap:10px;padding-bottom:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
