:root{--color-cream:#fdfbf7;--color-cream-dark:#f5efe6;--color-orange:#e5611f;--color-ink:#2c2a29;--color-wax-red:#8b0000;--color-gold:#d4af37;--font-heading:"Playfair Display", serif;--font-script:"Great Vibes", cursive;--font-body:"Lato", sans-serif;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:2rem;--spacing-lg:4rem;--spacing-xl:8rem;--max-width:1200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-cream);color:var(--color-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-ink);font-weight:400;line-height:1.2}a{color:var(--color-orange);text-decoration:none;transition:color .3s}a:hover{color:var(--color-ink)}img{max-width:100%;display:block}.btn{background-color:var(--color-orange);color:var(--color-cream);font-family:var(--font-body);text-transform:uppercase;letter-spacing:2px;cursor:pointer;border:none;border-radius:4px;padding:1rem 2rem;font-size:.875rem;transition:background-color .3s,transform .2s;display:inline-block}.btn:hover{background-color:var(--color-ink);color:var(--color-cream)}.btn:active{transform:scale(.98)}::selection{background-color:var(--color-orange);color:var(--color-cream)}.envelope-overlay{z-index:9999;background:#f5efe6;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.envelope-static,.envelope-video{object-fit:cover;object-position:center center;width:100%;height:100%;position:absolute;inset:0}.envelope-static{z-index:2;cursor:pointer}.envelope-video{z-index:1}.envelope-prompt{text-align:center;z-index:15;position:absolute;bottom:clamp(2rem,6vh,4rem);left:0;right:0}.envelope-prompt span{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--color-ink);opacity:.5;font-size:.85rem}.hero-section{text-align:center;width:100vw;height:100vh;color:var(--color-cream);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero-bg-container{z-index:0;position:absolute;inset:0}.hero-bg-video{object-fit:cover;object-position:center center;width:100%;height:100%;position:absolute;inset:0}@media (width>=768px){.hero-bg-video{object-position:center top}}.hero-bg-gradient{z-index:-1;background:linear-gradient(135deg,#f5efe6 0%,#d8c3a5 50%,#e5611f 150%) 0 0/200% 200%;animation:15s infinite gradientSwap;position:absolute;inset:0}@keyframes gradientSwap{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.hero-bg-overlay{z-index:1;background:linear-gradient(#2c2a2959 0%,#2c2a2980 50%,#2c2a2999 100%);position:absolute;inset:0}.hero-content{z-index:10;padding:0 2rem}.hero-title{font-family:var(--font-body);letter-spacing:.3em;text-transform:uppercase;color:var(--color-cream);margin-bottom:2rem;font-size:clamp(.9rem,2vw,1.2rem);font-weight:300}.hero-subtitle{font-family:var(--font-heading);color:var(--color-cream);text-shadow:0 4px 20px #0000004d;margin-bottom:2rem;font-size:clamp(3rem,8vw,6rem);font-style:italic;line-height:1.1}.hero-date{font-family:var(--font-body);letter-spacing:.2em;color:var(--color-cream);opacity:.9;font-size:clamp(.9rem,2vw,1.2rem);font-weight:300}.scroll-indicator{text-transform:uppercase;letter-spacing:.2em;opacity:.7;z-index:10;color:var(--color-cream);flex-direction:column;align-items:center;gap:.75rem;font-size:.75rem;display:flex;position:absolute;bottom:2rem}.petals-container{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.petal{opacity:.35;will-change:transform;animation:linear infinite petalFall;position:absolute;top:-30px}.petal-0{background:var(--color-cream);clip-path:ellipse(50% 35%);opacity:.25;border-radius:50%}.petal-1{background:var(--color-orange);clip-path:ellipse(40% 50%);opacity:.2}.petal-2{background:var(--color-cream-dark);clip-path:ellipse(45% 30% at 50% 60%);opacity:.3}.petal-3{clip-path:ellipse(35% 50%);opacity:.15;background:#fff}@keyframes petalFall{0%{opacity:0;transform:translateY(-30px)rotate(0)translate(0)}10%{opacity:.3}50%{transform:translateY(50vh)rotate(180deg)translate(40px)}90%{opacity:.3}to{opacity:0;transform:translateY(105vh)rotate(360deg)translate(-30px)}}.add-to-calendar{margin-top:2rem;display:inline-block;position:relative}.add-to-calendar-btn{color:var(--color-ink);font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #2c2a2933;border-radius:4px;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-size:.85rem;transition:border-color .3s,color .3s;display:inline-flex}.add-to-calendar-btn:hover{border-color:var(--color-orange);color:var(--color-orange)}.add-to-calendar-dropdown{background:var(--color-cream);z-index:20;border:1px solid #2c2a291a;border-radius:6px;min-width:200px;position:absolute;top:calc(100% + 8px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 24px #0000001a}.calendar-option{width:100%;font-family:var(--font-body);color:var(--color-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:.8rem 1.2rem;font-size:.9rem;text-decoration:none;transition:background-color .2s;display:block}.calendar-option:hover{background-color:var(--color-cream-dark);color:var(--color-orange)}.calendar-option+.calendar-option{border-top:1px solid #2c2a290f}.countdown-section{background-color:var(--color-cream-dark);padding:6rem 2rem}.countdown-inner{text-align:center;max-width:800px;margin:0 auto}.countdown-heading{font-family:var(--font-script);color:var(--color-orange);margin-bottom:.5rem;font-size:clamp(3rem,6vw,4.5rem);font-weight:400;line-height:1.2}.countdown-date{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.2em;color:var(--color-ink);opacity:.5;margin-bottom:3rem;font-size:clamp(.75rem,1.2vw,.9rem)}.countdown-units{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:0;display:flex}.countdown-unit{flex-direction:column;align-items:center;min-width:5rem;display:flex;position:relative}.countdown-value{font-family:var(--font-heading);color:var(--color-ink);min-width:2.5ch;font-size:clamp(2.5rem,5vw,4rem);font-style:italic;line-height:1;position:relative;overflow:hidden}.countdown-unit-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.15em;opacity:.5;color:var(--color-ink);margin-top:.75rem;font-size:.7rem}.countdown-separator{font-family:var(--font-body);color:var(--color-ink);opacity:.15;align-self:flex-start;margin-top:.3rem;padding:0 .5rem;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:300}@media (width<=480px){.countdown-unit{min-width:4rem}.countdown-separator{padding:0 .2rem}}.welcome-section{background-color:var(--color-cream);padding:6rem 0 4rem;overflow:hidden}.welcome-text-container{text-align:center;max-width:855px;margin:0 auto 4rem;padding:0 2rem}.welcome-heading{font-family:var(--font-script);color:var(--color-orange);margin-bottom:1.5rem;font-size:clamp(3rem,6vw,4.5rem);font-weight:400;line-height:1.2}.welcome-paragraph{color:var(--color-ink);opacity:.8;text-align:justify;font-size:1.1rem;line-height:1.8}.carousel-container{width:100%;padding-bottom:3rem;overflow:hidden}.carousel-track{-webkit-user-select:none;user-select:none;gap:2rem;width:max-content;padding:1rem 0 2rem;display:flex}.carousel-track-draggable{cursor:grab}.carousel-track-draggable:active{cursor:grabbing}.carousel-slide{border-radius:6px;flex:none;width:280px;height:380px;transition:box-shadow .4s,transform .4s;overflow:hidden;box-shadow:0 8px 25px #0000001a}.carousel-slide:hover{transform:translateY(-8px);box-shadow:0 16px 40px #00000026}.carousel-slide img{object-fit:cover;pointer-events:none;width:100%;height:100%;transition:transform .6s}.carousel-slide:hover img{transform:scale(1.05)}@media (width>=768px){.carousel-slide{width:340px;height:460px}.carousel-track{gap:2.5rem}}@media (width>=1024px){.carousel-slide{width:380px;height:520px}}.venue-section{background-color:var(--color-cream-dark);padding:6rem 0}.venue-header{text-align:center;margin-bottom:4rem}.venue-heading{font-family:var(--font-script);color:var(--color-orange);margin-bottom:.5rem;font-size:clamp(3rem,6vw,4.5rem);font-weight:400;line-height:1.2}.venue-header .section-subtitle{margin-bottom:0}.venue-cards{flex-direction:column;gap:3rem;max-width:900px;margin:0 auto;padding:0 2rem;display:flex}.venue-card{flex-direction:column;display:flex}.venue-card-inner{background-color:var(--color-cream);border-top:none;flex-grow:1;transition:transform .3s,box-shadow .3s;overflow:hidden;box-shadow:0 10px 30px #0000000d}.venue-details-row{gap:2rem;padding:2rem 2.5rem 2.5rem;display:flex}.venue-text{flex:1;min-width:0}.venue-details-row .venue-map{flex:1;width:auto;min-width:0;height:auto;min-height:220px;margin:0}.venue-image{box-sizing:border-box;width:100%;padding:0}.venue-image img{width:100%;height:auto;display:block}.venue-name{font-family:var(--font-script);color:var(--color-orange);margin-bottom:1rem;font-size:2.2rem;font-style:normal;font-weight:400}.venue-address{margin-bottom:.5rem;font-weight:700}.venue-location{opacity:.8;margin-bottom:2rem;line-height:1.6}.venue-note{font-family:var(--font-body);margin-bottom:0;font-style:italic}.venue-map{background-color:#e0e0e0;border-radius:4px;width:100%;height:250px;position:relative;overflow:hidden}.venue-map iframe{filter:grayscale()brightness(105%)contrast(90%);border:0;width:100%;height:100%}@media (width<=768px){.venue-details-row{flex-direction:column;gap:1.5rem;padding:2rem 1.5rem 1.5rem}.venue-details-row .venue-map{height:200px;min-height:200px}}.timeline-section{background-color:var(--color-cream);padding:6rem 0;position:relative;overflow:hidden}.timeline-header{text-align:center;margin-bottom:4rem}.timeline-container{max-width:800px;margin:0 auto;padding:0 2rem}.timeline-cake-motif{z-index:5;justify-content:center;margin-bottom:40px;display:flex;position:relative}.timeline-cake-motif>div{margin:0!important}.timeline-events{position:relative}.timeline-line-wrapper{width:2px;position:absolute;top:-50px;bottom:-50px;left:50%;transform:translate(-50%)}.timeline-line-bg{background-color:var(--color-ink);opacity:.08;border-radius:1px;position:absolute;inset:0}.timeline-line-fill{background-color:var(--color-orange);opacity:.5;transform-origin:top;border-radius:1px;height:100%;position:absolute;top:0;left:0;right:0}.timeline-item{justify-content:flex-end;margin-bottom:3rem;padding-right:calc(50% + 1.5rem);display:flex;position:relative}.timeline-item.right{justify-content:flex-start;padding-left:calc(50% + 1.5rem);padding-right:0}.timeline-content{text-align:right;background-color:#fff;border-radius:6px;width:100%;padding:2rem;transition:transform .3s,box-shadow .3s;position:relative;box-shadow:0 4px 20px #0000000d}.timeline-content:hover{transform:translateY(-2px);box-shadow:0 8px 30px #00000014}.timeline-item.right .timeline-content{text-align:left}.timeline-dot{border:3px solid var(--color-cream);z-index:10;background-color:#ccc;border-radius:50%;width:12px;height:12px;transition:background-color .5s,box-shadow .5s;position:absolute;top:2rem;left:50%;transform:translate(-50%);box-shadow:0 0 0 2px #ccc}.timeline-dot.active{background-color:var(--color-orange);box-shadow:0 0 0 2px var(--color-orange)}.timeline-connector{opacity:.4;z-index:5;background-color:#ccc;height:2px;transition:background-color .5s;position:absolute;top:calc(2rem + 5px)}.timeline-connector.active{background-color:var(--color-orange)}.timeline-item.left .timeline-connector{left:calc(50% - 1.5rem);right:calc(50% + 9px)}.timeline-item.right .timeline-connector{left:calc(50% + 9px);right:calc(50% - 1.5rem)}.timeline-poppers-motif{z-index:5;flex-direction:column;align-items:center;margin-top:-16px;margin-left:13px;display:flex;position:relative}.timeline-time{font-family:var(--font-body);color:var(--color-orange);letter-spacing:.1em;margin-bottom:.5rem;font-size:.9rem;font-weight:700}.timeline-event-title{font-family:var(--font-heading);color:var(--color-ink);margin-bottom:.75rem;font-size:1.4rem}.timeline-event-desc{font-family:var(--font-body);opacity:.7;font-size:.95rem;line-height:1.6}@media (width<=768px){.timeline-line-wrapper{left:20px;transform:none}.timeline-cake-motif{justify-content:flex-start;margin-left:-15px;padding-left:0;bottom:-4px}.timeline-item,.timeline-item.right{justify-content:flex-start;padding-left:50px;padding-right:0}.timeline-content{text-align:left;width:100%}.timeline-dot{left:20px}.timeline-item.left .timeline-connector,.timeline-item.right .timeline-connector{width:21px;left:29px;right:auto}.timeline-poppers-motif{align-items:start;margin-top:-16px;margin-left:-39px}}.dress-code-section{background-color:#fff;padding:6rem 0;overflow:hidden}.dress-code-header{text-align:center;max-width:700px;margin-bottom:4rem;margin-left:auto;margin-right:auto;padding:0 2rem}.dress-code-rows{flex-direction:column;gap:4rem;max-width:1000px;margin:0 auto;padding:0 2rem;display:flex}.dress-code-row{align-items:center;gap:3rem;display:flex;overflow:hidden}.dress-code-image{flex:1;min-width:0}.dress-code-image img{object-fit:cover;width:100%;height:100%;display:block}.dress-code-text{flex:1;min-width:0;padding:2.5rem}.dress-code-card-title{font-family:var(--font-script);color:var(--color-orange);margin-bottom:1rem;font-size:2.2rem;font-style:normal;font-weight:400}.dress-code-card-desc{font-family:var(--font-body);opacity:.8;font-size:.95rem;line-height:1.8}@media (width<=768px){.dress-code-row{flex-direction:column;gap:0}.dress-code-row-reverse{flex-direction:column-reverse}.dress-code-row-reverse .dress-code-image{order:-1}.dress-code-text{padding:2rem 1.5rem}}.information-section{background-color:#f9f6f0;padding:6rem 0}.information-header{text-align:center;margin-bottom:4rem}.info-cards-grid{flex-wrap:wrap;gap:2rem;max-width:1200px;margin:0 auto;padding:0 2rem;display:flex}.info-card{background-color:var(--color-cream);text-align:center;border:1px solid #0000000d;flex:300px;padding:3rem 2rem;transition:transform .3s,box-shadow .3s}.info-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #00000014}.info-card-icon{color:var(--color-orange);margin-bottom:1.5rem}.info-card-title{font-family:var(--font-heading);color:var(--color-ink);margin-bottom:1.5rem;font-size:1.5rem}.info-card-content{opacity:.8;line-height:1.8}.info-card-content p{text-align:justify;margin-bottom:1rem}.info-card-content p:last-child{margin-bottom:0}.rsvp-section{background-color:var(--color-ink);color:var(--color-cream);padding:8rem 0 3rem;position:relative}.rsvp-section svg path{stroke:var(--color-cream)}.rsvp-section svg circle{fill:var(--color-cream)}.rsvp-footer{text-align:center;color:#ffffff4d;letter-spacing:.05em;margin-top:4rem;padding-top:2rem;font-size:.8rem}.rsvp-header{text-align:center;margin-bottom:4rem}.rsvp-container{max-width:600px;margin:0 auto;padding:0 2rem}.rsvp-card{background-color:var(--color-cream);color:var(--color-ink);text-align:center;border-radius:6px;padding:4rem 3rem;box-shadow:0 20px 60px #0006}.rsvp-form{text-align:left;flex-direction:column;gap:1.5rem;display:flex}.form-field{position:relative}.form-field input,.form-field textarea,.form-field select{width:100%;font-family:var(--font-body);color:var(--color-ink);background-color:#0000;border:1px solid #d0ccc5;border-radius:4px;padding:1.2rem 1rem .6rem;font-size:1rem;transition:border-color .3s}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--color-orange);outline:none}.form-field label{font-family:var(--font-body);color:var(--color-ink);opacity:.5;pointer-events:none;font-size:1rem;transition:all .2s;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.form-field textarea~label{top:1.2rem;transform:none}.form-field select~label{opacity:.7;font-size:.75rem;top:.3rem;transform:none}.form-field input:focus~label,.form-field input:not(:placeholder-shown)~label,.form-field textarea:focus~label,.form-field textarea:not(:placeholder-shown)~label{opacity:.7;color:var(--color-orange);font-size:.75rem;top:.4rem;transform:none}.rsvp-attendance{justify-content:center;gap:2.5rem;margin:.5rem 0;display:flex}.rsvp-radio{cursor:pointer;align-items:center;gap:.6rem;display:flex}.rsvp-radio input[type=radio]{opacity:0;width:0;height:0;position:absolute}.rsvp-radio-button{border:2px solid #d0ccc5;border-radius:50%;flex-shrink:0;width:20px;height:20px;transition:border-color .3s;position:relative}.rsvp-radio-button:after{content:"";background-color:var(--color-orange);border-radius:50%;width:10px;height:10px;transition:transform .25s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.rsvp-radio input[type=radio]:checked~.rsvp-radio-button{border-color:var(--color-orange)}.rsvp-radio input[type=radio]:checked~.rsvp-radio-button:after{transform:translate(-50%,-50%)scale(1)}.rsvp-radio-text{font-family:var(--font-heading);font-size:1.05rem}.rsvp-error{color:#c41e1e;text-align:center;margin:0;font-size:.9rem}.rsvp-submit{cursor:pointer;width:100%;margin-top:.5rem;padding:1.1rem 2rem;font-size:.9rem}.rsvp-submit:disabled{opacity:.6;cursor:not-allowed}.form-field input:disabled,.form-field textarea:disabled,.form-field select:disabled{opacity:.5;cursor:not-allowed}.rsvp-success{text-align:center;padding:3rem 0}.rsvp-success-title{font-family:var(--font-heading);color:var(--color-orange);margin-bottom:1rem;font-size:2rem}.rsvp-success-text{opacity:.7;font-size:1.05rem;line-height:1.6}@media (width<=480px){.rsvp-card{padding:3rem 1.5rem}.rsvp-attendance{flex-direction:column;align-items:center;gap:1rem}}.music-toggle{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:44px;height:44px;color:var(--color-ink);cursor:pointer;background:#fdfbf7e6;border:1px solid #2c2a2926;border-radius:50%;justify-content:center;align-items:center;transition:background-color .3s,border-color .3s;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 2px 8px #00000014}.music-toggle:hover{border-color:var(--color-orange);color:var(--color-orange);background:#fdfbf7}
