@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Lato:wght@300;400;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cream:#fdf8f2;--ivory:#f5ede0;--gold:#b8965a;--gold-dark:#8a6e3c;--text:#3a2e22;--text-light:#7a6652;--border:#e0d4c0;--white:#fff;--error:#c0392b;--shadow:0 4px 32px #5a3c141a}html,body{min-height:100%}body{background-color:var(--cream);color:var(--text);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 20% 10%,#b8965a14 0%,#0000 60%),radial-gradient(at 80% 90%,#b8965a14 0%,#0000 60%);font-family:Lato,Helvetica Neue,Arial,sans-serif;font-weight:300;line-height:1.65}.app{flex-direction:column;min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;align-items:center;gap:2rem;padding:2rem 1rem 3rem;display:flex}.app-header{text-align:center;padding:3rem 1rem 1.5rem}.wedding-date{letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;font-family:Lato,sans-serif;font-size:.85rem}.couple-names{color:var(--text);letter-spacing:.04em;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.2rem,6vw,3.5rem);font-style:italic;font-weight:300;line-height:1.15}.divider{color:var(--gold);letter-spacing:.5em;margin-top:1rem;font-size:1.1rem}.app-footer{text-align:center;letter-spacing:.12em;color:var(--text-light);border-top:1px solid var(--border);padding:1.5rem 1rem;font-size:.78rem}.rsvp-card,.thankyou-card,.notfound-card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:4px;width:100%;max-width:540px;padding:2.5rem}.rsvp-title{color:var(--text);text-align:center;letter-spacing:.03em;margin-bottom:1.25rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.75rem;font-weight:400}.rsvp-greeting{color:var(--text-light);text-align:center;margin-bottom:2rem;font-size:.95rem;line-height:1.7}.rsvp-greeting strong{color:var(--gold-dark);font-weight:700}.rsvp-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{border:none;flex-direction:column;gap:.5rem;padding:0;display:flex}.form-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);font-size:.8rem;font-weight:700}.optional{text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:300}.radio-group{flex-wrap:wrap;gap:.75rem;display:flex}.radio-label{border:1.5px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;flex:1;align-items:center;gap:.5rem;min-width:140px;padding:.85rem 1rem;font-size:.9rem;transition:border-color .2s,background .2s;display:flex}.radio-label input[type=radio]{display:none}.radio-label:hover{border-color:var(--gold)}.radio-label.active{border-color:var(--gold);color:var(--gold-dark);background:#fdf5e8;font-weight:700}.radio-icon{font-size:1.1rem}.form-select{border:1.5px solid var(--border);color:var(--text);background:var(--white);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b8965a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;border-radius:4px;padding:.65rem 2.5rem .65rem .85rem;font-family:Lato,sans-serif;font-size:.9rem;transition:border-color .2s}.form-select:focus{border-color:var(--gold);outline:none}.form-textarea{border:1.5px solid var(--border);color:var(--text);resize:vertical;border-radius:4px;min-height:80px;padding:.65rem .85rem;font-family:Lato,sans-serif;font-size:.9rem;line-height:1.55;transition:border-color .2s}.form-textarea:focus{border-color:var(--gold);outline:none}.form-textarea::placeholder{color:var(--border)}.form-error{color:var(--error);border:1px solid var(--error);background:#fdf2f2;border-radius:4px;padding:.6rem .85rem;font-size:.85rem}.btn-submit{background:var(--gold);color:var(--white);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;gap:.5rem;min-height:48px;margin-top:.5rem;padding:.9rem 2rem;font-family:Lato,sans-serif;font-size:.85rem;font-weight:700;transition:background .2s,transform .1s;display:flex}.btn-submit:hover:not(:disabled){background:var(--gold-dark)}.btn-submit:active:not(:disabled){transform:scale(.98)}.btn-submit:disabled{opacity:.65;cursor:not-allowed}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.thankyou-card,.notfound-card{text-align:center}.thankyou-icon,.notfound-icon{margin-bottom:1rem;font-size:3rem}.thankyou-title,.notfound-title{color:var(--text);margin-bottom:1rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.75rem;font-weight:400}.thankyou-text,.notfound-text{color:var(--text-light);margin-bottom:1.25rem;font-size:.95rem;line-height:1.7}.notfound-contact{color:var(--text-light);font-size:.85rem;font-style:italic}.thankyou-divider{color:var(--gold);letter-spacing:.4em;margin:1.25rem 0 .75rem}.thankyou-date{letter-spacing:.3em;color:var(--gold);text-transform:uppercase;font-family:Lato,sans-serif;font-size:.8rem}.loading{color:var(--text-light);font-style:italic}.slide-fade-enter-active{transition:all .3s ease-out}.slide-fade-leave-active{transition:all .2s ease-in}.slide-fade-enter-from,.slide-fade-leave-to{opacity:0;transform:translateY(-8px)}@media (width<=600px){.rsvp-card,.thankyou-card,.notfound-card{padding:1.75rem 1.25rem}.radio-group{flex-direction:column}.radio-label{min-width:unset}}.member-section{border:1px solid var(--border);background:var(--cream);border-radius:4px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.member-name{color:var(--text);align-items:center;gap:.5rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.1rem;font-weight:600;display:flex}.member-badge{font-size:1rem}.couple-photo-wrap{justify-content:center;margin-top:1.5rem;display:flex}.couple-photo{object-fit:cover;object-position:center top;border:1px solid var(--border);width:100%;max-width:380px;height:260px;box-shadow:var(--shadow);border-radius:4px}.info-card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:4px;width:100%;max-width:540px;padding:2rem 2.5rem}.info-title{color:var(--text);text-align:center;letter-spacing:.03em;margin-bottom:1.5rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:400}.info-section{margin-bottom:1.5rem}.info-section:last-child{margin-bottom:0}.info-section-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);margin-bottom:.75rem;font-size:.8rem;font-weight:700}.timeline{flex-direction:column;gap:.6rem;list-style:none;display:flex}.timeline-item{align-items:center;gap:1rem;display:flex}.timeline-time{color:var(--gold);min-width:60px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;font-weight:600}.timeline-label{color:var(--text);font-size:.9rem}.event-slot{flex-direction:column;gap:.3rem;display:flex}.event-slot-header{align-items:baseline;gap:.75rem;margin-bottom:.4rem;display:flex}.event-slot-time{color:var(--gold);min-width:56px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.3rem;font-weight:600}.event-slot-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);font-size:.8rem;font-weight:700}.event-slot-divider{border-top:1px solid var(--border);margin:1.25rem 0}.venue-name{color:var(--text);margin-bottom:.25rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.1rem;font-weight:600}.venue-address{color:var(--text-light);margin-bottom:.5rem;font-size:.9rem}.maps-link{color:var(--gold);font-size:.85rem;font-weight:700;text-decoration:none}.maps-link:hover{color:var(--gold-dark);text-decoration:underline}.donations-intro{color:var(--text-light);text-align:center;margin-bottom:1.5rem;font-size:.9rem;line-height:1.75}.associations-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.association-item{border:1px solid var(--border);border-radius:4px;transition:border-color .2s,background .2s}.association-item:hover{border-color:var(--gold);background:#fdf5e8}.association-link{color:var(--text);flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem 1rem;text-decoration:none;display:flex}.association-name{color:var(--gold-dark);font-size:.9rem;font-weight:700}.association-desc{color:var(--text-light);font-size:.85rem;line-height:1.6}@media (width<=600px){.info-card{padding:1.75rem 1.25rem}.couple-photo{max-width:100%;height:220px}}
