:root{--bg-color:#faf6f0;--bg-surface:#fff;--text-primary:#5c4b41;--text-secondary:#8c7c73;--accent-color:#cba583;--accent-light:#e8d6c4;--accent-dark:#a68361;--font-body:"Inter", sans-serif;--font-heading:"Cormorant Garamond", serif;--font-script:"Alex Brush", cursive;--nav-height:70px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:400}.script-font{font-family:var(--font-script);letter-spacing:1px;font-style:italic;font-weight:400}.text-center{text-align:center}.text-accent{color:var(--accent-color)}.text-white{color:#fff}.container{background-color:var(--bg-surface);width:100%;max-width:600px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 40px #0000000d}.section{padding:4rem 2rem;position:relative}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:1s forwards fadeIn}.slide-up{animation:1s forwards slideUp}.btn{font-family:var(--font-body);cursor:pointer;border:none;border-radius:30px;justify-content:center;align-items:center;gap:.5rem;padding:.8rem 1.5rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.btn-primary{background-color:var(--text-primary);color:#fff}.btn-primary:hover{background-color:var(--text-secondary);transform:translateY(-2px)}.btn-outline{border:1px solid var(--text-primary);color:var(--text-primary);background-color:#0000}.btn-outline:hover{background-color:var(--text-primary);color:#fff}.no-scroll{overflow:hidden!important}.envelope-container{background-color:var(--bg-color);z-index:9999;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .5s;display:flex;position:fixed;top:0;left:0;overflow:hidden}.envelope-wrapper{perspective:1000px;width:90%;max-width:500px;height:300px;position:relative;transform:translateY(20px)}.envelope{background-color:var(--bg-surface);border-radius:4px;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;box-shadow:0 15px 40px #5c4b4114}.envelope-flap{background-color:var(--accent-light);clip-path:polygon(0 0,50% 100%,100% 0);transform-origin:top;z-index:10;border-radius:4px 4px 0 0;width:100%;height:60%;position:absolute;top:0;left:0;box-shadow:0 5px 15px #5c4b410d}.envelope-body{background-color:var(--bg-surface);clip-path:polygon(0 100%,50% 40%,100% 100%,100% 0,0 0);z-index:5;border-radius:4px;width:100%;height:100%;position:absolute;bottom:0;left:0}.seal-container{z-index:20;cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)}.seal{background:radial-gradient(circle, var(--accent-color) 0%, var(--accent-dark) 100%);z-index:2;border-radius:50%;justify-content:center;align-items:center;width:65px;height:65px;transition:transform .3s;display:flex;position:relative;box-shadow:inset 0 0 5px #0000001a,0 4px 10px #5c4b4133}.seal:before{content:"";border:1px dashed #fff6;border-radius:50%;width:55px;height:55px;position:absolute}.seal-text{font-family:var(--font-heading);color:#fff;text-shadow:1px 1px 2px #5c4b414d;font-size:1.3rem;font-style:italic}.pulse-ring{border:1px solid var(--accent-color);z-index:1;border-radius:50%;width:85px;height:85px;animation:2s infinite pulse;position:absolute}.tap-text{text-align:center;width:100%;font-family:var(--font-body);color:var(--text-secondary);font-size:.9rem;animation:2s ease-in-out infinite float;position:absolute;bottom:-40px}@keyframes pulse{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-open .pulse-ring,.animate-open .tap-text{display:none}.animate-open .seal{transition:transform .3s;transform:scale(0)}.animate-open .envelope-flap{animation:.6s .2s forwards openFlap}.animate-open .envelope-wrapper{animation:.8s .7s forwards slideEnvelopeDown}.animate-open.envelope-container{animation:.8s 1s forwards fadeOutContainer}@keyframes openFlap{0%{transform:rotateX(0)}to{z-index:1;transform:rotateX(180deg)}}@keyframes slideEnvelopeDown{0%{opacity:1;transform:translateY(20px)}to{opacity:0;transform:translateY(100vh)}}@keyframes fadeOutContainer{0%{background-color:var(--bg-color)}to{pointer-events:none;background-color:#0000}}.envelope-wrapper:after{content:"";border:1px solid var(--accent-light);pointer-events:none;opacity:.5;border-radius:8px;position:absolute;inset:-5px}.hero-section{min-height:100vh;color:var(--text-primary);text-align:center;justify-content:center;align-items:center;padding:4rem 1rem;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:1;background-image:url(/hero-bg.jpg);background-position:50%;background-size:cover;width:100%;height:100%;animation:20s ease-in-out infinite alternate kenBurns;position:absolute;top:0;left:0}.hero-overlay{z-index:2;background:linear-gradient(#faf6f066,#faf6f0d9);width:100%;height:100%;position:absolute;top:0;left:0}@keyframes kenBurns{0%{transform:scale(1)}to{transform:scale(1.15)}}.hero-content{z-index:3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff80;border:1px solid #ffffff80;border-radius:20px;width:90%;max-width:500px;padding:3rem 2rem;position:relative;box-shadow:0 10px 30px #0000000d}.parents-names{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;opacity:.9;margin-bottom:2rem;font-size:.9rem}.parents-names .divider{color:var(--accent-color);margin:.5rem 0;font-size:1.5rem;display:block}.couple-names{color:var(--text-primary);text-shadow:1px 1px 3px #ffffffb3;margin:1rem 0 2rem;font-size:4.5rem;line-height:1.2}.event-details{margin-bottom:3rem}.event-details p{font-family:var(--font-heading);letter-spacing:1px;margin:.5rem 0;font-size:1.2rem}.countdown-title{font-family:var(--font-body);text-transform:uppercase;letter-spacing:3px;color:var(--accent-color);margin-bottom:1.5rem;font-size:.9rem}.countdown{justify-content:center;gap:1rem;display:flex}.time-box{background:#ffffff80;border:1px solid #fffc;border-radius:10px;flex-direction:column;align-items:center;min-width:70px;padding:1rem .5rem;display:flex;box-shadow:0 4px 15px #00000008}.time-value{font-family:var(--font-heading);color:var(--text-primary);font-size:1.8rem;font-weight:600}.time-label{text-transform:uppercase;letter-spacing:1px;opacity:.8;margin-top:.3rem;font-size:.75rem}.particles{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.particle{background:var(--accent-color);width:5px;height:5px;box-shadow:0 0 15px 3px #fffc, 0 0 5px 1px var(--accent-color);opacity:0;border-radius:50%;animation:8s ease-in-out infinite floatParticle;position:absolute}.particle:first-child{animation-duration:7s;animation-delay:0s;top:20%;left:10%}.particle:nth-child(2){animation-duration:9s;animation-delay:2s;top:10%;left:80%}.particle:nth-child(3){animation-duration:6s;animation-delay:4s;top:50%;left:50%}.particle:nth-child(4){animation-duration:8s;animation-delay:1s;top:80%;left:30%}.particle:nth-child(5){animation-duration:10s;animation-delay:3s;top:60%;left:90%}.particle:nth-child(6){animation-duration:7s;animation-delay:5s;top:40%;left:20%}.particle:nth-child(7){animation-duration:8.5s;animation-delay:2.5s;top:80%;left:70%}.particle:nth-child(8){animation-duration:9s;animation-delay:1.5s;top:20%;left:60%}.particle:nth-child(9){animation-duration:7.5s;animation-delay:6s;top:10%;left:40%}.particle:nth-child(10){animation-duration:8s;animation-delay:.5s;top:30%;left:85%}.particle:nth-child(11){animation-duration:6.5s;animation-delay:3.5s;top:70%;left:15%}.particle:nth-child(12){animation-duration:9.5s;animation-delay:4.5s;top:90%;left:45%}.particle:nth-child(13){animation-duration:7s;animation-delay:2s;top:50%;left:5%}.particle:nth-child(14){animation-duration:8s;animation-delay:1s;top:85%;left:95%}.particle:nth-child(15){animation-duration:6s;animation-delay:5.5s;top:5%;left:55%}@keyframes floatParticle{0%{opacity:0;transform:translateY(0)translate(0)scale(.5)}25%{opacity:.8}50%{opacity:.4;transform:translateY(-100px)translate(30px)scale(1)}75%{opacity:.8}to{opacity:0;transform:translateY(-200px)translate(-30px)scale(.5)}}.ampersand{color:var(--accent-color);opacity:.9;margin:0 .2rem;font-size:.8em;font-style:italic}.day-name{font-family:var(--font-body);text-transform:uppercase;letter-spacing:4px;color:var(--accent-color);opacity:.9;margin-top:-5px;font-size:1rem}.gallery-section{background-color:var(--bg-color);overflow:hidden}.gallery-header h2{margin-bottom:1rem;font-size:3rem}.intro-text{font-family:var(--font-body);color:var(--text-secondary);max-width:80%;margin:0 auto 2rem;font-size:.95rem;line-height:1.6}.carousel-container{scrollbar-width:none;-ms-overflow-style:none;width:100vw;margin-left:-50vw;margin-right:-50vw;padding:1rem 0 2rem;position:relative;left:50%;right:50%;overflow-x:auto}.carousel-container::-webkit-scrollbar{display:none}.carousel-track{gap:1.5rem;width:max-content;padding:0 5vw;display:flex}.polaroid{scroll-snap-align:center;background:#fff;border-radius:2px;flex-shrink:0;width:250px;padding:10px 10px 40px;transition:transform .3s;box-shadow:0 4px 15px #0000001a}.polaroid:nth-child(2n){transform:rotate(2deg)}.polaroid:nth-child(odd){transform:rotate(-2deg)}.polaroid:hover{z-index:10;transform:scale(1.05)rotate(0)}.polaroid-image{background-color:#eee;width:100%;height:300px;overflow:hidden}.polaroid-image img{object-fit:cover;width:100%;height:100%}@media (width<=600px){.carousel-container{scroll-snap-type:x mandatory}.polaroid{width:220px}.polaroid-image{height:260px}}.auto-scroll{animation:30s linear infinite scrollMarquee}.auto-scroll:hover{animation-play-state:paused}@keyframes scrollMarquee{0%{transform:translate(0)}to{transform:translate(calc(-1000px - 6rem))}}.location-section{background-color:#f7f5f2}.location-header h2{margin-bottom:2rem;font-size:3rem}.venue-card{background:#fff;border-radius:12px;margin-top:1rem;overflow:hidden;box-shadow:0 10px 30px #00000014}.venue-image{width:100%;height:250px}.venue-image img{object-fit:cover;width:100%;height:100%}.venue-details{text-align:center;padding:1.5rem}.venue-details h3{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:.5rem;font-size:1.8rem}.venue-details p{color:var(--text-secondary);font-size:.9rem}.map-container{border-top:1px solid #eee;border-bottom:1px solid #eee;width:100%}.action-buttons{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}@media (width>=480px){.action-buttons{flex-direction:row}.action-buttons .btn{flex:1}}.timeline-section{background-color:var(--bg-color)}.timeline-header h2{margin-bottom:2rem;font-size:3rem}.timeline-container{max-width:400px;margin:0 auto}.timeline-item{min-height:80px;margin-bottom:0;display:flex}.timeline-time{text-align:right;font-family:var(--font-heading);color:var(--text-primary);flex:0 0 70px;padding-top:2px;padding-right:15px;font-size:1.1rem;font-weight:600}.timeline-divider{flex-direction:column;align-items:center;margin:0 10px;display:flex;position:relative}.timeline-icon{background-color:var(--accent-pink);width:40px;height:40px;color:var(--text-primary);z-index:2;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 5px #0000001a}.timeline-line{z-index:1;background-color:#e5d1d4;width:2px;height:calc(100% - 20px);position:absolute;top:40px;bottom:-20px}.timeline-content{flex:1;padding-top:10px;padding-left:15px}.timeline-content h4{font-family:var(--font-body);color:var(--text-primary);font-size:1.05rem}.faq-section{background-color:var(--bg-surface)}.faq-header h2{margin-bottom:2rem;font-size:3.5rem}.details-grid{grid-template-columns:1fr;gap:1.5rem;max-width:500px;margin:0 auto;display:grid}.detail-card{background:var(--bg-color);border:1px solid var(--accent-light);text-align:center;border-radius:12px;padding:1.5rem;transition:transform .3s,box-shadow .3s}.detail-card:hover{transform:translateY(-3px);box-shadow:0 10px 20px #5c4b410d}.detail-icon{color:var(--accent-color);background:#fffc;border-radius:50%;margin-bottom:1rem;padding:1rem;display:inline-flex;box-shadow:0 4px 10px #5c4b410d}.detail-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:.5rem;font-size:1.4rem}.detail-desc{font-family:var(--font-body);color:var(--text-secondary);font-size:.95rem;line-height:1.6}.photo-share-section{background-color:var(--bg-color)}.photo-share-header{margin-bottom:2rem}.photo-share-subtitle{color:var(--text-secondary);margin-top:1rem;font-size:1rem}.photo-share-note{color:var(--text-secondary);opacity:.8;margin-top:.5rem;font-size:.85rem;font-style:italic}.upload-box{border:2px dashed var(--accent-color);text-align:center;background:#fff;border-radius:15px;padding:3rem 1rem;transition:all .3s;position:relative;overflow:hidden}.upload-box:hover{background:#d4a3730d;transform:translateY(-2px)}.file-input{opacity:0;cursor:pointer;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.upload-label{pointer-events:none;flex-direction:column;align-items:center;gap:1rem;display:flex}.upload-icon{color:var(--accent-color);opacity:.8}.upload-text{color:var(--text-primary);font-weight:500}.success-message{text-align:center;background:#fff;border-radius:15px;padding:3rem 1rem;box-shadow:0 10px 30px #0000000d}.success-message p{color:var(--text-secondary);margin-top:.5rem}.mt-3{margin-top:1rem}.mb-3{margin-bottom:1rem}.footer{background-color:var(--dark-green);color:var(--gold-light);padding:3rem 1rem 6rem}.footer h3{margin-bottom:.5rem;font-size:2.5rem}.heart-icon{color:var(--accent-color);margin:1rem 0;animation:2s infinite pulse}.footer p{font-family:var(--font-body);opacity:.8;letter-spacing:1px;font-size:.9rem}.bottom-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;width:100%;max-width:600px;padding-bottom:env(safe-area-inset-bottom,0px);background-color:#fffffff2;border-top:1px solid #0000000d;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-container{height:var(--nav-height);justify-content:space-around;align-items:center;padding:0 10px;display:flex}.nav-item{color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;height:100%;font-size:.7rem;font-weight:500;transition:all .3s;display:flex}.nav-item.active{color:var(--accent-color)}.nav-item.active svg{transform:scale(1.1)}.nav-item:hover{color:var(--text-primary)}
