@import "https://fonts.googleapis.com/css2?family=Pattaya&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap";@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600&display=swap";:root{--color-bg:#fcfbfa;--color-maroon:#5e6a57;--color-sage:#dfa7a9;--color-text:#333;--color-light:#fff;--font-serif:"Source Serif 4", serif;--font-sans:"Montserrat", sans-serif;--font-script:"Pattaya", cursive}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);color:var(--color-maroon)}.script-text{font-family:var(--font-script);color:var(--color-maroon)}.text-maroon{color:var(--color-maroon)}.text-sage{color:var(--color-sage)}.section-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;margin-bottom:5vh;padding:15vh 20px;display:flex;position:relative;overflow:hidden}.content-wrapper{z-index:2;width:100%;max-width:600px;position:relative}.floral-top,.floral-bottom{opacity:.8;z-index:1;pointer-events:none;width:100%;max-width:800px;position:absolute}.floral-top{top:0;left:50%;transform:translate(-50%)rotate(180deg)}.floral-bottom{bottom:0;left:50%;transform:translate(-50%)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:1s forwards fadeIn}.preloader-overlay{z-index:9999;background:radial-gradient(circle,#fcfbfa 0%,#f5dadd 100%);flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .8s ease-out,visibility .8s;display:flex;position:fixed;top:0;left:0;overflow:hidden}.preloader-overlay.fade-out{opacity:0;pointer-events:none;visibility:hidden}.envelope-wrapper{cursor:pointer;flex-direction:column;align-items:center;width:100%;margin-top:12vh;display:flex;position:relative}.click-hint{font-family:var(--font-serif);letter-spacing:3px;text-transform:uppercase;opacity:.8;margin-bottom:30px;font-size:1.2rem}.animate-bounce{animation:2s ease-in-out infinite slight-bounce}@keyframes slight-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.envelope{perspective:1200px;width:360px;height:240px;position:relative}.env-back{background-color:#5e6a57;border-radius:4px;position:absolute;inset:0;box-shadow:inset 0 0 20px #0000000d}.env-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:20;background-color:#a8b89e;width:100%;height:65%;transition:transform .8s cubic-bezier(.175,.885,.32,1.05),z-index 0s .3s;position:absolute;top:0;left:0;box-shadow:0 5px 15px #0000001a}.env-flap:after{content:"";border-top:1px solid #fff9;position:absolute;inset:0}.env-flap.flap-open{z-index:5;transition:transform .8s cubic-bezier(.4,0,.2,1),z-index 0s .4s;transform:rotateX(180deg)}.env-pocket{z-index:15;clip-path:polygon(0 0,50% 30%,100% 0,100% 100%,0 100%);background-color:#92a188;border-radius:0 0 4px 4px;height:65%;position:absolute;bottom:0;left:0;right:0;box-shadow:inset 0 0 10px #00000008}.pocket-lines{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.env-pocket-shadow{opacity:0;background:linear-gradient(#0000001a 0%,#0000 40%);transition:opacity .5s .3s;position:absolute;inset:0}.env-pocket-shadow.show{opacity:1}.env-seal{z-index:30;background-color:#fcfbfa;border:1px solid #5e6a5799;border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;transition:opacity .5s;display:flex;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 10px #00000014}.env-seal.seal-open{opacity:0;pointer-events:none}.env-seal .script-text{font-size:2.2rem;line-height:1;position:relative;top:2px}.env-seal .ampersand{font-family:var(--font-sans);opacity:.8;margin:0 2px;font-size:1rem}.seal-ring{width:100%;height:100%;animation:30s linear infinite spin;position:absolute;top:0;left:0}@keyframes spin{to{transform:rotate(360deg)}}.env-content{z-index:10;justify-content:center;display:flex;position:absolute;inset:0}.env-photo{object-fit:cover;opacity:0;visibility:hidden;border:5px solid #fff;border-radius:2px;width:150px;height:200px;transition:all 1.2s cubic-bezier(.34,1.56,.64,1);position:absolute;bottom:20px;box-shadow:0 5px 15px #0000001a}.photo-left{left:40px;transform:rotate(-5deg)translateY(0)}.photo-right{right:40px;transform:rotate(5deg)translateY(0)}.env-card{visibility:hidden;background-color:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;width:280px;height:170px;transition:all 1s cubic-bezier(.25,1,.5,1);display:flex;position:absolute;bottom:0;box-shadow:0 -5px 15px #0000000d}.card-border{border:1px dashed #5e6a5766;border-radius:4px;position:absolute;inset:8px}.card-title{font-family:var(--font-serif);letter-spacing:2px;margin-bottom:15px;font-size:1.2rem}.card-date{font-family:var(--font-serif);margin-bottom:15px;font-size:2.2rem;font-weight:600}.card-subtitle{font-family:var(--font-serif);font-size:1rem;font-style:italic}.env-content.slide-up .photo-left{visibility:visible;animation:4s cubic-bezier(.25,1,.5,1) forwards photoLeftFan}.env-content.slide-up .photo-right{visibility:visible;animation:4s cubic-bezier(.25,1,.5,1) forwards photoRightFan}.env-content.slide-up .env-card{visibility:visible;animation:4s cubic-bezier(.25,1,.5,1) forwards cardSlideUp}.env-content.slide-up .magic-glow{animation:4s forwards glowPulse}@keyframes photoLeftFan{0%,20%{opacity:0;transform:translateY(0)rotate(-5deg)}21%{opacity:1}55%{opacity:1;transform:translateY(-260px)rotate(-5deg)translate(0)}to{opacity:1;transform:translateY(-250px)translate(-70px)rotate(-25deg)}}@keyframes photoRightFan{0%,20%{opacity:0;transform:translateY(0)rotate(5deg)}21%{opacity:1}55%{opacity:1;transform:translateY(-260px)rotate(5deg)translate(0)}to{opacity:1;transform:translateY(-270px)translate(70px)rotate(25deg)}}@keyframes cardSlideUp{0%,20%{opacity:0;transform:translateY(0)scale(1)}21%{opacity:1;box-shadow:0 5px 15px #0000000d}55%{opacity:1;z-index:12;transform:translateY(-160px)scale(1.15);box-shadow:0 15px 30px #0000001a}to{opacity:1;z-index:12;transform:translateY(-150px)scale(1.15);box-shadow:0 15px 30px #0000001a}}.magic-glow{opacity:0;pointer-events:none;mix-blend-mode:overlay;z-index:1;background:radial-gradient(circle,#fffc 0%,#0000 70%);border-radius:50%;width:200px;height:200px;position:absolute;top:-100px}@keyframes glowPulse{0%,60%{opacity:0;transform:scale(.5)}80%{opacity:1;transform:scale(1.5)}to{opacity:.5;transform:scale(1.2)}}.sparkles-container{pointer-events:none;opacity:0;z-index:999;transition:opacity 2s 1.5s;position:absolute;inset:0}.sparkles-container.active{opacity:1}.sparkle{opacity:0;background-color:#fff;border-radius:50%;width:6px;height:6px;animation:linear infinite fall;position:absolute;top:-10px;box-shadow:0 0 10px 2px #fffc}@keyframes fall{0%{opacity:0;transform:translateY(-20px)scale(0)}20%{opacity:1;transform:translateY(20vh)scale(1.5)}80%{opacity:1;transform:translateY(80vh)scale(1)}to{opacity:0;transform:translateY(100vh)scale(0)}}@media (width<=600px){.envelope{transform:scale(.85)}}.hero-section{background-color:var(--color-bg)}.hero-content{z-index:2;flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex}.hero-title{margin-bottom:.5rem;font-size:5rem;line-height:1}.hero-subtitle{font-family:var(--font-serif);letter-spacing:5px;color:var(--color-sage);text-transform:uppercase;margin-bottom:2.5rem;font-size:.9rem}.hero-image-wrapper{width:100%;max-width:380px;margin:0 auto 2.5rem;padding:10px;position:relative}.hero-image{border-radius:200px 200px 0 0;width:100%;height:auto;display:block;box-shadow:0 10px 30px #8b3d3d26}.image-frame-overlay{pointer-events:none;border:1px solid #5d7a7680;border-radius:210px 210px 0 0;position:absolute;inset:0}.hero-date{font-family:var(--font-serif);letter-spacing:6px;margin-bottom:3rem;font-size:1.5rem}.scroll-down-btn{cursor:pointer;opacity:.6;background:0 0;border:none;transition:opacity .3s;animation:2.5s infinite bounce}.scroll-down-btn:hover{opacity:1}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-15px)}60%{transform:translateY(-7px)}}@media (width<=600px){.hero-title{font-size:3.5rem}.hero-image-wrapper{max-width:85%}}.event-section{background-color:var(--color-bg)}.section-heading{margin-bottom:1rem;font-size:3rem}.event-intro{font-family:var(--font-serif);color:var(--color-text);margin-bottom:3rem;font-size:1.1rem}.venue-card{border-bottom:1px solid #8b3d3d33;margin-bottom:3rem;padding-bottom:2rem}.venue-name{color:var(--color-maroon);margin-bottom:1rem;font-size:2.8rem}.venue-hall{letter-spacing:2px;margin-bottom:.5rem;font-size:1rem;font-weight:600}.venue-address{font-family:var(--font-serif);color:#555;margin-bottom:1.5rem;line-height:1.6}.time-block{margin-top:1.5rem}.time-label{font-style:italic;font-family:var(--font-serif);margin-bottom:.5rem;display:block}.time-value{font-family:var(--font-sans);letter-spacing:1px;font-size:1.2rem;font-weight:600}.calendar-widget{max-width:320px;font-family:var(--font-serif);margin:0 auto 3rem}.calendar-month{margin-bottom:1.5rem;font-size:2.2rem}.calendar-grid{grid-template-columns:repeat(7,1fr);place-items:center;gap:10px;display:grid}.cal-day-header{margin-bottom:10px;font-size:.85rem;font-weight:600}.cal-day{justify-content:center;align-items:center;width:30px;height:30px;font-size:.95rem;display:flex;position:relative}.wedding-day{color:var(--color-maroon);font-weight:700}.heart-icon{opacity:.8;z-index:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wedding-day span{z-index:1;position:relative}.map-btn{font-family:var(--font-serif);color:var(--color-maroon);border-bottom:1px solid var(--color-maroon);padding-bottom:2px;font-size:1.1rem;text-decoration:none;transition:opacity .2s;display:inline-block}.map-btn:hover{opacity:.7}.timeline-section{background-color:var(--color-bg);padding:4rem 2rem}.countdown-container{font-family:var(--font-serif);margin-bottom:3rem}.countdown-days{margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.countdown-time{color:#354146;letter-spacing:2px;font-size:1.8rem;font-weight:700}.timeline-wrapper{max-width:400px;margin:0 auto 5rem;padding:2rem 0;position:relative}.timeline-center-line{background-color:var(--color-maroon);opacity:.8;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{justify-content:flex-end;align-items:center;width:50%;margin-bottom:3rem;display:flex;position:relative}.timeline-item.right{justify-content:flex-start;margin-left:50%}.timeline-content{text-align:right;padding:0 1.5rem}.timeline-item.right .timeline-content{text-align:left}.timeline-title{font-size:1.2rem;font-family:var(--font-serif);margin-bottom:.3rem;font-weight:600}.timeline-time{opacity:.9;font-size:1rem;font-weight:500}.timeline-icon-container{background-color:var(--color-bg);z-index:2;border-radius:50%;padding:5px;position:absolute;top:50%;right:-18px;transform:translateY(-50%)}.timeline-item.right .timeline-icon-container{left:-18px;right:auto}.dresscode-section{z-index:3;position:relative}.dresscode-title{margin-bottom:1.5rem;font-size:2.2rem}.dresscode-colors{justify-content:center;gap:15px;display:flex}.color-swatch{border:2px solid #fff;border-radius:50%;width:35px;height:35px;box-shadow:0 4px 10px #0000001a}@media (width<=600px){.timeline-title{font-size:1.1rem}.timeline-content{padding:0 1rem}}.gallery-section{background-color:var(--color-bg);padding:4rem 2rem}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:15px;margin-top:2rem;display:grid}.gallery-item{aspect-ratio:4/5;border-radius:4px;width:100%;overflow:hidden;box-shadow:0 5px 15px #0000000d}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.gallery-item:hover img{transform:scale(1.05)}@media (width<=600px){.gallery-grid{gap:10px}}.rsvp-section{background-color:var(--color-bg)}.rsvp-title{color:var(--color-maroon);margin-bottom:.5rem;font-size:4rem}.rsvp-subtitle{font-family:var(--font-serif);margin-bottom:3rem;font-size:1.2rem;font-weight:600}.rsvp-form{flex-direction:column;gap:1.5rem;max-width:400px;margin:0 auto;display:flex}.radio-group{justify-content:center;gap:2rem;margin-bottom:1rem;display:flex}.radio-label{cursor:pointer;font-family:var(--font-serif);opacity:.6;align-items:center;font-size:1.1rem;transition:opacity .3s;display:flex}.radio-label.active{opacity:1;font-weight:600}.radio-label input{display:none}.form-input,.form-textarea{width:100%;font-family:var(--font-serif);color:var(--color-text);background-color:#fff9;border:none;border-radius:30px;padding:1rem 1.5rem;font-size:1rem;transition:background-color .3s,box-shadow .3s;box-shadow:inset 0 2px 5px #00000005}.form-textarea{resize:vertical;border-radius:20px}.form-input:focus,.form-textarea:focus{background-color:#ffffffe6;outline:none;box-shadow:inset 0 2px 5px #0000000d,0 0 0 2px #5e6a5733}.submit-btn{font-family:var(--font-serif);cursor:pointer;background-color:#fff;border:1px solid #5e6a5733;border-radius:30px;width:fit-content;margin:1rem auto 0;padding:1rem 3rem;font-size:1.1rem;transition:all .3s;box-shadow:0 4px 15px #0000000d}.submit-btn:hover:not(:disabled){background-color:var(--color-bg);transform:translateY(-2px);box-shadow:0 6px 20px #0000001a}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.success-message{font-family:var(--font-serif);background-color:#fff9;border-radius:20px;padding:3rem}.thank-you-section{background-color:var(--color-bg);border-top:2px dashed #5e6a5726;justify-content:center;min-height:80vh;margin-top:5vh;position:relative;overflow:hidden}.thank-you-content{opacity:0;max-width:500px;padding:0 20px;transition:all 1.2s cubic-bezier(.2,.8,.2,1);transform:translateY(30px)}.thank-you-content.animate-reveal{opacity:1;transform:translateY(0)}.thank-you-text{font-family:var(--font-serif);color:#354146;margin-bottom:3rem;font-size:1.15rem;font-style:italic;font-weight:500;line-height:1.8}.thank-you-script{text-shadow:0 4px 15px #5e6a571a;font-size:4.5rem;font-weight:400}.thank-you-floral{opacity:0;pointer-events:none;z-index:0;background-image:none;background-position:bottom;background-size:cover;height:25vh;transition:all 1.5s cubic-bezier(.2,.8,.2,1) .3s;position:absolute;bottom:0;left:0;right:0;transform:translateY(50px)}.thank-you-floral.animate-floral-up{opacity:.15;transform:translateY(0)}.fixed-nav{z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;top:50%;right:25px;transform:translateY(-50%)}.nav-line-container{z-index:-1;width:2px;position:absolute;top:15px;bottom:15px;left:50%;transform:translate(-50%)}.nav-line-dashed{border-left:2px dashed #8b3d3d4d;position:absolute;inset:0}.nav-line-solid{background-color:var(--color-maroon);border-radius:2px;width:3px;transition:height .1s linear;position:absolute;top:0;left:-.5px}.nav-elements,.nav-dots{flex-direction:column;align-items:center;gap:30px;display:flex}.nav-dot-wrapper{justify-content:center;align-items:center;display:flex;position:relative}.active-leaf-indicator{opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:all .4s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;right:15px;transform:translate(-10px)}.active-leaf-indicator.visible{opacity:1;transform:translate(0)}.nav-dot{background:var(--color-bg);cursor:pointer;color:var(--color-maroon);opacity:.6;border:none;justify-content:center;align-items:center;padding:8px 0;transition:all .3s;display:flex}.nav-dot:hover{opacity:1;transform:scale(1.1)}.nav-dot.active{opacity:1}.small-dot{background-color:var(--color-maroon);border-radius:50%;width:7px;height:7px;transition:all .4s}.nav-dot.active .small-dot{width:9px;height:9px;box-shadow:0 0 10px #8b3d3d66}.nav-cap-btn{background:var(--color-bg);cursor:pointer;opacity:.7;z-index:2;border:none;justify-content:center;align-items:center;padding:5px 0;transition:all .3s;display:flex}.nav-cap-btn:hover{opacity:1;transform:scale(1.1)}.cap-icon{margin:0;padding:0}@media (width<=768px){.fixed-nav{right:15px;transform:translateY(-50%)scale(.9)}}.app-container{width:100%;position:relative}.main-content{opacity:0;pointer-events:none;transition:opacity 1s ease-in-out}.main-content.visible{opacity:1;pointer-events:auto}.audio-toggle{cursor:pointer;z-index:100;background-color:#f4ece4e6;border:1px solid #5e6a5733;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;transition:all .3s;display:flex;position:fixed;bottom:30px;right:30px;box-shadow:0 4px 15px #00000014}.audio-toggle:hover{background-color:#fff;transform:scale(1.1)}@media (width<=768px){.audio-toggle{width:45px;height:45px;bottom:20px;right:20px}}
