@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Jost:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600&family=Great+Vibes&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Poppins:wght@200;300;400;500;600&family=Dancing+Script:wght@400;500;600;700&display=swap";:root{--color-bg: #0d1713;--color-cream: #f8f3eb;--color-gold: #d9b874;--color-gold-light: #f4e5b4;--color-gold-dark: #8d6a35;--color-burgundy: #1b4d3d;--color-burgundy-light: #2d755b;--color-rose: #d8b38a;--color-blush: #f6eee5;--color-deep-maroon: #14362d;--color-text: #18372e;--color-text-light: #7d9681;--color-white: #ffffff;--color-overlay: rgba(13, 23, 19, .72);--font-display: "DM Serif Display", serif;--font-heading: "Jost", sans-serif;--font-body: "Poppins", sans-serif;--font-accent: "Dancing Script", cursive;--font-elegant: "Playfair Display", serif;--shadow-soft: 0 4px 30px rgba(217, 184, 116, .15);--shadow-glow: 0 0 40px rgba(217, 184, 116, .28);--shadow-deep: 0 20px 60px rgba(0, 0, 0, .42);--transition-smooth: all .6s cubic-bezier(.25, .46, .45, .94);--transition-bounce: all .8s cubic-bezier(.68, -.55, .265, 1.55)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;font-size:16px}body{font-family:var(--font-body);background:radial-gradient(circle at top,#163d33,#0d1713 38%,#090e0d);color:var(--color-cream);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision;font-optical-sizing:auto}body:has(.main-content.show){overflow-x:hidden;overflow-y:auto}img{max-width:100%;height:auto;display:block}a{text-decoration:none;color:inherit}#particles-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.music-toggle{position:fixed;top:20px;right:20px;z-index:1000;width:44px;height:44px;border-radius:50%;border:1px solid var(--color-gold);background:#0d1713e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-smooth);color:var(--color-gold);opacity:1;transform:scale(1)}.music-toggle:hover{background:var(--color-gold);color:var(--color-bg);box-shadow:var(--shadow-glow)}.music-toggle .bars{display:flex;align-items:flex-end;gap:2px;height:16px}.music-toggle .bar{width:3px;background:currentColor;border-radius:1px;transition:height .3s ease}.music-toggle.playing .bar{animation:soundBars .8s ease-in-out infinite alternate}.music-toggle.playing .bar:nth-child(1){animation-delay:0s;height:6px}.music-toggle.playing .bar:nth-child(2){animation-delay:.2s;height:12px}.music-toggle.playing .bar:nth-child(3){animation-delay:.4s;height:8px}.music-toggle.playing .bar:nth-child(4){animation-delay:.1s;height:14px}.music-toggle.muted .bar{height:3px;animation:none;opacity:.4}.music-toggle.muted:after{content:"✕";position:absolute;font-size:9px;font-weight:700;color:var(--color-rose);bottom:7px;right:7px;line-height:1}@keyframes soundBars{0%{height:4px}to{height:16px}}.landing-section{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1a1208 0%,var(--color-bg) 70%);overflow:hidden;z-index:10;transition:opacity .8s ease,visibility .8s ease}.landing-section:before{content:"";position:absolute;width:300%;height:300%;top:-100%;left:-100%;background:radial-gradient(circle at 50% 50%,rgba(201,169,110,.05) 0%,transparent 50%);animation:ambientGlow 8s ease-in-out infinite}.landing-section.hide{opacity:0;visibility:hidden;pointer-events:none}@keyframes ambientGlow{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.envelope-wrapper{perspective:1400px;perspective-origin:50% 60%;cursor:pointer;transition:transform .5s ease,box-shadow .5s ease;z-index:5;border-radius:8px;position:relative;pointer-events:auto}.envelope-wrapper:hover{transform:scale(1.03) translateY(-4px)}.envelope{position:relative;width:320px;height:230px;transform-style:preserve-3d;transform:rotateX(5deg);transition:transform .6s ease;pointer-events:auto}.envelope-body{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;z-index:1;overflow:hidden}.envelope-body-img{width:100%;height:100%;object-fit:cover;border-radius:8px}.envelope-shadow-left{position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(90deg,rgba(0,0,0,.12),transparent);border-radius:8px 0 0 8px;pointer-events:none}.envelope-shadow-right{position:absolute;top:0;right:0;width:40%;height:100%;background:linear-gradient(-90deg,rgba(0,0,0,.12),transparent);border-radius:0 8px 8px 0;pointer-events:none}.envelope-front{position:absolute;bottom:0;left:0;right:0;height:58%;background:linear-gradient(180deg,#f6f0e2f7,#eee6d6fc 40%,#e1d8c4);clip-path:polygon(0 32%,50% 0%,100% 32%,100% 100%,0 100%);border-radius:0 0 8px 8px;z-index:3;box-shadow:0 -4px 15px #00000014}.envelope-front:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent);clip-path:polygon(0 0,50% -60%,100% 0,100% 100%,0 100%);pointer-events:none}.envelope-front:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(201,169,110,.2),transparent 30%);clip-path:polygon(0 32%,50% 0%,100% 32%,100% 100%,0 100%);pointer-events:none}.envelope-monogram{position:absolute;left:50%;bottom:12px;z-index:5;transform:translate(-50%);color:#6a4e27c2;font-family:var(--font-accent);font-size:1.35rem;line-height:1;text-shadow:0 1px rgba(255,255,255,.55);white-space:nowrap;pointer-events:none}.envelope-monogram span{padding:0 3px;color:var(--color-gold-dark);font-size:.95rem}.envelope-flap{position:absolute;top:0;left:0;right:0;height:62%;transform-origin:top center;transform:rotateX(0);transition:transform 1.2s cubic-bezier(.23,1,.32,1),z-index 0s linear;z-index:4;transform-style:preserve-3d}.flap-front{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#fcf6ea,#f4ecdc 40%,#e8deca);clip-path:polygon(0 0,50% 100%,100% 0);backface-visibility:hidden;filter:drop-shadow(0 4px 10px rgba(0,0,0,.15))}.flap-front:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,transparent 25%);clip-path:polygon(0 0,50% 100%,100% 0);pointer-events:none}.flap-front:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(0 0,50% 100%,100% 0);background:repeating-linear-gradient(30deg,transparent,transparent 8px,rgba(0,0,0,.008) 8px,rgba(0,0,0,.008) 9px);pointer-events:none}.flap-back{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#e1d8c4,#d2c8b4 60%,#c6bca8);clip-path:polygon(0 0,50% 100%,100% 0);transform:rotateX(180deg);backface-visibility:hidden}.flap-back:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,rgba(0,0,0,.12) 0%,transparent 40%);clip-path:polygon(0 0,50% 100%,100% 0);pointer-events:none}.envelope-flap.open{transform:rotateX(-180deg);filter:drop-shadow(0 8px 16px rgba(0,0,0,.25));z-index:1;transition:transform 1.2s cubic-bezier(.23,1,.32,1),z-index 0s linear .6s}.wax-seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;z-index:30;cursor:pointer;transition:transform .3s ease;pointer-events:auto}.wax-seal:hover{transform:translate(-50%,-50%) scale(1.1)}.wax-seal-img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:brightness(1.05) contrast(1.1);box-shadow:0 6px 20px #500f1eb3,0 2px 8px #0006,0 0 40px #6b20404d;animation:sealPulsePhoto 2.5s ease-in-out infinite}.wax-seal-glow{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;border:1px solid rgba(201,169,110,.3);animation:sealRing 2.5s ease-in-out infinite;pointer-events:none}@keyframes sealPulsePhoto{0%,to{box-shadow:0 6px 20px #500f1eb3,0 2px 8px #0006,0 0 40px #6b20404d}50%{box-shadow:0 6px 25px #500f1ee6,0 2px 10px #00000080,0 0 60px #c9a96e4d}}@keyframes sealRing{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.4);opacity:0}}.wax-seal.breaking{animation:sealShatter .5s cubic-bezier(.4,0,.2,1) forwards}.wax-seal.breaking .wax-seal-img{animation:sealImgShatter .5s ease forwards}.wax-seal.breaking .wax-seal-glow{animation:none;opacity:0}@keyframes sealShatter{0%{transform:translate(-50%,-50%) scale(1);opacity:1;filter:brightness(1)}10%{transform:translate(-50%,-50%) scale(1.25);opacity:1;filter:brightness(1.8)}25%{transform:translate(-50%,-50%) scale(1.4) rotate(10deg);opacity:1;filter:brightness(2)}50%{transform:translate(-50%,-50%) scale(1.1) rotate(-6deg);opacity:.5;filter:brightness(.7)}to{transform:translate(-50%,-50%) scale(0) rotate(45deg);opacity:0;filter:brightness(.2)}}@keyframes sealImgShatter{0%{filter:brightness(1) contrast(1.1);transform:scale(1)}15%{filter:brightness(2.5) contrast(1.5) saturate(.5);transform:scale(1.1)}to{filter:brightness(0) contrast(0);transform:scale(.2)}}.seal-particles{position:absolute;top:50%;left:50%;width:0;height:0;z-index:20;pointer-events:none}.seal-fragment{position:absolute;border-radius:2px;pointer-events:none}.seal-sparkle{position:absolute;width:3px;height:3px;background:#e8d5a8;border-radius:50%;box-shadow:0 0 6px 2px #c9a96ecc,0 0 12px 4px #c9a96e66;pointer-events:none}.seal-glow-ring{position:absolute;width:10px;height:10px;border-radius:50%;border:2px solid rgba(201,169,110,.8);box-shadow:0 0 20px 10px #c9a96e4d,inset 0 0 10px #c9a96e33;animation:ringBurst .7s ease-out forwards;pointer-events:none}@keyframes ringBurst{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(20);opacity:0}}.screen-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;pointer-events:none;opacity:0}.envelope-shake{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5}.envelope-card{position:absolute;left:6%;right:6%;top:8%;bottom:8%;border-radius:6px;z-index:2;transform:translateY(0);transition:transform 1.4s cubic-bezier(.4,0,.2,1),box-shadow 1.4s ease;overflow:hidden;box-shadow:0 2px 8px #00000026}.card-bg-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:6px}.card-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px;gap:2px;opacity:0;transition:opacity .6s ease .8s;z-index:2;background:#faf3e8c7;transform:translateZ(0)}.envelope-card.rising .card-content{opacity:1}.card-ornament-top{font-size:1.2rem;color:var(--color-gold-dark);margin-bottom:2px}.card-pretext{font-family:var(--font-heading);font-size:.65rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#5a4838;margin-bottom:4px}.card-names{font-family:var(--font-display);font-size:1.55rem;font-weight:600;font-style:italic;color:var(--color-burgundy);text-align:center;line-height:1.15;letter-spacing:.5px}.card-names span:not(.name-initial){font-family:Great Vibes,cursive;color:var(--color-gold-dark);font-size:1.3rem;font-weight:400;font-style:normal;letter-spacing:0;display:block;margin:-2px 0}.card-subtitle{font-family:var(--font-heading);font-size:.6rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#5a4838;margin-top:4px}.card-date{font-family:var(--font-elegant);font-size:.7rem;font-weight:600;color:#3d2a1a;margin-top:6px;padding:4px 12px;border:1.5px solid var(--color-gold-dark);border-radius:20px;letter-spacing:1.5px;background:#ffffffb3}.card-ornament-bottom{font-size:.55rem;color:#8b6914;margin-top:5px;letter-spacing:4px}.envelope-card.rising{transform:translateY(-85%);box-shadow:0 20px 60px #00000059,0 8px 20px #00000040,0 0 40px #c9a96e26;animation:cardWobble 1.2s ease-in-out forwards,cardBreathe 2.5s ease-in-out 1.4s infinite}@keyframes cardWobble{0%{transform:translateY(0)}20%{transform:translateY(-30%) rotate(.5deg)}40%{transform:translateY(-55%) rotate(-.3deg)}60%{transform:translateY(-75%) rotate(.2deg)}80%{transform:translateY(-83%) rotate(-.1deg)}to{transform:translateY(-85%) rotate(0)}}@keyframes cardBreathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.04)}}.envelope-card.expanding{position:fixed!important;z-index:100!important;border-radius:0!important;transition:top 1s cubic-bezier(.4,0,.2,1),left 1s cubic-bezier(.4,0,.2,1),right 1s cubic-bezier(.4,0,.2,1),bottom 1s cubic-bezier(.4,0,.2,1),transform 1s cubic-bezier(.4,0,.2,1),border-radius .6s ease,box-shadow .8s ease;top:0!important;left:0!important;right:0!important;bottom:0!important;transform:translateY(0) rotate(0)!important;box-shadow:0 0 80px #c9a96e33!important;animation:none!important}.envelope-card.expanding .card-content{opacity:0;transition:opacity .3s ease}.envelope-card.fading{opacity:0;transition:opacity .6s ease;animation:none!important}.tap-text{margin-top:30px;font-family:var(--font-heading);font-size:1.1rem;font-weight:500;color:var(--color-gold-light);letter-spacing:3px;animation:fadeFloat 2.5s ease-in-out infinite;text-align:center;z-index:5;transition:opacity .4s ease}.tap-text.hidden{opacity:0;pointer-events:none;animation:none;visibility:hidden}.tap-text span{display:inline-block;animation:tapBounce 1.5s ease-in-out infinite}@keyframes fadeFloat{0%,to{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}@keyframes tapBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.landing-section.opened{pointer-events:none}.scroll-indicator{position:fixed;bottom:30px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:100;opacity:0;transition:opacity .6s ease;pointer-events:none}.scroll-indicator.visible{opacity:1;pointer-events:auto}.scroll-indicator-text{font-family:var(--font-body);font-size:.75rem;font-weight:300;color:var(--color-gold-light);letter-spacing:3px;text-transform:uppercase}.scroll-mouse{width:24px;height:38px;border:2px solid var(--color-gold);border-radius:12px;position:relative}.scroll-mouse:after{content:"";position:absolute;top:6px;left:50%;transform:translate(-50%);width:4px;height:8px;background:var(--color-gold);border-radius:2px;animation:scrollWheel 2s ease-in-out infinite}@keyframes scrollWheel{0%{transform:translate(-50%) translateY(0);opacity:1}to{transform:translate(-50%) translateY(16px);opacity:0}}.scroll-arrows{display:flex;flex-direction:column;align-items:center;gap:2px}.scroll-arrows span{display:block;width:10px;height:10px;border-right:2px solid var(--color-gold);border-bottom:2px solid var(--color-gold);transform:rotate(45deg);animation:scrollArrow 2s ease-in-out infinite}.scroll-arrows span:nth-child(2){animation-delay:.2s}.scroll-arrows span:nth-child(3){animation-delay:.4s}@keyframes scrollArrow{0%{opacity:0;transform:rotate(45deg) translate(-5px,-5px)}50%{opacity:1}to{opacity:0;transform:rotate(45deg) translate(5px,5px)}}.main-content{position:relative;z-index:2;opacity:0;transform:translateY(60px);transition:all 1.2s cubic-bezier(.25,.46,.45,.94);pointer-events:none}.main-content.show,.main-content.revealed{opacity:1;transform:translateY(0);pointer-events:auto}.section{padding:45px 20px;position:relative;overflow:hidden}.section-inner{max-width:600px;margin:0 auto;position:relative;z-index:2}.reveal{opacity:0;transform:translateY(40px);transition:all .8s cubic-bezier(.25,.46,.45,.94)}.reveal.active{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}.reveal-left{opacity:0;transform:translate(-40px);transition:all .8s cubic-bezier(.25,.46,.45,.94)}.reveal-right{opacity:0;transform:translate(40px);transition:all .8s cubic-bezier(.25,.46,.45,.94)}.reveal-left.active,.reveal-right.active{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transform:scale(.8);transition:all .8s cubic-bezier(.25,.46,.45,.94)}.reveal-scale.active{opacity:1;transform:scale(1)}.ornament-divider{display:flex;align-items:center;justify-content:center;gap:16px;margin:20px 0 40px}.ornament-line{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--color-gold),transparent)}.ornament-icon{color:var(--color-gold);font-size:1rem}.section-title{font-family:var(--font-display);font-size:2.8rem;font-weight:700;font-style:italic;color:var(--color-gold);text-align:center;letter-spacing:1px;margin-bottom:10px;text-shadow:0 1px 4px rgba(201,169,110,.2)}.section-subtitle{font-family:var(--font-heading);font-size:1rem;color:var(--color-gold-light);text-align:center;font-weight:500;letter-spacing:4px;text-transform:uppercase;margin-bottom:10px}.hero-section{padding:40px 20px 25px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(180deg,#0e1a16cc,#090f0df0);position:relative}.hero-section:before{content:"☪";position:absolute;right:12%;top:14%;font-size:clamp(3rem,5vw,5.5rem);color:#d9b87438;transform:rotate(-12deg);z-index:0}.hero-pre-text{font-family:var(--font-heading);font-size:1rem;font-weight:500;letter-spacing:6px;text-transform:uppercase;color:var(--color-gold-light);margin-bottom:10px;opacity:.9}.hero-names{font-family:var(--font-display);font-size:clamp(2.8rem,9vw,4.2rem);font-weight:700;font-style:italic;color:var(--color-gold);line-height:1.2;letter-spacing:2px;margin-bottom:5px;text-shadow:0 2px 6px rgba(217,184,116,.25)}.name-initial{font-family:var(--font-display);font-style:italic;font-weight:700;font-size:1.15em;line-height:1;display:inline-block;color:inherit}.hero-ampersand{font-family:Great Vibes,cursive;font-size:clamp(2rem,6vw,3rem);color:var(--color-rose);display:block;margin:-2px 0;letter-spacing:0;font-style:normal}.hero-tagline{font-family:var(--font-heading);font-size:1.1rem;font-style:italic;color:var(--color-blush);margin-top:15px;font-weight:500}.hero-date-badge{margin-top:18px;padding:10px 28px;border:1px solid var(--color-gold);border-radius:50px;font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--color-gold-light);background:#c9a96e14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:inline-block}.hero-couple-img{width:min(220px,70vw);height:auto;max-height:240px;border-radius:20px;object-fit:cover;object-position:top center;border:3px solid var(--color-gold);box-shadow:0 0 0 5px #c9a96e1f,0 15px 40px #00000080,0 0 30px #c9a96e40;margin:22px auto 0;display:block}.countdown-section{background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-deep-maroon) 50%,var(--color-bg) 100%);padding:60px 20px}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.countdown-item{background:#c9a96e14;border:1px solid rgba(201,169,110,.2);border-radius:16px;padding:20px 10px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:var(--transition-smooth)}.countdown-item:hover{transform:translateY(-4px);border-color:var(--color-gold);box-shadow:var(--shadow-glow)}.countdown-number{font-family:var(--font-elegant);font-size:2.2rem;font-weight:700;color:var(--color-gold);display:block;line-height:1}.countdown-label{font-family:var(--font-body);font-size:.65rem;font-weight:300;letter-spacing:2px;text-transform:uppercase;color:var(--color-gold-light);margin-top:8px;display:block}.couple-section{background:var(--color-bg);padding:80px 20px}.couple-card{background:#101f1bbd;border:1px solid rgba(217,184,116,.22);border-radius:24px;padding:40px 24px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-bottom:24px;transition:var(--transition-smooth);position:relative;overflow:hidden}.couple-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(201,169,110,.05),transparent 60%);opacity:0;transition:opacity .6s ease}.couple-card:hover:before{opacity:1}.couple-card:hover{transform:translateY(-4px);border-color:#c9a96e4d;box-shadow:var(--shadow-soft)}.couple-img{width:140px;height:140px;border-radius:50%;object-fit:cover;border:3px solid var(--color-gold);margin:0 auto 20px;box-shadow:0 0 30px #c9a96e33}.couple-name{font-family:var(--font-display);font-size:1.8rem;font-weight:700;font-style:italic;color:var(--color-gold);letter-spacing:1px;margin-bottom:4px}.couple-relation{font-family:var(--font-heading);font-size:.9rem;color:var(--color-rose);font-style:italic;font-weight:300}.couple-parents{font-family:var(--font-body);font-size:.8rem;color:var(--color-gold-light);margin-top:12px;line-height:1.8;font-weight:300}.couple-heart-divider{display:flex;align-items:center;justify-content:center;margin:10px 0}.couple-heart-divider svg{width:48px;height:48px;fill:var(--color-burgundy-light);animation:heartBeat 1.5s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(107,32,64,.4))}@keyframes heartBeat{0%,to{transform:scale(1)}15%{transform:scale(1.15)}30%{transform:scale(1)}45%{transform:scale(1.1)}}.story-section{background:linear-gradient(180deg,var(--color-bg) 0%,#120a06 50%,var(--color-bg) 100%);padding:80px 20px}.story-quote{font-family:var(--font-heading);font-size:1.2rem;font-style:italic;color:var(--color-blush);text-align:center;line-height:1.8;margin-bottom:40px;font-weight:300;position:relative;padding:0 20px}.story-quote:before,.story-quote:after{font-family:var(--font-display);font-size:3rem;color:var(--color-gold);opacity:.4;position:absolute}.story-quote:before{content:'"';top:-10px;left:0}.story-quote:after{content:'"';bottom:-30px;right:0}.timeline{position:relative;padding-left:30px}.timeline:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--color-gold),var(--color-gold),transparent)}.timeline-item{position:relative;margin-bottom:40px;padding-left:20px}.timeline-item:before{content:"";position:absolute;left:-26px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--color-gold);border:2px solid var(--color-bg);box-shadow:0 0 10px #c9a96e66}.timeline-year{font-family:var(--font-accent);font-size:1.2rem;color:var(--color-gold);font-weight:600;margin-bottom:6px}.timeline-title{font-family:var(--font-heading);font-size:1.1rem;color:var(--color-cream);font-weight:500;margin-bottom:6px}.timeline-desc{font-family:var(--font-body);font-size:.85rem;color:var(--color-gold-light);font-weight:300;line-height:1.7}.events-section{background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-deep-maroon) 50%,var(--color-bg) 100%);padding:80px 20px}.event-card{background:#101f1bbd;border:1px solid rgba(217,184,116,.22);border-radius:24px;overflow:hidden;margin-bottom:30px;transition:var(--transition-smooth);position:relative}.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-glow);border-color:var(--color-gold)}.event-img{width:100%;height:200px;object-fit:cover;filter:brightness(.8);transition:var(--transition-smooth)}.event-card:hover .event-img{filter:brightness(.9);transform:scale(1.03)}.event-img-wrapper{overflow:hidden;position:relative}.event-img-wrapper:after{content:"";position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to top,rgba(13,10,7,.9),transparent)}.event-type-badge{position:absolute;top:16px;right:16px;padding:6px 16px;background:linear-gradient(135deg,var(--color-burgundy),var(--color-burgundy-light));box-shadow:0 10px 25px #7d1f2c40;border:1px solid var(--color-gold);border-radius:20px;font-family:var(--font-body);font-size:.7rem;font-weight:400;letter-spacing:2px;text-transform:uppercase;color:var(--color-gold-light);z-index:2}.event-content{padding:24px}.event-name{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--color-gold);margin-bottom:16px}.event-detail{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.event-detail-icon{width:20px;height:20px;flex-shrink:0;margin-top:2px;fill:var(--color-gold);opacity:.8}.event-detail-text{font-family:var(--font-body);font-size:.85rem;color:var(--color-cream);font-weight:300;line-height:1.6}.event-detail-text strong{color:var(--color-gold-light);font-weight:500}.event-map-btn{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:10px 24px;background:linear-gradient(135deg,var(--color-burgundy),var(--color-burgundy-light));box-shadow:0 10px 25px #7d1f2c40;border:1px solid var(--color-gold);border-radius:50px;color:var(--color-gold);font-family:var(--font-body);font-size:.8rem;font-weight:400;letter-spacing:1px;cursor:pointer;transition:var(--transition-smooth)}.event-map-btn:hover{background:var(--color-gold);color:var(--color-bg)}.event-map-btn svg{width:14px;height:14px;fill:currentColor}.rsvp-section{background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-deep-maroon) 50%,var(--color-bg) 100%);padding:80px 20px}.rsvp-form{margin-top:30px}.form-group{margin-bottom:20px}.form-group label{display:block;font-family:var(--font-heading);font-size:.9rem;font-weight:400;color:var(--color-gold-light);margin-bottom:8px;letter-spacing:1px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:14px 18px;background:#c9a96e0f;border:1px solid rgba(217,184,116,.46);border-radius:12px;color:var(--color-cream);font-family:var(--font-body);font-size:.9rem;font-weight:300;transition:var(--transition-smooth);outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:#f8f2ebb3}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-gold);box-shadow:0 0 20px #c9a96e26;background:#c9a96e1a}.form-group textarea{min-height:100px;resize:vertical}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23c9a96e' fill='none' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer}.form-group select option{background:var(--color-bg);color:var(--color-cream)}.rsvp-radio-group{display:flex;gap:12px;margin-top:8px}.rsvp-radio{flex:1;position:relative}.rsvp-radio input{position:absolute;opacity:0;pointer-events:none}.rsvp-radio label{display:flex;align-items:center;justify-content:center;padding:14px;background:#c9a96e0f;border:1px solid rgba(201,169,110,.2);border-radius:12px;cursor:pointer;transition:var(--transition-smooth);font-family:var(--font-body);font-size:.85rem;font-weight:400;color:var(--color-gold-light);letter-spacing:0}.rsvp-radio input:checked+label{background:#c9a96e26;border-color:var(--color-gold);color:var(--color-gold);box-shadow:0 0 20px #c9a96e33}.rsvp-submit{width:100%;padding:16px;background:linear-gradient(135deg,var(--color-gold-dark),var(--color-gold));border:none;border-radius:12px;color:var(--color-bg);font-family:var(--font-heading);font-size:1rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:var(--transition-smooth);margin-top:10px;position:relative;overflow:hidden}.rsvp-submit:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s ease}.rsvp-submit:hover:before{left:100%}.rsvp-submit:hover{transform:translateY(-2px);box-shadow:0 8px 30px #c9a96e66}.rsvp-success{display:none;text-align:center;padding:40px 20px}.rsvp-success.show{display:block;animation:fadeInUp .8s ease}.rsvp-success svg{width:64px;height:64px;fill:var(--color-gold);margin-bottom:20px}.rsvp-success h3{font-family:var(--font-display);font-size:2rem;color:var(--color-gold);margin-bottom:10px}.rsvp-success p{font-family:var(--font-body);font-size:.9rem;color:var(--color-gold-light);font-weight:300}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.faq-section{background:var(--color-bg);padding:80px 20px}.faq-item{border:1px solid rgba(201,169,110,.15);border-radius:16px;margin-bottom:12px;overflow:hidden;transition:var(--transition-smooth)}.faq-item:hover{border-color:#c9a96e4d}.faq-item.open{border-color:var(--color-gold);box-shadow:var(--shadow-soft)}.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:none;border:none;color:var(--color-cream);font-family:var(--font-heading);font-size:1rem;font-weight:500;text-align:left;cursor:pointer;transition:var(--transition-smooth)}.faq-question:hover{color:var(--color-gold)}.faq-icon{width:24px;height:24px;flex-shrink:0;position:relative;transition:transform .4s ease}.faq-item.open .faq-icon{transform:rotate(45deg)}.faq-icon:before,.faq-icon:after{content:"";position:absolute;background:var(--color-gold);border-radius:1px}.faq-icon:before{width:16px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%)}.faq-icon:after{width:2px;height:16px;top:50%;left:50%;transform:translate(-50%,-50%)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.25,.46,.45,.94)}.faq-item.open .faq-answer{max-height:300px}.faq-answer-inner{padding:0 20px 18px;font-family:var(--font-body);font-size:.85rem;color:var(--color-gold-light);font-weight:300;line-height:1.7}.wishes-section{background:linear-gradient(180deg,var(--color-bg) 0%,#120a06 50%,var(--color-bg) 100%);padding:80px 20px}.wishes-form{margin-top:30px;margin-bottom:30px}.wishes-input-row{display:flex;gap:12px;margin-bottom:12px}.wishes-input-row input,.wishes-input-row textarea{flex:1;padding:14px 18px;background:#c9a96e0f;border:1px solid rgba(217,184,116,.46);border-radius:12px;color:var(--color-cream);font-family:var(--font-body);font-size:.9rem;font-weight:300;outline:none;transition:var(--transition-smooth)}.wishes-input-row input::placeholder,.wishes-input-row textarea::placeholder{color:#f8f2ebb3}.wishes-input-row input:focus,.wishes-input-row textarea:focus{border-color:var(--color-gold);box-shadow:0 0 20px #c9a96e26}.wishes-textarea{width:100%;min-height:80px;resize:vertical}.wishes-send-btn{padding:12px 30px;background:linear-gradient(135deg,var(--color-gold-dark),var(--color-gold));border:none;border-radius:12px;color:var(--color-bg);font-family:var(--font-heading);font-size:.9rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:var(--transition-smooth);margin-top:8px}.wishes-send-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #c9a96e66}.wishes-list{display:flex;flex-direction:column;gap:16px}.wish-card{background:#dfb76c14;border:1px solid rgba(223,183,108,.2);border-radius:16px;padding:20px;transition:var(--transition-smooth)}.wish-card:hover{border-color:#c9a96e40;transform:translateY(-2px)}.wish-author{font-family:var(--font-accent);font-size:1.1rem;color:var(--color-gold);margin-bottom:8px}.wish-text{font-family:var(--font-body);font-size:.85rem;color:var(--color-cream);font-weight:300;line-height:1.7;font-style:italic}.wish-time{font-family:var(--font-body);font-size:.7rem;color:#faf3e84d;margin-top:8px}.wishes-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;color:#faf3e880;font-family:var(--font-body);font-size:.85rem}.wishes-spinner{width:32px;height:32px;border:2px solid rgba(201,169,110,.15);border-top-color:var(--color-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.wishes-empty{text-align:center;padding:40px 20px;color:#faf3e866;font-family:var(--font-body);font-size:.9rem;font-style:italic}.wishes-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(201,169,110,.1)}.wishes-page-btn{padding:8px 18px;background:#c9a96e14;border:1px solid rgba(201,169,110,.2);border-radius:8px;color:var(--color-gold);font-family:var(--font-body);font-size:.8rem;cursor:pointer;transition:var(--transition-smooth)}.wishes-page-btn:hover:not(:disabled){background:#c9a96e26;border-color:var(--color-gold);transform:translateY(-1px)}.wishes-page-btn:disabled{opacity:.3;cursor:not-allowed}.wishes-page-info{font-family:var(--font-body);font-size:.75rem;color:#faf3e866;min-width:80px;text-align:center}.footer-section{background:linear-gradient(180deg,var(--color-bg) 0%,#050302 100%);padding:60px 20px 40px;text-align:center}.footer-names{font-family:var(--font-display);font-size:2.3rem;font-weight:700;font-style:italic;color:var(--color-gold);letter-spacing:1px;margin-bottom:10px}.footer-date{font-family:var(--font-heading);font-size:1rem;color:var(--color-gold-light);font-weight:300;letter-spacing:3px;margin-bottom:30px}.footer-message{font-family:var(--font-heading);font-size:1.1rem;font-style:italic;color:var(--color-blush);max-width:400px;margin:0 auto 30px;line-height:1.8;font-weight:300}.footer-hearts{display:flex;justify-content:center;gap:8px;margin-bottom:30px}.footer-hearts span{font-size:1.2rem;animation:heartFloat 3s ease-in-out infinite}.footer-hearts span:nth-child(2){animation-delay:.5s}.footer-hearts span:nth-child(3){animation-delay:1s}@keyframes heartFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.1)}}.footer-credits{font-family:var(--font-body);font-size:.7rem;color:#c9a96e66;font-weight:300;margin-top:30px}.confetti-piece{position:fixed;top:-10px;width:8px;height:8px;border-radius:50%;pointer-events:none;z-index:9999;animation:confettiFall 3s ease-in forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(100vh) rotate(720deg) scale(0);opacity:0}}.petal{position:fixed;pointer-events:none;z-index:0;opacity:0;animation:petalFall linear forwards}@keyframes petalFall{0%{opacity:0;transform:translateY(-10vh) rotate(0) translate(0)}10%{opacity:.6}90%{opacity:.4}to{opacity:0;transform:translateY(110vh) rotate(720deg) translate(100px)}}@media (min-width: 768px){.section{padding:100px 40px}.section-inner{max-width:700px}.section-title{font-size:3.5rem}.envelope{width:380px;height:266px}.countdown-item{padding:28px 14px}.countdown-number{font-size:2.8rem}}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#163d33,#090e0d 76%);z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s ease,visibility .8s ease}.loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-ring{width:60px;height:60px;border:2px solid rgba(201,169,110,.1);border-top-color:var(--color-gold);border-radius:50%;animation:loadingSpin 1s linear infinite}@keyframes loadingSpin{to{transform:rotate(360deg)}}.loading-text{font-family:var(--font-accent);font-size:1.1rem;color:var(--color-gold-light);margin-top:20px;letter-spacing:2px}.loading-progress{width:min(180px,60vw);height:2px;margin-top:18px;overflow:hidden;background:#d9b8742e}.loading-progress span{display:block;width:0;height:100%;background:var(--color-gold);transition:width .25s ease}.loading-detail{margin-top:10px;color:var(--color-text-light);font-family:var(--font-heading);font-size:.72rem}
