@import "https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap";*{box-sizing:border-box}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}html,body,#root{min-height:100%;margin:0}.app-shell{place-items:center;min-height:100svh;padding:1.5rem;display:grid;position:relative;overflow:hidden}.background-layer,.overlay-layer{position:absolute;inset:0}.background-layer{filter:blur(1px);background-image:url(https://upload.wikimedia.org/wikipedia/commons/c/c9/Long_Wedding_Dress_for_Couple_with_Flowers.jpg);background-position:50%;background-size:cover;transform:scale(1.03)}.overlay-layer{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1612167a}.card-layer{z-index:1;width:min(920px,100%);position:relative}.rsvp-card{background:#fffffff5;border-radius:24px;max-height:calc(100svh - 3rem);padding:2.25rem;overflow-y:auto;box-shadow:0 24px 60px #0e0b1040}.rsvp-label{text-transform:uppercase;letter-spacing:.28em;color:#6f6771;margin-bottom:.75rem;font-family:Cormorant Garamond,Georgia,serif;font-size:.74rem}.rsvp-heading{color:#1f1920;margin:0;font-size:clamp(1.9rem,4vw,3.1rem);font-weight:700;line-height:1.1}.rsvp-description{color:#5c545e;max-width:66ch;margin:.95rem 0 0}.step-content{margin-top:2rem}.step-footer{margin-top:1.4rem}.step-stack{gap:1rem;display:grid}.landing-name{color:#1f1920;margin:0;font-size:clamp(2rem,4.2vw,3.4rem);font-weight:700;line-height:1.05}.wedding-line{color:#3f3540;letter-spacing:.01em;margin:0;font-family:Great Vibes,cursive;font-size:clamp(2.5rem,5.6vw,4rem);font-style:normal;line-height:1.2}.invite-date{color:#4d444f;margin:-.35rem 0 0;font-size:1rem;font-weight:600}.landing-photo{object-fit:cover;border:1px solid #e8e1ea;border-radius:14px;width:100%;height:clamp(180px,30vw,290px)}.details-grid{gap:.9rem;display:grid}.detail-card{background:#f8f5f9;border:1px solid #e8e1ea;border-radius:14px;gap:.35rem;padding:.95rem;display:grid}.detail-card-title{color:#241d25;margin:0 0 .15rem;font-size:1rem}.detail-line{color:#4f4651;margin:0;line-height:1.4}.detail-label{color:#2f2730;font-weight:600}.venue-photo{object-fit:cover;border:1px solid #e1d9e3;border-radius:10px;width:100%;height:clamp(150px,24vw,220px);margin-bottom:.35rem}.important-info-card{gap:.55rem}.step-fade{animation:.24s fadeSlide}@keyframes fadeSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.form-group{gap:.5rem;display:grid}.question-label{color:#231e24;font-size:.96rem;font-weight:600}input,select,textarea{box-sizing:border-box;width:100%;font:inherit;color:#231e24;background:#fff;border:1px solid #d9d4db;border-radius:13px;padding:.78rem .92rem}input:focus,select:focus,textarea:focus{border-color:#231e24;outline:2px solid #231e241f}.choice-row{flex-wrap:wrap;gap:.6rem;display:flex}.choice-pill{color:#2e2830;background:#faf9fb;border:1px solid #d9d4db;border-radius:999px;align-items:center;gap:.4rem;padding:.52rem .88rem;display:inline-flex}.choice-pill input{width:auto}.action-row{justify-content:flex-end;gap:.7rem;margin-top:.3rem;display:flex}.primary-button,.secondary-button{cursor:pointer;border:none;border-radius:999px;padding:.86rem 1.35rem;font-size:.98rem}.primary-button{color:#fff;background:#111}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{color:#262026;background:#ece8ed}.field-error{color:#ad2e4f;margin:0;font-size:.86rem}.muted-copy{color:#5f5660;margin:0}.micro-copy{color:#7a727d;margin:0;font-size:.88rem}.photo-sources{color:#89808d;margin:.2rem 0 0;font-size:.72rem;line-height:1.35}.chip-wrap{flex-wrap:wrap;gap:.5rem;display:flex}.chip{color:#342d35;background:#f2edf4;border-radius:999px;padding:.44rem .8rem;font-size:.9rem}.meal-grid{gap:.9rem;display:grid}.review-grid{gap:.95rem;display:grid}.review-block{background:#f6f3f7;border-radius:15px;padding:.95rem}.review-block h3{margin:0 0 .5rem;font-size:1rem}.review-block p{margin:.32rem 0}.progress-wrapper{gap:.4rem;display:grid}.progress-text{color:#675f69;font-size:.82rem}.progress-track{background:#ece8ed;border-radius:999px;height:6px;overflow:hidden}.progress-fill{background:#111;height:100%;transition:width .26s}.success-title{color:#251f26;margin:0;font-size:1.25rem;font-weight:700}@media (width<=768px){.app-shell{padding:1rem}.rsvp-card{border-radius:20px;padding:1.3rem}.action-row{flex-wrap:wrap;justify-content:stretch}.action-row .primary-button,.action-row .secondary-button{flex:1 1 0}}
