@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Work+Sans:wght@300;400;500;600&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2D2D2D;--accent: #1E3A8A;--accent-light: #3B82F6;--accent-dark: #1E40AF;--gold: #D4AF37;--gold-light: #F4D03F;--gold-dark: #B8860B;--bg: #FAFAFA;--bg-card: #FFFFFF;--text-primary: #1A1A1A;--text-secondary: #666666;--border: #E8E8E8;--shadow: rgba(0, 0, 0, .08);--shadow-hover: rgba(30, 58, 138, .2)}body{font-family:Work Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#fff8e7,#fff5dc,#fff8e7,#fff5dc,#fff8e7),repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(212,175,55,.03) 2px,rgba(212,175,55,.03) 4px);background-size:100% 100%,40px 40px;min-height:100vh;overflow-x:hidden;position:relative;color:var(--text-primary)}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 20% 30%,rgba(212,175,55,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(212,175,55,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(212,175,55,.04) 0%,transparent 60%);pointer-events:none;z-index:0;opacity:.6}#root{min-height:100vh;position:relative;z-index:1}.app{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative}.ornament-top-left,.ornament-top-right,.ornament-bottom-left,.ornament-bottom-right{display:none}.invite-container{background:var(--bg-card);padding:0;border-radius:24px;box-shadow:0 20px 60px #0000001f,0 0 0 1px #0000000a;max-width:900px;width:100%;text-align:center;position:relative;overflow:hidden}.invite-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--gold),var(--accent));z-index:1}.hero-section{position:relative;width:100%;margin-bottom:0;padding:0}.venue-image-container{position:relative;width:100%;margin:0;padding:0;overflow:hidden}.venue-image{width:100%;height:280px;object-fit:cover;display:block;border:none;transition:transform .8s cubic-bezier(.4,0,.2,1)}.venue-image:hover{transform:scale(1.05)}.venue-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#0000,#0000004d);pointer-events:none}.couple-photo{position:absolute;bottom:-80px;left:50%;transform:translate(-50%);z-index:10;margin:0}.photo-circle{width:160px;height:160px;border-radius:50%;object-fit:cover;border:6px solid var(--bg-card);box-shadow:0 12px 40px #00000026,0 0 0 3px var(--gold);transition:all .4s cubic-bezier(.4,0,.2,1);display:block}.photo-circle:hover{transform:scale(1.08);box-shadow:0 16px 50px #0003,0 0 0 3px var(--gold-dark)}.decorative-top,.decorative-bottom{display:none}.couple-names{font-size:4.5rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;margin-top:5rem;letter-spacing:-.02em;font-family:Cormorant Garamond,serif;line-height:1.1;padding:0 3rem}.ampersand{font-size:3.5rem;color:var(--accent);font-weight:400;margin:0 .3rem;display:inline-block;font-style:italic}.divider-elegant{display:flex;align-items:center;justify-content:center;gap:1rem;margin:3rem auto;max-width:300px}.divider-line{flex:1;height:1px;background:linear-gradient(to right,transparent,var(--border),transparent)}.divider-flourish{width:8px;height:8px;border-radius:50%;background:var(--accent);position:relative}.divider-flourish:before,.divider-flourish:after{content:"";position:absolute;top:50%;width:20px;height:1px;background:var(--border)}.divider-flourish:before{right:12px}.divider-flourish:after{left:12px}.announcement{font-size:2.2rem;color:var(--accent);margin-bottom:1rem;font-weight:500;font-family:Cormorant Garamond,serif;font-style:italic;letter-spacing:.02em;padding:0 3rem}.invitation-text{font-size:1.4rem;color:var(--text-secondary);margin-bottom:4rem;font-weight:400;letter-spacing:.01em;line-height:1.6;padding:0 3rem}.details{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin:4rem 0;padding:0 3rem;align-items:stretch}.detail-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 2rem;background:var(--bg-card);border-radius:16px;border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;height:100%;min-height:200px}.detail-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:3px solid var(--gold);border-radius:16px;opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1);pointer-events:none}.detail-item:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow-hover);border-color:var(--accent-light)}.detail-item:hover:before{opacity:1}.detail-icon-wrapper{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-light),var(--accent));border:2px solid var(--gold);border-radius:16px;margin-bottom:1.5rem;transition:transform .3s cubic-bezier(.4,0,.2,1)}.detail-item:hover .detail-icon-wrapper{transform:scale(1.1) rotate(5deg)}.detail-icon{width:2rem;height:2rem;color:#fff}.detail-content{flex:1;display:flex;flex-direction:column;justify-content:center}.detail-content h3{color:var(--text-primary);font-size:.75rem;margin-bottom:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;font-family:Work Sans,sans-serif}.detail-content p{color:var(--text-primary);font-size:1.4rem;line-height:1.5;font-weight:500;font-family:Cormorant Garamond,serif}.location-link-wrapper{text-decoration:none;display:block;color:inherit;height:100%}.location-link-wrapper:hover .detail-item{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 12px 30px var(--shadow-hover)}.location-link-wrapper:hover .detail-item:before{opacity:1}.location-link-wrapper:hover .location-name,.location-link-wrapper:hover .location-address{color:var(--accent)}.location-name{font-size:1.25rem!important;font-weight:600!important;color:var(--text-primary)!important;margin-bottom:.5rem!important;font-family:Cormorant Garamond,serif!important;transition:color .2s ease}.location-address{font-size:.95rem!important;color:var(--text-secondary)!important;font-weight:400!important;transition:color .2s ease}.rsvp-section{padding:3.5rem 3rem;background:linear-gradient(135deg,#1e3a8a0d,#3b82f60d);border-radius:20px;border:2px solid var(--gold);position:relative;margin:4rem 3rem}.rsvp-section:before{content:"";position:absolute;top:-2px;left:50%;transform:translate(-50%);width:60px;height:3px;background:var(--gold);border-radius:2px}.rsvp-header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.rsvp-line{flex:1;max-width:60px;height:1px;background:var(--border)}.rsvp-section h2{color:var(--text-primary);font-size:2rem;font-weight:600;font-family:Cormorant Garamond,serif;letter-spacing:.02em}.rsvp-text{color:var(--text-secondary);font-size:1rem;margin-bottom:2rem;font-weight:400;line-height:1.6}.rsvp-form{max-width:500px;margin:0 auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem;font-family:Work Sans,sans-serif;text-transform:uppercase;letter-spacing:.05em}.form-group input[type=text],.form-group input[type=tel],.form-group input[type=email]{padding:.875rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;font-family:Work Sans,sans-serif;color:var(--text-primary);background:var(--bg-card);transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.form-group input[type=text]:focus,.form-group input[type=tel]:focus,.form-group input[type=email]:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1e3a8a1a}.form-group input[type=text]::placeholder,.form-group input[type=tel]::placeholder,.form-group input[type=email]::placeholder{color:var(--text-secondary);opacity:.6}.form-group textarea{padding:.875rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;font-family:Work Sans,sans-serif;color:var(--text-primary);background:var(--bg-card);transition:all .3s cubic-bezier(.4,0,.2,1);resize:vertical;min-height:80px;width:100%}.form-checkboxes+.form-group{margin-top:1.5rem}.rsvp-form>.form-group+.form-group{margin-top:1.5rem}.form-group textarea::placeholder{color:var(--text-secondary);opacity:.6}.form-checkboxes{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;margin-bottom:2rem}.checkbox-label{display:flex;align-items:flex-start;gap:1rem;cursor:pointer;font-size:.95rem;color:var(--text-primary);font-family:Work Sans,sans-serif;padding:1rem 1.25rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-card);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.checkbox-label:hover{background:#1e3a8a0d;border-color:var(--gold-light);transform:translate(2px)}.checkbox-label:has(input[type=checkbox]:checked){background:#1e3a8a14;border-color:var(--gold);box-shadow:0 2px 8px #d4af3726}.checkbox-label input[type=checkbox]{width:22px;height:22px;min-width:22px;cursor:pointer;accent-color:var(--accent);flex-shrink:0;margin-top:2px;border-radius:4px;border:2px solid var(--border);transition:all .2s ease}.checkbox-label input[type=checkbox]:checked{border-color:var(--accent);background-color:var(--accent)}.checkbox-label input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px #d4af3733}.checkbox-label span{flex:1;line-height:1.5;font-weight:400;color:var(--text-primary)}.checkbox-label:has(input[type=checkbox]:checked) span{color:var(--text-primary);font-weight:500}.rsvp-buttons{display:flex;justify-content:center;gap:1rem}.rsvp-button{background:var(--accent);color:#fff;padding:1rem 2.5rem;border-radius:12px;border:2px solid var(--gold);font-size:.95rem;font-weight:600;font-family:Work Sans,sans-serif;letter-spacing:.05em;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #1e3a8a4d;display:inline-block;text-transform:uppercase;position:relative;overflow:hidden;cursor:pointer;width:100%;margin-top:1rem}.rsvp-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.rsvp-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #1e3a8a66;background:var(--accent-dark);border-color:var(--gold-light)}.rsvp-button:hover:before{left:100%}.rsvp-button:active{transform:translateY(0)}.rsvp-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.submit-message{padding:1rem;border-radius:8px;margin-top:2rem;margin-bottom:1rem;font-size:.95rem;font-family:Work Sans,sans-serif;text-align:center}.submit-message-success{background:#4caf501a;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.submit-message-error{background:#f443361a;color:#f44336;border:1px solid rgba(244,67,54,.3)}.success-container{text-align:center;padding:4rem 3rem;max-width:500px;margin:0 auto;animation:fadeInUp .6s ease-out}.success-icon{font-size:4rem;margin-bottom:1.5rem;animation:bounce 1s ease-in-out}.success-title{font-size:3rem;font-family:Cormorant Garamond,serif;color:var(--accent);margin-bottom:1rem;font-weight:600;letter-spacing:.02em}.success-message{font-size:1.3rem;color:var(--text-primary);margin-bottom:1rem;font-family:Cormorant Garamond,serif;font-style:italic;line-height:1.6}.success-submessage{font-size:1.1rem;color:var(--text-secondary);font-family:Cormorant Garamond,serif;font-style:italic;margin-top:1.5rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.closing{font-size:1.4rem;color:var(--text-secondary);margin-top:3rem;font-weight:400;font-family:Cormorant Garamond,serif;font-style:italic;letter-spacing:.01em;padding:0 3rem}.footer-logo{display:flex;justify-content:center;align-items:center;margin-top:2rem;padding:0 3rem}.footer-logo-link{display:inline-block;transition:opacity .3s ease,transform .3s ease}.footer-logo-link:hover{opacity:.8;transform:scale(1.05)}.paris-logo{max-width:300px;height:auto;opacity:.9;display:block}.footer-hearts{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding:0 3rem 3rem}.footer-hearts .heart-icon{width:24px;height:24px;transition:transform .3s ease}.footer-hearts .heart-icon:hover{transform:scale(1.3)}@media (max-width: 768px){.app{padding:1rem}.invite-container{border-radius:16px}.venue-image{height:220px}.couple-photo{bottom:-60px}.photo-circle{width:120px;height:120px;border-width:4px}.couple-names{font-size:2.5rem;margin-top:4rem;padding:0 1.5rem}.ampersand{font-size:2rem}.announcement{font-size:1.8rem;padding:0 1.5rem}.invitation-text{font-size:1rem;padding:0 1.5rem}.details{grid-template-columns:1fr;padding:0 1.5rem;gap:1rem}.detail-item{padding:2rem 1.5rem}.rsvp-section{margin-left:1.5rem;margin-right:1.5rem;padding:2.5rem 1.5rem}.rsvp-section h2{font-size:1.5rem}.form-row{grid-template-columns:1fr}.rsvp-form{max-width:100%}.closing,.footer-logo{padding:0 1.5rem}.paris-logo{max-width:250px}.footer-hearts{padding:0 1.5rem 2rem}}
