@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500&display=swap";@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap";:root{--primary: #4a6b8a;--primary-light: #5d7a99;--primary-lighter: #6b8aa8;--background: #faf9f7;--card-bg: #ffffff;--white: #ffffff;--cream: #f5f5f0;--text-primary: #3d3d3d;--text-secondary: #5a5a5a;--text-muted: #7a7a7a;--border: #e0deda;--vegan-green: #2e7d32;--vegan-bg: #e8f5e9;--primary-blue: #4a6b8a}body{font-family:Cormorant Garamond,Georgia,serif;font-weight:400;line-height:1.6;color:var(--text-primary);background-color:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%}h1,h2,h3,h4,h5,h6{font-family:Cormorant Garamond,Georgia,serif;font-weight:300;letter-spacing:.05em}a{color:var(--primary);text-decoration:none;transition:opacity .2s ease}a:hover{opacity:.8}button{font-family:Cormorant Garamond,Georgia,serif;cursor:pointer;border:none;background:none}input,textarea{font-family:Cormorant Garamond,Georgia,serif}.legible-text{font-family:Cormorant Garamond,Georgia,serif;font-weight:500;font-size:1em;letter-spacing:.05em}.password-gate{min-height:100vh;background:linear-gradient(135deg,#4a6b8a,#5d7a99,#6b8aa8);display:flex;align-items:center;justify-content:center;padding:2rem}.password-content{text-align:center;color:var(--white)}.couple-names{font-family:Cormorant Garamond,serif;font-size:4rem;font-weight:300;letter-spacing:.15em;margin-bottom:.5rem;color:var(--white)}.wedding-date{font-size:1.2rem;letter-spacing:.4em;margin-bottom:3rem;font-weight:300}.password-form{display:flex;flex-direction:column;align-items:center;gap:1rem}.password-input{width:320px;padding:1rem 1.5rem;border:none;border-radius:50px;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-style:italic;text-align:center;background:var(--white);color:#888;outline:none}.password-input::placeholder{color:#aaa;font-style:italic}.password-input:focus{box-shadow:0 0 0 2px #ffffff4d}.enter-button{padding:.75rem 3rem;border:1px solid var(--white);border-radius:50px;background:transparent;color:var(--white);font-family:Cormorant Garamond,serif;font-size:.9rem;letter-spacing:.3em;cursor:pointer;transition:all .3s ease}.enter-button:hover{background:var(--white);color:var(--primary-blue)}.enter-button:disabled{opacity:.6;cursor:not-allowed}.error-message{margin-top:1rem;color:#fcc;font-size:.9rem}@media(max-width:480px){.couple-names{font-size:2.5rem}.password-input{width:280px}}.venue-card{background:var(--card-bg);border-radius:16px;padding:2.5rem 2rem;text-align:center;box-shadow:0 4px 20px #4a6b8a14;border:1px solid var(--border);transition:transform .3s ease,box-shadow .3s ease}.venue-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #4a6b8a1f}.venue-card-icon{color:var(--primary);margin-bottom:1.25rem;display:flex;justify-content:center}.venue-card-label{display:block;font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.75rem}.venue-card-name{font-size:1.5rem;font-weight:400;color:var(--text-primary);margin-bottom:.75rem;letter-spacing:.02em}.venue-card-address{font-size:1rem;color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.5}.venue-card-time{font-size:.95rem;color:var(--primary);font-style:italic;line-height:1.6}@media(max-width:768px){.venue-card{padding:2rem 1.5rem}.venue-card-name{font-size:1.3rem}}.accordion{max-width:700px;margin:0 auto}.accordion-item{border-bottom:1px solid var(--border)}.accordion-item:first-child{border-top:1px solid var(--border)}.accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;background:none;border:none;cursor:pointer;text-align:left;transition:color .2s ease}.accordion-header:hover{color:var(--primary)}.accordion-title{font-size:1.1rem;font-weight:400;letter-spacing:.05em;color:var(--text-primary)}.accordion-icon{font-size:1.5rem;font-weight:300;color:var(--primary);transition:transform .3s ease}.accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease}.accordion-item.is-open .accordion-content{max-height:500px}.accordion-content-inner{padding:0 0 1.5rem;color:var(--text-secondary);font-size:1rem;line-height:1.8}.accordion-content-inner p{margin-bottom:.75rem}.accordion-content-inner p:last-child{margin-bottom:0}.accordion-content-inner ul{margin:.5rem 0;padding-left:1.5rem}.accordion-content-inner li{margin-bottom:.5rem}.accordion-content-inner a{color:var(--primary);text-decoration:underline}.accordion-content-inner a:hover{opacity:.8}@media(max-width:768px){.accordion-title{font-size:1rem}.accordion-content-inner{font-size:.95rem}}.envelope-wrapper{width:100%;display:flex;justify-content:center;align-items:center;margin:3rem auto;padding:0 1rem;box-sizing:border-box}.envelope-btn{position:relative;width:100%;max-width:400px;background:none;border:none;cursor:pointer;padding:0;perspective:800px}.envelope-btn:focus-visible{outline:2px solid var(--primary);outline-offset:8px;border-radius:4px}.envelope-btn:disabled{cursor:default}.envelope-svg{width:100%;height:auto;display:block;filter:drop-shadow(0 4px 12px rgba(74,107,138,.3));transition:filter .3s ease,transform .3s ease}.envelope-btn:hover:not(:disabled) .envelope-svg{filter:drop-shadow(0 8px 24px rgba(74,107,138,.4));transform:translateY(-4px)}.envelope-body{fill:#4a6b8a}.envelope-flap{fill:#5d7a99;transform-origin:200px 0;transition:transform .5s cubic-bezier(.4,0,.2,1)}.envelope-text{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);font-size:2rem;font-weight:300;letter-spacing:.4em;color:#ffffffe6;pointer-events:none}.envelope-btn.opening .envelope-flap,.envelope-btn.open .envelope-flap{transform:rotateX(180deg)}.envelope-btn.opening{animation:envelopeFadeOut .6s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}@keyframes envelopeFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.envelope-btn.closing{animation:envelopeFadeIn .5s cubic-bezier(.4,0,.2,1) forwards}.envelope-btn.closing .envelope-flap{transform:rotateX(0);transition-delay:.1s}@keyframes envelopeFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.envelope-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.envelope-overlay.opening{animation:overlayFadeIn .4s cubic-bezier(.4,0,.2,1) forwards}.envelope-overlay.closing{animation:overlayFadeOut .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}.envelope-modal{background:var(--card-bg, white);border-radius:20px;width:100%;max-width:700px;min-height:600px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d}.envelope-modal.opening{animation:modalEmerge .5s cubic-bezier(.16,1,.3,1) .1s both}.envelope-modal.closing{animation:modalRetreat .4s cubic-bezier(.4,0,1,1) forwards}@keyframes modalEmerge{0%{opacity:0;transform:scale(.85) translateY(60px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalRetreat{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.85) translateY(60px)}}.envelope-close{position:sticky;top:1rem;float:right;margin:1rem;width:40px;height:40px;border-radius:50%;background:var(--background, #faf9f7);border:1px solid var(--border, #e0deda);font-size:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;color:var(--text-primary, #3d3d3d);transition:background .2s,transform .2s}.envelope-close:hover{background:var(--border, #e0deda);transform:scale(1.05)}.envelope-content{padding:2.5rem 3rem 3rem}@media(max-width:640px){.envelope-wrapper{margin:2rem 0;padding:0 1rem}.envelope-text{font-size:1.5rem}.envelope-overlay{align-items:flex-end;padding:0}.envelope-modal{max-height:95vh;border-radius:20px 20px 0 0}.envelope-modal.opening{animation:modalSlideUp .5s cubic-bezier(.16,1,.3,1) .1s both}.envelope-modal.closing{animation:modalSlideDown .4s cubic-bezier(.4,0,1,1) forwards}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.envelope-content{padding:2rem 1.5rem}}@media(prefers-reduced-motion:reduce){.envelope-flap,.envelope-svg,.envelope-btn,.envelope-overlay,.envelope-modal{animation-duration:.01ms!important;transition-duration:.01ms!important}}.rsvp-form{margin-top:-1rem}.rsvp-step{margin-bottom:2rem;opacity:.5;transition:opacity .3s ease}.rsvp-step.active{opacity:1}.rsvp-step.completed{opacity:.7}.step-label{display:block;font-size:.8rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem}.section-title{font-size:1.2rem;font-weight:400;letter-spacing:.1em;color:var(--primary);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.search-container{position:relative;z-index:50}.search-input,.text-input{width:100%;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:12px;font-size:1.1rem;color:var(--text-primary);background:var(--card-bg);transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.search-input:focus,.text-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4a6b8a1a}.search-input::placeholder,.text-input::placeholder{color:var(--text-muted);font-style:italic}.search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;max-height:200px;overflow-y:auto;box-shadow:0 8px 24px #0000001a;z-index:100;list-style:none;padding:0;margin:.5rem 0 0}.search-dropdown li{padding:1rem 1.25rem;cursor:pointer;transition:background .2s ease}.search-dropdown li:hover{background:var(--background)}.search-dropdown li:first-child{border-radius:12px 12px 0 0}.search-dropdown li:last-child{border-radius:0 0 12px 12px}.name-confirmation{display:flex;flex-direction:column;gap:.75rem}.selected-name{padding:1rem 1.25rem;border:1px solid var(--border);border-radius:12px;font-size:1.1rem;color:var(--text-primary);background:var(--background)}.selected-name.completed{opacity:.8}.confirm-msg{padding:.75rem 1rem;background:#fff8e1;border-radius:8px;font-size:.9rem;color:#f57c00;font-style:italic;margin:0}.confirm-actions{display:flex;gap:.75rem;align-items:center}.btn-secondary{padding:.75rem 1.25rem;background:transparent;border:1px solid var(--border);border-radius:50px;font-size:.9rem;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text-primary)}.btn-primary{padding:.75rem 2rem;background:var(--primary);color:var(--white);border:none;border-radius:50px;font-size:.9rem;letter-spacing:.05em;cursor:pointer;transition:background .2s ease,transform .2s ease;margin-top:1rem}.btn-primary:hover{background:var(--primary-light);transform:translateY(-2px)}.btn-group{display:flex;gap:1rem}.btn-choice{flex:1;padding:1.25rem 1.5rem;border:2px solid var(--border);border-radius:12px;font-size:1.1rem;font-weight:400;color:var(--text-primary);background:var(--card-bg);cursor:pointer;transition:all .2s ease}.btn-choice:hover{border-color:var(--primary);color:var(--primary)}.btn-choice.selected{border-color:var(--primary);background:var(--primary);color:var(--white)}.btn-choice.decline.selected{background:var(--text-muted);border-color:var(--text-muted)}.menu-disclaimer{font-size:.9rem;color:var(--text-muted);font-style:italic;margin:0 0 1rem}.food-options{display:flex;flex-direction:column;gap:.75rem}.food-option{padding:1.25rem 1.5rem;border:2px solid var(--border);border-radius:12px;font-size:1.1rem;font-weight:400;color:var(--text-primary);background:var(--card-bg);cursor:pointer;transition:all .2s ease;display:flex;justify-content:space-between;align-items:center;text-align:left}.food-option:hover{border-color:var(--primary)}.food-option.selected{border-color:var(--primary);background:#4a6b8a14}.vegan{font-size:.7rem;font-weight:500;letter-spacing:.1em;padding:.25rem .75rem;background:var(--vegan-bg);color:var(--vegan-green);border-radius:50px}.text-area{width:100%;min-height:100px;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:12px;font-size:1rem;color:var(--text-primary);background:var(--card-bg);resize:vertical;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box;font-family:inherit}.text-area:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4a6b8a1a}.text-area::placeholder{color:var(--text-muted);font-style:italic}.rsvp-step.review{border-top:1px solid var(--border);padding-top:2rem}.review-title{font-size:1.5rem;font-weight:400;color:var(--text-primary);margin-bottom:1.5rem;text-align:center}.summary-card{background:var(--background);border-radius:12px;padding:1.5rem;margin-bottom:1rem}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.summary-header h4{font-size:1.1rem;font-weight:500;color:var(--primary);margin:0}.edit-btn{font-size:.85rem;color:var(--primary);cursor:pointer;text-decoration:underline;background:none;border:none;padding:0}.edit-btn:hover{opacity:.7}.summary-row{display:flex;justify-content:space-between;padding:.5rem 0}.summary-row span:first-child{color:var(--text-muted);font-size:.95rem}.summary-row span:last-child{color:var(--text-primary);font-weight:400;text-align:right;max-width:60%}.btn-submit{width:100%;margin-top:1.5rem;padding:1.25rem 2rem;background:linear-gradient(135deg,#4a6b8a,#5d7a99);color:var(--white);border:none;border-radius:12px;font-size:1.2rem;font-weight:400;letter-spacing:.1em;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #4a6b8a4d}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.rsvp-success{text-align:center;padding:3rem 1rem}.success-icon{width:80px;height:80px;background:var(--vegan-bg);color:var(--vegan-green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 2rem}.rsvp-success h2{font-size:2rem;font-weight:400;color:var(--text-primary);margin-bottom:1rem}.rsvp-success p{font-size:1.2rem;color:var(--text-secondary);font-style:italic}@media(max-width:600px){.btn-group{flex-direction:column}.summary-row{flex-direction:column;gap:.25rem}.summary-row span:last-child{max-width:100%;text-align:left}}.wedding-home{min-height:100vh;background:var(--background)}.hero{padding:6rem 2rem;background:linear-gradient(135deg,#4a6b8a,#5d7a99,#6b8aa8);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--white)}.hero-content h1{font-size:4rem;font-weight:300;letter-spacing:.15em;margin-bottom:1rem}.hero-content .date{font-size:1.5rem;letter-spacing:.3em;font-weight:300}main{max-width:1000px;margin:0 auto;padding:0 2rem}.venues-section{padding:4rem 0}.venues-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.info-section{padding:3rem 0;border-top:1px solid var(--border)}.section-title{font-size:2rem;font-weight:300;letter-spacing:.1em;color:var(--primary);text-align:center;margin-bottom:2.5rem}.rsvp-section{padding:2rem 0 4rem}footer{background:linear-gradient(135deg,#4a6b8a,#5d7a99);color:var(--white);text-align:center;padding:3rem 2rem}footer p{font-size:1.3rem;font-style:italic;font-weight:300;letter-spacing:.05em}@media(max-width:768px){.hero{padding:4rem 1.5rem}.hero-content h1{font-size:2.5rem}.hero-content .date{font-size:1.2rem}main{padding:0 1rem}.venues-grid{grid-template-columns:1fr;gap:1.5rem}.venues-section{padding:3rem 0}.section-title{font-size:1.75rem}footer{padding:2rem 1.5rem}footer p{font-size:1.1rem}}@media(max-width:480px){.hero-content h1{font-size:2rem;letter-spacing:.1em}.hero-content .date{font-size:1rem;letter-spacing:.2em}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-blue: #6b8ba4;--dark-blue: #5a7a93;--white: #ffffff;--cream: #f5f5f0}body{font-family:Cormorant Garamond,serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%;width:100%}
