@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&display=swap";:root{--color-bg-main:#fdfbf7;--color-surface:#f8f5f0;--color-parchment:#efe9e1;--color-text-main:#2c2926;--color-text-muted:#8a817c;--color-primary:#d4c5b3;--color-button:#e3d8c8;--color-button-hover:#d4c5b3;--color-border:#d9d1c7;--color-accent:#c5a880;--font-serif:"Cormorant Garamond", serif;--font-sans:"Montserrat", sans-serif;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--line-height-tight:1.1;--line-height-heading:1.3;--line-height-base:1.6;--line-height-relaxed:1.8;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.05em;--tracking-widest:.15em;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.5rem;--text-5xl:3.5rem}@media (width>=768px){:root{--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.75rem;--text-4xl:3.5rem;--text-5xl:4.5rem}}body{font-family:var(--font-sans);background-color:var(--color-bg-main);color:var(--color-text-main);font-size:var(--text-base);line-height:var(--line-height-base);font-weight:var(--weight-light);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:1rem}p{color:var(--color-text-muted);margin-top:0;margin-bottom:1.5rem}.title-primary,h1{font-family:var(--font-serif);font-size:var(--text-5xl);font-weight:var(--weight-medium);line-height:var(--line-height-tight);color:var(--color-text-main);letter-spacing:var(--tracking-normal);font-style:italic}.subtitle,h2{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:var(--weight-regular);line-height:var(--line-height-heading);letter-spacing:var(--tracking-wide);color:var(--color-text-main)}.date-highlight{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-accent)}button,.btn{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-widest);text-transform:uppercase;background-color:var(--color-button);color:var(--color-text-main);cursor:pointer;border:none;border-radius:4px;padding:1rem 2rem;line-height:1;transition:all .3s}button:hover,.btn:hover{background-color:var(--color-button-hover)}.fade-in{opacity:0;animation:.8s ease-out forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#image-animation-screen>section{scroll-snap-align:start;scroll-snap-stop:always}svg.icon,svg.blocked-icon,svg.error-icon{width:24px;height:24px;color:var(--color-text-main);fill:currentColor;flex-shrink:0}html,body{width:100%;height:100%;margin:0}.logo-wrapper{justify-content:center;align-items:center;margin-bottom:2rem;display:flex}.logo-circle{background-color:#4a3525;border:4px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;width:144px;height:144px;display:flex;position:relative;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.letter-e{font-family:var(--font-serif);color:#fff;z-index:10;font-size:3.5rem;font-weight:var(--weight-regular);position:absolute;top:1rem;left:1.5rem}.ampersand{font-family:var(--font-serif);color:#ffffff26;z-index:5;font-size:4.5rem;font-style:italic;font-weight:var(--weight-light);position:absolute}.letter-v{font-family:var(--font-serif);color:#fff;z-index:10;font-size:3.5rem;font-weight:var(--weight-regular);position:absolute;bottom:1rem;right:1.5rem}.interactive-envelope-container{cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;width:100%;margin-top:2rem;display:flex}.envelope{background-color:var(--color-surface);border-radius:4px;width:100%;max-width:320px;height:200px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 10px 25px #00000014}.interactive-envelope-container:hover .envelope{transform:translateY(-5px)scale(1.02);box-shadow:0 15px 35px #0000001f}.envelope-top{z-index:2;filter:drop-shadow(0 2px 2px #0000000d);border-top:110px solid #eae3d7;border-left:160px solid #0000;border-right:160px solid #0000;width:0;height:0;position:absolute;top:0;left:0}.envelope-bottom{border-left:160px solid #0000;border-right:160px solid #0000;border-bottom:95px solid var(--color-surface);z-index:1;width:0;height:0;position:absolute;bottom:0;left:0}.envelope-left{border-top:100px solid #0000;border-bottom:100px solid #0000;border-left:160px solid var(--color-parchment);z-index:1;width:0;height:0;position:absolute;top:0;left:0}.envelope-right{border-top:100px solid #0000;border-bottom:100px solid #0000;border-right:160px solid var(--color-parchment);z-index:1;width:0;height:0;position:absolute;top:0;right:0}.wax-seal{z-index:3;background-color:#4a3525;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;display:flex;position:absolute;top:110px;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 8px #0009,0 4px 8px #0003}.wax-seal:after,.wax-seal:before{content:"";border:1.5px solid #fff6;border-radius:50%;width:30px;height:18px;position:absolute}.wax-seal:after{left:6px}.wax-seal:before{right:6px}.click-indicator{z-index:20;pointer-events:none;opacity:0;animation:3s ease-in-out 1.5s forwards tapAndFade;position:absolute;top:130px;left:55%}@keyframes tapAndFade{0%{opacity:0;transform:translateY(20px)rotate(-15deg)}15%{opacity:.8;transform:translateY(0)rotate(-15deg)}30%{transform:translateY(-15px)rotate(-15deg)}40%{transform:translateY(0)rotate(-15deg)scale(.95)}50%{transform:translateY(-15px)rotate(-15deg)}60%{opacity:.8;transform:translateY(0)rotate(-15deg)scale(.95)}85%,to{opacity:0;transform:translateY(0)rotate(-15deg)}}.countdown-section{box-sizing:border-box;background-color:var(--color-bg-main);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:3rem 1.5rem;display:flex;position:relative;overflow:hidden}.countdown-intro-text{text-align:center;font-family:var(--font-serif);font-size:16px;font-weight:var(--weight-medium);color:var(--color-text-main);opacity:0;max-width:90%;margin:0 auto 3rem;line-height:1.6;transition:opacity 1s ease-out,transform 1s ease-out;transform:translateY(20px)}.countdown-card{z-index:10;background-color:var(--color-surface,#f5efe6);text-align:center;opacity:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:340px;min-height:450px;padding:2rem 1.5rem;transition:opacity 1s ease-out,transform 1s ease-out;display:flex;position:relative;overflow:hidden;transform:translateY(60px);box-shadow:0 10px 40px #0003}.countdown-section.animate-on-scroll .countdown-intro-text{opacity:1;transform:translateY(0)}.countdown-section.animate-on-scroll .countdown-card{opacity:1;transition-delay:.3s;transform:translateY(0)}.flowers-wrapper{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.flower{opacity:.95;filter:drop-shadow(0 8px 12px #0000001a);position:absolute}.flower-top-left{transform-origin:0 0;width:160px;max-width:45vw;top:-15px;left:-20px}.flower-anim{animation:5s ease-in-out infinite alternate gentleFlowerSway}@keyframes gentleFlowerSway{0%{transform:rotate(0)scale(1)}to{transform:rotate(2deg)scale(1.02)}}.flower-bottom{width:120%;max-width:450px;bottom:-40px;left:50%;transform:translate(-50%)}.countdown-content{z-index:10;flex-direction:column;align-items:center;padding:0 1rem;display:flex;position:relative}.countdown-date{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-main);letter-spacing:var(--tracking-widest);font-weight:var(--weight-medium);margin-bottom:.25rem}.countdown-location{font-family:var(--font-serif);color:var(--color-text-main);letter-spacing:.1em;margin-bottom:.5rem;font-size:14px;font-style:italic}.countdown-label{font-family:var(--font-sans);color:var(--color-text-muted);letter-spacing:.3em;text-transform:uppercase;font-size:.8rem;font-weight:var(--weight-medium);margin-bottom:2.5rem}.countdown-content>*{opacity:0;transition:opacity 1s ease-out}.countdown-section.animate-on-scroll .countdown-date{opacity:1;transition-delay:.8s}.countdown-section.animate-on-scroll .countdown-location{opacity:1;transition-delay:1.1s}.countdown-section.animate-on-scroll .countdown-label{opacity:1;transition-delay:1.4s}.countdown-section.animate-on-scroll .countdown-grid{opacity:1;transition-delay:1.7s}.countdown-grid{grid-template-columns:repeat(4,1fr);gap:1rem;width:100%;display:grid}.countdown-item{flex-direction:column;align-items:center;display:flex}.countdown-value{font-family:var(--font-serif);font-size:var(--text-3xl);color:var(--color-text-main);font-weight:var(--weight-light);line-height:1.1}.countdown-unit{font-family:var(--font-sans);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:var(--weight-medium);margin-top:.5rem}@media (width>=480px){.countdown-grid{gap:1.5rem}.countdown-value{font-size:var(--text-4xl)}.countdown-card{min-height:650px}}.wedding-details-section{box-sizing:border-box;background-color:var(--color-bg-main);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:4rem 1.5rem;display:flex;position:relative;overflow:hidden}.section-title{font-family:var(--font-serif);font-size:var(--text-3xl);color:var(--color-text-main);text-transform:uppercase;letter-spacing:.15em;text-align:center;opacity:0;margin-bottom:2.5rem;transition:opacity .8s ease-out,transform .8s ease-out;transform:translateY(20px)}.wedding-details-section.animate-on-scroll .section-title{opacity:1;transform:translateY(0)}.details-card{background-color:var(--color-surface);opacity:0;border-radius:24px;flex-direction:column;align-items:center;width:100%;max-width:480px;padding:2.5rem 1.5rem;transition:opacity 1s ease-out .2s,transform 1s ease-out .2s;display:flex;transform:translateY(40px);box-shadow:0 10px 40px #2c29261f}.wedding-details-section.animate-on-scroll .details-card{opacity:1;transform:translateY(0)}.detail-item{text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.detail-title{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-main);text-transform:uppercase;letter-spacing:.15em;margin-bottom:.4rem}.detail-address{font-family:var(--font-sans);color:var(--color-text-muted,#888);letter-spacing:.06em;margin-bottom:1.6rem;font-size:14px}.venue-photo-wrapper{border:3px solid var(--color-border);border-radius:50%;flex-shrink:0;width:130px;height:130px;margin-bottom:1.2rem;overflow:hidden;box-shadow:0 6px 24px #2c292626}.venue-photo{object-fit:cover;width:100%;height:100%}.map-wrapper{border:2px solid var(--color-border);border-radius:16px;width:100%;height:220px;margin-bottom:2rem;overflow:hidden;box-shadow:0 4px 20px #2c29261a}.map-iframe{border:none;width:100%;height:100%;display:block}.schedule-row{justify-content:center;align-items:center;width:100%;margin-bottom:2rem;display:flex}.schedule-item{flex-direction:column;flex:1;align-items:center;gap:.3rem;display:flex}.schedule-icon{width:28px;height:28px;color:var(--color-accent,#c5a880);fill:var(--color-accent,#c5a880)}.schedule-label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted,#888);margin:0;font-size:11px}.schedule-time{font-family:var(--font-serif);color:var(--color-text-main);margin:0;font-size:18px;font-weight:600}.schedule-divider-v{background-color:var(--color-border);flex-shrink:0;width:1px;height:50px;margin:0 1rem}.btn-action{background-color:var(--color-text-main);color:var(--color-bg-main);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-family:var(--font-sans);font-weight:var(--weight-medium);cursor:pointer;border:none;border-radius:50px;align-items:center;gap:.5rem;padding:.8rem 2rem;text-decoration:none;transition:background-color .3s,transform .2s;display:inline-flex;box-shadow:0 4px 12px #2c292626}.btn-action:hover{background-color:var(--color-accent);transform:translateY(-2px)}.btn-icon{color:#fff;fill:#fff;width:16px;height:16px}.detail-item>*{opacity:0;transition:opacity .8s ease-out,transform .8s ease-out;transform:translateY(20px)}.wedding-details-section.animate-on-scroll .ubicacion-item .venue-photo-wrapper{opacity:1;transition-delay:.3s;transform:translateY(0)}.wedding-details-section.animate-on-scroll .ubicacion-item .detail-title{opacity:1;transition-delay:.5s;transform:translateY(0)}.wedding-details-section.animate-on-scroll .ubicacion-item .detail-address{opacity:1;transition-delay:.6s;transform:translateY(0)}.wedding-details-section.animate-on-scroll .ubicacion-item .map-wrapper{opacity:1;transition-delay:.7s;transform:translateY(0)}.wedding-details-section.animate-on-scroll .ubicacion-item .schedule-row{opacity:1;transition-delay:1s;transform:translateY(0)}.wedding-details-section.animate-on-scroll .ubicacion-item .btn-action{opacity:1;transition-delay:1.2s;transform:translateY(0)}.itinerary-section{box-sizing:border-box;background-color:var(--color-surface);flex-direction:column;align-items:center;width:100%;min-height:100vh;padding:5rem 1.5rem;display:flex;position:relative;overflow:hidden}.section-title{font-family:var(--font-serif);font-size:var(--text-3xl);color:var(--color-text-main);text-transform:uppercase;letter-spacing:.15em;text-align:center;margin-bottom:4rem}.timeline-container{flex-direction:column;gap:2.5rem;width:100%;max-width:450px;margin:0 auto 3rem;display:flex;position:relative}.timeline-line{background-color:var(--color-text-main);opacity:.2;z-index:0;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{z-index:1;opacity:0;align-items:center;width:100%;min-height:60px;transition:opacity .6s ease-out,transform .6s ease-out;display:flex;position:relative;transform:translateY(20px)}.timeline-item.visible{opacity:1;transform:translateY(0)}.timeline-content{width:45%}.timeline-desc{font-family:var(--font-serif);color:var(--color-text-main);font-size:1.1rem;font-style:italic;line-height:1.3}.timeline-menu{flex-direction:column;gap:.3rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.timeline-menu li{font-family:var(--font-sans);color:var(--color-text-main);opacity:.75;font-size:.7rem;line-height:1.4}.menu-cat{font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;opacity:1;color:var(--color-text-main);font-size:.6rem;display:block}.timeline-time{align-items:center;gap:.5rem;width:45%;display:flex}.timeline-time p{font-family:var(--font-sans);color:var(--color-text-main);font-size:13px;font-weight:var(--weight-medium);letter-spacing:.05em}.timeline-time .icon{color:var(--color-text-main);font-size:24px}.left-aligned .timeline-content{text-align:right;padding-right:1.5rem}.left-aligned .timeline-time{justify-content:flex-start;padding-left:1.5rem}.right-aligned .timeline-time{text-align:right;justify-content:flex-end;padding-right:1.5rem}.right-aligned .timeline-content{text-align:left;padding-left:1.5rem}.timeline-dot{background-color:var(--color-text-main);width:10px;height:10px;box-shadow:0 0 0 4px var(--color-surface);z-index:10;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.itinerary-footer{text-align:center;margin-top:3rem}.footer-title{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-main);text-transform:uppercase;letter-spacing:.15em;margin-bottom:1rem}.footer-quote{font-family:var(--font-serif);color:var(--color-text-main);max-width:300px;margin:0 auto;font-size:1.25rem;font-style:italic;line-height:1.5}.itinerary-section.animate-on-scroll .fade-up{opacity:1;transform:translateY(0)}.party-details-section{box-sizing:border-box;background-color:var(--color-bg-main);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:5rem 1.5rem;display:flex;position:relative;overflow:hidden}.section-subtitle{z-index:4;font-family:var(--font-sans);color:var(--color-text-main);text-align:center;opacity:.8;margin-bottom:3rem;font-size:15px;position:relative}.flower-side{opacity:.95;filter:drop-shadow(0 8px 12px #0000001a);z-index:3;pointer-events:none;transform-origin:50%;width:55vh;height:auto;position:absolute;top:50%}.flower-left{left:-8vw;transform:translate(-50%,-50%)rotate(75deg)}.flower-right{right:-8vw;transform:translate(50%,-50%)rotate(-75deg)}.party-details-section .details-card{z-index:2;background-color:var(--color-surface);border-radius:24px;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:3rem 1.5rem;display:flex;position:relative;box-shadow:0 10px 40px #2c29261f}.party-item{z-index:4;text-align:center;flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.section-title{z-index:4;font-family:var(--font-serif);font-size:var(--text-3xl);color:var(--color-text-main);text-transform:uppercase;letter-spacing:.15em;margin-bottom:2rem;position:relative}.party-title{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-main);text-transform:uppercase;letter-spacing:.15em;margin-bottom:2rem}.dress-code-grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem 1rem;width:100%;max-width:300px;margin-bottom:2rem;display:grid}.dress-label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:var(--weight-semibold);color:var(--color-text-main);opacity:.9}.dress-divider{color:var(--color-text-muted);font-size:12px}.dress-value{font-family:var(--font-sans);color:var(--color-text-main);font-size:15px}.party-icon-wrapper{border:1px solid #2c29264d;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:1.5rem;transition:background-color .3s;display:flex}.party-icon-wrapper:hover{background-color:#2c29260d}.party-icon-wrapper .icon{color:var(--color-text-main);font-size:28px}.party-text{font-family:var(--font-sans);color:var(--color-text-main);margin-bottom:1.5rem;font-size:15px}.btn-secondary{color:var(--color-text-main);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-family:var(--font-sans);font-weight:var(--weight-medium);border:1px solid var(--color-text-main);cursor:pointer;background-color:#0000;border-radius:50px;padding:.8rem 2rem;text-decoration:none;transition:all .3s;display:inline-block}.btn-secondary:hover{background-color:var(--color-text-main);color:var(--color-bg-main)}.btn-action{text-decoration:none;display:inline-block}.party-divider{background-color:var(--color-border);width:80px;height:1px;margin:3rem 0}.fade-up{opacity:0;transition:opacity .8s ease-out,transform .8s ease-out;transform:translateY(20px)}.party-details-section.animate-on-scroll .fade-up{opacity:1;transform:translateY(0)}.party-item>*{opacity:0;transition:opacity .8s ease-out,transform .8s ease-out;transform:translateY(20px)}.party-divider{opacity:0;transition:opacity 1s ease-out}.party-details-section.animate-on-scroll .dress-code-item .party-title{transition-delay:.4s}.party-details-section.animate-on-scroll .dress-code-item .dress-code-grid{transition-delay:.6s}.party-details-section.animate-on-scroll .dress-code-item .party-icon-wrapper{transition-delay:.8s}.party-details-section.animate-on-scroll .dress-code-item .party-text{transition-delay:1s}.party-details-section.animate-on-scroll .dress-code-item .btn-action{transition-delay:1.2s}.party-details-section.animate-on-scroll .party-divider{opacity:1;transition-delay:1.4s}.party-details-section.animate-on-scroll .music-item .party-title{transition-delay:1.6s}.party-details-section.animate-on-scroll .music-item .party-icon-wrapper{transition-delay:1.8s}.party-details-section.animate-on-scroll .music-item .party-text{transition-delay:2s}.party-details-section.animate-on-scroll .music-item .btn-secondary{transition-delay:2.2s}.party-details-section.animate-on-scroll .party-item>*{opacity:1;transform:translateY(0)}.rsvp-section{box-sizing:border-box;background-color:var(--color-parchment);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:5rem 1.5rem 4rem;display:flex;position:relative;overflow:hidden}.rsvp-flower{pointer-events:none;opacity:.9;z-index:1;position:absolute}.rsvp-flower-tl{filter:drop-shadow(0 8px 12px #00000014);width:200px;max-width:50vw;top:-15px;left:-20px}.rsvp-flower-bottom{filter:drop-shadow(0 -4px 12px #0000000f);width:105%;max-width:500px;bottom:0;left:50%;transform:translate(-50%)}.rsvp-card{z-index:2;background-color:var(--color-surface);text-align:center;opacity:0;border-radius:28px;flex-direction:column;align-self:center;align-items:center;width:80%;max-width:320px;margin-top:15rem;padding:2.5rem 1.5rem 2rem;transition:opacity .9s ease-out,transform .9s ease-out;display:flex;position:relative;transform:translateY(30px);box-shadow:0 12px 50px #2c29261f}.rsvp-section.animate-on-scroll .rsvp-card{opacity:1;transition-delay:.15s;transform:translateY(0)}.rsvp-tagline{font-family:var(--font-serif);font-size:var(--text-base);color:var(--color-accent);letter-spacing:var(--tracking-wide);margin-bottom:.5rem;font-style:italic}.rsvp-title{font-family:var(--font-serif);font-size:var(--text-3xl);color:var(--color-text-main);font-weight:var(--weight-regular);letter-spacing:.01em;margin-bottom:1.5rem;line-height:1.2}.rsvp-divider{background-color:var(--color-accent);opacity:.6;width:60px;height:1px;margin-bottom:1.5rem}.rsvp-body{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted);max-width:290px;margin-bottom:2.5rem;line-height:1.75}.rsvp-body strong{color:var(--color-text-main);font-weight:var(--weight-medium)}.rsvp-buttons{flex-direction:column;gap:.85rem;width:100%;display:flex}.btn-rsvp-confirm{background-color:var(--color-text-main);color:var(--color-bg-main);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-widest);text-align:center;border-radius:50px;padding:1rem 2rem;text-decoration:none;transition:all .3s;display:block;box-shadow:0 4px 20px #2c292633}.btn-rsvp-confirm:hover{background-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 8px 24px #c5a88059}.btn-rsvp-decline{color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-widest);text-align:center;border:1px solid var(--color-border);background-color:#0000;border-radius:50px;padding:.9rem 2rem;text-decoration:none;transition:all .3s;display:block}.btn-rsvp-decline:hover{border-color:var(--color-text-muted);color:var(--color-text-main);background-color:var(--color-parchment)}.rsvp-colibri-wrapper{z-index:2;opacity:0;justify-content:center;width:100%;margin-top:3rem;margin-bottom:5rem;transition:opacity 1s ease-out .8s;display:flex;position:relative}.rsvp-section.animate-on-scroll .rsvp-colibri-wrapper{opacity:1}.rsvp-colibri{opacity:.95;filter:drop-shadow(0 6px 16px #0000001f);width:240px;animation:5s ease-in-out infinite colibriFloat}@keyframes colibriFloat{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-16px)rotate(2deg)}}.animation-screen{background-color:var(--color-bg-main,#faf7f2);z-index:1000;opacity:0;pointer-events:none;scroll-behavior:smooth;scroll-snap-type:y mandatory;width:100%;height:100%;transition:opacity 1s ease-in-out;display:block;position:fixed;top:0;left:0;overflow:hidden auto}.animation-screen.visible{opacity:1;pointer-events:auto}.frame-container{scroll-snap-align:start;scroll-snap-stop:always;background-color:#fff;justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.flower-frame{object-fit:cover;z-index:10;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.corner-flower{z-index:15;pointer-events:none;width:250px;max-width:45vw;position:absolute}.corner-tr{top:-45px;right:-45px;transform:none}.corner-bl{bottom:-45px;left:-45px;transform:rotate(180deg)}.swaying-container{pointer-events:none;z-index:12;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.swaying-element{--base-rot:0deg;transform-origin:bottom;animation:6s ease-in-out infinite alternate windSway;position:absolute}.wheat{opacity:.85}.leaf{opacity:.95}@keyframes windSway{0%{transform:rotate(calc(var(--base-rot) - 5deg))}to{transform:rotate(calc(var(--base-rot) + 7deg))}}.wheat-tr-1{--base-rot:-140deg;filter:blur(2px);width:70px;animation-duration:7s;top:-10px;right:20px}.wheat-tr-2{--base-rot:-100deg;filter:blur(4px);opacity:.7;width:85px;animation-duration:5.5s;animation-delay:-1s;top:20px;right:-10px}.wheat-tr-3{--base-rot:-125deg;filter:blur(3px);width:100px;animation-duration:8s;animation-delay:-3s;top:-15px;right:-15px}.leaf-tr-1{--base-rot:-150deg;width:65px;animation-duration:6s;top:-5px;right:15px}.leaf-tr-2{--base-rot:-90deg;width:80px;animation-duration:7.5s;animation-delay:-2s;top:15px;right:-5px}.wheat-bl-1{--base-rot:40deg;filter:blur(2px);width:75px;animation-duration:6.5s;animation-delay:-2s;bottom:-10px;left:20px}.wheat-bl-2{--base-rot:80deg;filter:blur(5px);opacity:.6;width:90px;animation-duration:5s;animation-delay:-4s;bottom:20px;left:-10px}.wheat-bl-3{--base-rot:65deg;filter:blur(3px);width:110px;animation-duration:7.5s;bottom:-15px;left:-15px}.leaf-bl-1{--base-rot:50deg;width:70px;animation-duration:6.2s;animation-delay:-1.5s;bottom:-5px;left:15px}.leaf-bl-2{--base-rot:95deg;width:85px;animation-duration:7s;animation-delay:-3.5s;bottom:15px;left:-5px}.messages-container{z-index:1;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.colibri-gif{z-index:2;opacity:.9;width:500px;position:absolute;top:15%;left:50%;transform:translate(-50%)}.anim-message{text-align:center;opacity:0;width:80%;transition:opacity 1.5s ease-in-out,transform 3s ease-in-out;position:absolute;transform:scale(.95)}.anim-message h2{font-family:var(--font-serif);color:var(--color-text-main,#333);letter-spacing:.05em;text-shadow:1px 1px 10px #fffc;margin:0;font-size:40px;font-weight:500}.anim-message.active{opacity:1;transform:scale(1)}.cupula-section{background-color:var(--color-parchment);box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;justify-content:center;align-items:flex-end;width:100%;height:100vh;padding:60px 0 0;display:flex;position:relative}.arch-container{background-color:var(--color-surface);box-sizing:border-box;border:none;border-radius:200px 200px 0 0;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;height:100%;padding:60px 24px;display:flex;position:relative}.arch-pretitle{font-family:var(--font-serif);color:var(--color-text-muted);text-align:center;margin-bottom:12px;font-size:16px;font-style:italic}.arch-subtitle{font-family:var(--font-sans);letter-spacing:.25em;color:var(--color-text-main);text-transform:uppercase;margin-bottom:50px;font-size:12px;font-weight:700}.arch-names-wrapper{text-align:center;flex-direction:column;gap:4px;margin-bottom:80px;display:flex;position:relative}.arch-ampersand{font-family:var(--font-serif);color:var(--color-primary);opacity:.7;z-index:0;pointer-events:none;font-size:130px;font-style:italic;line-height:1;position:absolute;top:50%;left:20%;transform:translate(-50%,-50%)}.arch-name{font-family:var(--font-serif);color:var(--color-text-main);letter-spacing:.05em;z-index:1;margin:0;font-size:42px;font-weight:600;position:relative}.arch-date{font-family:var(--font-serif);letter-spacing:.3em;color:var(--color-text-main);z-index:1;margin-bottom:16px;font-size:18px;font-weight:500;position:relative}.arch-message{font-family:var(--font-sans);color:var(--color-text-muted);text-align:center;z-index:1;max-width:85%;font-size:14px;line-height:1.6;position:relative}.section-bottom-flowers{object-fit:cover;pointer-events:none;z-index:10;opacity:1;width:100%;position:absolute;bottom:0;left:0}.cupula-tl-flowers{z-index:20;pointer-events:none;transform-origin:0 0;width:320px;max-width:60vw;animation:6s ease-in-out infinite alternate gentleWindTL;position:absolute;top:0;left:0}@keyframes gentleWindTL{0%{transform:rotate(-2deg)}to{transform:rotate(4deg)}}.arch-container>*{opacity:0;transition:opacity 1.2s ease-out,transform 1.2s ease-out;transform:translateY(30px)}.arch-container.animate-in>*{opacity:1;transform:translateY(0)}.arch-container.animate-in .arch-pretitle{transition-delay:.2s}.arch-container.animate-in .arch-subtitle{transition-delay:.4s}.arch-container.animate-in .arch-names-wrapper{transition-delay:.7s}.arch-container.animate-in .arch-date{transition-delay:1s}.arch-container.animate-in .arch-message{transition-delay:1.2s}.scroll-hint{z-index:20;opacity:.9;pointer-events:none;flex-direction:column;align-items:center;transition:opacity .5s;display:flex;position:absolute;bottom:8vh;right:15vw}.scroll-hint.hidden{opacity:0}.scroll-finger-icon{opacity:.8;filter:drop-shadow(0 2px 5px #0003);width:90px;height:auto;animation:2.5s ease-in-out infinite swipeUpHint}.scroll-text{font-family:var(--font-sans);color:var(--color-text-main);text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin-top:15px;font-size:11px}@keyframes fadeInHint{0%{opacity:0}to{opacity:1}}@keyframes swipeUpHint{0%{opacity:0;transform:translateY(15px)scale(1)}15%{opacity:.8;transform:translateY(15px)scale(1)}60%{opacity:.8;transform:translateY(-25px)scale(.95)}85%{opacity:0;transform:translateY(-25px)scale(.95)}to{opacity:0;transform:translateY(15px)scale(1)}}.app-background{background-color:#efe9e1;justify-content:center;align-items:center;min-height:100vh;margin:0;padding:0;display:flex}.mobile-frame{background-color:var(--color-bg-main);box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;width:100%;max-width:414px;min-height:100vh;padding:3rem 1.5rem 2rem;display:flex;position:relative;overflow:hidden auto;box-shadow:0 25px 50px -12px #00000026}.mobile-frame::-webkit-scrollbar{display:none}@media (width>=640px){.app-background{padding:2rem 0}.mobile-frame{border:12px solid #fff;border-radius:40px;height:896px;min-height:auto;box-shadow:0 20px 40px #0000001a}}.content-section{text-align:center;flex-direction:column;flex-grow:1;justify-content:flex-start;align-items:center;display:flex}.guest-info{margin:1.5rem 0}.guest-name{font-family:var(--font-serif);font-size:var(--text-4xl);font-weight:var(--weight-medium);color:var(--color-text-main);margin-bottom:.5rem;font-style:italic}.guest-details{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);color:var(--color-text-main);text-transform:uppercase;margin-top:0}.message{margin:1rem 0 2rem;padding:0 1rem}.message p{font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--line-height-relaxed);color:var(--color-text-main)}.footer{text-align:center;margin-top:2rem}.footer p{font-family:var(--font-serif);font-size:var(--text-lg);letter-spacing:var(--tracking-widest);color:var(--color-text-main);margin:0}#envelope-wrapper{position:relative}.envelope-blocked-overlay{backdrop-filter:blur(3px);opacity:0;pointer-events:none;background:#fdfbf7bf;border-radius:4px;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:absolute;inset:0}.envelope-blocked-overlay.visible{opacity:1;pointer-events:auto}#envelope-wrapper.blocked{cursor:not-allowed}#envelope-wrapper.blocked .interactive-envelope-container{pointer-events:none}.blocked-icon{color:var(--color-text-muted);opacity:.6;font-size:52px}.no-name-error{text-align:center;background-color:var(--color-surface);border:1px solid var(--color-border);opacity:0;pointer-events:none;border-radius:16px;flex-direction:column;align-items:center;gap:.5rem;max-height:0;margin-top:1.5rem;padding:1.5rem 1.2rem;transition:opacity .5s .3s,max-height .5s .3s,transform .5s .3s;display:flex;overflow:hidden;transform:translateY(10px);box-shadow:0 4px 20px #2c292614}.no-name-error.visible{opacity:1;pointer-events:auto;max-height:200px;transform:translateY(0)}.error-icon{color:var(--color-accent);font-size:40px}.error-title{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-text-main);margin:0}.error-desc{font-family:var(--font-sans);font-size:var(--text-xs);line-height:var(--line-height-relaxed);color:var(--color-text-muted);margin:0}
