*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,html{-webkit-overflow-scrolling:touch}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden}.lazy{opacity:0;transition:opacity .3s ease-in}.lazy.loaded{opacity:1}.fade-in-up{animation:fadeInUp .8s ease-out forwards;will-change:opacity,transform}@keyframes galleryFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes galleryFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}.gallery-fade-in{animation:galleryFadeIn .5s ease-out}.gallery-fade-in,.gallery-fade-out{backface-visibility:hidden;transform:translateZ(0);will-change:opacity,transform}.gallery-fade-out{animation:galleryFadeOut .3s ease-in}#gallery{will-change:scroll-position}#gallery,.gallery-featured,.gallery-thumbnails{contain:layout style paint}.featured-image{will-change:opacity,transform}.featured-image,.thumbnail-image{backface-visibility:hidden;contain:layout style paint;transform:translateZ(0)}.thumbnail-image{will-change:opacity}.envelope-animation-container{align-items:center;animation:gradientShift 8s ease-in-out infinite;background:linear-gradient(135deg,#cab,#8c9eaf,#d5cae5,#c4e0cf);background-size:400% 400%;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;transition:all 1.5s ease-out;width:100%;z-index:999}.envelope-animation-container.envelope-completed{background:transparent;opacity:1;pointer-events:none;transform:translateY(0);visibility:visible;z-index:997}.envelope{height:400px;perspective:1000px;position:relative;transform-style:preserve-3d;transition:all .3s ease-out;width:600px}.empty-section{background:linear-gradient(135deg,#ffb3d9,#b3d9ff);height:200vh;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition:opacity .5s ease-out,visibility .5s ease-out;visibility:hidden;width:100%;z-index:998}.empty-section.visible{opacity:1;pointer-events:auto;visibility:visible}.envelope-body{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;transform-style:preserve-3d;transition:all .3s ease-out;width:100%}.envelope-flap{background:linear-gradient(135deg,#c2fbff,#8decf2,#61abe3);border-radius:10px 10px 0 0;top:0;transform:rotateX(0deg);transform-origin:top;z-index:7}.envelope-bottom,.envelope-flap{box-shadow:0 4px 15px rgba(0,0,0,.2);height:50%;left:0;position:absolute;transition:all .8s ease-out;width:100%}.envelope-bottom{background:linear-gradient(135deg,#fa7ee0,#ebadd0,#e1c3cf);border-radius:0 0 10px 10px;bottom:0;transform-origin:bottom center;z-index:5}.envelope-seal{border-radius:50%;box-shadow:0 4px 15px rgba(0,0,0,.3);height:150px;left:38%;position:absolute;top:64%;transform:translate(-50%,-50%) scale(1);transition:all .8s ease-out;width:150px;z-index:7}.envelope-seal .seal-image{border-radius:50%;height:100%;object-fit:contain;width:100%}.envelope-seal .seal-fallback{align-items:center;background:radial-gradient(circle,red,#f60);border-radius:50%;display:none;font-size:24px;height:100%;justify-content:center;width:100%}.envelope-title{font-family:Great Vibes,cursive;font-size:2.5rem;margin-bottom:12px;text-shadow:2px 2px 4px rgba(0,0,0,.3);top:25%;width:max-content}.envelope-subtitle,.envelope-title{color:#fff;left:50%;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%);z-index:20}.envelope-subtitle{bottom:20px;font-size:.8rem;font-weight:300;opacity:.9}.envelope-content{display:none}body.envelope-completed .header,body.envelope-completed .hero,body.envelope-completed .section{opacity:0!important;pointer-events:none;transform:translateY(20px)!important;visibility:hidden}body.envelope-completed .dress-code-section,body.envelope-completed .footer,body.envelope-completed .gallery-section,body.envelope-completed .gift-section,body.envelope-completed .header,body.envelope-completed .hero,body.envelope-completed .introduction-section,body.envelope-completed .rsvp-section,body.envelope-completed .schedule-section,body.envelope-completed .section,body:not(.envelope-completed) .dress-code-section,body:not(.envelope-completed) .footer,body:not(.envelope-completed) .gallery-section,body:not(.envelope-completed) .gift-section,body:not(.envelope-completed) .header,body:not(.envelope-completed) .hero,body:not(.envelope-completed) .introduction-section,body:not(.envelope-completed) .rsvp-section,body:not(.envelope-completed) .schedule-section,body:not(.envelope-completed) .section{opacity:0;pointer-events:none;transform:translateY(20px);transition:all 1.5s ease-out;visibility:hidden}body.hero-active .hero{opacity:1;pointer-events:auto;transform:translateY(0);visibility:visible}body.hero-active .dress-code-section,body.hero-active .footer,body.hero-active .gallery-section,body.hero-active .gift-section,body.hero-active .header,body.hero-active .introduction-section,body.hero-active .rsvp-section,body.hero-active .schedule-section,body.hero-active .section{opacity:1!important;pointer-events:auto!important;transform:translateY(0)!important;transition:all 1.5s ease-out;visibility:visible!important}body.hero-active .empty-section,body.hero-active .envelope-animation-container{opacity:0;pointer-events:none;visibility:hidden}body.hero-active .envelope-animation-container{transition:all 1s ease-out}body.envelope-completed:not(.hero-active) .envelope-animation-container{opacity:1;pointer-events:auto;transition:all 1s ease-out;visibility:visible}body{background-color:#f8f4f0;color:#333;font-family:Source Sans Pro,sans-serif;line-height:1.6;margin:0;padding-top:0}body.envelope-completed{margin:0!important;padding-top:0!important}.footer-heading-script,.heading-script{font-family:Great Vibes,cursive;font-weight:400}.footer-heading-script{font-size:1.4rem}.footer-subtext{font-size:.6rem}.footer-subtext-no-responsibility{font-size:.2rem}.heading-serif{font-family:Playfair Display,serif;font-weight:700}.text-light{font-weight:300}.text-regular{font-weight:400}.text-semibold{font-weight:600}:root{--primary-color:#e91e63;--secondary-color:#2196f3;--accent-color:#fce4ec;--accent-blue:#e3f2fd;--text-primary:#333;--text-secondary:#666;--text-light:#999;--background-light:#faf8ff;--background-white:#fff;--border-color:#f8bbd9;--gradient-primary:linear-gradient(135deg,#e91e63,#ad1457);--gradient-secondary:linear-gradient(135deg,#2196f3,#1976d2);--gradient-mixed:linear-gradient(135deg,#e91e63,#2196f3)}.container{margin:0 auto;max-width:1200px;padding:0 20px}.section{padding:20px 0}.header{backdrop-filter:blur(10px);background:hsla(30,36%,96%,.95);left:0;padding:15px 0;position:fixed;right:0;top:0;transition:all .3s ease;z-index:1000}.nav{align-items:center;display:flex;justify-content:center}.nav-list{display:flex;gap:30px;list-style:none}.nav-link{color:var(--text-primary);font-weight:500;position:relative;text-decoration:none;transition:color .3s ease}.nav-link:hover{color:var(--primary-color)}.nav-link:after{background:var(--secondary-color);bottom:-5px;content:"";height:2px;left:0;position:absolute;transition:width .3s ease;width:0}.nav-link:hover:after{width:100%}.hero{align-items:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));background-position:50%;background-repeat:no-repeat;background-size:cover;color:#fff;display:flex;height:100vh;justify-content:center;position:relative;text-align:center;--hero-overlay-opacity:0.4;opacity:0;transform:translateY(20px);transition:all 1s ease-out}body.envelope-completed .hero{opacity:1!important;pointer-events:auto;transform:translateY(0)!important}.hero.has-background-image{background-blend-mode:normal}.hero:before{background:var(--gradient-mixed);bottom:0;content:"";left:0;opacity:var(--hero-overlay-opacity);position:absolute;right:0;top:0;transition:opacity .5s ease}.hero.has-background-image:before{background:rgba(0,0,0,.3)}.hero-content{display:flex;flex-direction:column;height:85vh;justify-content:space-between;padding-top:5vh;position:relative;z-index:1}.hero-title{flex-shrink:0;font-size:5.5rem;font-weight:400;line-height:1.1;margin-bottom:0;text-shadow:4px 4px 12px rgba(0,0,0,.8),2px 2px 6px rgba(0,0,0,.6),0 0 20px rgba(0,0,0,.4)}.hero-bottom-content{align-items:center;display:flex;flex-direction:column;flex-grow:1;gap:2px;justify-content:flex-end;margin-bottom:.1vh;padding-bottom:1vh}.hero-subtitle{font-size:1.5rem;font-weight:300;margin-bottom:10px;text-shadow:3px 3px 8px rgba(0,0,0,.7),1px 1px 4px rgba(0,0,0,.5)}.hero-date{font-size:1.2rem;font-weight:300;margin-bottom:0;opacity:.9;text-shadow:2px 2px 6px rgba(0,0,0,.7),1px 1px 3px rgba(0,0,0,.5)}.hero-actions{margin-top:20px}.hero-rsvp-btn{border-radius:30px;box-shadow:0 8px 20px rgba(233,30,99,.4);font-size:1.2rem;padding:18px 40px;text-shadow:2px 2px 6px rgba(0,0,0,.6),1px 1px 3px rgba(0,0,0,.4);transform:scale(1);transition:all .3s ease}.hero-rsvp-btn:hover{box-shadow:0 12px 30px rgba(233,30,99,.5);transform:scale(1.05) translateY(-3px)}.countdown-timer{margin:10px 0}.countdown-container{align-items:center;display:flex;gap:15px;justify-content:center;margin-bottom:15px}.countdown-item{align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.2);border-radius:15px;display:flex;flex-direction:column;min-width:80px;padding:15px 10px}.countdown-number{color:#fff;font-size:2.5rem;font-weight:700;text-shadow:3px 3px 8px rgba(0,0,0,.7),1px 1px 4px rgba(0,0,0,.5);transition:all .3s ease}.countdown-label{color:hsla(0,0%,100%,.9);font-size:.9rem;font-weight:500;letter-spacing:1px;margin-top:5px;text-shadow:2px 2px 4px rgba(0,0,0,.6),1px 1px 2px rgba(0,0,0,.4);text-transform:uppercase}.countdown-separator{animation:pulse 2s infinite;color:#fff;font-size:2rem;font-weight:700;text-shadow:3px 3px 8px rgba(0,0,0,.7),1px 1px 4px rgba(0,0,0,.5)}.countdown-message{color:hsla(0,0%,100%,.95);font-size:1.1rem;font-style:italic;text-align:center;text-shadow:2px 2px 6px rgba(0,0,0,.7),1px 1px 3px rgba(0,0,0,.5)}.countdown-update{color:var(--secondary-color);transform:scale(1.1)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@media (max-width:768px){.envelope-seal{border-radius:50%;box-shadow:0 4px 15px rgba(0,0,0,.3);height:80px;left:40%;position:absolute;top:70%;transform:translate(-50%,-50%) scale(1);transition:all .8s ease-out;width:80px;z-index:7}.envelope{height:300px;perspective:1000px;position:relative;transform-style:preserve-3d;transition:all .3s ease-out;width:400px}.countdown-container{gap:8px}.countdown-item{min-width:60px;padding:10px 8px}.countdown-number{font-size:1.8rem}.countdown-label{font-size:.75rem}.countdown-separator{font-size:1.5rem}.countdown-message{font-size:1rem}}.card{background:var(--background-white);border:1px solid var(--border-color);border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.1);margin-bottom:30px;padding:40px}.section-title{color:var(--primary-color);font-size:3rem;margin-bottom:20px;text-align:center}.section-subtitle{font-size:1.2rem;margin-bottom:20px}.section-subtitle,.section-subtitle-small{color:var(--text-secondary);margin-left:auto;margin-right:auto;max-width:600px;text-align:center}.section-subtitle-small{font-size:.9rem;margin-bottom:50px;opacity:.8}.wedding-details{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:50px}.detail-card{background:var(--background-white);border:2px solid var(--border-color);border-radius:15px;box-shadow:0 5px 15px rgba(0,0,0,.08);padding:30px;text-align:center;transition:all .3s ease}.detail-card:hover{box-shadow:0 10px 25px rgba(233,30,99,.2);transform:translateY(-5px)}.detail-card:first-child{background:var(--accent-color);border-color:var(--primary-color)}.detail-card:nth-child(2){background:var(--accent-blue);border-color:var(--secondary-color)}.detail-card:nth-child(3){background:var(--accent-color);border-color:var(--primary-color)}.detail-icon{font-size:3rem;margin-bottom:20px}.detail-card:nth-child(odd) .detail-icon{color:var(--primary-color)}.detail-card:nth-child(2n) .detail-icon{color:var(--secondary-color)}.detail-title{font-size:1.5rem;margin-bottom:10px}.detail-card:nth-child(odd) .detail-title{color:var(--primary-color)}.detail-card:nth-child(2n) .detail-title{color:var(--secondary-color)}.thai-text{color:#6b7280;font-size:.8rem;margin-bottom:8px;opacity:.8}.map-buttons{display:flex;flex-direction:column;gap:10px;margin-top:20px}.map-btn{align-items:center;border-radius:25px;box-shadow:0 4px 15px rgba(0,0,0,.2);display:inline-flex;font-size:1rem;font-weight:600;justify-content:center;padding:15px 30px;text-decoration:none;transition:all .3s ease;width:100%}.map-btn span{align-items:center;display:flex;gap:8px}.map-btn:hover{box-shadow:0 6px 20px rgba(0,0,0,.3);transform:translateY(-2px)}.map-btn:active{transform:translateY(0)}.when-countdown{margin-top:20px}.when-countdown .countdown-timer{margin:0}.when-countdown .countdown-container{gap:8px;margin-bottom:10px}.when-countdown .countdown-item{background:rgba(233,30,99,.1);border:1px solid var(--primary-color);min-width:60px;padding:10px 8px}.when-countdown .countdown-number{color:var(--primary-color);font-size:1.5rem;text-shadow:none}.when-countdown .countdown-label{color:var(--text-secondary);font-size:.7rem;letter-spacing:.5px}.when-countdown .countdown-separator{color:var(--primary-color);font-size:1.2rem;text-shadow:none}.when-countdown .countdown-message{color:var(--text-secondary);font-size:.9rem;font-style:normal;text-shadow:none}.when-countdown+.calendar-actions{margin-top:20px;text-align:center}.calendar-actions .calendar-btn{background:var(--gradient-secondary);border:none;border-radius:25px;box-shadow:0 4px 15px rgba(33,150,243,.3);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:15px 30px;transition:all .3s ease;width:100%}.calendar-actions .calendar-btn:hover{box-shadow:0 6px 20px rgba(33,150,243,.4);transform:translateY(-2px)}.calendar-actions .calendar-btn:active{transform:translateY(0)}.calendar-helper-text{color:var(--text-secondary);font-size:12px;font-style:italic;margin-top:8px}.detail-card:nth-child(2n) .when-countdown .countdown-item{background:rgba(33,150,243,.1);border-color:var(--secondary-color)}.detail-card:nth-child(2n) .when-countdown .countdown-number,.detail-card:nth-child(2n) .when-countdown .countdown-separator{color:var(--secondary-color)}.rsvp-button-container{margin-top:20px}.rsvp-btn{border-radius:25px;font-size:1rem;padding:15px 30px;width:100%}.rsvp-btn span{align-items:center;display:flex;gap:8px;justify-content:center}.schedule-item{align-items:flex-start;border-bottom:1px solid var(--border-color);display:flex;gap:20px;padding:20px 0}.schedule-item:last-child{border-bottom:none}.schedule-icon{border-radius:12px;flex-shrink:0;height:72px;margin-top:4px;object-fit:contain;width:72px}.schedule-content{display:flex;flex:1;flex-direction:column;gap:8px}.schedule-time{color:var(--primary-color);font-size:1.1rem;font-weight:600}.schedule-event{color:var(--text-primary);font-size:1.2rem;font-weight:500}.schedule-description{color:var(--text-secondary);line-height:1.5}.rsvp-form{margin:0 auto;max-width:500px}.form-group{margin-bottom:20px}.form-label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:5px}.form-input,.form-select,.form-textarea{border:2px solid var(--border-color);border-radius:8px;font-family:inherit;font-size:1rem;padding:12px 15px;transition:border-color .3s ease;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(233,30,99,.2);outline:none}.form-helper-text{color:var(--text-light);display:block;font-size:.85rem;margin-top:5px}.phone-valid{border-color:#4caf50!important;box-shadow:0 0 0 3px rgba(76,175,80,.2)!important}.phone-invalid{border-color:#f44336!important;box-shadow:0 0 0 3px rgba(244,67,54,.2)!important}.form-textarea{min-height:100px;resize:vertical}.btn{background:var(--gradient-primary);border:none;border-radius:25px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;justify-items:center;overflow:hidden;padding:15px 30px;position:relative;text-decoration:none;transition:all .3s ease}.btn:before{background:var(--gradient-secondary);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .3s ease;width:100%;z-index:0}.btn:hover:before{left:0}.btn:hover{box-shadow:0 8px 20px rgba(233,30,99,.3);transform:translateY(-2px)}.btn span{font-size:1rem;position:relative;z-index:1}.btn-primary{background:var(--gradient-primary)}.btn-secondary{background:var(--gradient-secondary)}.gallery-featured{margin-bottom:40px;text-align:center}.featured-image-container{border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.1);height:750px;overflow:hidden;place-self:center;position:relative;width:750px}.featured-image-container:hover{box-shadow:0 25px 50px rgba(0,0,0,.15);transform:translateY(-5px)}.featured-image{cursor:pointer;display:block;height:100%;min-height:0;min-width:0;object-fit:cover;transition:opacity .3s ease-in-out;width:100%}.featured-image:hover{transform:scale(1.02)}.featured-caption{background:linear-gradient(transparent,rgba(0,0,0,.8));bottom:0;color:#fff;font-family:Playfair Display,serif;font-size:1.2rem;left:0;opacity:0;padding:30px 20px 20px;position:absolute;right:0;text-align:center;transition:opacity .3s ease}.featured-image-container:hover .featured-caption{opacity:1}.gallery-thumbnails{display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0 auto;max-width:900px}.thumbnail-item{border:3px solid transparent;border-radius:12px;cursor:pointer;overflow:hidden;position:relative;transition:all .3s ease}.thumbnail-item:hover{box-shadow:0 10px 20px rgba(0,0,0,.15);transform:translateY(-3px)}.thumbnail-item.active{border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(212,175,55,.3)}.thumbnail-image{height:80px;object-fit:cover;transition:transform .3s ease;width:100%}.thumbnail-item:hover .thumbnail-image{transform:scale(1.1)}.gallery-grid{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:40px}.gallery-item{box-shadow:0 10px 30px rgba(0,0,0,.1);transition:transform .3s ease,box-shadow .3s ease}.gallery-item:hover{box-shadow:0 20px 40px rgba(0,0,0,.15)}.gallery-overlay{background:linear-gradient(135deg,rgba(212,175,55,.9),rgba(212,175,55,.7) 50%,rgba(212,175,55,.9));justify-content:center}.gallery-caption{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600;margin-bottom:20px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.gallery-view-btn{background:hsla(0,0%,100%,.9)}.gallery-view-btn:hover{background:#fff;box-shadow:0 5px 15px rgba(0,0,0,.2)}.introduction-section{background:var(--background-white)}.couple-introduction{align-items:center;display:flex;gap:40px;justify-content:space-between;margin:60px 0}.couple-member{flex:1;max-width:400px;text-align:center}.member-photo{margin-bottom:20px}.member-image{border:4px solid var(--border-color);border-radius:50%;box-shadow:0 8px 25px rgba(233,30,99,.15);height:400px;object-fit:cover;transition:transform .3s ease,box-shadow .3s ease;width:400px}.member-image:hover{box-shadow:0 12px 35px rgba(233,30,99,.25);transform:scale(1.05)}.member-name{color:var(--primary-color);font-family:Great Vibes,cursive;font-size:2.9rem;margin-bottom:15px;text-shadow:0 2px 4px rgba(0,0,0,.1)}.member-description{color:var(--text-secondary);font-size:2rem;line-height:1.7;margin:0 auto;max-width:350px}.couple-heart{flex-shrink:0;text-align:center}.heart-icon{animation:heartbeat 1.5s ease-in-out infinite;font-size:3rem;margin-bottom:10px}.heart-text{color:var(--primary-color);font-family:Great Vibes,cursive;font-size:1.2rem;font-weight:600}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.couple-story{margin-left:auto;margin-right:auto;margin-top:60px;max-width:800px;text-align:center}.story-content{background:var(--accent-color);border:2px solid var(--border-color);border-radius:20px;padding:40px}.story-text{color:var(--text-primary);font-size:1.2rem;line-height:1.8;margin-bottom:20px}.story-text:last-child{margin-bottom:0}.gallery-item{border-radius:15px;cursor:pointer;overflow:hidden;position:relative;transition:all .3s ease}.gallery-item:hover{box-shadow:0 10px 25px rgba(233,30,99,.3);transform:translateY(-5px)}.gallery-image-container{height:250px;overflow:hidden;position:relative;width:100%}.gallery-image{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.gallery-item:hover .gallery-image{transform:scale(1.1)}.gallery-overlay{align-items:center;background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.7));bottom:0;display:flex;flex-direction:column;justify-content:flex-end;left:0;opacity:0;padding:20px;position:absolute;right:0;top:0;transition:opacity .3s ease}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-caption{color:#fff;font-size:1rem;font-weight:500;margin-bottom:10px;text-align:center}.gallery-view-btn{align-items:center;background:var(--gradient-primary);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:50px;justify-content:center;transition:all .3s ease;width:50px}.gallery-view-btn:hover{background:var(--gradient-secondary);transform:scale(1.1)}.dress-code-content{display:flex;flex-direction:column;gap:40px;margin:0 auto;max-width:800px}.dress-code-info{text-align:center}.dress-code-heading{color:var(--primary-color);font-size:1.8rem;font-weight:600;margin-bottom:15px}.dress-code-description{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:600px}.color-palette{text-align:center}.color-palette-title{color:var(--primary-color);font-size:1.5rem;font-weight:600;margin-bottom:25px}.color-swatches{flex-wrap:wrap;gap:20px;margin-bottom:20px}.color-swatch,.color-swatches{display:flex;justify-content:center}.color-swatch{align-items:center;border:3px solid #fff;border-radius:50%;box-shadow:0 4px 15px rgba(0,0,0,.1);height:80px;position:relative;transition:transform .3s ease,box-shadow .3s ease;width:80px}.color-swatch:hover{box-shadow:0 6px 20px rgba(0,0,0,.15);transform:scale(1.1)}.color-name{bottom:-30px;color:var(--text-secondary);font-size:.8rem;font-weight:500;left:50%;position:absolute;transform:translateX(-50%);white-space:nowrap}.color-palette-note{color:var(--text-secondary);font-size:1rem;font-style:italic;line-height:1.5;margin:0 auto;max-width:500px}.dress-code-tips{text-align:center}.tips-title{color:var(--primary-color);font-size:1.5rem;font-weight:600;margin-bottom:20px}.tips-list{list-style:none;margin:0 auto;max-width:600px;padding:0}.tips-list li{background:var(--accent-color);border-left:4px solid var(--primary-color);border-radius:10px;color:var(--text-primary);font-size:1rem;line-height:1.5;margin-bottom:12px;padding:15px 20px;text-align:left;transition:transform .3s ease,box-shadow .3s ease}.tips-list li:hover{box-shadow:0 4px 15px rgba(0,0,0,.1);transform:translateX(5px)}.tips-list li:last-child{margin-bottom:0}.gift-subtext{color:var(--text-secondary);font-size:1.2rem;line-height:1.6;margin-bottom:40px;text-align:center}.gift-content{align-items:center;display:flex;flex-direction:column;gap:30px;margin:0 auto;max-width:600px}.gift-btn{background:var(--gradient-primary);border:none;border-radius:50px;box-shadow:0 4px 15px rgba(233,30,99,.3);color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:15px 30px;transition:all .3s ease}.gift-btn:hover{box-shadow:0 6px 20px rgba(233,30,99,.4);transform:translateY(-2px)}.gift-btn:active{transform:translateY(0)}.qr-code-container{align-items:center;background:var(--background-white);border-radius:20px;box-shadow:0 8px 25px rgba(0,0,0,.1);display:flex;flex-direction:column;gap:20px;max-width:400px;padding:30px;width:100%}.qr-code-image-wrapper{align-items:center;background:var(--background-light);border:2px solid var(--border-color);border-radius:15px;display:flex;justify-content:center;padding:20px}.qr-code-image{border-radius:10px;height:auto;object-fit:contain;width:90%}.download-btn{align-items:center;background:var(--gradient-secondary);border-radius:25px;box-shadow:0 4px 15px rgba(33,150,243,.3);color:#fff;display:inline-flex;font-weight:600;gap:8px;padding:12px 25px;text-decoration:none;transition:all .3s ease}.download-btn:hover{box-shadow:0 6px 20px rgba(33,150,243,.4);transform:translateY(-2px)}.download-btn:active{transform:translateY(0)}.lightbox{align-items:center;display:flex;justify-content:center;position:fixed;z-index:9999}.lightbox,.lightbox-overlay{height:100%;left:0;top:0;width:100%}.lightbox-overlay{background:rgba(0,0,0,.9);cursor:pointer;position:absolute}.lightbox-content{align-items:center;display:flex;flex-direction:column;height:auto;justify-content:center;max-height:90%;max-width:90%;position:relative;text-align:center;width:auto}.lightbox-image{cursor:pointer;display:block;margin:0 auto;max-height:80vh;max-width:90vw;object-fit:contain;position:relative;transition:opacity .3s ease-in-out;z-index:1}.lightbox-image-container{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.lightbox-caption{color:#fff;font-size:1.2rem;font-weight:500;margin-top:20px;padding:0 20px;text-align:center}.lightbox-close,.lightbox-next,.lightbox-prev{align-items:center;background:var(--gradient-primary);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:50px;justify-content:center;position:absolute;transition:all .3s ease;width:50px;z-index:10001}.lightbox-close:hover,.lightbox-next:hover,.lightbox-prev:hover{background:var(--gradient-secondary);transform:scale(1.1)}.lightbox-close{font-size:2rem;right:20px;top:20px}.lightbox-prev{left:20px}.lightbox-next,.lightbox-prev{top:50%;transform:translateY(-50%)}.lightbox-next{right:20px}.lightbox-next:hover,.lightbox-prev:hover{transform:translateY(-50%) scale(1.1)}.footer{background:var(--gradient-mixed);color:#fff;padding:20px 0;text-align:center}.footer-text{margin-bottom:10px}@media (max-width:768px){.featured-image-container:hover{box-shadow:none;transform:none}.hero-content{height:75vh;padding-top:8vh}.hero-bottom-content{gap:12px;margin-bottom:2vh}.hero-title{font-size:3.2rem;line-height:1.1}.hero-subtitle{font-size:1.2rem}.section-title{font-size:2rem}.nav-list{gap:15px}.nav-link{font-size:.9rem}.wedding-details{grid-template-columns:1fr}.container{padding:0 15px}.card{padding:25px}.schedule-item{align-items:center;flex-direction:column;gap:15px;text-align:center}.schedule-icon{height:64px;width:64px}.schedule-content{gap:6px}.schedule-time{font-size:1rem}.schedule-event{font-size:1.1rem}.gallery-grid{gap:20px;grid-template-columns:1fr}.gallery-featured{margin-bottom:30px}.featured-image-container{border-radius:15px;height:60vh;max-height:500px;max-width:100%;min-height:300px;min-width:280px;overflow:hidden;width:100%}.featured-image{display:block;height:100%;max-height:none;min-height:0;min-width:0;object-fit:cover;width:100%}.featured-caption{font-size:1rem;padding:20px 15px 15px}.gallery-thumbnails{gap:10px;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));max-width:100%}.thumbnail-image{height:60px}.gallery-image-container{height:200px}.lightbox-close,.lightbox-next,.lightbox-prev{font-size:1.2rem;height:40px;width:40px}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox-close{right:10px;top:10px}.lightbox-content{max-height:95%;max-width:95%}.lightbox-image{max-height:75vh;max-width:95vw}.lightbox-caption{font-size:1rem;margin-top:15px;padding:0 15px}.map-buttons{gap:8px}.map-btn{font-size:14px;padding:15px 30px}.rsvp-btn{font-size:1rem;padding:15px 30px}.when-countdown .countdown-container{gap:6px}.when-countdown .countdown-item{min-width:50px;padding:8px 6px}.when-countdown .countdown-number{font-size:1.2rem}.when-countdown .countdown-label{font-size:.6rem}.when-countdown .countdown-separator{font-size:1rem}.when-countdown .countdown-message{font-size:.8rem}.calendar-actions{margin-top:20px;padding-top:20px}.calendar-btn{font-size:14px;padding:10px 20px}.calendar-helper-text{font-size:12px}.couple-introduction{flex-direction:column;gap:30px;margin:40px 0}.couple-member{max-width:100%}.member-image{height:300px;width:300px}.member-name{font-size:2.2rem}.member-description{font-size:1.4rem;max-width:100%}.couple-heart{margin-bottom:20px;order:-1}.heart-icon{font-size:2.5rem}.heart-text{font-size:1rem}.couple-story{margin-top:40px}.story-content{padding:25px}.story-text{font-size:1.1rem}.dress-code-content{gap:30px}.dress-code-heading{font-size:1.5rem}.dress-code-description{font-size:1rem}.color-palette-title{font-size:1.3rem}.color-swatches{gap:10px}.color-swatch{height:50px;width:50px}.color-name{bottom:-25px;font-size:.7rem}.tips-title{font-size:1.3rem}.tips-list li{font-size:.9rem;padding:12px 15px}.gift-subtext{font-size:1.1rem;margin-bottom:30px}.gift-content{gap:25px}.gift-btn{font-size:1rem;padding:12px 25px}.qr-code-container{max-width:350px;padding:25px}.qr-code-image-wrapper{padding:15px}.qr-code-image{height:auto;width:90%}.download-btn{font-size:.9rem;padding:10px 20px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .6s ease-out}.loading{animation:spin 1s ease-in-out infinite;border:3px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;display:inline-block;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}@keyframes gradientShift{0%{background-position:0 50%}25%{background-position:100% 50%}50%{background-position:100% 100%}75%{background-position:0 100%}to{background-position:0 50%}}.envelope-paper{align-content:center;background:linear-gradient(135deg,#fff9f0,#f0f9ff);border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1);height:75%;left:10%;opacity:0;position:absolute;top:20%;transform:translateY(20px);transition:opacity .3s ease,transform .3s ease;width:80%;z-index:4}.paper-content{color:#333;font-family:Playfair Display,serif;padding:20px;text-align:center}.paper-title{color:#c2185b;font-size:1.8rem;font-weight:700;margin-bottom:15px}.paper-date{font-size:1.2rem}.paper-date,.paper-time{color:#1565c0;margin-bottom:8px}.paper-time{font-size:1.1rem}.paper-location{color:#666;font-size:1rem;margin-bottom:12px}.paper-message{color:#888;font-size:.9rem;font-style:italic;line-height:1.4}.hero-fade-in .hero{opacity:1;transform:translateY(0);transition:opacity .8s ease-out,transform .8s ease-out}.hero-fade-out .hero{transition:opacity .5s ease-in,transform .5s ease-in}.hero-fade-out .hero,body:not(.hero-active) .hero{opacity:0;transform:translateY(30px)}.scroll-indicator{align-items:center;background:var(--gradient-mixed);border-radius:50%;bottom:30px;box-shadow:0 8px 25px rgba(0,0,0,.2);cursor:pointer;display:flex;height:45px;justify-content:center;opacity:0;position:fixed;right:30px;transform:translateY(20px);transition:all .3s ease;visibility:hidden;width:45px;z-index:1001}.scroll-indicator.visible{opacity:1;transform:translateY(0);visibility:visible}.scroll-indicator:hover{box-shadow:0 12px 35px rgba(0,0,0,.3);transform:translateY(-5px) scale(1.1)}.scroll-indicator:before{border:2px solid #fff;border-left:none;border-top:none;content:"";height:12px;transform:rotate(45deg) translateY(-1px);width:12px}.scroll-indicator:after{animation:scrollPulse 2s infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;content:"";height:100%;position:absolute;width:100%}@keyframes scrollPulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}@media (max-width:768px){.scroll-indicator{bottom:20px;height:30px;right:20px;width:30px}.scroll-indicator:before{height:10px;width:10px}}.scroll-indicator.at-bottom{opacity:0;transform:translateY(20px);visibility:hidden}.seating-chart-image-container{align-items:center;background:hsla(0,0%,100%,.5);border-radius:8px;display:flex;justify-content:center;padding:20px}.seating-chart-image{border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,.1);height:auto;max-width:100%;transition:opacity .3s ease}@media (max-width:768px){.seating-chart-image-container{padding:10px}}