@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Inter:wght@300;400;500;600&display=swap";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #faf9f7;--color-text: #1a1a1a;--color-text-secondary: #6b6b6b;--color-accent: #c4a882;--color-accent-light: #e8d5be;--color-white: #ffffff;--color-dark: #2c2c2c;--font-serif: "Playfair Display", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--section-padding: 120px}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}section{padding:var(--section-padding) 24px}@media (max-width: 768px){:root{--section-padding: 80px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-in{animation:fadeInUp .8s ease-out forwards}.animate-fade{animation:fadeIn 1s ease-out forwards}.animate-scale{animation:scaleIn .8s ease-out forwards}.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-image{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=2000&q=80);background-size:cover;background-position:center;transform:scale(1.05);animation:subtleZoom 20s ease-in-out infinite alternate}@keyframes subtleZoom{0%{transform:scale(1.05)}to{transform:scale(1.15)}}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#00000040,#00000073);display:flex;align-items:center;justify-content:center}.hero-content{text-align:center;color:var(--color-white);padding:0 24px}.hero-subtitle{font-family:var(--font-sans);font-size:.875rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;margin-bottom:24px;opacity:0;animation-delay:.2s}.hero-title{font-family:var(--font-serif);font-size:clamp(3rem,8vw,6rem);font-weight:400;line-height:1.1;letter-spacing:-.02em;margin-bottom:32px;opacity:0;animation-delay:.4s}.ampersand{font-style:italic;font-weight:300;opacity:.85}.hero-date{font-family:var(--font-sans);font-size:1.125rem;font-weight:300;letter-spacing:.15em;opacity:0;animation-delay:.6s}.hero-cta{display:inline-block;margin-top:48px;padding:16px 40px;font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--color-white);border:1px solid rgba(255,255,255,.5);border-radius:100px;transition:all .4s ease;opacity:0;animation-delay:.8s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.hero-cta:hover{background:var(--color-white);color:var(--color-dark);border-color:var(--color-white)}@media (max-width: 768px){.hero-cta{margin-top:36px;padding:14px 32px}}.countdown{background:var(--color-white);text-align:center;padding:80px 24px}.countdown-label{font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:40px}.countdown-grid{display:flex;justify-content:center;gap:48px;flex-wrap:wrap}.countdown-item{display:flex;flex-direction:column;align-items:center}.countdown-number{font-family:var(--font-serif);font-size:3.5rem;font-weight:400;line-height:1;color:var(--color-text)}.countdown-label-small{font-family:var(--font-sans);font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-secondary);margin-top:8px}@media (max-width: 768px){.countdown-grid{gap:32px}.countdown-number{font-size:2.5rem}}.timeline{background:var(--color-bg);text-align:center}.section-header{margin-bottom:64px}.section-label{font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--color-accent);margin-bottom:16px}.section-title{font-family:var(--font-serif);font-size:clamp(2rem,5vw,3rem);font-weight:400;color:var(--color-text);margin-bottom:16px}.section-subtitle{font-family:var(--font-sans);font-size:1rem;font-weight:300;color:var(--color-text-secondary)}.timeline-container{max-width:500px;margin:0 auto;position:relative}.timeline-container:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--color-accent-light);transform:translate(-50%)}.timeline-event{position:relative;padding:0 0 48px}.timeline-event:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:50%;top:0;width:12px;height:12px;background:var(--color-accent);border:3px solid var(--color-bg);border-radius:50%;transform:translate(-50%);z-index:1}.timeline-card{display:flex;align-items:flex-start;gap:16px;background:var(--color-white);padding:24px;border-radius:16px;box-shadow:0 2px 20px #0000000a;text-align:left;transition:transform .3s ease,box-shadow .3s ease}.timeline-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #00000014}.timeline-icon{font-size:1.75rem;line-height:1}.timeline-info{flex:1}.timeline-time{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.1em;color:var(--color-accent);margin-bottom:4px}.timeline-event-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:600;color:var(--color-text);margin-bottom:4px}.timeline-event-desc{font-family:var(--font-sans);font-size:.875rem;font-weight:300;color:var(--color-text-secondary)}@media (max-width: 768px){.timeline-container{padding:0 16px}.timeline-container:before{left:50%}.timeline-dot{left:50%}}.location{background:var(--color-white);text-align:center}.location-content{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.location-info{text-align:left}.location-info h3{font-family:var(--font-serif);font-size:1.75rem;font-weight:600;color:var(--color-text);margin-bottom:8px}.location-info p{font-family:var(--font-sans);font-size:1rem;font-weight:300;color:var(--color-text-secondary);margin-bottom:8px}.location-detail{margin-top:16px;line-height:1.7}.location-button{display:inline-block;margin-top:32px;padding:14px 32px;font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--color-white);background:var(--color-dark);border-radius:100px;transition:all .3s ease}.location-button:hover{background:var(--color-accent);transform:translateY(-1px)}.location-map{border-radius:16px;overflow:hidden;box-shadow:0 8px 40px #0000001a;aspect-ratio:4 / 3}.location-map iframe{width:100%;height:100%;border:none}@media (max-width: 768px){.location-content{grid-template-columns:1fr;gap:32px}.location-info{text-align:center}.location-map{aspect-ratio:16 / 10}.location-map iframe{width:100%;height:300px}.location-button{font-size:.875rem;padding:8px 16px}}.faq{background:var(--color-bg);text-align:center}.faq-list{max-width:640px;margin:0 auto;text-align:left}.faq-item{border-bottom:1px solid var(--color-accent-light)}.faq-item:first-child{border-top:1px solid var(--color-accent-light)}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-family:var(--font-serif);font-size:1.125rem;font-weight:400;color:var(--color-text);background:none;border:none;cursor:pointer;text-align:left;transition:color .3s ease}.faq-question:hover{color:var(--color-accent)}.faq-icon{font-family:var(--font-sans);font-size:1.25rem;font-weight:300;color:var(--color-accent);transition:transform .3s ease;flex-shrink:0;margin-left:16px}.faq-icon.open{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .4s ease}.faq-answer.open{max-height:200px;padding-bottom:24px}.faq-answer p{font-family:var(--font-sans);font-size:.9375rem;font-weight:300;line-height:1.7;color:var(--color-text-secondary)}.footer{background:var(--color-dark);color:var(--color-white);text-align:center;padding:80px 24px}.footer-content{max-width:400px;margin:0 auto}.footer-names{font-family:var(--font-serif);font-size:2rem;font-weight:400;margin-bottom:16px}.footer-names span{font-style:italic;font-weight:300;opacity:.7}.footer-date{font-family:var(--font-sans);font-size:.875rem;font-weight:300;letter-spacing:.3em;color:var(--color-accent-light);margin-bottom:24px}.footer-message{font-family:var(--font-sans);font-size:.8125rem;font-weight:300;color:#ffffff80;letter-spacing:.05em}.inv-page{min-height:100vh;background-color:var(--color-bg);display:flex;flex-direction:column}.inv-topbar{padding:24px 32px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--color-accent-light)}.inv-topbar-names{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;color:var(--color-text);text-decoration:none;letter-spacing:.02em}.inv-topbar-names .amp{font-style:italic;opacity:.7;margin:0 6px}.inv-main{flex:1;display:flex;align-items:center;justify-content:center;padding:60px 24px 80px}.inv-card{width:100%;max-width:520px;text-align:center;animation:fadeInUp .9s ease-out forwards}.inv-eyebrow{font-family:var(--font-sans);font-size:.7rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--color-accent);margin-bottom:32px}.inv-envelope{background:var(--color-white);border:1px solid var(--color-accent-light);border-radius:20px;padding:48px 40px 52px;box-shadow:0 4px 40px #c4a8821f,0 1px 4px #0000000a;margin-bottom:40px;position:relative;overflow:hidden}.inv-envelope:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:80px;height:3px;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);border-radius:0 0 4px 4px}.inv-divider-top{width:40px;height:1px;background:var(--color-accent-light);margin:0 auto 28px}.inv-greeting{font-family:var(--font-sans);font-size:.875rem;font-weight:400;color:var(--color-text-secondary);margin-bottom:16px;letter-spacing:.02em}.inv-name{font-family:var(--font-serif);font-size:clamp(2rem,6vw,2.75rem);font-weight:400;color:var(--color-text);line-height:1.15;margin-bottom:8px;letter-spacing:-.01em}.inv-companion{font-family:var(--font-serif);font-size:1.1rem;font-weight:400;font-style:italic;color:var(--color-accent);margin-bottom:32px}.inv-divider-mid{width:40px;height:1px;background:var(--color-accent-light);margin:0 auto 28px}.inv-more-info{margin-top:24px;font-family:var(--font-sans);font-size:.8125rem;font-weight:300;color:var(--color-text-secondary)}.inv-more-info-link{color:var(--color-accent);text-decoration:none;border-bottom:1px solid var(--color-accent-light);transition:border-color .2s,color .2s}.inv-more-info-link:hover{color:var(--color-text);border-color:var(--color-text)}.inv-rsvp-deadline{font-family:var(--font-sans);font-size:.8rem;color:var(--color-text-secondary);text-align:center;margin:0 0 20px;letter-spacing:.01em}.inv-rsvp-deadline strong{color:var(--color-accent);font-weight:600}.inv-miembros{margin-bottom:28px;padding:14px 18px;background:#faf7f3;border:1px solid var(--color-accent-light);border-radius:12px}.inv-miembros-label{font-family:var(--font-sans);font-size:.6875rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent);margin-bottom:6px}.inv-miembros-nombres{font-family:var(--font-serif);font-size:1.05rem;font-weight:400;color:var(--color-text);line-height:1.5}.inv-body{font-family:var(--font-sans);font-size:.9375rem;font-weight:300;color:var(--color-text-secondary);line-height:1.7;margin-bottom:28px}.inv-details{display:flex;flex-direction:column;gap:6px}.inv-detail-item{font-family:var(--font-sans);font-size:.8125rem;font-weight:400;color:var(--color-text-secondary);letter-spacing:.05em}.inv-detail-item strong{color:var(--color-text);font-weight:500}.inv-rsvp{animation:fadeInUp .9s ease-out .2s both}.inv-roster{display:flex;flex-direction:column;gap:8px;margin-bottom:0}.inv-roster-item{border-radius:14px;border:1px solid var(--color-accent-light);background:var(--color-white);overflow:hidden;transition:box-shadow .3s}.inv-roster-item--yes{box-shadow:0 2px 16px #c4a8821f}.inv-roster-row{display:flex;align-items:center;justify-content:space-between;padding:13px 16px}.inv-roster-menu{border-top:1px solid #f0ebe3;animation:fadeInUp .3s ease-out forwards}.inv-roster-name{font-family:var(--font-serif);font-size:1.0625rem;font-weight:400;color:var(--color-text)}.inv-roster-btns{display:flex;gap:8px}.inv-roster-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid #d4c5b5;background:transparent;color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center}.inv-roster-btn--yes:hover,.inv-roster-btn--yes.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white);transform:scale(1.08);box-shadow:0 4px 14px #c4a88266}.inv-roster-btn--no:hover,.inv-roster-btn--no.active{background:var(--color-dark);border-color:var(--color-dark);color:var(--color-white);transform:scale(1.08);box-shadow:0 4px 14px #2c2c2c33}@keyframes expandDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.inv-menu{padding:20px 0 4px;animation:fadeInUp .35s ease-out forwards}.inv-menu--compact{padding:12px 16px 14px}.inv-menu-label{font-family:var(--font-sans);font-size:.6875rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:10px;opacity:.7}.inv-menu-chips{display:flex;flex-wrap:wrap;gap:8px}.inv-menu-chip{padding:7px 16px;border-radius:100px;border:1px solid var(--color-accent-light);background:transparent;font-family:var(--font-sans);font-size:.8125rem;font-weight:400;color:var(--color-text-secondary);cursor:pointer;transition:all .22s ease;letter-spacing:.02em}.inv-menu-chip:hover{border-color:var(--color-accent);color:var(--color-accent);background:#fdf9f4}.inv-menu-chip.active{border-color:var(--color-accent);background:linear-gradient(135deg,#fdf6ed,#f5e8d4);color:var(--color-accent);font-weight:500;box-shadow:0 2px 10px #c4a88233}.inv-rsvp-question{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:20px}.inv-rsvp-buttons{display:flex;gap:12px;justify-content:center;margin-bottom:0}.inv-btn-confirm{display:flex;align-items:center;gap:10px;padding:16px 28px;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;letter-spacing:.08em;border-radius:100px;border:1.5px solid var(--color-accent);background:transparent;color:var(--color-accent);cursor:pointer;transition:all .35s ease;text-transform:uppercase}.inv-btn-confirm:hover,.inv-btn-confirm.active{background:var(--color-accent);color:var(--color-white);transform:translateY(-2px);box-shadow:0 8px 24px #c4a88259}.inv-btn-decline{display:flex;align-items:center;gap:10px;padding:16px 28px;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;letter-spacing:.08em;border-radius:100px;border:1.5px solid #d4c5b5;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .35s ease;text-transform:uppercase}.inv-btn-decline:hover,.inv-btn-decline.active{background:var(--color-dark);color:var(--color-white);border-color:var(--color-dark);transform:translateY(-2px);box-shadow:0 8px 24px #2c2c2c33}.inv-btn-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0;border:1.5px solid currentColor;transition:all .35s ease}.inv-rsvp-feedback{display:flex;align-items:center;gap:14px;margin-top:20px;padding:16px 20px;border-radius:14px;text-align:left;animation:fadeInUp .45s ease-out forwards}.inv-rsvp-feedback--yes{background:linear-gradient(135deg,#f7f2eb,#f0e8da);border:1px solid var(--color-accent-light)}.inv-rsvp-feedback--no{background:#f4f3f1;border:1px solid #e0dbd4}.inv-rsvp-feedback-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0}.inv-rsvp-feedback--yes .inv-rsvp-feedback-icon{background:var(--color-accent);color:var(--color-white)}.inv-rsvp-feedback--no .inv-rsvp-feedback-icon{background:var(--color-dark);color:var(--color-white)}.inv-rsvp-feedback-title{font-family:var(--font-serif);font-size:1rem;font-weight:400;color:var(--color-text);margin-bottom:2px}.inv-rsvp-feedback-sub{font-family:var(--font-sans);font-size:.8125rem;font-weight:300;color:var(--color-text-secondary)}.inv-rsvp-feedback-change{margin-left:auto;flex-shrink:0;background:none;border:none;font-size:1rem;color:var(--color-text-secondary);opacity:.45;cursor:pointer;padding:4px 8px;border-radius:6px;transition:opacity .2s,background .2s;line-height:1}.inv-rsvp-feedback-change:hover{opacity:1;background:#0000000f}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.inv-skeleton{border-radius:8px;background:linear-gradient(90deg,#ede8e1 25%,#f5f1ec,#ede8e1 75%);background-size:800px 100%;animation:shimmer 1.6s infinite linear;margin:0 auto 14px}.inv-skeleton--eyebrow{width:180px;height:11px;margin-bottom:32px}.inv-skeleton--greeting{width:200px;height:13px;margin-bottom:20px}.inv-skeleton--name{width:260px;height:38px;margin-bottom:8px}.inv-skeleton--name-short{width:160px;height:38px;margin-bottom:32px}.inv-skeleton--body{width:300px;height:13px;margin-bottom:8px}.inv-skeleton--body-short{width:220px;height:13px;margin-bottom:28px}.inv-skeleton--detail{width:180px;height:13px;margin-bottom:6px}.inv-skeleton--detail-short{width:140px;height:13px}.inv-skeleton--btn-row{width:320px;height:52px;border-radius:100px;margin-top:32px}.inv-not-found{text-align:center;padding:60px 24px;animation:fadeInUp .8s ease-out forwards}.inv-not-found-title{font-family:var(--font-serif);font-size:2rem;font-weight:400;color:var(--color-text);margin-bottom:16px}.inv-not-found-text{font-family:var(--font-sans);font-size:.9375rem;font-weight:300;color:var(--color-text-secondary)}.inv-footer{padding:24px;text-align:center;border-top:1px solid var(--color-accent-light)}.inv-footer-text{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary);opacity:.6;letter-spacing:.05em}@media (max-width: 480px){.inv-envelope{padding:36px 24px 40px}.inv-rsvp-buttons{flex-direction:column;align-items:center}.inv-btn-confirm,.inv-btn-decline{width:100%;max-width:280px;justify-content:center}.inv-rsvp-feedback{flex-wrap:wrap}}
