@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Marck+Script&family=Montserrat:wght@200;300;400;500&display=swap";:root{--color-ivory:#faf8f3;--color-cream:#f5f0e8;--color-champagne:#f7e7ce;--color-beige:#e8ddd0;--color-gold:#c9a96e;--color-gold-light:#e8c99a;--color-gold-xlight:#f0ddb0;--color-gold-dark:#a07840;--color-gold-glow:#c9a96e59;--color-warm-white:#fff9f2;--color-dark-warm:#1a1108;--color-dark-mid:#26190e;--color-text-primary:#2c2420;--color-text-secondary:#6b5a4e;--color-text-muted:#9e8c80;--color-text-light:#ffffffe0;--color-text-light-muted:#ffffff8c;--color-overlay:#140f0a6b;--color-overlay-dark:#0e0a06ad;--font-serif:"Playfair Display", "Georgia", serif;--font-sans:"Montserrat", "Helvetica Neue", sans-serif;--font-script:"Marck Script", cursive;--section-padding:clamp(72px, 11vw, 130px);--section-padding-sm:clamp(48px, 8vw, 80px);--container-max:720px;--container-narrow:520px;--transition-slow:.9s cubic-bezier(.4, 0, .2, 1);--transition-medium:.45s cubic-bezier(.4, 0, .2, 1);--transition-fast:.22s cubic-bezier(.4, 0, .2, 1);--shadow-gold-sm:0 2px 16px #c9a96e2e;--shadow-gold-md:0 6px 32px #c9a96e38;--shadow-gold-lg:0 12px 56px #c9a96e47;--shadow-card:0 4px 40px #2c242014, 0 1px 4px #2c24200a;--shadow-glass:0 8px 40px #2c24201f, inset 0 1px 0 #ffffff8c;--glass-bg:#ffffff2e;--glass-border:#ffffff52;--glass-bg-warm:#faf8f38c;--glass-border-warm:#c9a96e47;--radius-sm:4px;--radius-md:12px;--radius-lg:24px;--radius-xl:40px;--z-particles:1;--z-content:2;--z-overlay:3}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-ivory);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}img,video{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}a{color:inherit;text-decoration:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes blurReveal{0%{opacity:0;filter:blur(12px);transform:translateY(20px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes heroZoom{0%{transform:scale(1)}to{transform:scale(1.07)}}@keyframes particleFloat{0%{opacity:0;transform:translateY(0)scale(1)}15%{opacity:1}85%{opacity:.7}to{opacity:0;transform:translateY(-120px)scale(.6)}}@keyframes shimmerGold{0%{opacity:.4;transform:translate(-100%)}to{opacity:0;transform:translate(100%)}}@keyframes countFlip{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes waveBar{0%,to{opacity:.35;transform:scaleY(.25)}50%{opacity:.85;transform:scaleY(1)}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.18)}28%{transform:scale(1)}42%{transform:scale(1.1)}56%{transform:scale(1)}}@keyframes scrollDot{0%{opacity:.8;transform:translateY(0)}80%{opacity:0;transform:translateY(18px)}to{opacity:0;transform:translateY(18px)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glowPulse{0%,to{box-shadow:0 0 #c9a96e00}50%{box-shadow:0 0 0 6px #c9a96e26}}@keyframes drawLine{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.animate-fade-in-up{animation:1s cubic-bezier(.4,0,.2,1) both fadeInUp}.animate-fade-in{animation:1.1s both fadeIn}.animate-blur-reveal{animation:1.1s cubic-bezier(.4,0,.2,1) both blurReveal}.animate-scale-in{animation:.9s cubic-bezier(.4,0,.2,1) both scaleIn}.delay-1{animation-delay:.2s}.delay-2{animation-delay:.5s}.delay-3{animation-delay:.85s}.delay-4{animation-delay:1.2s}.delay-5{animation-delay:1.6s}.delay-6{animation-delay:2s}.reveal{opacity:0;transition:opacity .85s cubic-bezier(.4,0,.2,1),transform .85s cubic-bezier(.4,0,.2,1);transform:translateY(28px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal--left{transform:translate(-28px)}.reveal--left.visible{transform:translate(0)}.reveal--scale{transform:scale(.94)}.reveal--scale.visible{transform:scale(1)}.reveal.visible .stagger-1{transition-delay:.1s}.reveal.visible .stagger-2{transition-delay:.2s}.reveal.visible .stagger-3{transition-delay:.3s}.reveal.visible .stagger-4{transition-delay:.4s}.section{padding:var(--section-padding) 24px;max-width:var(--container-max);text-align:center;margin:0 auto}.section--sm{padding:var(--section-padding-sm) 24px}.section-title{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:.04em;margin-bottom:8px;font-size:clamp(28px,5.5vw,42px);font-weight:400;line-height:1.2}.section-title--light{color:#fff}.section-subtitle{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.32em;color:var(--color-text-muted);margin-bottom:12px;font-size:clamp(10px,2.2vw,12px);font-weight:300}.section-subtitle--light{color:var(--color-gold-light)}.ornament{color:var(--color-gold);letter-spacing:.12em;justify-content:center;align-items:center;gap:12px;margin:20px 0;font-size:16px;display:flex}.ornament:before,.ornament:after{content:"";background:linear-gradient(90deg, transparent, var(--color-gold), transparent);width:56px;height:1px;display:block}.ornament--light{color:var(--color-gold-light)}.ornament--light:before,.ornament--light:after{background:linear-gradient(90deg, transparent, var(--color-gold-light), transparent)}.divider-ornament{justify-content:center;align-items:center;gap:16px;margin:0;padding:0 24px;display:flex;overflow:hidden}.divider-ornament__line{background:linear-gradient(90deg, transparent, var(--color-gold-light), transparent);flex:1;max-width:160px;height:1px}.divider-ornament__text{font-family:var(--font-serif);color:var(--color-gold);letter-spacing:.1em;font-size:18px}.btn{font-family:var(--font-sans);letter-spacing:.24em;text-transform:uppercase;transition:all var(--transition-medium);white-space:nowrap;border-radius:50px;justify-content:center;align-items:center;gap:8px;max-width:100%;margin-top:8px;padding:15px 40px;font-size:11px;font-weight:400;display:inline-flex;position:relative;overflow:hidden}@media (width<=400px){.btn{letter-spacing:.14em;padding:14px 24px;font-size:10px}}.btn:after{content:"";opacity:0;transition:opacity var(--transition-fast);background:#ffffff1f;position:absolute;inset:0}.btn:hover:after,.btn:focus-visible:after{opacity:1}.btn--outline{border:1px solid var(--color-gold);color:var(--color-gold-dark);background:0 0}.btn--outline:hover,.btn--outline:focus-visible{background:var(--color-gold);color:#fff;box-shadow:var(--shadow-gold-md);outline:none;transform:translateY(-1px)}.btn--outline:active{transform:translateY(0)}.btn--solid{background:var(--color-gold);color:#fff;box-shadow:var(--shadow-gold-sm);border:1px solid #0000}.btn--solid:hover,.btn--solid:focus-visible{background:var(--color-gold-dark);box-shadow:var(--shadow-gold-lg);outline:none;transform:translateY(-2px)}.btn--solid:active{transform:translateY(0)}.btn--ghost{color:#fff;background:#ffffff14;border:1px solid #fff6}.btn--ghost:hover,.btn--ghost:focus-visible{background:#ffffff2e;border-color:#ffffffb3;outline:none;transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__video{animation:none!important}.hero__particle{display:none!important}.animate-fade-in-up,.animate-fade-in,.animate-blur-reveal,.animate-scale-in{animation-duration:.01ms!important;animation-delay:0s!important}.reveal{opacity:1;transition-duration:.01ms!important;transform:none!important}.waveBar{animation:none!important}}.hero{background-color:var(--color-dark-warm);justify-content:center;align-items:flex-end;width:100%;height:100svh;min-height:640px;display:flex;position:relative;overflow:hidden}.hero__media{z-index:0;position:absolute;inset:0}.hero__photo{object-fit:cover;object-position:center 18%;width:100%;height:100%}.hero__overlay{pointer-events:none;position:absolute;inset:0}.hero__overlay--soft{background:linear-gradient(#0e0a061f 0%,#0e0a060d 35%,#0e0a062e 58%,#0e0a06b8 100%)}.hero__overlay--bottom{background:linear-gradient(#0000 45%,#0e0a068c 72%,#0e0a06e0 100%)}.hero__content{z-index:var(--z-content);text-align:center;padding:0 28px calc(72px + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:center;width:100%;max-width:560px;display:flex;position:relative}.hero__badge{margin-bottom:14px}.hero__badge-inner{font-family:var(--font-sans);letter-spacing:.42em;text-transform:uppercase;color:var(--color-gold-light);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0e0a0647;border:1px solid #e8c99a66;border-radius:50px;padding:7px 22px 6px;font-size:10px;font-weight:400;display:inline-block}.hero__prelude{font-family:var(--font-sans);letter-spacing:.38em;text-transform:uppercase;color:var(--color-gold-light);margin-bottom:12px;font-size:clamp(10px,2.3vw,12px);font-weight:200}.hero__names{flex-flow:wrap;justify-content:center;align-items:baseline;gap:0 14px;margin-bottom:16px;display:flex}.hero__name{font-family:var(--font-script);color:#fff;text-shadow:0 2px 24px #0000008c,0 1px 2px #00000059;font-size:clamp(42px,11vw,72px);font-weight:400;line-height:1}.hero__ampersand{font-family:var(--font-serif);color:var(--color-gold-light);opacity:.95;align-self:center;font-size:clamp(18px,4vw,28px);font-style:italic;line-height:1}.hero__date-row{align-items:center;gap:12px;width:100%;max-width:180px;margin-bottom:12px;display:flex}.hero__date-line{background:linear-gradient(90deg, transparent, var(--color-gold-light), transparent);opacity:.6;flex:1;height:1px}.hero__date-gem{color:var(--color-gold-light);opacity:.8;font-size:7px}.hero__date{font-family:var(--font-serif);color:#ffffffeb;letter-spacing:.06em;text-shadow:0 1px 12px #0006;margin-bottom:6px;font-size:clamp(14px,3.2vw,18px);font-weight:400}.hero__time{font-family:var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--color-gold-light);opacity:.9;font-size:clamp(10px,2.2vw,13px);font-weight:300}.hero__scroll{z-index:var(--z-content);flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.hero__scroll-text{font-family:var(--font-sans);letter-spacing:.38em;text-transform:uppercase;color:#fff6;font-size:8px;font-weight:300}.hero__scroll-track{background:#ffffff2e;width:1px;height:24px;position:relative;overflow:hidden}.hero__scroll-dot{background:var(--color-gold-light);border-radius:50%;width:3px;height:3px;animation:1.8s cubic-bezier(.4,0,.6,1) infinite scrollDot;position:absolute;top:0;left:50%;transform:translate(-50%)}@media (width>=768px){.hero__photo{object-position:center 22%}.hero__content{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}.hero__names{gap:0 18px}.hero__name{font-size:clamp(56px,7vw,80px)}}@media (aspect-ratio<=3/4){.hero__photo{object-position:center 12%}.hero__content{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}}@media (width<=380px){.hero__badge-inner{letter-spacing:.28em;padding:6px 16px}.hero__names{flex-direction:column;gap:2px}.hero__ampersand{margin:0}}.invitation-section{background-color:var(--color-warm-white);background-image:repeating-linear-gradient(0deg,#0000,#0000 3px,#c9a96e05 3px 6px)}.invitation__text{font-family:var(--font-serif);color:var(--color-text-secondary);letter-spacing:.02em;max-width:520px;margin:0 auto;font-size:clamp(19px,4vw,26px);font-style:italic;font-weight:300;line-height:1.85}.story-section{background-color:var(--color-ivory)}.story__card{border:1px solid var(--glass-border-warm);border-radius:var(--radius-lg);max-width:560px;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(6px);background:#ffffffa6;margin:0 auto;padding:48px 40px;position:relative}.story__text{font-family:var(--font-serif);color:var(--color-text-secondary);letter-spacing:.01em;font-size:clamp(18px,3.8vw,22px);font-style:italic;font-weight:300;line-height:1.95}.story__flourish{color:var(--color-gold);opacity:.3;font-size:32px;line-height:1;position:absolute}.story__flourish--left{top:16px;left:20px;transform:rotate(180deg)}.story__flourish--right{bottom:16px;right:20px}@media (width<=480px){.story__card{padding:36px 24px}}.countdown-section{background:linear-gradient(160deg, var(--color-champagne) 0%, var(--color-cream) 55%, var(--color-champagne) 100%)}.countdown__grid{grid-template-columns:repeat(4,1fr);gap:14px;max-width:500px;margin:8px auto 0;display:grid}.countdown__unit{flex-direction:column;align-items:center;gap:10px;display:flex}.countdown__card{border-radius:var(--radius-md);border:1px solid var(--glass-border-warm);background:var(--glass-bg-warm);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-glass);aspect-ratio:1;width:100%;transition:transform var(--transition-medium), box-shadow var(--transition-medium);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.countdown__card:hover{box-shadow:var(--shadow-gold-md);transform:translateY(-3px)}.countdown__shimmer{pointer-events:none;background:linear-gradient(115deg,#0000 20%,#fff6 50%,#0000 80%);animation:4s ease-in-out infinite shimmerGold;position:absolute;inset:0}.countdown__value{font-family:var(--font-serif);color:var(--color-text-primary);text-align:center;z-index:1;font-size:clamp(28px,7.5vw,52px);font-weight:300;line-height:1;position:relative}.countdown__value--flip{animation:.35s cubic-bezier(.4,0,.2,1) both countFlip}.countdown__label{font-family:var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-muted);font-size:clamp(9px,1.8vw,11px);font-weight:400}@media (width<=380px){.countdown__grid{gap:8px}}.details-section{background:linear-gradient(135deg, var(--color-warm-white) 0%, var(--color-cream) 100%)}.details__grid{grid-template-columns:repeat(2,1fr);gap:16px;max-width:560px;margin:0 auto;display:grid}.details__card{border:1px solid var(--glass-border-warm);border-radius:var(--radius-md);box-shadow:var(--shadow-card);transition:transform var(--transition-medium), box-shadow var(--transition-medium);background:#ffffffa6;flex-direction:column;align-items:center;gap:10px;padding:28px 20px 24px;display:flex}.details__card:hover{box-shadow:var(--shadow-gold-md);transform:translateY(-4px)}.details__icon{width:36px;height:36px;color:var(--color-gold)}.details__icon svg{width:100%;height:100%}.details__label{font-family:var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--color-gold-dark);font-size:10px;font-weight:400}.details__value{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:.02em;text-align:center;font-size:clamp(14px,3vw,17px);font-weight:400;line-height:1.4}@media (width<=380px){.details__grid{grid-template-columns:1fr}}.schedule-section{background:linear-gradient(180deg, var(--color-ivory) 0%, var(--color-cream) 100%)}.schedule__list{text-align:left;flex-direction:column;max-width:380px;margin:0 auto;list-style:none;display:flex}.schedule__item{gap:24px;display:flex}.schedule__track{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.schedule__dot{background:linear-gradient(135deg, var(--color-champagne), var(--color-cream));border:1px solid var(--color-gold-light);width:48px;height:48px;box-shadow:var(--shadow-gold-sm);transition:transform var(--transition-medium), box-shadow var(--transition-medium);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.schedule__item:hover .schedule__dot{box-shadow:var(--shadow-gold-md);transform:scale(1.1)}.schedule__icon{color:var(--color-gold-dark);font-size:16px}.schedule__line{background:linear-gradient(180deg, var(--color-gold-light) 0%, transparent 100%);flex:1;width:1px;min-height:28px;margin:4px 0}.schedule__body{padding:8px 0 28px}.schedule__time{font-family:var(--font-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--color-gold-dark);margin-bottom:4px;font-size:10px;font-weight:400}.schedule__event{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:.02em;font-size:clamp(18px,4vw,24px);font-weight:400;line-height:1.3}.gallery-section{background-color:var(--color-cream)}.gallery__grid{grid-template-columns:repeat(3,1fr);gap:14px;max-width:640px;margin:0 auto;display:grid}.gallery__item{aspect-ratio:3/4;border-radius:var(--radius-md);box-shadow:var(--shadow-card);transition:transform var(--transition-medium), box-shadow var(--transition-medium);position:relative;overflow:hidden}.gallery__item:hover{box-shadow:var(--shadow-gold-lg);z-index:1;transform:scale(1.03)translateY(-4px)}.gallery__img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow)}.gallery__item:hover .gallery__img{transform:scale(1.06)}.gallery__placeholder{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.gallery__placeholder:before{content:"";background:radial-gradient(at 35% 40%,#ffffff4d 0%,#0000 60%);position:absolute;inset:0}.gallery__placeholder-icon{color:var(--color-gold);opacity:.45;z-index:1;font-size:28px;animation:3.5s ease-in-out infinite floatY;position:relative}@media (width<=420px){.gallery__grid{gap:10px}}.location-section{background-color:var(--color-warm-white)}.location__card{border:1px solid var(--glass-border-warm);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);max-width:440px;box-shadow:var(--shadow-card);transition:box-shadow var(--transition-medium);background:#ffffffb8;flex-direction:column;align-items:center;gap:14px;margin:0 auto;padding:48px 36px 40px;display:flex;position:relative;overflow:hidden}.location__card:hover{box-shadow:var(--shadow-gold-md)}.location__bg-pattern{background-image:radial-gradient(var(--color-beige) 1px, transparent 1px);opacity:.35;pointer-events:none;background-size:20px 20px;position:absolute;inset:0}.location__icon{width:44px;height:44px;color:var(--color-gold);margin-bottom:4px;animation:3s ease-in-out infinite floatY;position:relative}.location__icon svg{width:100%;height:100%}.location__name{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:.04em;text-align:center;font-size:clamp(22px,5vw,28px);font-weight:400;position:relative}.location__address{font-family:var(--font-sans);color:var(--color-text-muted);text-align:center;max-width:280px;font-size:13px;font-weight:300;line-height:1.7;position:relative}.location__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex;position:relative}.location__copy{min-width:148px}@media (width<=400px){.location__copy{min-width:0}}.dresscode-section{background:linear-gradient(160deg, var(--color-ivory) 0%, var(--color-warm-white) 100%)}.dresscode__style{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:.12em;margin-bottom:32px;font-size:clamp(22px,5vw,30px);font-weight:300}.dresscode__palette{flex-wrap:wrap;justify-content:center;gap:20px;max-width:400px;margin:0 auto 24px;display:flex}.dresscode__swatch-wrap{flex-direction:column;align-items:center;gap:8px;display:flex}.dresscode__swatch{width:56px;height:56px;transition:transform var(--transition-medium), box-shadow var(--transition-medium);border:2px solid #fffc;border-radius:50%;box-shadow:0 2px 12px #2c24201f,inset 0 1px #fff9}.dresscode__swatch:hover{transform:scale(1.12)translateY(-2px);box-shadow:0 6px 20px #2c24202e,inset 0 1px #ffffffb3}.dresscode__swatch-name{font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);font-size:10px;font-weight:300}.dresscode__note{font-family:var(--font-serif);color:var(--color-text-secondary);max-width:440px;margin:0 auto;font-size:clamp(15px,3.2vw,18px);font-style:italic;font-weight:300;line-height:1.8}.dresscode__note-title{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:.04em;margin-bottom:20px;font-size:clamp(20px,4.5vw,28px);font-weight:400}.dresscode__guest-card{border:1px solid var(--glass-border-warm);border-radius:var(--radius-md);max-width:480px;box-shadow:var(--shadow-card);background:#ffffffa6;margin:0 auto;padding:32px 36px;position:relative}.dresscode__quote-mark{font-family:var(--font-serif);color:var(--color-gold);opacity:.2;font-size:64px;line-height:1;position:absolute;top:12px;left:20px}.dresscode__guest-text{font-family:var(--font-serif);color:var(--color-text-secondary);z-index:1;font-size:clamp(15px,3.2vw,18px);font-style:italic;font-weight:300;line-height:1.85;position:relative}.atmosphere-section{background:linear-gradient(160deg, var(--color-dark-warm) 0%, var(--color-dark-mid) 60%, #2a1a0e 100%)}.atmosphere__wave{justify-content:center;align-items:center;gap:4px;max-width:280px;height:56px;margin:8px auto 36px;display:flex}.atmosphere__bar{background:linear-gradient(180deg, var(--color-gold-xlight) 0%, var(--color-gold) 100%);transform-origin:bottom;opacity:.7;border-radius:3px;flex-shrink:0;width:3px;animation:1.4s ease-in-out infinite alternate waveBar}.atmosphere__text{font-family:var(--font-serif);color:#ffffffd9;letter-spacing:.02em;max-width:500px;margin:0 auto;font-size:clamp(19px,4.2vw,26px);font-style:italic;font-weight:300;line-height:1.85}.atmosphere__dots{justify-content:center;gap:12px;margin-top:36px;display:flex}.atmosphere__dot{background:var(--color-gold);opacity:.5;border-radius:50%;width:5px;height:5px;animation:2.2s ease-in-out infinite floatY}.music-player{z-index:50;width:48px;height:48px;color:var(--color-gold-xlight);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-gold-sm);transition:transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);background:#1a1108b8;border:1px solid #c9a96e8c;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:24px;right:20px}.music-player:hover{border-color:var(--color-gold);background:#1a1108e0;transform:scale(1.06)}.music-player__icon{z-index:1;font-size:1.15rem;line-height:1;position:relative}.music-player--playing .music-player__icon{animation:1.6s ease-in-out infinite musicNote}.music-player__pulse{pointer-events:none;border:1px solid #c9a96e73;border-radius:50%;animation:2s ease-out infinite musicPulse;position:absolute;inset:-3px}@keyframes musicNote{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes musicPulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@media (width<=480px){.music-player{width:44px;height:44px;bottom:18px;right:14px}}.finalcta-section{background:linear-gradient(180deg, var(--color-dark-mid) 0%, var(--color-dark-warm) 100%);position:relative;overflow:hidden}.finalcta__glow{pointer-events:none;background:radial-gradient(circle,#c9a96e1f 0%,#0000 70%);border-radius:50%;width:60vw;max-width:480px;height:60vw;max-height:480px;animation:4s ease-in-out infinite glowPulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.finalcta-section .section-title--light{margin-bottom:8px}.finalcta__quote{max-width:520px;margin:24px auto 0;padding:0 8px;position:relative}.finalcta__quote-mark{font-family:var(--font-serif);color:var(--color-gold);opacity:.18;pointer-events:none;font-size:80px;line-height:1;position:absolute;top:-20px;left:-4px}.finalcta__quote-text{font-family:var(--font-serif);color:#ffffffe6;letter-spacing:.02em;z-index:1;margin-bottom:16px;font-size:clamp(20px,4.5vw,28px);font-style:italic;font-weight:300;line-height:1.85;position:relative}.finalcta__text{font-family:var(--font-sans);color:#ffffffb3;letter-spacing:.02em;max-width:440px;margin:0 auto;font-size:clamp(13px,2.8vw,15px);font-weight:300;line-height:1.8}.finalcta__names{justify-content:center;align-items:center;gap:18px;margin-top:12px;display:flex}.finalcta__name{font-family:var(--font-script);color:#fffffff2;text-shadow:0 0 40px #c9a96e4d;font-size:clamp(44px,11vw,72px);line-height:1}.finalcta__heart{color:var(--color-gold-light);font-size:clamp(22px,5vw,32px);animation:2s ease-in-out infinite heartbeat;display:inline-block}.finalcta__closing{font-family:var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--color-gold-light);opacity:.6;margin-top:20px;font-size:11px;font-weight:300}.rsvp-section{background:linear-gradient(160deg, var(--color-cream) 0%, var(--color-champagne) 100%);background-image:linear-gradient(160deg, var(--color-cream) 0%, var(--color-champagne) 100%), repeating-linear-gradient(45deg, transparent, transparent 10px, #c9a96e04 10px, #c9a96e04 11px)}.rsvp__text{font-family:var(--font-serif);color:var(--color-text-secondary);max-width:420px;margin:0 auto 32px;font-size:clamp(16px,3.5vw,20px);font-style:italic;font-weight:300;line-height:1.85}.rsvp__buttons{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.rsvp__btn{min-width:168px;padding:16px 40px;font-size:12px}@media (width<=400px){.rsvp__btn{min-width:0;padding:14px 20px;font-size:10px}}.rsvp__note{font-family:var(--font-sans);letter-spacing:.15em;color:var(--color-text-muted);margin-top:28px;font-size:12px;font-weight:300}.footer{background:linear-gradient(180deg, var(--color-cream) 0%, var(--color-champagne) 60%, var(--color-beige) 100%);padding-bottom:56px}.footer__closing{font-family:var(--font-serif);color:var(--color-text-secondary);max-width:460px;margin:0 auto 40px;font-size:clamp(17px,3.8vw,22px);font-style:italic;font-weight:300;line-height:1.9}.footer__names{justify-content:center;align-items:center;gap:20px;margin:0 auto 32px;display:flex}.footer__name{font-family:var(--font-script);color:var(--color-text-primary);font-size:clamp(40px,10vw,68px);line-height:1}.footer__heart{color:var(--color-gold);font-size:clamp(20px,4.5vw,28px);animation:2.2s ease-in-out infinite heartbeat;display:inline-block}.footer__copy{font-family:var(--font-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--color-text-muted);margin-top:12px;font-size:10px;font-weight:300}
