*{box-sizing:border-box;margin:0;padding:0}html,body{background:#fefcf9}.app-root{--hint-ink: #7088a3;--card-bg: #f6f6f5;--card-info-bg: #fefbe8;--card-splash-bg: #FEFDF9;--card-accent: #6f8fb5;--card-accent-light: #2c4562;--card-accent-soft: #da999a;--card-accent-info: #fefdf9;background:#fefcf9;width:100%;min-height:100vh;font-family:EB Garamond,serif}.wrapper{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;cursor:pointer;background:var(--card-splash-bg);display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.wrapper{background:var(--splash-scene) center bottom / cover no-repeat,var(--card-splash-bg)}@media (min-aspect-ratio: 3/4){.wrapper{background:#cfe0f2}.wrapper:before{content:"";position:absolute;top:-60px;right:-60px;bottom:-60px;left:-60px;z-index:0;background:var(--splash-scene) center / cover no-repeat;filter:blur(28px) saturate(1.1);opacity:.75}.splash-stage{position:relative;z-index:1;width:min(100%,calc(100vh * 860 / 1827));flex:0 0 auto;background:var(--splash-scene) center bottom / cover no-repeat;box-shadow:0 0 60px #1e325040}}.splash-heading{text-shadow:0 0 14px rgba(255,255,255,.85),0 0 3px rgba(255,255,255,.7)}.wrapper.opening{animation:cardSlideUp .9s cubic-bezier(.4,0,.2,1) forwards}@keyframes cardSlideUp{0%{transform:translateY(0) scale(1);opacity:1}25%{transform:translateY(-18px) scale(1.02);opacity:1}to{transform:translateY(-110vh);opacity:0}}.splash-stage{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2.5vh,24px);padding:4vh 20px 2vh;box-sizing:border-box;container-type:inline-size}.splash-heading{text-align:center;display:flex;flex-direction:column;align-items:center;gap:15px}.splash-kicker{font-family:EB Garamond,serif;font-size:clamp(12px,3.7cqw,16px);letter-spacing:.22em;text-transform:uppercase;color:#45607f;margin:0}.splash-names{font-family:Pinyon Script,serif;font-size:clamp(40px,14.5cqw,68px);font-weight:400;line-height:1.12;margin:0;color:var(--card-accent-light)}.splash-names .splash-amp{font-family:EB Garamond,serif;font-size:.5em;font-style:italic;color:#45607f}.splash-date{font-family:EB Garamond,serif;font-size:clamp(14px,4.4cqw,19px);letter-spacing:.16em;color:#45607f;margin:2px 0 0}.splash-plaque{flex:0 1 auto;min-height:0;padding:0;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .25s ease}.splash-plaque{display:flex;flex-direction:column;align-items:center;gap:12px}.splash-plaque img{display:block;max-height:46vh;max-width:min(78%,300px);height:auto;width:auto;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(40,60,90,.28))}.splash-tap{font-family:EB Garamond,serif;font-size:12px;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:#2f4a6a;padding:6px 16px;border-radius:999px;background:#ffffffb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:splashTapPulse 2.2s ease-in-out infinite}@keyframes splashTapPulse{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}@media (prefers-reduced-motion: reduce){.splash-tap{animation:none}}.splash-plaque:hover{transform:translateY(-4px)}.splash-plaque:active{transform:translateY(0)}.card{max-width:420px;margin:0 auto;background:#fefcf9;position:relative;overflow:hidden;box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.card{background:var(--sky-bg) center top / 100% auto repeat-y,#cfe0f2}.reveal{opacity:0}.reveal.active{opacity:1}.reveal.active.from-below{animation:revealUp 1.8s cubic-bezier(.22,.9,.3,1) backwards}.reveal.active.from-above{animation:revealDown 1.8s cubic-bezier(.22,.9,.3,1) backwards}@keyframes revealUp{0%{opacity:0;transform:translate3d(0,100px,0) scale(.6)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes revealDown{0%{opacity:0;transform:translate3d(0,-100px,0) scale(.6)}to{opacity:1;transform:translateZ(0) scale(1)}}.no-text-anim .reveal{opacity:1;animation:none!important}@media (prefers-reduced-motion: reduce){.reveal.active.from-below,.reveal.active.from-above{animation:revealFade .4s ease both}@keyframes revealFade{0%{opacity:0}to{opacity:1}}}.fade-in-1{animation:growIn .5s ease-in-out both}.fade-in-2{animation:growIn .8s ease-in-out both}.fade-in-3{animation:growIn 1s ease-in-out both}.fade-in-4{animation:growIn 1.2s ease-in-out both}@keyframes growIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.intro{position:relative;z-index:1;container-type:inline-size}.intro-bg{display:block;width:100%;height:auto;position:relative;z-index:0}.intro-content{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 36px;gap:0;z-index:1}.intro-content img{width:50%;margin-bottom:16px}.walimatul{font-size:clamp(16px,5.6cqw,23px);letter-spacing:2px;color:var(--card-accent);margin-bottom:9cqw}.intro-content h2{font-family:Pinyon Script,serif;font-size:clamp(56px,21cqw,86px);font-weight:500;color:#b0607a;line-height:1.1;margin:4px 0;overflow-wrap:anywhere}.intro-content h3{font-family:EB Garamond,serif;font-size:clamp(28px,9.6cqw,40px);font-weight:500;color:#b0607a}.intro-when{display:flex;flex-direction:column;align-items:center;margin-top:9cqw;width:100%;max-width:82%;color:var(--card-accent);letter-spacing:2px;line-height:1.35}.intro-day{font-size:clamp(12px,3.8cqw,16px);text-transform:uppercase;margin-bottom:1cqw}.intro-date{font-size:clamp(16px,5.6cqw,23px)}.intro-hashtag{margin-top:2.5cqw;font-size:clamp(12px,4cqw,16px);letter-spacing:.04em;text-align:center;overflow-wrap:anywhere}.event-part .bismillah{font-family:Amiri,serif;font-size:min(7cqw,28px);line-height:1.6;font-style:normal;letter-spacing:0;white-space:nowrap;color:#2c4562;margin:0 0 24px;direction:rtl}.info{display:flex;flex-direction:column;align-items:center;padding:50px 0;position:relative;z-index:1}.lace-section{position:relative;width:86%;max-width:380px;margin:8px auto;background:transparent}.lace-frame-img{display:block;width:100%;height:auto}.lace-content{position:absolute;top:22%;left:11%;right:11%;bottom:14%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px}.lace-item{display:flex;flex-direction:column;align-items:center}.lace-label{font-family:Pinyon Script,serif;font-size:28px;color:#fff4ea;line-height:1;margin-bottom:6px;margin-top:4px;text-shadow:0 1px 2px rgba(90,30,45,.35)}.lace-item p{font-size:18px;color:#3a1420;line-height:1.55;font-weight:400}.lace-divider{width:50%;height:0;border-top:1px solid rgba(255,244,234,.75);margin:6px 0;align-self:center}.event-info{width:95%;text-align:center;position:relative;padding:24px 20px 12px;container-type:inline-size}.event-flower{display:block;width:52%;max-width:210px;min-width:150px;height:auto;margin:0 auto 34px}.event-part{margin-bottom:0}.event-part p{font-family:EB Garamond,serif;font-style:italic;font-size:18px;color:#34506f;font-weight:400;letter-spacing:.3px;line-height:1.6}.event-part.one{display:flex;flex-direction:column;align-items:center;gap:0}.event-part .event-greeting{color:#45607f}.parent-names{display:flex;flex-direction:column;align-items:center;margin:20px 0 22px;gap:2px}.parent-names p{font-size:19px;font-style:normal;font-weight:600;letter-spacing:.4px;line-height:1.4;color:#2c4562}.parent-names .parent-amp{font-family:Pinyon Script,serif;font-size:24px;font-weight:400;line-height:1.1;color:#b0607a}.event-part .event-intro{color:#45607f;line-height:1.7;max-width:30em;text-wrap:balance}.event-info>.event-part.one:first-of-type{margin-bottom:22px}.event-part.two{display:flex;flex-direction:column;align-items:center;margin:8px 0}.event-part.two p{font-family:Pinyon Script,serif;font-style:normal;letter-spacing:1px;font-size:32px;font-weight:400;line-height:1.25;color:#b0607a}.event-part .event-connector{font-size:17px;color:#7088a3;letter-spacing:.6px}.countdown{position:relative;text-align:center;padding:24px 0 0}.countdown-ribbon{position:absolute;bottom:-58px;right:4%;z-index:1;width:19%;max-width:82px;height:auto;transform:rotate(10deg);transform-origin:top center;filter:drop-shadow(0 4px 6px rgba(90,40,60,.18));pointer-events:none;-webkit-user-select:none;user-select:none}.countdown-title{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#45607f;margin-bottom:20px}.count-boxes{display:flex;align-items:center;justify-content:center}.count-divider{width:1px;height:48px;background:#d7a3b2;opacity:.55;margin:0 16px}.count-box{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:56px}.count-box h1{font-family:EB Garamond,serif;font-size:30px;font-weight:700;color:#2c4562;line-height:1;margin-bottom:6px}.count-box span{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#7088a3;opacity:.9}.countdown-row{display:flex;flex-direction:column;align-items:center;gap:20px}.mini-cal{width:100%;display:flex;flex-direction:column;align-items:center;padding:24px 8px 8px}.mini-cal-title{font-family:EB Garamond,serif;font-size:11px;font-weight:400;letter-spacing:6px;text-transform:uppercase;color:#45607f;margin-bottom:18px;text-align:center}.mini-cal-row{display:flex;width:100%}.mini-cal-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px}.mini-cal-dow{font-family:EB Garamond,serif;font-size:11px;color:#7088a3;font-weight:400;text-align:center}.mini-cal-day{font-family:EB Garamond,serif;font-size:17px;color:#45607f;font-weight:400;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%}.mini-cal-cell--active .mini-cal-day{border:1.5px dashed #d7a3b2}.mini-cal-stem{display:block;width:0;height:40px;border-left:1.5px dashed #d7a3b2}.mini-cal-script{font-family:Pinyon Script,serif;font-size:44px;color:#2c4562;line-height:1.1;margin-top:2px;text-align:center}.aturcara-row{font-size:13px;color:#3a1420;font-weight:400;letter-spacing:.3px;line-height:1.8}.aturcara-dot{color:#3a1420;opacity:.7;margin:0 4px}.aturcara-time{color:#3a1420;font-style:italic}.rsvp-tray{position:relative;width:94%;margin:16px auto 8px}.rsvp-tray-img{display:block;width:100%;height:auto}.rsvp-tray-inner{position:absolute;top:49%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1cqw;width:46%;text-align:center}.rsvp-tray{container-type:inline-size}.rsvp-tray-title{font-family:Pinyon Script,serif;font-size:clamp(18px,5.6cqw,24px);line-height:1;color:#b0607a;margin:0 0 .8cqw}.rsvp-tray-text{font-family:EB Garamond,serif;font-style:italic;font-size:clamp(10px,2.9cqw,12.5px);line-height:1.45;color:#45607f;margin:0;text-wrap:balance}.rsvp-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:2.2cqw;padding:1.6cqw 4.6cqw;border:1px solid #d7a3b2;border-radius:999px;background:#fffcf6d9;box-shadow:0 2px 8px #b0607a1f;color:#2c4562;font-family:EB Garamond,serif;font-size:clamp(9px,2.5cqw,11px);font-weight:700;letter-spacing:.2em;text-indent:.2em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .2s ease}.rsvp-btn:hover{background:#b0607a;border-color:#b0607a;color:#fffaf2}.rsvp-btn:active{transform:scale(.97)}.ucapan-khas{position:relative;align-self:stretch;margin:6px 0 4px;display:flex;flex-direction:column;align-items:center}.ucapan-heart{position:relative;width:100%;display:flex;aspect-ratio:1254 / 1265}.ucapan-heart-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none}.ucapan-khas-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:30% 21% 27%;text-align:center}.ucapan-khas-title{font-family:Pinyon Script,serif;font-size:27px;color:var(--card-accent-light);line-height:1}.ucapan-khas-msg{font-family:EB Garamond,serif;font-style:italic;font-size:14.5px;color:#45607f;line-height:1.7}.ucapan-khas-name{font-family:Pinyon Script,serif;font-size:21px;color:#b0607a;line-height:1.2}.ucapan-khas-empty{font-family:EB Garamond,serif;font-size:13.5px;color:#7088a3;font-style:italic;line-height:1.7}.ucapan-khas-controls{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:-4px}.ucapan-khas-nav{display:flex;align-items:center;gap:16px}.ucapan-khas-nav button{background:none;border:none;font-size:26px;color:#45607f;cursor:pointer;line-height:1;padding:0 4px;opacity:.8}.ucapan-khas-nav span{font-family:EB Garamond,serif;font-size:13px;color:#7088a3}.ucapan-khas-btn{display:flex;align-items:center;gap:6px;padding:8px 20px;border:1px solid #45607f;background:#fefdf98c;color:#45607f;font-family:EB Garamond,serif;font-size:14px;font-style:italic;cursor:pointer;border-radius:2px;transition:background .25s,color .25s;margin-top:4px}.ucapan-khas-btn:hover{background:#45607f;color:#fefdf9}.footer{--dock-h: 62px;--dock-gap: 10px;--dock-bg: #fefcf9;--gold: #d7a3b2;--gold-line: rgba(201, 120, 144, .4);--ink: #2c4562;--ink-soft: #7088a3;--cream: #f6ecd9;position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--dock-gap) + env(safe-area-inset-bottom,0px));width:100%;max-width:420px;padding:0 12px;z-index:1000;pointer-events:none}.footer .menu{--pad: 5px;pointer-events:auto;list-style:none;position:relative;height:var(--dock-h);padding:0 var(--pad);display:flex;align-items:center;justify-content:space-around;background:linear-gradient(180deg,#fffefb,#f8f2e7);border:1px solid var(--gold-line);border-radius:24px;box-shadow:0 12px 30px #2c45622e,0 2px 6px #2c456214,inset 0 1px #fff}.footer .menu:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:21px;border:1px solid rgba(201,120,144,.14);pointer-events:none}.footer .menu:after{--slot: calc((100% - 2 * var(--pad)) / var(--count, 6));content:"";position:absolute;z-index:2;top:-1px;height:2px;width:26px;left:calc(var(--pad) + var(--slot) * var(--active, 0) + var(--slot) / 2 - 13px);border-radius:0 0 2px 2px;background:linear-gradient(90deg,transparent,var(--gold) 20%,var(--gold) 80%,transparent);box-shadow:0 1px 6px #c978908c;opacity:0;transform:scaleX(.3);transition:left .5s cubic-bezier(.34,1.3,.64,1),opacity .25s ease,transform .35s ease;pointer-events:none}.footer .menu.has-active:after{opacity:1;transform:scaleX(1)}.footer .menu li{position:relative;z-index:1;flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;-webkit-tap-highlight-color:transparent}.footer .menu li .bx{position:relative;color:var(--ink-soft);font-size:21px;line-height:1;transition:color .3s ease,transform .3s ease}.footer .menu li span{font-family:EB Garamond,serif;font-size:10.5px;line-height:1;letter-spacing:.06em;color:var(--ink-soft);white-space:nowrap;transition:color .3s ease}.footer .menu li:active .bx{transform:scale(.88)}.footer .menu li.active .bx{color:var(--ink);animation:menuIconPop .45s cubic-bezier(.34,1.56,.64,1)}.footer .menu li.active span{color:var(--ink);font-weight:600}@keyframes menuIconPop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}.footer .menu li:focus-visible:before{content:"";position:absolute;top:6px;bottom:6px;left:2px;right:2px;border-radius:18px;box-shadow:0 0 0 2px var(--gold)}@media (hover: hover){.footer .menu li:not(.active):hover .bx{color:var(--ink);transform:translateY(-2px)}.footer .menu li:not(.active):hover span{color:var(--ink)}}.footer .menu li .bx.is-playing{color:var(--ink)}.footer .menu li .bx.is-playing:after{content:"";position:absolute;top:-2px;right:-5px;width:6px;height:6px;border-radius:50%;background:var(--gold);animation:footerPlayingDot 1.8s ease-out infinite}@keyframes footerPlayingDot{0%{box-shadow:0 0 #c9789099}to{box-shadow:0 0 0 7px #c9789000}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#1e2d4161;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}.sheet-backdrop.show{opacity:1;visibility:visible;transition:opacity .35s ease,visibility 0s}.toggle-menu{position:fixed;left:50%;z-index:2000;bottom:calc(86px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px);max-width:396px;max-height:calc(100dvh - 108px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;padding:30px 22px 24px;background:radial-gradient(120% 60% at 50% 0%,rgba(214,228,244,.35),transparent 70%),#fefcf9;border:1px solid rgba(201,120,144,.4);border-radius:26px;box-shadow:0 24px 60px #1e2d414d,0 4px 12px #1e2d411f;transform:translate(-50%,calc(100% + 120px)) scale(.96);opacity:0;visibility:hidden;transition:transform .5s cubic-bezier(.32,1.25,.5,1),opacity .25s ease,visibility 0s linear .5s}.toggle-menu.open{transform:translate(-50%) scale(1);opacity:1;visibility:visible;transition:transform .5s cubic-bezier(.32,1.25,.5,1),opacity .25s ease,visibility 0s}.toggle-menu:before{content:"";position:absolute;top:10px;left:50%;transform:translate(-50%);width:38px;height:4px;border-radius:4px;background:#c9789073}.sheet-close{position:absolute;top:12px;right:12px;z-index:1;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(201,120,144,.4);background:#fefcf9e6;color:#7088a3;font-size:20px;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.sheet-close:hover{background:#2c4562;color:#f6ecd9;transform:rotate(90deg)}.sheet-close:focus-visible{outline:2px solid #d7a3b2;outline-offset:2px}.toggle-menu.open .modal-inner>*,.toggle-menu.open .rsvp-form-inner>*{animation:sheetItemIn .5s cubic-bezier(.22,1,.36,1) both}.toggle-menu.open .modal-inner>:nth-child(1),.toggle-menu.open .rsvp-form-inner>:nth-child(1){animation-delay:.08s}.toggle-menu.open .modal-inner>:nth-child(2),.toggle-menu.open .rsvp-form-inner>:nth-child(2){animation-delay:.14s}.toggle-menu.open .modal-inner>:nth-child(3),.toggle-menu.open .rsvp-form-inner>:nth-child(3){animation-delay:.2s}.toggle-menu.open .modal-inner>:nth-child(4),.toggle-menu.open .rsvp-form-inner>:nth-child(4){animation-delay:.26s}.toggle-menu.open .modal-inner>:nth-child(n+5),.toggle-menu.open .rsvp-form-inner>:nth-child(n+5){animation-delay:.32s}@keyframes sheetItemIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.footer .menu li .bx,.footer .menu li span,.footer .menu:after{transition:none}.footer .menu li.active .bx{animation:none}.footer .menu li .bx.is-playing:after{animation:none}.toggle-menu,.toggle-menu.open{transition:opacity .2s ease,visibility 0s;transform:translate(-50%)}.toggle-menu.open .modal-inner>*,.toggle-menu.open .rsvp-form-inner>*{animation:none}}.modal-inner{display:flex;flex-direction:column;align-items:center;gap:10px}.modal-inner h1{font-family:EB Garamond,serif;font-size:20px;font-weight:400;color:var(--card-accent-light);text-transform:uppercase;letter-spacing:1px;text-align:center;text-indent:1px;margin-bottom:8px}.modal-inner h1:after{content:"✦";display:block;width:150px;margin:9px auto 0;text-indent:0;font-size:9px;line-height:1;color:#d7a3b2;background:linear-gradient(#e2b9c5,#e2b9c5) left center / 58px 1px no-repeat,linear-gradient(#e2b9c5,#e2b9c5) right center / 58px 1px no-repeat}.modal-buttons{display:flex;gap:10px;margin-top:10px}.modal-buttons.col{flex-direction:column;width:100%}.modal-buttons.row{flex-direction:row;justify-content:center}.modal-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border:none;border-radius:8px;background:var(--card-bg);cursor:pointer;font-size:14px;font-family:EB Garamond,serif;font-weight:600;transition:opacity .2s;min-width:140px}.modal-btn:hover{opacity:.85}.modal-btn .bx{font-size:18px}.google-icon{background:linear-gradient(to bottom left,transparent 49%,#fbbc05 50%) 0 25%/48% 40%,linear-gradient(to top left,transparent 49%,#fbbc05 50%) 0 75%/48% 40%,linear-gradient(-40deg,transparent 53%,#ea4335 54%),linear-gradient(45deg,transparent 46%,#4285f4 48%),#34a853;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.modal-inner.rsvp-form{width:100%;padding:0;align-items:stretch;max-height:70vh;overflow-y:auto}.rsvp-form-inner{display:flex;flex-direction:column;gap:14px;padding:20px 20px 8px}.rsvp-field{display:flex;flex-direction:column;gap:6px}.rsvp-field label{text-align:center;font-family:EB Garamond,serif;font-size:15px;font-weight:600;color:#45607f;letter-spacing:.5px}.rsvp-hint{font-size:11px;font-weight:400;color:#999}.rsvp-field input,.rsvp-field textarea{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:8px;font-family:EB Garamond,serif;font-size:14px;color:#333;background:#fafafa;outline:none;transition:border .2s}.rsvp-field input:focus,.rsvp-field textarea:focus{border-color:var(--card-accent)}.rsvp-field input[type=number]{text-align:center}.rsvp-field textarea{resize:none}.rsvp-attend-row{display:flex;justify-content:center;gap:32px}.rsvp-radio-label{display:flex;flex-direction:row;align-items:center;gap:8px;font-family:EB Garamond,serif;font-size:15px;color:#45607f;cursor:pointer}.rsvp-radio-label input[type=radio]{width:17px;height:17px;accent-color:var(--card-accent);cursor:pointer}.rsvp-radio-label.selected{color:var(--card-accent);font-weight:700}.rsvp-submit{width:100%;padding:12px;border:none;border-radius:24px;background:#6f8fb5;color:#fffffe;font-family:EB Garamond,serif;font-size:15px;font-weight:700;letter-spacing:1px;cursor:pointer;margin-top:4px;transition:background .2s}.rsvp-submit:hover{background:var(--card-accent-soft)}.modal-inner.wishlist{gap:0;padding:2px 0 6px}.modal-inner.wishlist h1{margin-bottom:4px}.wishlist-note{max-width:270px;font-family:EB Garamond,serif;font-style:italic;font-size:13.5px;line-height:1.65;color:#7088a3;text-align:center;margin:0 0 14px}.wishlist-qr-frame{--tick: #e2b9c5;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 14px 10px;border-radius:3px;background:linear-gradient(var(--tick),var(--tick)) 0 0 / 15px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) 0 0 / 1px 15px no-repeat,linear-gradient(var(--tick),var(--tick)) 100% 0 / 15px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) 100% 0 / 1px 15px no-repeat,linear-gradient(var(--tick),var(--tick)) 0 100% / 15px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) 0 100% / 1px 15px no-repeat,linear-gradient(var(--tick),var(--tick)) 100% 100% / 15px 1px no-repeat,linear-gradient(var(--tick),var(--tick)) 100% 100% / 1px 15px no-repeat,linear-gradient(168deg,#fffefb,#fbf5ea);box-shadow:0 4px 14px #2c45621a}.wishlist-qr{width:158px;height:158px;object-fit:contain;border:1px solid rgba(201,120,144,.4);border-radius:2px;background:#fff;margin:0}.wishlist-qr-cap{font-family:EB Garamond,serif;font-style:italic;font-size:12px;letter-spacing:.5px;color:#7088a3}.wishlist-acc{display:flex;flex-direction:column;align-items:center;gap:3px;margin:18px 0 2px;padding:0 22px;width:100%;max-width:290px}.wishlist-bank{font-family:EB Garamond,serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#7088a3}.wishlist-accnum{font-family:EB Garamond,serif;font-size:23px;font-weight:600;letter-spacing:2px;color:#2c4562;font-variant-numeric:tabular-nums;line-height:1.25}.wishlist-name{font-family:Pinyon Script,serif;font-size:20px;color:#b0607a;line-height:1.3}.wishlist-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px}.wishlist-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid #45607f;border-radius:2px;background:#fefdf98c;color:#45607f;font-family:EB Garamond,serif;font-size:14px;letter-spacing:.3px;cursor:pointer;transition:background .25s,color .25s,border-color .25s}.wishlist-btn:hover,.wishlist-btn.primary{background:#45607f;color:#fefdf9}.wishlist-btn.primary:hover{background:#24384f;border-color:#24384f}.wishlist-btn.primary.is-copied{background:#6d7a58;border-color:#6d7a58}.wishlist-btn .bx{font-size:16px;font-style:normal}.modal-inner.calendar p{display:flex;gap:10px;margin-bottom:4px}.modal-inner.calendar p span{font-family:EB Garamond,serif;font-size:15px;color:#000}.modal-inner.location p{font-family:EB Garamond,serif;font-size:15px;color:#000;font-weight:300;line-height:.8}.modal-inner.music p{font-family:EB Garamond,serif;font-size:15px;color:#000;text-align:center}.music-credit{font-size:13px!important;opacity:.7}.music-visualizer{display:flex;align-items:flex-end;justify-content:center;gap:7px;height:40px;margin:12px 0;width:100%}.vis-bar{display:block;width:8px;border-radius:3px;background:var(--card-accent-soft);opacity:.2;height:6px}.music-visualizer.playing .vis-bar{opacity:.65;animation:visBar 1s ease-in-out infinite alternate}.music-visualizer.playing .vis-bar:nth-child(1){animation-duration:.7s;animation-delay:0s}.music-visualizer.playing .vis-bar:nth-child(2){animation-duration:.9s;animation-delay:.1s}.music-visualizer.playing .vis-bar:nth-child(3){animation-duration:.6s;animation-delay:.2s}.music-visualizer.playing .vis-bar:nth-child(4){animation-duration:1.1s;animation-delay:.05s}.music-visualizer.playing .vis-bar:nth-child(5){animation-duration:.8s;animation-delay:.3s}.music-visualizer.playing .vis-bar:nth-child(6){animation-duration:1s;animation-delay:.15s}.music-visualizer.playing .vis-bar:nth-child(7){animation-duration:.65s;animation-delay:.25s}.music-visualizer.playing .vis-bar:nth-child(8){animation-duration:.85s;animation-delay:.08s}.music-visualizer.playing .vis-bar:nth-child(9){animation-duration:.75s;animation-delay:.18s}@keyframes visBar{0%{height:4px}to{height:34px}}.music-controls{margin-top:12px}.play-btn{display:flex;align-items:center;gap:8px;padding:10px 28px;background:var(--card-bg);border:none;border-radius:100px;cursor:pointer;font-size:15px;font-family:EB Garamond,serif;font-weight:600;transition:opacity .2s}.play-btn .bx{font-size:20px;color:var(--card-accent)}.play-btn:hover{opacity:.85}.contact-list{width:100%;display:flex;flex-direction:column;gap:14px;margin-top:4px}.contact-person{display:flex;align-items:center;justify-content:space-between;width:100%;padding-bottom:12px;border-bottom:1px solid rgba(201,120,144,.35)}.contact-person:last-child{padding-bottom:0;border-bottom:none}.contact-left{display:flex;align-items:center;gap:8px}.contact-info{display:flex;flex-direction:column}.contact-name{font-family:EB Garamond,serif;font-size:16px;color:#000}.contact-relation{font-family:EB Garamond,serif;font-style:italic;font-size:12.5px;letter-spacing:.4px;color:#7088a3;margin-top:1px}.contact-right{display:flex;gap:10px}.contact-right button{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.contact-right .bx{font-size:28px;color:#000;transition:opacity .2s}.contact-right button:hover .bx{opacity:.7}.modal-inner.success{flex-direction:row;gap:16px;padding:8px 0;align-items:center;justify-content:flex-start;width:100%}.modal-inner.success .bx{font-size:56px;color:#adff2f}.modal-inner.success p{font-family:EB Garamond,serif;font-size:16px;color:#111;font-weight:300;line-height:1.6}.loading-screen{position:relative;overflow:hidden;width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#b9d4ee,#d4e4f4 38%,#eef3f8 68%,#fbf8f2);transition:opacity .5s ease}.loading-screen.is-done{opacity:.9}.loading-cloud{position:absolute;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,#fffffff2,#fff0);filter:blur(4px);animation:loadingDrift 18s ease-in-out infinite alternate}.loading-cloud.c1{width:260px;height:120px;top:12%;left:-40px}.loading-cloud.c2{width:320px;height:140px;top:30%;right:-80px;animation-duration:22s;animation-direction:alternate-reverse}.loading-cloud.c3{width:220px;height:100px;bottom:18%;left:18%;animation-duration:26s;opacity:.8}@keyframes loadingDrift{0%{transform:translate(-20px)}to{transform:translate(30px)}}.loading-block{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px}.loading-bow{width:64px;height:48px;overflow:visible;filter:drop-shadow(0 4px 6px rgba(150,70,100,.25));transform-origin:50% 30%;animation:loadingBowSway 2.4s ease-in-out infinite}.loading-bow path{fill:#e3a3b5}.loading-bow .loading-bow-knot{fill:#d48aa0}@keyframes loadingBowSway{0%,to{transform:rotate(-5deg) scale(1)}50%{transform:rotate(5deg) scale(1.05)}}.loading-script{font-family:Pinyon Script,serif;font-size:38px;line-height:1.1;color:#2c4562;margin:0;text-shadow:0 0 14px rgba(255,255,255,.9)}.loading-bar-track{width:170px;height:4px;border-radius:100px;overflow:hidden;background:#ffffffb3;box-shadow:0 0 0 1px #3d5a7a1f}.loading-bar-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,#e9b6c4,#c97890);transition:width .2s ease-out}.loading-percent{font-family:EB Garamond,serif;font-size:12px;letter-spacing:.3em;text-indent:.3em;color:#3d5a7a;margin:0}@media (prefers-reduced-motion: reduce){.loading-bow,.loading-cloud{animation:none}.loading-bar-fill{transition:none}}@media (max-width: 600px){.card,.footer,.toggle-menu{max-width:100%}}.made-by{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 0 22px}.made-by__label{font-family:EB Garamond,serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#7088a3}.made-by__logo{width:92px;height:auto;opacity:.92;-webkit-user-select:none;user-select:none}.event-intro{white-space:pre-line}.petals{position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;z-index:800;pointer-events:none;overflow:hidden}.petal{position:absolute;left:0;top:0;width:var(--pt-size);aspect-ratio:24 / 32;color:var(--pt-color);opacity:0;animation:var(--pt-path) var(--pt-dur) linear var(--pt-delay) infinite;will-change:left,top,opacity}.petal svg{display:block;overflow:visible;filter:blur(.7px) drop-shadow(0 1px 2px rgba(44,69,98,.08))}.petal .pt-fill{fill:currentColor}.petal .pt-vein{fill:none;stroke:#ffffff59;stroke-width:.7;stroke-linecap:round}.pt-tumble{display:block;width:100%;height:100%;animation:ptTumble var(--pt-tumble) ease-in-out infinite}.petal.p1{--pt-size: 13px;--pt-color: #f2b8c8;--pt-path: ptBreezeA;--pt-dur: 15s;--pt-delay: -5s;--pt-tumble: 2.6s}.petal.p2{--pt-size: 11px;--pt-color: #c9b5e3;--pt-path: ptBreezeB;--pt-dur: 18s;--pt-delay: -11s;--pt-tumble: 3.2s}.petal.p3{--pt-size: 12px;--pt-color: #fdf7f2;--pt-path: ptBreezeC;--pt-dur: 16s;--pt-delay: -2s;--pt-tumble: 2.4s}.petal.p4{--pt-size: 10px;--pt-color: #e79bb2;--pt-path: ptBreezeB;--pt-dur: 20s;--pt-delay: -15s;--pt-tumble: 3s}.petal.p5{--pt-size: 12px;--pt-color: #d4c2ec;--pt-path: ptBreezeA;--pt-dur: 17s;--pt-delay: 3s;--pt-tumble: 2.8s}.petal.p6{--pt-size: 9px;--pt-color: #f2b8c8;--pt-path: ptBreezeC;--pt-dur: 21s;--pt-delay: 7s;--pt-tumble: 3.4s}.petal.p7{--pt-size: 11px;--pt-color: #fdf7f2;--pt-path: ptBreezeB;--pt-dur: 19s;--pt-delay: 10s;--pt-tumble: 2.5s}.petal.p8{--pt-size: 10px;--pt-color: #c9b5e3;--pt-path: ptBreezeA;--pt-dur: 22s;--pt-delay: 13s;--pt-tumble: 3.1s}.petal.p9{--pt-size: 12px;--pt-color: #e79bb2;--pt-path: ptBreezeC;--pt-dur: 18s;--pt-delay: 16s;--pt-tumble: 2.7s}.petal.p2 .pt-tumble,.petal.p5 .pt-tumble,.petal.p8 .pt-tumble{animation-direction:reverse}@keyframes ptBreezeA{0%{left:-6%;top:8%;opacity:0}6%{opacity:.55}30%{left:26%;top:18%}55%{left:52%;top:14%}80%{left:80%;top:26%}94%{opacity:.55}to{left:106%;top:30%;opacity:0}}@keyframes ptBreezeB{0%{left:-6%;top:38%;opacity:0}6%{opacity:.55}25%{left:20%;top:46%}50%{left:48%;top:42%}75%{left:74%;top:55%}94%{opacity:.55}to{left:106%;top:60%;opacity:0}}@keyframes ptBreezeC{0%{left:-6%;top:64%;opacity:0}6%{opacity:.55}35%{left:30%;top:72%}60%{left:58%;top:68%}85%{left:86%;top:82%}94%{opacity:.55}to{left:106%;top:88%;opacity:0}}@keyframes ptTumble{0%{transform:rotate(0) rotateX(0) rotateY(0)}25%{transform:rotate(80deg) rotateX(60deg) rotateY(20deg)}50%{transform:rotate(170deg) rotateX(0) rotateY(70deg)}75%{transform:rotate(260deg) rotateX(-50deg) rotateY(20deg)}to{transform:rotate(360deg) rotateX(0) rotateY(0)}}@media (prefers-reduced-motion: reduce){.petals{display:none}}.scroll-hint{position:fixed;z-index:950;right:max(10px,calc(50% - 200px));bottom:calc(90px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:8px;padding:0;border:0;background:none;color:var(--hint-ink, #7088a3);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .3s ease,visibility 0s}.scroll-hint.is-up{flex-direction:column-reverse}.scroll-hint.is-hidden{opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}.scroll-hint-line{position:relative;width:1px;height:34px;overflow:hidden;background:color-mix(in srgb,var(--hint-ink, #7088a3) 28%,transparent)}.scroll-hint-line i{position:absolute;left:-1.5px;top:0;width:4px;height:4px;border-radius:50%;background:var(--hint-ink, #7088a3);animation:hintDotDown 1.8s cubic-bezier(.45,0,.55,1) infinite}.scroll-hint.is-up .scroll-hint-line i{animation-name:hintDotUp}.scroll-hint-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid color-mix(in srgb,var(--hint-ink, #7088a3) 35%,transparent);background:#ffffffc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 12px #0000001a;transition:background .25s ease,color .25s ease,transform .25s ease}.scroll-hint-btn .bx{font-size:20px;line-height:1}@media (hover: hover){.scroll-hint:hover .scroll-hint-btn{background:var(--hint-ink, #7088a3);color:#fff;transform:translateY(2px)}.scroll-hint.is-up:hover .scroll-hint-btn{transform:translateY(-2px)}}.scroll-hint:active .scroll-hint-btn{transform:scale(.92)}.scroll-hint:focus-visible{outline:none}.scroll-hint:focus-visible .scroll-hint-btn{outline:2px solid var(--hint-ink, #7088a3);outline-offset:2px}@keyframes hintDotDown{0%{transform:translateY(-6px);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translateY(36px);opacity:0}}@keyframes hintDotUp{0%{transform:translateY(36px);opacity:0}20%{opacity:1}80%{opacity:1}to{transform:translateY(-6px);opacity:0}}@media (prefers-reduced-motion: reduce){.scroll-hint-line i{animation:none;top:50%;opacity:1}}.event-swans{display:flex;justify-content:center;align-items:flex-end;gap:2%;width:100%;margin:0 auto 34px}.event-swans.reveal,.event-swans.reveal.active{opacity:1;animation:none!important}.swan{display:block;width:42%;max-width:170px;height:auto;opacity:0;-webkit-user-select:none;user-select:none;pointer-events:none}.swan-left{transform:scaleX(-1)}.event-swans.active .swan-left{animation:swanInLeft 1.8s cubic-bezier(.22,.9,.3,1) both,swanBobLeft 4.5s ease-in-out 1.8s infinite}.event-swans.active .swan-right{animation:swanInRight 1.8s cubic-bezier(.22,.9,.3,1) both,swanBobRight 4.5s ease-in-out 1.8s infinite}@keyframes swanInLeft{0%{opacity:0;transform:translate(-120%) scaleX(-1)}to{opacity:1;transform:translate(0) scaleX(-1)}}@keyframes swanInRight{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}@keyframes swanBobLeft{0%,to{opacity:1;transform:translateY(0) scaleX(-1)}50%{opacity:1;transform:translateY(-4px) scaleX(-1)}}@keyframes swanBobRight{0%,to{opacity:1;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.swan{opacity:1}.event-swans.active .swan-left,.event-swans.active .swan-right{animation:none}}.no-text-anim .swan{opacity:1}.no-text-anim .event-swans .swan-left,.no-text-anim .event-swans .swan-right{animation:none!important}
