@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@300;400;500;600&display=swap";:root{--color-sage:#7c9885;--color-sage-light:#a8c5b0;--color-sage-dark:#5a7561;--color-cream:#faf8f5;--color-cream-dark:#f0ede8;--color-gold:#b8860b;--color-gold-light:#d4a574;--color-charcoal:#2c3e2d;--color-charcoal-light:#4a5d4b;--color-rose:#8b4557;--font-display:"Playfair Display", Georgia, serif;--font-elegant:"Cormorant Garamond", Georgia, serif;--font-body:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.6}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-cream);min-width:320px;min-height:100vh;color:var(--color-charcoal);margin:0}#root{width:100%}.app{background-color:var(--color-cream);min-height:100vh}.main-content{padding-top:80px}.navigation{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#faf8f5f2;border-bottom:1px solid #7c988526;justify-content:space-between;align-items:center;padding:20px 40px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--color-sage-dark);font-family:var(--font-display);letter-spacing:2px;align-items:center;gap:8px;font-size:1.25rem;font-weight:500;text-decoration:none;display:flex}.nav-logo svg{color:var(--color-rose)}.nav-links{gap:40px;display:flex}.nav-link{color:var(--color-charcoal-light);font-family:var(--font-body);letter-spacing:1.5px;text-transform:uppercase;padding:8px 0;font-size:.85rem;font-weight:500;text-decoration:none;transition:color .3s;position:relative}.nav-link:after{content:"";background:var(--color-gold);width:0;height:2px;transition:width .3s;position:absolute;bottom:0;left:0}.nav-link:hover,.nav-link.active{color:var(--color-sage-dark)}.nav-link:hover:after,.nav-link.active:after{width:100%}.home-page{min-height:calc(100vh - 80px);position:relative;overflow:hidden}.background-shapes{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.shape{filter:blur(100px);opacity:.3;border-radius:50%;position:absolute}.shape-1{background:linear-gradient(135deg, var(--color-sage-light), var(--color-sage));width:500px;height:500px;top:-150px;right:-150px}.shape-2{background:linear-gradient(135deg, var(--color-gold-light), var(--color-gold));width:400px;height:400px;bottom:10%;left:-100px}.shape-3{background:linear-gradient(135deg, var(--color-rose), #c5899a);width:300px;height:300px;top:50%;right:5%}.photo-banner{z-index:1;background:linear-gradient(#0000 0%,#7c98850d 50%,#0000 100%);width:100%;padding:40px 0;position:relative;overflow:hidden}.photo-banner-track{gap:16px;width:max-content;animation:40s linear infinite scroll-photos;display:flex}.banner-photo{object-fit:cover;border-radius:12px;flex-shrink:0;width:280px;height:200px;transition:transform .3s;box-shadow:0 8px 24px #0000001f}.banner-photo:hover{transform:scale(1.05)}@keyframes scroll-photos{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (width<=768px){.banner-photo{width:200px;height:140px}}.hero{z-index:1;text-align:center;max-width:900px;margin:0 auto;padding:100px 20px 80px;position:relative}.hero-badge{font-family:var(--font-body);letter-spacing:3px;text-transform:uppercase;color:var(--color-sage-dark);background:#7c98851a;border:1px solid #7c988540;border-radius:50px;align-items:center;gap:12px;margin-bottom:40px;padding:12px 28px;font-size:.75rem;font-weight:500;display:inline-flex}.hero-badge svg{color:var(--color-rose);width:14px;height:14px}.hero-pretext{font-family:var(--font-elegant);color:var(--color-charcoal-light);letter-spacing:1px;margin-bottom:16px;font-size:1.25rem;font-style:italic}.hero-title{font-family:var(--font-display);color:var(--color-charcoal);letter-spacing:-1px;margin-bottom:24px;font-size:clamp(3rem,10vw,6rem);font-weight:400;line-height:1.1}.hero-title .ampersand{font-family:var(--font-elegant);color:var(--color-gold);margin:0 16px;font-style:italic}.hero-subtitle{font-family:var(--font-elegant);color:var(--color-charcoal-light);max-width:500px;margin:0 auto 50px;font-size:1.35rem;font-style:italic;line-height:1.7}.hero-details{flex-wrap:wrap;justify-content:center;gap:24px;margin-bottom:50px;display:flex}.detail-item{font-family:var(--font-body);color:var(--color-charcoal);background:#fffc;border:1px solid #7c988533;border-radius:8px;align-items:center;gap:12px;padding:16px 28px;font-size:.95rem;font-weight:400;transition:all .3s;display:flex}.detail-item:hover{background:#fff;transform:translateY(-2px);box-shadow:0 8px 24px #7c988526}.detail-item svg{color:var(--color-sage)}.hero-cta{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.cta-button{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;border-radius:4px;align-items:center;gap:8px;padding:16px 36px;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.cta-button.primary{background:var(--color-sage);color:#fff;border:2px solid var(--color-sage)}.cta-button.primary:hover{background:var(--color-sage-dark);border-color:var(--color-sage-dark);transform:translateY(-2px);box-shadow:0 8px 24px #7c98854d}.cta-button.secondary{color:var(--color-charcoal);border:2px solid var(--color-charcoal-light);background:0 0}.cta-button.secondary:hover{background:var(--color-charcoal);color:#fff;transform:translateY(-2px)}.info-callout{max-width:600px;margin:40px auto;padding:0 20px}.info-callout-link{border:2px solid var(--color-gold);color:var(--color-charcoal);background:#fff;border-radius:12px;align-items:center;gap:20px;padding:24px 28px;text-decoration:none;transition:all .3s;display:flex}.info-callout-link:hover{background:#b8860b0d;transform:translateY(-2px);box-shadow:0 8px 24px #b8860b26}.info-callout-link svg{color:var(--color-gold);flex-shrink:0}.info-callout-text h3{font-family:var(--font-display);margin-bottom:4px;font-size:1.1rem;font-weight:500}.info-callout-text p{font-family:var(--font-body);color:var(--color-charcoal-light);font-size:.9rem}.info-arrow{color:var(--color-gold);margin-left:auto;font-size:1.5rem}.home-footer{text-align:center;padding:20px 20px 50px}.coded-by{color:#fff;font-family:var(--font-body);letter-spacing:1px;text-transform:uppercase;background:linear-gradient(135deg, var(--color-sage) 0%, var(--color-sage-dark) 100%);border:none;border-radius:50px;align-items:center;gap:12px;padding:20px 40px;font-size:1.25rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:0 8px 24px #7c988580}.coded-by:hover{background:linear-gradient(135deg, var(--color-sage-dark) 0%, #5a7a63 100%);transform:translateY(-3px)scale(1.02);box-shadow:0 12px 32px #7c988599}.coded-by:active{transform:translateY(-1px)scale(.98)}.coded-by svg{color:#fff;width:24px;height:24px}.coded-by .heart-icon{width:18px;height:18px;color:var(--color-rose);animation:1.5s ease-in-out infinite heartbeat}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.countdown-section{justify-content:center;align-items:center;gap:30px;margin-top:40px;padding:60px 20px;display:flex}.decorative-line{background:var(--color-gold);width:80px;height:1px}.countdown-text{font-family:var(--font-elegant);color:var(--color-charcoal-light);font-size:1.5rem;font-style:italic}.rsvp-page{background:linear-gradient(180deg, var(--color-cream) 0%, var(--color-cream-dark) 100%);justify-content:center;align-items:center;min-height:calc(100vh - 80px);padding:60px 20px;display:flex}.rsvp-container{background:#fff;border-radius:12px;width:100%;max-width:560px;padding:50px 40px;box-shadow:0 20px 60px #00000014}.rsvp-header{text-align:center;margin-bottom:40px}.rsvp-header h1{font-family:var(--font-display);color:var(--color-charcoal);letter-spacing:2px;margin-bottom:12px;font-size:2.5rem;font-weight:400}.rsvp-header p{font-family:var(--font-elegant);color:var(--color-charcoal-light);font-size:1.1rem;font-style:italic}.rsvp-form{flex-direction:column;gap:24px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{font-family:var(--font-body);letter-spacing:1px;text-transform:uppercase;color:var(--color-charcoal-light);font-size:.8rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{font-family:var(--font-body);background:var(--color-cream);color:var(--color-charcoal);border:1px solid #7c98854d;border-radius:6px;padding:14px 16px;font-size:1rem;transition:all .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-sage);background:#fff;outline:none;box-shadow:0 0 0 3px #7c98851a}.form-group input::placeholder,.form-group textarea::placeholder{color:#2c3e2d66}.form-group textarea{resize:vertical;min-height:100px}.radio-group{gap:16px;display:flex}.radio-option{cursor:pointer;border:2px solid #7c98854d;border-radius:8px;flex:1;justify-content:center;align-items:center;padding:16px;transition:all .3s;display:flex}.radio-option input{display:none}.radio-option span{font-family:var(--font-body);color:var(--color-charcoal-light);font-size:.9rem;font-weight:500}.radio-option:hover{border-color:var(--color-sage);background:#7c98850d}.radio-option.selected{border-color:var(--color-sage);background:#7c98851a}.radio-option.selected span{color:var(--color-sage-dark)}.error-message{color:var(--color-rose);background:#8b45571a;border:1px solid #8b45574d;border-radius:6px;align-items:center;gap:8px;padding:12px 16px;font-size:.9rem;display:flex}.submit-button{background:var(--color-sage);color:#fff;font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:10px;margin-top:16px;padding:18px 36px;font-size:.85rem;font-weight:500;transition:all .3s;display:flex}.submit-button:hover:not(:disabled){background:var(--color-sage-dark);box-shadow:0 8px 24px #7c98854d}.submit-button:disabled{opacity:.7;cursor:not-allowed}.success-message{text-align:center;background:#fff;border-radius:12px;max-width:480px;padding:60px 40px;box-shadow:0 20px 60px #00000014}.success-icon{color:var(--color-sage);margin-bottom:24px}.success-message h2{font-family:var(--font-display);color:var(--color-charcoal);margin-bottom:16px;font-size:2rem;font-weight:400}.success-message p{font-family:var(--font-elegant);color:var(--color-charcoal-light);font-size:1.15rem;line-height:1.7}.success-message .heart-icon{color:var(--color-rose);width:32px;height:32px;margin-top:24px}.itinerary-page{max-width:900px;min-height:calc(100vh - 80px);margin:0 auto;padding:60px 20px 80px}.itinerary-header{text-align:center;margin-bottom:60px}.itinerary-header h1{font-family:var(--font-display);color:var(--color-charcoal);margin-bottom:12px;font-size:clamp(2rem,5vw,3rem);font-weight:400}.itinerary-header>p{font-family:var(--font-elegant);color:var(--color-sage-dark);margin-bottom:20px;font-size:1.25rem;font-style:italic}.venue-info{border-top:1px solid #7c988533;padding-top:20px;display:inline-block}.venue-info p{font-family:var(--font-body);color:var(--color-charcoal-light);font-size:.95rem}.venue-info .address{opacity:.8;font-size:.85rem}.timeline{position:relative}.timeline-item{gap:30px;margin-bottom:32px;display:flex}.timeline-item:last-child{margin-bottom:0}.timeline-marker{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.timeline-icon{cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex;box-shadow:0 8px 24px #00000026}.timeline-line{background:linear-gradient(180deg, var(--color-sage-light) 0%, #7c988533 100%);border-radius:1px;flex-grow:1;width:2px;min-height:32px;margin-top:12px}.timeline-content{cursor:pointer;background:#fff;border:1px solid #7c988526;border-radius:12px;flex-grow:1;padding:24px 28px;transition:all .3s}.timeline-content:hover{border-color:#7c98854d;box-shadow:0 12px 32px #00000014}.timeline-time{font-family:var(--font-body);letter-spacing:1px;color:var(--color-sage-dark);background:#7c98851a;border-radius:20px;margin-bottom:12px;padding:6px 14px;font-size:.75rem;font-weight:600;display:inline-block}.timeline-title{font-family:var(--font-display);color:var(--color-charcoal);margin-bottom:8px;font-size:1.35rem;font-weight:500}.timeline-description{font-family:var(--font-body);color:var(--color-charcoal-light);font-size:.95rem;line-height:1.6}.itinerary-footer{text-align:center;margin-top:60px;padding-top:40px}.footer-divider{background:var(--color-gold);width:60px;height:1px;margin:0 auto 30px}.footer-text{font-family:var(--font-elegant);color:var(--color-charcoal);margin-bottom:16px;font-size:1.35rem;font-style:italic}.dress-code{font-family:var(--font-body);letter-spacing:1px;color:var(--color-sage-dark);background:#7c98851a;border-radius:4px;padding:10px 24px;font-size:.9rem;font-weight:500;display:inline-block}.venues-summary{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:50px;display:grid}.venue-card{background:#fff;border:1px solid #7c988533;border-radius:12px;align-items:flex-start;gap:16px;padding:24px;display:flex}.venue-card svg{color:var(--color-sage);flex-shrink:0;margin-top:2px}.venue-card h3{font-family:var(--font-body);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-sage-dark);margin-bottom:4px;font-size:.75rem;font-weight:600}.venue-card p{font-family:var(--font-display);color:var(--color-charcoal);font-size:1.1rem}.venue-card .address{font-family:var(--font-body);color:var(--color-charcoal-light);margin-top:4px;font-size:.85rem}.timeline-location{margin-top:8px}.timeline-location a{font-family:var(--font-body);color:var(--color-sage-dark);font-size:.85rem;text-decoration:none;transition:color .3s}.timeline-location a:hover{color:var(--color-sage);text-decoration:underline}.timeline-menu{margin-top:12px}.menu-link{font-family:var(--font-body);color:#fff;background:linear-gradient(135deg,#d4a574 0%,#b8860b 100%);border-radius:6px;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:0 4px 12px #b8860b33}.menu-link:hover{transform:translateY(-2px);box-shadow:0 6px 16px #b8860b4d}.info-page{max-width:1000px;min-height:calc(100vh - 80px);margin:0 auto;padding:60px 20px 80px}.info-header{text-align:center;margin-bottom:50px}.info-header h1{font-family:var(--font-display);color:var(--color-charcoal);margin-bottom:12px;font-size:clamp(2rem,5vw,3rem);font-weight:400}.info-header p{font-family:var(--font-elegant);color:var(--color-charcoal-light);font-size:1.25rem;font-style:italic}.info-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-bottom:60px;display:grid}.info-card{background:#fff;border:1px solid #7c988526;border-radius:12px;padding:32px;transition:all .3s}.info-card:hover{border-color:#7c98854d;box-shadow:0 12px 32px #00000014}.info-card-icon{background:#7c98851a;border-radius:12px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:20px;display:flex}.info-card-icon svg{color:var(--color-sage)}.info-card h2{font-family:var(--font-display);color:var(--color-charcoal);margin-bottom:16px;font-size:1.4rem;font-weight:500}.info-card-content p{font-family:var(--font-body);color:var(--color-charcoal-light);margin-bottom:12px;font-size:.95rem;line-height:1.7}.info-card-content p:last-child{margin-bottom:0}.venues-detail{margin-bottom:60px}.venues-detail h2{font-family:var(--font-display);color:var(--color-charcoal);text-align:center;margin-bottom:30px;font-size:1.8rem;font-weight:400}.venue-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.venue-detail-card{text-align:center;background:#fff;border:1px solid #7c988526;border-radius:12px;padding:32px}.venue-detail-card h3{font-family:var(--font-body);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-sage-dark);margin-bottom:8px;font-size:.75rem;font-weight:600}.venue-detail-card .venue-name{font-family:var(--font-display);color:var(--color-charcoal);margin-bottom:12px;font-size:1.4rem}.venue-detail-card .venue-address{font-family:var(--font-body);color:var(--color-charcoal-light);justify-content:center;align-items:center;gap:8px;margin-bottom:16px;font-size:.9rem;display:flex}.venue-detail-card .venue-address svg{color:var(--color-sage)}.venue-link{font-family:var(--font-body);color:var(--color-sage-dark);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .3s}.venue-link:hover{color:var(--color-sage)}.contact-section{text-align:center;background:#7c98850d;border-radius:12px;padding:40px}.contact-section h2{font-family:var(--font-display);color:var(--color-charcoal);margin-bottom:12px;font-size:1.6rem;font-weight:400}.contact-section p{font-family:var(--font-body);color:var(--color-charcoal-light);font-size:1rem}@media (width<=768px){.navigation{padding:16px 20px}.nav-links{gap:24px}.nav-link{font-size:.75rem}.hero{padding:60px 20px 40px}.hero-details{flex-direction:column;align-items:center}.detail-item{justify-content:center;width:100%;max-width:320px}.hero-cta{flex-direction:column;align-items:center}.cta-button{justify-content:center;width:100%;max-width:280px}.countdown-section{flex-direction:column;gap:16px}.decorative-line{width:40px}.rsvp-container{padding:40px 24px}.radio-group{flex-direction:column}.timeline-item{gap:16px}.timeline-icon{width:48px;height:48px}.timeline-content{padding:20px}.timeline-title{font-size:1.15rem}}@media (width<=480px){.nav-logo span{display:none}.main-content{padding-top:70px}}
