*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Montserrat,sans-serif;background:#dbeafe;color:#1e293b;min-height:100vh}.invite-wrapper{min-height:100vh;background:linear-gradient(160deg,#e8f4fb,#d6eaf8 60%,#cce0f5);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem 4rem;position:relative}.btn-home{position:absolute;top:1.2rem;left:1.2rem;color:#5a8fa8;text-decoration:none;font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:.4rem;letter-spacing:.04em;transition:color .2s}.btn-home:hover{color:#2c6284}.lion-img{width:min(260px,65vw);height:auto;margin-bottom:2rem;drop-shadow:drop-shadow(0 8px 24px rgba(0,0,0,.15));filter:drop-shadow(0 6px 18px rgba(0,0,0,.12))}.invite-tagline{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(1rem,3vw,1.2rem);letter-spacing:.1em;color:#4a6a80;margin-bottom:.5rem}.invite-title{font-family:Cormorant Garamond,serif;font-weight:600;font-size:clamp(1.5rem,5vw,2.4rem);letter-spacing:.25em;color:#1e293b;text-transform:uppercase;margin-bottom:.2rem}.invite-name{font-family:Alex Brush,cursive;font-size:clamp(5.5rem,20vw,10rem);color:#7aabcf;line-height:1;margin-bottom:1rem;margin-top:.5rem}.date-block{text-align:center;margin-bottom:2rem}.date-month{font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.35em;color:#4a6a80;text-transform:uppercase;margin-bottom:.6rem}.date-row{display:flex;align-items:center;justify-content:center;gap:1.8rem;max-width:380px;margin:0 auto}.date-side{font-size:.72rem;font-weight:600;letter-spacing:.25em;color:#4a6a80;text-transform:uppercase;text-align:center;border-top:1.5px solid #4a6a80;border-bottom:1.5px solid #4a6a80;padding:5px 0;width:90px;flex-shrink:0}.date-day{font-family:Cormorant Garamond,serif;font-size:clamp(3rem,10vw,5rem);font-weight:300;color:#7aabcf;line-height:1;position:relative;top:-.3em}.date-year{font-size:.8rem;font-weight:600;letter-spacing:.35em;color:#4a6a80;text-transform:uppercase;margin-top:.5rem;position:relative;top:-1em}.venue-block{text-align:center;font-size:clamp(.78rem,2.2vw,.92rem);font-weight:300;letter-spacing:.08em;color:#2c5168;line-height:2}.venue-name{font-weight:600}.maps-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.2rem;color:#2c82b0;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-decoration:none;border:1px solid #7aabcf;padding:.45rem 1rem;border-radius:2rem;transition:all .25s}.maps-link:hover{background:#7aabcf;color:#fff}.cta-btn{display:inline-flex;align-items:center;gap:.6rem;margin-top:2.5rem;background:linear-gradient(135deg,#7aabcf,#4a8ab5);color:#fff;font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.08em;padding:1rem 2.5rem;border-radius:2rem;text-decoration:none;box-shadow:0 4px 18px #4a8ab559;transition:all .3s}.cta-btn:hover{background:linear-gradient(135deg,#4a8ab5,#2c6284);transform:translateY(-2px);box-shadow:0 7px 24px #2c628466}.rsvp-wrapper{background:linear-gradient(160deg,#c8dff0,#d6eaf8);padding:4rem 1.5rem 5rem;display:flex;flex-direction:column;align-items:center}.rsvp-card{background:#ffffffeb;border-radius:1.5rem;padding:2.5rem 2rem;max-width:580px;width:100%;box-shadow:0 8px 32px #4a8ab526}.rsvp-title{font-family:Cormorant Garamond,serif;font-weight:600;font-size:clamp(1.5rem,5vw,2rem);letter-spacing:.15em;text-align:center;color:#1e293b;margin-bottom:.4rem}.rsvp-subtitle{text-align:center;font-size:.88rem;color:#5a8fa8;margin-bottom:2rem;letter-spacing:.04em}.form-group{margin-bottom:1.4rem}.form-group>label{display:block;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#4a6a80;margin-bottom:.45rem}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:.75rem 1rem;border:1.5px solid #b8d4e8;border-radius:.75rem;font-size:.97rem;font-family:Montserrat,sans-serif;background:#f7fbff;color:#1e293b;transition:border-color .25s,box-shadow .25s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#7aabcf;box-shadow:0 0 0 3px #7aabcf33}.form-group textarea{min-height:90px;resize:vertical}.allergens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.allergen-label{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:400;text-transform:none;letter-spacing:0;color:#334155;cursor:pointer;padding:.4rem .6rem;border:1.5px solid #c8dff0;border-radius:.75rem;background:#f7fbff;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.allergen-label input[type=checkbox]{width:1rem;height:1rem;accent-color:#7aabcf;cursor:pointer;flex-shrink:0}.allergen-label:has(input:checked){background:#dbeafe;border-color:#7aabcf;color:#1e4f6a;font-weight:600}.submit-btn{width:100%;margin-top:.5rem;padding:1rem;background:linear-gradient(135deg,#7aabcf,#4a8ab5);color:#fff;font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.08em;border:none;border-radius:2rem;cursor:pointer;box-shadow:0 4px 18px #4a8ab54d;transition:all .3s}.submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#4a8ab5,#2c6284);transform:translateY(-2px)}.submit-btn:disabled{background:#b8d4e8;cursor:not-allowed;transform:none}.toast{position:fixed;top:1.5rem;right:1.5rem;padding:1rem 1.8rem;border-radius:1rem;font-weight:600;font-size:.95rem;box-shadow:0 4px 20px #00000026;z-index:9999;display:none;align-items:center;gap:.6rem;opacity:1;transition:opacity .3s}.toast-success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.toast-error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.allergen-section{border:1.5px solid #b8d4e8;border-radius:1rem;padding:1.2rem 1rem 1rem;margin-bottom:1.4rem;background:#f0f8ff}.allergen-section-title{font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4a6a80;margin-bottom:.3rem}.allergen-section-hint{font-size:.82rem;color:#5a8fa8;font-style:italic;margin-bottom:1rem;line-height:1.5}.add-person-btn{display:inline-flex;align-items:center;gap:.4rem;margin-top:.4rem;padding:.55rem 1.2rem;border:1.5px solid #7aabcf;border-radius:2rem;background:#fff;color:#2c82b0;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:all .2s}.add-person-btn:hover{background:#7aabcf;color:#fff}.person-card{border:1.5px solid #b8d4e8;border-radius:1rem;padding:1.1rem 1rem .4rem;margin-bottom:1rem;background:#eef6fd}.person-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;padding-bottom:.5rem;border-bottom:1px solid #b8d4e8}.person-number{font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#4a8ab5}.person-remove-btn{background:none;border:none;cursor:pointer;color:#94a3b8;font-size:1rem;line-height:1;padding:.15rem .4rem;border-radius:.4rem;transition:color .2s,background .2s}.person-remove-btn:hover{color:#dc2626;background:#fee2e2}.person-card .form-group{margin-bottom:.9rem}.invite-guests{font-family:Cormorant Garamond,serif;font-size:clamp(1rem,3.5vw,1.4rem);font-weight:400;font-style:italic;color:#4a6a80;letter-spacing:.06em;text-align:center;margin-bottom:1.2rem}@media(max-width:480px){.invite-name{font-size:4.5rem}.date-side{width:70px}.rsvp-card{padding:1.8rem 1.2rem}.allergens-grid{grid-template-columns:1fr 1fr}}
