:root{--primary-burgundy:#2a0a19;--secondary-wine:#3d1225;--accent-blush:#f4b4b8;--rose-gold-light:#fff8f0;--rose-gold-main:#fae3c8;--rose-gold-glow:#e8b98a;--rose-gold-dark:#c57656;--champagne-gold:#fce8bd;--wine-dark:#1f0712;--gold-gradient:linear-gradient(135deg, #fff 0%, #fff8f0 30%, #fae3c8 60%, #e8b98a 85%, #d49866 100%);--gold-glow:0 0 25px #f8d7b059;--font-royal:"Cinzel", serif;--font-editorial:"Bodoni Moda", "Italiana", serif;--font-serif:"Playfair Display", "Cormorant Garamond", Georgia, serif;--font-accent:"Cormorant Garamond", Georgia, serif;--font-sans:"Montserrat", -apple-system, BlinkMacSystemFont, sans-serif;--font-body:"Montserrat", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{scrollbar-width:none;-ms-overflow-style:none;color:#fff;width:100%;height:100%;font-family:var(--font-sans);background-color:#1a0612;background-image:radial-gradient(circle at 50% 15%,#5f1930cc 0%,#0000 60%),radial-gradient(circle at 80% 85%,#e18c6e40 0%,#0000 55%),radial-gradient(circle at 15% 75%,#410f23d9 0%,#0000 60%);background-attachment:fixed;overflow:hidden}html::-webkit-scrollbar{background:0 0!important;width:0!important;height:0!important;display:none!important}body::-webkit-scrollbar{background:0 0!important;width:0!important;height:0!important;display:none!important}.wedding-viewport{justify-content:center;align-items:center;min-height:100dvh;padding:0;display:flex;position:relative;overflow:hidden}.ambient-backdrop{filter:blur(14px)brightness(.88)saturate(1.1);z-index:0;pointer-events:none;opacity:.92;background-position:50%;background-size:cover;transition:opacity 1.5s;position:absolute;inset:0;transform:scale(1.08)}.invitation-card-container{z-index:10;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;background-color:#12040d;flex-direction:column;width:100%;max-width:480px;height:100dvh;display:flex;position:relative;overflow:hidden auto;box-shadow:0 25px 60px -15px #000000d9,0 0 35px #e89e7838}.invitation-card-container.envelope-locked{touch-action:none;overflow:hidden!important}.invitation-card-container.envelope-locked>:not(.stage-wrapper){display:none!important}.invitation-card-container.invitation-unlocked{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overflow:hidden auto!important}.invitation-card-container::-webkit-scrollbar{background:0 0!important;width:0!important;height:0!important;display:none!important}.invitation-card-container::-webkit-scrollbar-track{background:0 0!important}.invitation-card-container::-webkit-scrollbar-thumb{background:0 0!important}@media (min-width:768px){.wedding-viewport{padding:24px 0}.invitation-card-container{border:1px solid #f5c49b59;border-radius:24px;height:calc(100vh - 48px);max-height:900px}}.single-stage-container{touch-action:none;overflow:hidden!important}.stage-wrapper{background:#1c0714 url(/assets/envelope-cover.jpg) 50%/cover no-repeat;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:100dvh;min-height:100%;transition:background 1.2s;display:flex;position:relative;overflow:hidden}.stage-wrapper.stage-unlocked{background:#1c0714 url(/assets/mandap-background.jpg) 50%/cover no-repeat}.cinematic-video{object-fit:cover;object-position:center;z-index:1;filter:brightness(1.08)contrast(1.02);width:100%;height:100%;position:absolute;inset:0}.envelope-overlay{z-index:20;cursor:pointer;flex-direction:column;justify-content:space-between;align-items:center;padding:36px 20px 42px;transition:opacity .8s cubic-bezier(.16,1,.3,1),visibility .8s;display:flex;position:absolute;inset:0}.envelope-overlay.hide{opacity:0;visibility:hidden;pointer-events:none}.envelope-top-badge{-webkit-backdrop-filter:blur(10px);pointer-events:none;background:#2d0c1ad6;border:1px solid #f5c49b99;border-radius:24px;flex-direction:column;align-items:center;gap:3px;padding:8px 22px;animation:3.2s ease-in-out infinite gentleFloat;display:flex;box-shadow:0 6px 20px #00000073,0 0 16px #f5c49b4d}.envelope-mantra{font-family:var(--font-royal);letter-spacing:3px;color:#fae3c8;text-shadow:0 2px 8px #000000bf;font-size:14px;font-weight:600}.envelope-badge-sub{font-family:var(--font-sans);letter-spacing:3.5px;color:#ffffffe6;text-transform:uppercase;font-size:8.5px;font-weight:500}.envelope-footer-note{font-family:var(--font-sans);letter-spacing:2.8px;text-transform:uppercase;color:#fff;text-align:center;-webkit-backdrop-filter:blur(10px);cursor:pointer;background:#1e0812d9;border:1px solid #f8d7b08c;border-radius:24px;padding:10px 24px;font-size:10.5px;font-weight:600;transition:transform .25s,background .25s,border-color .25s;animation:2.4s ease-in-out infinite pulseBadge;box-shadow:0 6px 20px #00000073,0 0 16px #f8d7b040}.envelope-footer-note:hover{background:#300c1cf2;border-color:#fff;transform:scale(1.03)}.envelope-footer-note span{background:linear-gradient(135deg,#fff 0%,#fae3c8 70%,#e8b98a 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes fadeInControls{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes revealSections{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.names-reveal-overlay{z-index:30;pointer-events:none;-webkit-backdrop-filter:blur(4px);opacity:0;box-sizing:border-box;background:#12040c47;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:24px 16px;transition:opacity 1.2s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;inset:0;transform:translateY(0)scale(1)}.names-reveal-overlay.visible{opacity:1;pointer-events:auto}.reveal-content-container{text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:440px;margin:0 auto;display:flex}.reveal-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;margin:0 0 16px;padding:0;display:flex}.ganesha-mantra{font-family:var(--font-royal);letter-spacing:3.5px;color:#fae3c8;text-shadow:0 2px 8px #000000d9;text-align:center;white-space:nowrap;margin-bottom:4px;font-size:14px;font-weight:600}.celebration-title{font-family:var(--font-sans);letter-spacing:5px;text-transform:uppercase;color:#fffffff2;text-shadow:0 2px 8px #000c;text-align:center;font-size:10.5px;font-weight:500}.gold-flourish{color:#fae3c8b3;justify-content:center;align-items:center;gap:16px;margin:4px 0 8px;font-size:8px;display:flex}.gold-flourish-line{background:linear-gradient(90deg,#0000,#fae3c8bf,#0000);width:32px;height:1px}.invite-subtitle{font-family:var(--font-sans);letter-spacing:2px;color:#fff5ebf2;text-shadow:0 2px 8px #000000d9;text-align:center;margin:0 0 10px;font-size:15px;font-style:italic;font-weight:400}.groom-name,.bride-name{letter-spacing:1.8px;color:#fff;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%) 0 0/200%;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 8px #000000d9)drop-shadow(0 0 20px #fae3c859);text-align:center;white-space:nowrap;-webkit-background-clip:text;margin:0;padding:0 10px;font-family:Bodoni Moda,Italiana,Playfair Display,serif;font-size:clamp(34px,8.8vw,56px);font-style:normal;font-weight:600;line-height:1.15}.names-connector{text-align:center;justify-content:center;align-items:center;gap:12px;margin:1px 0;display:inline-flex;position:relative}.ampersand{color:#fae3c8;text-shadow:0 2px 8px #000c;padding:0 6px;font-family:Cormorant Garamond,Playfair Display,serif;font-size:28px;font-style:italic;font-weight:400}.wedding-tagline{font-family:var(--font-sans);letter-spacing:2.5px;text-transform:uppercase;color:#fff8f0eb;text-align:center;text-shadow:0 2px 8px #000000d9;max-width:340px;box-shadow:none;background:0 0;border:none;flex-shrink:0;margin:18px auto 0;padding:0 12px;font-size:10.5px;font-weight:500;line-height:1.7}.corner-control-group{z-index:100;justify-content:center;align-items:center;display:flex;position:absolute;bottom:24px;right:16px}.corner-control-btn{-webkit-backdrop-filter:blur(10px);color:#fff4ec;cursor:pointer;background:#2d0c1ae0;border:1px solid #f5c49b99;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;transition:all .25s;display:flex;position:relative;bottom:20px;box-shadow:0 4px 15px #000000a6,0 0 14px #f5ba9059}.corner-control-btn:hover{background:#411226f2;border-color:#ffd8b8;transform:scale(1.1);box-shadow:0 0 18px #f5ba9099}@keyframes sealPulse{0%,to{transform:scale(1);box-shadow:0 0 20px #e6ca6580,0 0 40px #e6ca6533}50%{transform:scale(1.05);box-shadow:0 0 35px #e6ca65cc,0 0 65px #e6ca6566}}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes floatSubtle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes pulseBadge{0%,to{opacity:.95;transform:scale(1)}50%{opacity:1;border-color:#e2e8f0cc;transform:scale(1.03)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes textWaveIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes textSimpleFade{0%{opacity:0}to{opacity:1}}@keyframes goldWaveFlow{0%{background-position:0%}to{background-position:200%}}.names-reveal-overlay.visible .wave-item{opacity:0;animation:.8s forwards textSimpleFade}.names-reveal-overlay.visible .wave-delay-1{animation-delay:.1s}.names-reveal-overlay.visible .wave-delay-2{animation-delay:.25s}.names-reveal-overlay.visible .wave-delay-3{animation-delay:.4s}.names-reveal-overlay.visible .wave-delay-4{animation-delay:.55s}.names-reveal-overlay.visible .wave-delay-5{animation-delay:.7s}.names-reveal-overlay.visible .wave-delay-6{animation-delay:.85s}.names-reveal-overlay.visible .wave-delay-7{animation-delay:1s}@keyframes groomSlideInLeft{0%{opacity:0;transform:translate(-60px)}to{opacity:1;transform:translate(0,0)}}@keyframes brideSlideInRight{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0,0)}}.names-reveal-overlay.visible .groom-name{opacity:0;will-change:transform, opacity;animation:.48s cubic-bezier(.16,1,.3,1) .1s forwards groomSlideInLeft,6s linear .58s infinite goldWaveFlow}.names-reveal-overlay.visible .bride-name{opacity:0;will-change:transform, opacity;animation:.48s cubic-bezier(.16,1,.3,1) .15s forwards brideSlideInRight,6s linear .63s infinite goldWaveFlow}.names-reveal-overlay.visible .names-connector{opacity:0;animation:.45s .12s forwards textSimpleFade}.royal-music-modal-backdrop{z-index:10000;-webkit-backdrop-filter:blur(12px);background:#1a0610d6;justify-content:center;align-items:center;padding:16px;animation:.3s forwards fadeInControls;display:flex;position:fixed;inset:0}.royal-music-modal-box{color:#fff4ec;background:linear-gradient(160deg,#351022 0%,#1c0612 100%);border:1.5px solid #f5c49b80;border-radius:24px;flex-direction:column;gap:16px;width:100%;max-width:420px;padding:24px 20px;display:flex;position:relative;box-shadow:0 20px 50px #000000e0,0 0 25px #f5ba9040}.royal-music-modal-header{text-align:center;border-bottom:1px solid #f5c49b33;padding-bottom:8px;position:relative}.royal-music-badge{font-family:var(--font-serif);letter-spacing:2.2px;text-transform:uppercase;color:#ffd4a8;margin-bottom:4px;font-size:10px;display:block}.royal-music-title{font-family:var(--font-royal);color:#fff2e6;margin:0;font-size:20px}.royal-music-subtitle{font-family:var(--font-serif);color:#f7d2cb;margin:4px 0 0;font-size:11px}.royal-music-close-btn{color:#fff4ec;cursor:pointer;background:#ffffff14;border:1px solid #f5c49b59;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:all .2s;display:flex;position:absolute;top:0;right:0}.royal-music-close-btn:hover{color:#ffd8b8;background:#f5c49b33}.current-track-card{background:#2d0c1ab3;border:1px solid #f5c49b4d;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex}.track-icon{filter:drop-shadow(0 0 8px #f5ba90b3);font-size:24px}.track-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.track-label{letter-spacing:1.5px;text-transform:uppercase;color:#f7d2cb;font-size:9.5px}.track-name{color:#ffd8b8;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.track-status-pill{color:#ffd8b8;white-space:nowrap;background:#f5ba9033;border:1px solid #f5ba9073;border-radius:12px;padding:3px 8px;font-size:10px;font-weight:700}.music-upload-section,.music-url-section{flex-direction:column;gap:6px;display:flex}.music-section-label{color:#f7d2cb;letter-spacing:.5px;font-size:11px;font-weight:600}.music-upload-btn{color:#fff4ec;cursor:pointer;background:#f5c49b14;border:1.5px dashed #f5c49b80;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.music-upload-btn:hover{color:#ffd8b8;background:#f5c49b2e;border-color:#ffd8b8}.music-url-input-row{gap:8px;display:flex}.music-url-input{color:#fff;background:#2d0c1ad9;border:1px solid #f5c49b59;border-radius:10px;outline:none;flex:1;padding:8px 12px;font-size:12px}.music-url-input:focus{border-color:#ffd8b8;box-shadow:0 0 10px #f5ba9066}.music-apply-btn{color:#240612;cursor:pointer;background:linear-gradient(135deg,#ffd4a8 0%,#d87d5e 100%);border:none;border-radius:10px;padding:8px 16px;font-size:12px;font-weight:700;transition:transform .2s}.music-apply-btn:hover{transform:scale(1.04)}.music-modal-footer{border-top:1px solid #f5c49b33;gap:8px;padding-top:10px;display:flex}.music-action-btn,.music-modal-action-btn{color:#fff4ec;cursor:pointer;background:#ffffff0f;border:1px solid #f5c49b59;border-radius:10px;flex:1;padding:9px 12px;font-size:11.5px;font-weight:600;transition:all .2s}.music-action-btn:hover,.music-modal-action-btn:hover{color:#ffd8b8;background:#f5c49b2e;border-color:#ffd8b8}.music-reset-btn{color:#ffd2dc;cursor:pointer;background:#b4324640;border:1px solid #f58ca066;border-radius:10px;padding:9px 14px;font-size:11.5px;font-weight:600;transition:all .2s}.music-reset-btn:hover{background:#b4324666}.music-modal-done-btn{color:#240612;cursor:pointer;background:linear-gradient(135deg,#ffd4a8 0%,#d87d5e 100%);border:none;border-radius:10px;padding:9px 18px;font-size:12px;font-weight:700;transition:transform .2s}.music-modal-done-btn:hover{transform:scale(1.04)}.couple-intro-page{box-sizing:border-box;color:#fae3c8;background-color:#1c0714;background-image:radial-gradient(circle at 50% 15%,#5f1930cc 0%,#0000 60%),radial-gradient(circle at 80% 85%,#e18c6e38 0%,#0000 55%),radial-gradient(circle at 15% 75%,#410f23d9 0%,#0000 60%);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:100%;min-height:auto;padding:22px 14px 26px;display:flex;position:relative;overflow:hidden}.couple-page-inner{z-index:5;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;max-width:400px;margin:0 auto;display:flex;position:relative}.couple-header{text-align:center;flex-direction:column;align-items:center;gap:2px;width:100%;display:flex}.couple-title{font-family:var(--font-royal);letter-spacing:2px;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 6px #0009);text-align:center;-webkit-background-clip:text;margin:0;font-size:clamp(20px,5vw,26px);font-weight:700}.couple-intro-page .gold-flourish{color:#fae3c8;gap:10px;margin:2px 0 0}.couple-intro-page .gold-flourish-line{background:linear-gradient(90deg,#0000,#f5c49b99,#0000);width:24px}.couple-cards-container{justify-content:center;align-items:center;gap:10px;width:100%;max-width:360px;display:flex}.couple-card{-webkit-backdrop-filter:blur(10px);opacity:0;will-change:transform, opacity;background:#2d0c1ad1;border:1.5px solid #f5c49b80;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;padding:8px 8px 10px;transition:transform .25s,border-color .25s,box-shadow .25s;display:flex;box-shadow:0 8px 24px #0000004d,0 0 16px #f5ba9026}.couple-cards-container.in-view .groom-card{animation:.7s cubic-bezier(.16,1,.3,1) .1s forwards groomSlideInLeft}.couple-cards-container.in-view .bride-card{animation:.7s cubic-bezier(.16,1,.3,1) .2s forwards brideSlideInRight}.couple-connector{opacity:0}.couple-cards-container.in-view .couple-connector{animation:.6s .4s forwards textSimpleFade}.couple-card:hover{border-color:#f5c49bd9;transform:translateY(-2px);box-shadow:0 12px 30px #0006,0 0 22px #f5ba9040}.couple-photo-square-wrapper{aspect-ratio:3/4;background:#1c0612;border:1.5px solid #f5c49ba6;border-radius:12px;width:100%;position:relative;overflow:hidden;box-shadow:0 6px 16px #00000080,inset 0 0 12px #0006}.couple-photo-square{aspect-ratio:3/4;object-fit:cover;object-position:center 20%;width:100%;height:100%;transition:transform .4s;display:block}.couple-card:hover .couple-photo-square{transform:scale(1.04)}.photo-gold-border{pointer-events:none;border:1px solid #fae3c866;border-radius:8px;position:absolute;inset:3px}.photo-corner-tag{color:#fae3c8;text-shadow:0 0 5px #f5ba90cc;pointer-events:none;font-size:8px;line-height:1;position:absolute}.photo-corner-tag.top-left{top:5px;left:5px}.photo-corner-tag.bottom-right{bottom:5px;right:5px}.couple-details{text-align:center;flex-direction:column;align-items:center;gap:2px;width:100%;display:flex}.couple-role-pill{font-family:var(--font-sans);letter-spacing:1.5px;text-transform:uppercase;color:#ffd8b8;background:#1e0812bf;border:1px solid #f5c49b59;border-radius:10px;padding:2px 8px;font-size:7.5px;font-weight:600}.couple-person-name{letter-spacing:1px;color:#fff;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 5px #000000bf);white-space:nowrap;text-overflow:ellipsis;-webkit-background-clip:text;max-width:100%;margin:0;font-family:Bodoni Moda,Italiana,Playfair Display,serif;font-size:clamp(16px,4vw,21px);font-style:normal;font-weight:600;line-height:1.2;overflow:hidden}.couple-connector{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;display:flex}.connector-sparkle-line{background:linear-gradient(#0000,#f5c49bb3,#0000);width:1px;height:18px}.connector-ring{background:#2d0c1aeb;border:1px solid #f5c49b99;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;box-shadow:0 0 12px #f5ba9059}.date-countdown-page{box-sizing:border-box;color:#fae3c8;background-color:#1c0714;background-image:radial-gradient(circle at 50% 15%,#5f1930cc 0%,#0000 60%),radial-gradient(circle at 80% 85%,#e18c6e38 0%,#0000 55%),radial-gradient(circle at 15% 75%,#410f23d9 0%,#0000 60%);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:100%;min-height:auto;padding:24px 14px 32px;display:flex;position:relative;overflow:hidden}.date-countdown-inner{z-index:5;flex-direction:column;justify-content:center;align-items:center;gap:22px;width:100%;max-width:400px;margin:0 auto;display:flex;position:relative}.countdown-header{text-align:center;flex-direction:column;align-items:center;gap:2px;width:100%;display:flex}.countdown-title{font-family:var(--font-royal);letter-spacing:2px;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 6px #0009);text-align:center;-webkit-background-clip:text;margin:0;font-size:clamp(20px,5vw,26px);font-weight:700}.date-countdown-page .gold-flourish{color:#fae3c8;gap:10px;margin:2px 0 0}.date-countdown-page .gold-flourish-line{background:linear-gradient(90deg,#0000,#f5c49b99,#0000);width:24px}.hearts-stage{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.flower-blast{z-index:6;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.blast-petal{opacity:0;filter:drop-shadow(0 2px 6px #00000073);line-height:1;animation:1.5s cubic-bezier(.18,.7,.3,1) forwards petalBlast;position:absolute;top:0;left:0}@keyframes petalBlast{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(0)}18%{opacity:1;transform:translate(calc(var(--tx) * .28 - 50%), calc(var(--ty) * .28 - 50%)) scale(1.15) rotate(calc(var(--rot) * .25))}70%{opacity:.9}to{opacity:0;transform:translate(calc(var(--tx) - 50%), calc(var(--ty) - 50%)) scale(.85) rotate(var(--rot))}}.hearts-row{justify-content:center;align-items:center;gap:14px;width:100%;display:flex}.heart-badge{opacity:0;will-change:transform, opacity;filter:drop-shadow(0 6px 14px #0009)drop-shadow(0 0 12px #ffd06680);flex-shrink:0;justify-content:center;align-items:center;width:clamp(96px,28vw,116px);height:clamp(96px,28vw,116px);transition:transform .25s,filter .25s;display:flex;position:relative}.heart-badge:hover{filter:drop-shadow(0 8px 18px #000000b3)drop-shadow(0 0 18px #ffd700bf);transform:scale(1.04)}.scratch-canvas{z-index:3;cursor:crosshair;touch-action:none;clip-path:url(#heartScratchClip);width:100%;height:100%;transition:opacity .5s;position:absolute;inset:0}.scratch-canvas.cleared{opacity:0;pointer-events:none}.heart-frame-svg{z-index:4;pointer-events:none;filter:drop-shadow(0 0 6px #ffd700cc)drop-shadow(0 0 2px #ffffffe6);width:100%;height:100%;position:absolute;inset:0}.heart-badge.revealed{animation:.55s cubic-bezier(.175,.885,.32,1.275) forwards heartPulsePop}.heart-badge.revealed .heart-svg{filter:drop-shadow(0 8px 18px #0009)drop-shadow(0 0 22px #ffd066d9)}@keyframes heartPulsePop{0%{transform:scale(.92)}50%{transform:scale(1.1)}to{transform:scale(1)}}.heart-svg{filter:drop-shadow(0 6px 14px #00000080)drop-shadow(0 0 14px #ffd06673);width:100%;height:100%;position:absolute;inset:0}.heart-content{z-index:2;flex-direction:column;align-items:center;margin-top:-6px;display:flex;position:relative}.heart-value{font-family:var(--font-royal);letter-spacing:.5px;color:#2b0816;text-shadow:0 1px 2px #ffffff80;font-size:clamp(18px,5.5vw,22px);font-weight:800;line-height:1}.heart-label{font-family:var(--font-sans);letter-spacing:1.8px;text-transform:uppercase;color:#5c1432;margin-top:3px;font-size:8.5px;font-weight:700}.heart-mini-blast{z-index:7;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.mini-blast-petal{opacity:0;filter:drop-shadow(0 2px 4px #00000080);line-height:1;animation:1.2s cubic-bezier(.18,.8,.3,1) forwards miniPetalBurst;position:absolute;top:0;left:0}@keyframes miniPetalBurst{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(0)}22%{opacity:1;transform:translate(calc(var(--tx) * .45 - 50%), calc(var(--ty) * .45 - 50%)) scale(1.25) rotate(calc(var(--rot) * .3))}65%{opacity:.95}to{opacity:0;transform:translate(calc(var(--tx) - 50%), calc(var(--ty) - 50%)) scale(.7) rotate(var(--rot))}}.scratch-hint{font-family:var(--font-sans);letter-spacing:1.8px;text-transform:uppercase;color:#fed061;text-shadow:0 0 10px #fed06180;text-align:center;margin:6px 0 0;font-size:9.5px;font-weight:600}.hearts-row.in-view .heart-date{animation:.6s cubic-bezier(.16,1,.3,1) .1s forwards groomSlideInLeft}.hearts-row.in-view .heart-month{animation:.6s cubic-bezier(.16,1,.3,1) .25s forwards heartPopIn}.hearts-row.in-view .heart-year{animation:.6s cubic-bezier(.16,1,.3,1) .1s forwards brideSlideInRight}@keyframes heartPopIn{0%{opacity:0;transform:scale(.4)translateY(14px)}70%{opacity:1;transform:scale(1.08)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.countdown-row{opacity:0;justify-content:center;align-items:center;gap:8px;display:flex;transform:translateY(20px)}.countdown-row.visible{animation:.7s cubic-bezier(.16,1,.3,1) forwards countdownRiseIn}@keyframes countdownRiseIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.countdown-unit{-webkit-backdrop-filter:blur(10px);background:#2d0c1ad1;border:1.5px solid #f5c49b80;border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:52px;padding:10px 6px;display:flex;box-shadow:0 8px 24px #0000004d,0 0 16px #f5ba9026}.countdown-number{font-family:var(--font-royal);background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 5px #0009);-webkit-background-clip:text;font-size:20px;font-weight:700;line-height:1}.countdown-unit-label{font-family:var(--font-sans);letter-spacing:1.5px;text-transform:uppercase;color:#ffd8b8;font-size:7px;font-weight:600}.countdown-sep{font-family:var(--font-royal);color:#f5c49b80;margin-top:-14px;font-size:18px;font-weight:600}.save-date-actions{opacity:0;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;transform:translateY(20px)}.save-date-actions.visible{pointer-events:auto;animation:.7s cubic-bezier(.16,1,.3,1) .25s forwards countdownRiseIn}.save-date-btn{font-family:var(--font-sans);letter-spacing:2.4px;text-transform:uppercase;color:#2a0a19;cursor:pointer;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);border:1px solid #ffffff8c;border-radius:24px;justify-content:center;align-items:center;gap:8px;padding:12px 26px;font-size:10.5px;font-weight:700;transition:transform .25s,box-shadow .25s,filter .25s;display:inline-flex;box-shadow:0 8px 22px #00000080,0 0 18px #f5ba9059}.save-date-btn:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 12px 28px #0000008c,0 0 26px #f5ba9099}.save-date-btn:active{transform:scale(.98)}.gcal-link{font-family:var(--font-sans);letter-spacing:1.6px;text-transform:uppercase;color:#ffd8b8cc;border-bottom:1px solid #f5c49b59;padding-bottom:1px;font-size:8.5px;font-weight:500;text-decoration:none;transition:color .25s,border-color .25s}.gcal-link:hover{color:#fae3c8;border-color:#f5c49bcc}.connector-ampersand{color:#fae3c8;font-family:Cormorant Garamond,Playfair Display,serif;font-size:15px;font-style:italic;font-weight:500;line-height:1}.wedding-events-page{box-sizing:border-box;color:#fae3c8;background-color:#14040e;background-image:radial-gradient(circle at 50% 10%,#5f1930bf 0%,#0000 60%),radial-gradient(circle at 85% 55%,#e18c6e2e 0%,#0000 55%),radial-gradient(circle at 15% 85%,#410f23d9 0%,#0000 60%);flex-direction:column;align-items:center;width:100%;padding:36px 14px 0;display:flex;position:relative;overflow:visible}.events-inner{flex-direction:column;align-items:center;width:100%;max-width:420px;margin:0 auto;display:flex;position:relative;overflow:visible}.events-header{text-align:center;opacity:1;flex-direction:column;align-items:center;gap:3px;width:100%;margin-bottom:16px;display:flex}.events-header.in-view{opacity:1}.events-kicker{font-family:var(--font-sans);letter-spacing:3px;text-transform:uppercase;color:#ffd066;text-shadow:0 0 10px #ffd06673;font-size:8.5px;font-weight:700}.events-title{font-family:var(--font-royal);letter-spacing:2px;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 6px #0009);text-align:center;-webkit-background-clip:text;margin:0;font-size:clamp(22px,5.5vw,28px);font-weight:700}.events-progress-bar{justify-content:center;align-items:center;gap:7px;margin-top:4px;display:flex}.event-dot{background:#f5c49b40;border:1px solid #f5c49b66;border-radius:50%;width:7px;height:7px;transition:all .3s}.event-dot.active{background:linear-gradient(90deg,#ffd066,#e87272);border-radius:6px;width:22px;box-shadow:0 0 12px #ffd066a6}.events-stack-container{opacity:1;flex-direction:column;align-items:center;width:100%;padding-bottom:0;display:flex;position:relative;overflow:visible}.events-stack-container.in-view{opacity:1}.event-card-wrapper{top:var(--stack-top,70px);z-index:var(--card-z,10);will-change:transform;width:100%;margin-bottom:75px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:sticky}.event-card-wrapper:last-child{margin-bottom:0}.event-card{box-sizing:border-box;-webkit-backdrop-filter:blur(14px);background:linear-gradient(150deg,#340e20f5 0%,#1a0610fa 100%);border:1.5px solid #f5c49b73;border-radius:22px;flex-direction:column;gap:13px;width:100%;padding:22px 18px 20px;transition:transform .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 45px -12px #000000d9,0 0 25px #f5ba902e,inset 0 1px 2px #ffffff40}.card-corner{color:#f5c49b8c;pointer-events:none;font-size:9px;line-height:1;position:absolute}.card-corner.top-left{top:9px;left:9px}.card-corner.top-right{top:9px;right:9px}.card-corner.bottom-left{bottom:9px;left:9px}.card-corner.bottom-right{bottom:9px;right:9px}.event-card-top{justify-content:space-between;align-items:center;width:100%;display:flex}.event-tag-pill{font-family:var(--font-sans);letter-spacing:1.2px;text-transform:uppercase;color:#ffd066;background:#ffd0661f;border:1px solid #ffd06659;border-radius:12px;padding:4px 9px;font-size:8px;font-weight:700}.event-count-badge{font-family:var(--font-royal);letter-spacing:1px;color:#fae3c8bf;background:#00000059;border:1px solid #f5c49b33;border-radius:8px;padding:4px 8px;font-size:10px;font-weight:700}.event-heading-group{flex-direction:column;gap:3px;display:flex}.event-name{font-family:var(--font-royal);letter-spacing:1px;background:linear-gradient(135deg,#fff 0%,#fff8f0 35%,#fae3c8 65%,#ffd066 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:clamp(19px,5vw,23px);font-weight:700;line-height:1.2}.event-divider{background:linear-gradient(90deg,#0000,#f5c49b66,#0000);width:100%;height:1px;margin:-1px 0 1px}.event-details-grid{flex-direction:column;gap:9px;width:100%;display:flex}.event-detail-item{background:#0000003d;border:1px solid #f5c49b29;border-radius:10px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.detail-icon-wrap{color:#ffd066;background:#ffd0661f;border:1px solid #ffd0664d;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-top:1px;display:flex}.detail-text-wrap{flex-direction:column;flex:1;gap:2px;display:flex}.detail-label{font-family:var(--font-sans);letter-spacing:1.5px;text-transform:uppercase;color:#e8b98a;font-size:7.5px;font-weight:700}.detail-val{font-family:var(--font-sans);color:#fff;font-size:12px;font-weight:600;line-height:1.3}.detail-val.venue-title{font-family:var(--font-royal);letter-spacing:.5px;color:#ffd066;font-size:13px;font-weight:700}.detail-sub-val{font-family:var(--font-sans);color:#fae3c8d9;margin-top:2px;font-size:11px;font-weight:400;line-height:1.35}.event-card-actions{width:100%;margin-top:3px}.event-map-btn{width:100%;font-family:var(--font-sans);letter-spacing:1.8px;text-transform:uppercase;color:#2a0a19;cursor:pointer;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#ffd066 70%,#d49866 100%);border:1px solid #fff9;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:10px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s;display:flex;box-shadow:0 6px 16px #0006,0 0 14px #ffd0664d}.event-map-btn:hover{filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 8px 22px #0000008c,0 0 20px #ffd0668c}.event-map-btn:active{transform:scale(.98)}.event-map-btn .external-arrow{margin-left:2px;transition:transform .2s}.event-map-btn:hover .external-arrow{transform:translate(2px,-2px)}.wedding-gallery-carousel-section{z-index:50;box-sizing:border-box;color:#fae3c8;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 50% 15%,#220616 0%,#12030d 50%,#080106 100%);border-top:1.5px solid #ffd06666;border-bottom:1.5px solid #ffd06666;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;width:100%;margin-top:15px;padding:28px 0 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 -25px 60px #000000f2}.gallery-header{text-align:center;box-sizing:border-box;flex-direction:column;align-items:center;gap:4px;width:100%;margin-bottom:10px;padding:0 16px;display:flex}.gallery-kicker{font-family:var(--font-sans);letter-spacing:3px;text-transform:uppercase;color:#ffd066;text-shadow:0 0 10px #ffd06673;font-size:8.5px;font-weight:700}.gallery-title{font-family:var(--font-royal);letter-spacing:2px;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 6px #0009);text-align:center;-webkit-background-clip:text;margin:0;font-size:clamp(22px,5.5vw,28px);font-weight:700}.gallery-subtitle{font-family:var(--font-sans);color:#fae3c8b8;letter-spacing:.03em;margin:3px 0 0;font-size:.74rem}.carousel-viewport{cursor:grab;touch-action:pan-y;width:100%;padding:12px 0 14px;position:relative;overflow:hidden}.carousel-viewport:active{cursor:grabbing}.carousel-arrow{color:#ffd066;cursor:pointer;z-index:15;-webkit-backdrop-filter:blur(8px);background:#1a0610d9;border:1px solid #ffd06680;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;line-height:1;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 18px #000000b3,0 0 10px #ffd06633}.carousel-arrow-prev{left:8px}.carousel-arrow-next{right:8px}.carousel-arrow:hover{color:#fff;background:#ffd06638;transform:translateY(-50%)scale(1.1);box-shadow:0 0 16px #ffd06680}.carousel-arrow:active{transform:translateY(-50%)scale(.95)}.carousel-track{justify-content:center;align-items:center;gap:14px;width:100%;display:flex;position:relative}.carousel-card{aspect-ratio:1/1.15;box-sizing:border-box;background:#180510;border:1.5px solid #f5c49b59;border-radius:18px;flex-shrink:0;width:clamp(260px,74vw,340px);transition:transform .35s cubic-bezier(.25,1,.5,1),opacity .35s cubic-bezier(.25,1,.5,1),filter .35s cubic-bezier(.25,1,.5,1),box-shadow .35s cubic-bezier(.25,1,.5,1);position:relative;overflow:hidden}.carousel-card-center{z-index:4;opacity:1;cursor:pointer;border-color:#ffd066b3;transform:scale(1);box-shadow:0 16px 45px #000000d9,0 0 25px #ffd06640}.carousel-card-flank{z-index:2;opacity:.5;filter:brightness(.7);cursor:pointer;transform:scale(.92)}.carousel-card-flank:hover{opacity:.75;filter:brightness(.88)}.carousel-card-img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.carousel-card-dim{pointer-events:none;background:#00000038;position:absolute;inset:0}.carousel-caption{pointer-events:none;text-align:left;background:linear-gradient(#0000 0%,#10030b99 35%,#10030bf5 100%);padding:30px 16px 14px;position:absolute;bottom:0;left:0;right:0}.caption-badge{font-family:var(--font-royal);letter-spacing:1px;color:#ffd066;background:#ffd06626;border:1px solid #ffd06659;border-radius:8px;margin-bottom:4px;padding:2px 7px;font-size:.65rem;font-weight:700;display:inline-block}.caption-heading{font-family:var(--font-royal);color:#fff;text-shadow:0 1px 4px #000c;margin:2px 0;font-size:1.05rem;font-weight:600;line-height:1.25}.caption-desc{font-family:var(--font-sans);color:#fae3c8cc;margin:3px 0 0;font-size:.75rem;line-height:1.25}.carousel-dots-wrapper{justify-content:center;align-items:center;gap:7px;margin-top:18px;display:flex}.carousel-dot{cursor:pointer;background:#f5c49b40;border:1px solid #f5c49b66;border-radius:50%;width:7px;height:7px;padding:0;transition:all .3s}.carousel-dot.active{background:linear-gradient(90deg,#ffd066,#e87272);border-radius:6px;width:22px;box-shadow:0 0 10px #ffd066a6}.gallery-lightbox-backdrop{z-index:999999;-webkit-backdrop-filter:blur(16px);background:#000000f2;justify-content:center;align-items:center;padding:18px;animation:.25s ease-out fadeInLightbox;display:flex;position:fixed;inset:0}@keyframes fadeInLightbox{0%{opacity:0}to{opacity:1}}.gallery-lightbox-container{background:#12030b;border:1.5px solid #ffd06666;border-radius:18px;flex-direction:column;align-items:center;width:100%;max-width:480px;max-height:90vh;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 60px #000000e6}.gallery-lightbox-close{color:#ffd066;cursor:pointer;z-index:10;background:#000000b3;border:1px solid #ffd06680;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.1rem;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.gallery-lightbox-close:hover{background:#ffd06633;transform:scale(1.1)}.gallery-lightbox-image{object-fit:contain;background:#000;width:100%;max-height:70vh}.gallery-lightbox-caption{box-sizing:border-box;background:#17040f;border-top:1px solid #ffd06633;width:100%;padding:16px 20px}.lightbox-title{font-family:var(--font-royal);color:#ffd066;margin:0 0 4px;font-size:1.15rem}.lightbox-desc{font-family:var(--font-sans);color:#fae3c8d9;margin:0;font-size:.82rem;line-height:1.35}.wedding-rsvp-section{z-index:60;box-sizing:border-box;color:#fae3c8;background-color:#14040e;background-image:radial-gradient(circle at 50% 10%,#5f1930cc 0%,#0000 60%),radial-gradient(circle at 85% 65%,#e18c6e29 0%,#0000 55%),radial-gradient(circle at 15% 90%,#410f23d9 0%,#0000 60%);border-top:1.5px solid #ffd06666;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;width:100%;margin-top:0;padding:24px 14px 40px;display:flex;position:relative;overflow:hidden;box-shadow:0 -25px 60px #000000f2}.rsvp-container{flex-direction:column;align-items:center;width:100%;max-width:440px;margin:0 auto;display:flex}.rsvp-header{text-align:center;box-sizing:border-box;flex-direction:column;align-items:center;gap:4px;width:100%;margin-bottom:20px;padding:0 16px;display:flex}.rsvp-title{font-family:var(--font-royal);letter-spacing:2px;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#fae3c8 60%,#e8b98a 85%,#d49866 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 6px #0009);text-align:center;-webkit-background-clip:text;margin:0;font-size:clamp(22px,5.5vw,28px);font-weight:700}.rsvp-card{box-sizing:border-box;-webkit-backdrop-filter:blur(14px);background:linear-gradient(150deg,#340e20f5 0%,#1a0610fa 100%);border:1.5px solid #f5c49b73;border-radius:22px;flex-direction:column;gap:16px;width:100%;padding:24px 20px 22px;display:flex;position:relative;box-shadow:0 20px 45px -12px #000000d9,0 0 25px #f5ba902e,inset 0 1px 2px #ffffff40}.rsvp-card-corner{color:#f5c49b8c;pointer-events:none;font-size:9px;line-height:1;position:absolute}.rsvp-card-corner.top-left{top:9px;left:9px}.rsvp-card-corner.top-right{top:9px;right:9px}.rsvp-card-corner.bottom-left{bottom:9px;left:9px}.rsvp-card-corner.bottom-right{bottom:9px;right:9px}.rsvp-form{flex-direction:column;gap:16px;width:100%;display:flex}.rsvp-attendance-toggle{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.attendance-option-btn{color:#fae3c8;font-family:var(--font-sans);cursor:pointer;background:#00000059;border:1.5px solid #f5c49b40;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:13px 10px;font-size:.82rem;font-weight:600;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex}.attendance-option-btn:hover{border-color:#ffd06699;transform:translateY(-1px)}.attendance-option-btn.active.accept{color:#fff;background:linear-gradient(135deg,#ffd06640 0%,#b4325059 100%);border-color:#ffd066;transform:translateY(-2px);box-shadow:0 0 16px #ffd06659,inset 0 1px 1px #ffffff4d}.attendance-option-btn.active.decline{color:#fff;background:#461e2d80;border-color:#dcc8d280;transform:translateY(-2px);box-shadow:0 0 14px #c8b4c340}.attendance-icon{font-size:1.15rem}.attendance-label{letter-spacing:.3px}.rsvp-input-group{flex-direction:column;gap:7px;width:100%;display:flex}.rsvp-field-label{font-family:var(--font-sans);letter-spacing:1.2px;text-transform:uppercase;color:#ffd066;align-items:center;gap:4px;font-size:.74rem;font-weight:700;display:flex}.req-star{color:#ff6b6b}.opt-tag{color:#fae3c88c;text-transform:none;letter-spacing:normal;font-size:.68rem;font-weight:400}.rsvp-text-input{color:#fff;width:100%;font-family:var(--font-sans);box-sizing:border-box;background:#00000073;border:1.5px solid #f5c49b4d;border-radius:12px;outline:none;padding:12px 14px;font-size:.88rem;transition:border-color .2s,box-shadow .2s}.rsvp-text-input::placeholder{color:#fae3c866}.rsvp-text-input:focus{border-color:#ffd066;box-shadow:0 0 14px #ffd06659}.rsvp-stepper-container{box-sizing:border-box;background:#00000059;border:1.5px solid #f5c49b4d;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:6px 10px;display:flex}.rsvp-stepper-btn{color:#ffd066;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#ffd0662e 0%,#b4325040 100%);border:1px solid #ffd06673;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.35rem;font-weight:700;transition:all .2s;display:flex}.rsvp-stepper-btn:hover:not(:disabled){color:#1a040f;background:linear-gradient(135deg,#ffd066 0%,#d49866 100%);transform:scale(1.05);box-shadow:0 0 12px #ffd06666}.rsvp-stepper-btn:active:not(:disabled){transform:scale(.95)}.rsvp-stepper-btn:disabled{opacity:.35;cursor:not-allowed;border-color:#f5c49b33}.rsvp-stepper-input-wrap{flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.rsvp-stepper-input{text-align:center;width:65px;font-family:var(--font-royal);color:#ffd066;-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:0;font-size:1.4rem;font-weight:700}.rsvp-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.rsvp-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.rsvp-stepper-label{font-family:var(--font-sans);color:#fae3c8e6;letter-spacing:.3px;font-size:.86rem;font-weight:500}.rsvp-textarea{color:#fff;width:100%;font-family:var(--font-sans);resize:vertical;box-sizing:border-box;background:#00000073;border:1.5px solid #f5c49b4d;border-radius:12px;outline:none;min-height:70px;padding:12px 14px;font-size:.84rem;line-height:1.4;transition:border-color .2s,box-shadow .2s}.rsvp-textarea::placeholder{color:#fae3c866}.rsvp-textarea:focus{border-color:#ffd066;box-shadow:0 0 14px #ffd06659}.rsvp-error-alert{color:#f99;font-family:var(--font-sans);text-align:center;background:#ff5a5a26;border:1px solid #ff5a5a66;border-radius:10px;padding:10px 14px;font-size:.78rem}.rsvp-action-buttons{flex-direction:column;gap:9px;width:100%;margin-top:4px;display:flex}.rsvp-submit-btn{width:100%;font-family:var(--font-sans);letter-spacing:1.8px;text-transform:uppercase;color:#2a0a19;cursor:pointer;background:linear-gradient(135deg,#fff 0%,#fff8f0 30%,#ffd066 70%,#d49866 100%);border:1px solid #fff9;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:10.5px;font-weight:700;transition:all .2s;display:flex;box-shadow:0 6px 18px #00000073,0 0 16px #ffd06659}.rsvp-submit-btn:hover{filter:brightness(1.05);transform:translateY(-2px);box-shadow:0 8px 24px #0000008c,0 0 22px #ffd0668c}.rsvp-submit-btn:active{transform:scale(.98)}.rsvp-success-box{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:16px 8px;animation:.4s fadeInLightbox;display:flex}.rsvp-success-icon-wrap{background:#ffd0661f;border:1.5px solid #ffd06666;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:flex;box-shadow:0 0 25px #ffd0664d}.rsvp-success-symbol{font-size:26px}.rsvp-success-heading{font-family:var(--font-royal);color:#ffd066;letter-spacing:.5px;margin:0;font-size:1.25rem}.rsvp-success-text{font-family:var(--font-sans);color:#fae3c8e0;margin:0;font-size:.82rem;line-height:1.45}.rsvp-summary-pill{font-family:var(--font-sans);color:#fae3c8;background:#00000059;border:1px solid #f5c49b40;border-radius:20px;align-items:center;gap:10px;padding:6px 16px;font-size:.76rem;display:flex}.rsvp-edit-btn{color:#ffd066;font-family:var(--font-sans);cursor:pointer;background:0 0;border:1px dashed #f5c49b66;border-radius:10px;margin-top:4px;padding:8px 16px;font-size:.74rem;transition:all .2s}.rsvp-edit-btn:hover{background:#ffd0661a;border-color:#ffd066}.wedding-footer-section{z-index:70;background:linear-gradient(#1a0612fa 0%,#0e030a 100%);border-top:1.5px solid #ffd06659;flex-shrink:0;width:100%;position:relative;overflow:hidden;box-shadow:0 -15px 35px #000000b3}.wedding-footer-container{text-align:center;box-sizing:border-box;flex-direction:column;align-items:center;gap:10px;max-width:480px;margin:0 auto;padding:28px 20px 48px;display:flex;position:relative}.footer-top-divider{justify-content:center;align-items:center;gap:12px;width:100%;margin-bottom:8px;display:flex}.footer-flourish-line{background:linear-gradient(90deg,#0000,#fae3c880,#0000);flex:1;height:1px}.footer-flourish-line.short{background:linear-gradient(90deg,#0000,#ffd06673,#0000);flex:0 0 60px}.footer-div-center{align-items:center;gap:8px;display:flex}.footer-flourish-gem{color:#ffd066;text-shadow:0 0 8px #ffd06699;font-size:11px}.footer-flourish-lotus{filter:drop-shadow(0 0 6px #f4b4b899);font-size:17px;animation:3s ease-in-out infinite alternate lotusPulse}@keyframes lotusPulse{0%{filter:drop-shadow(0 0 4px #f4b4b866);transform:scale(.95)}to{filter:drop-shadow(0 0 10px #ffd066b3);transform:scale(1.06)}}.footer-dedication{font-family:var(--font-sans);color:#fae3c8e6;text-align:center;margin:0;font-size:.82rem;line-height:1.6}.footer-dedication-prefix{display:inline}.footer-highlight-couple{color:#ffd066;font-weight:700;font-family:var(--font-royal);letter-spacing:.5px;white-space:nowrap;display:inline-block}.footer-create-invite-line{font-family:var(--font-sans);color:#fae3c8cc;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;margin:0;font-size:.78rem;line-height:1.5;display:flex}.footer-moinvite-link{color:#ffd066;text-underline-offset:3px;cursor:pointer;font-weight:600;text-decoration:underline;transition:all .2s}.footer-moinvite-link:hover{color:#fff;text-shadow:0 0 10px #ffd066cc}
