*{box-sizing:border-box;margin:0;padding:0}html,body{background:#f3eee6}.app-root{--hint-ink: #3F5A78;--butterfly: #6F8FB4;--ui-dock-a: #77845f;--ui-dock-b: #64714f;--ui-line: rgba(239, 214, 164, .35);--ui-line-faint: rgba(239, 214, 164, .14);--ui-mark: #EFD6A4;--ui-mark-glow: rgba(239, 214, 164, .55);--ui-ink: #FFFDF6;--ui-ink-soft: rgba(240, 232, 220, .72);--ui-shadow: rgba(30, 36, 22, .28);--ui-backdrop: rgba(25, 30, 20, .42);--ui-sheet: #6F8297;--ui-sheet-glow: rgba(239, 214, 164, .14);--ui-handle: rgba(239, 214, 164, .5);--ui-close-bg: rgba(255, 255, 255, .08);--ui-close-ink: #EBD9A8;--ui-close-hover-bg: #EBD9A8;--ui-close-hover-ink: #4A6076;--ui-inset: rgba(255, 255, 255, .12);--card-bg: #f6f6f5;--card-info-bg: #F4F8FB;--card-splash-bg: #F3EEE6;--card-maroon: #3F5A78;--card-maroon-deep: #2F4257;--card-gold: #B89A64;--card-leaf: #5D7186;--card-gold-light: #EFD6A4;--card-cream: #FAF6EC;--card-accent: #B8C6D4;--card-accent-light: #2F4257;--card-accent-soft: #A9BBCD;--card-accent-info: #fefdf9;background-color:#f3eee6;background-image:url(/assets/card-paper-hh0ObhUB.webp);background-repeat:repeat-y;background-position:top center;background-size:100% auto;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-color:var(--card-splash-bg);background-image:url(/assets/card-paper-hh0ObhUB.webp);background-repeat:no-repeat;background-position:center;background-size:cover;display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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;align-items:center;justify-content:center;padding:2vh 12px;box-sizing:border-box}.splash-sheet{position:relative;width:min(94vw,440px,60vh);aspect-ratio:1024 / 1536;container-type:inline-size;padding:0;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .25s ease}.splash-sheet:hover{transform:translateY(-4px)}.splash-sheet:active{transform:translateY(0)}.splash-sheet-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.splash-heading{position:absolute;left:21%;right:19%;top:55%;bottom:26%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4cqw;text-align:center}.splash-names{display:flex;flex-direction:column;align-items:center;gap:2.4cqw;width:100%}.splash-name{font-family:EB Garamond,serif;font-size:clamp(19px,7.4cqw,36px);font-weight:400;line-height:1.1;text-transform:uppercase;letter-spacing:.12em;text-indent:.12em;color:var(--card-maroon);overflow-wrap:anywhere}.splash-joiner{display:flex;align-items:center;justify-content:center;gap:3cqw;width:100%}.splash-joiner i{flex:1 1 auto;max-width:26%;height:1px;background:var(--card-gold);opacity:.75}.splash-joiner em{flex:0 0 auto;font-family:EB Garamond,serif;font-style:italic;font-size:clamp(11px,3.6cqw,17px);letter-spacing:.08em;line-height:1;color:var(--card-gold)}.splash-date{font-family:EB Garamond,serif;font-size:clamp(9px,2.9cqw,14px);letter-spacing:.18em;color:var(--card-leaf);line-height:1.4}.splash-tap{font-family:EB Garamond,serif;font-style:italic;font-size:clamp(8px,2.5cqw,12px);letter-spacing:.05em;color:var(--card-gold);margin-top:2cqw;animation:splashTapPulse 2.4s ease-in-out infinite}@keyframes splashTapPulse{0%,to{opacity:.55}50%{opacity:1}}.card{max-width:420px;margin:0 auto;background-color:#f3eee6;background-image:url(/assets/card-paper-hh0ObhUB.webp);background-repeat:repeat-y;background-position:top center;background-size:100% auto;position:relative;overflow:hidden;box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.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}.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;gap:0;z-index:1}.intro-content img{width:50%;margin-bottom:16px}.walimatul{font-size:18px;letter-spacing:2px;color:var(--card-cream);margin-bottom:32px}.intro-content h2{font-family:Pinyon Script,serif;font-size:70px;font-weight:500;color:var(--card-gold-light);line-height:1.1;margin:4px 0}.intro-content h3{font-family:EB Garamond,serif;font-size:34px;font-weight:500;color:var(--card-gold-light)}.intro-when{display:flex;flex-direction:column;align-items:center;margin-top:32px;width:100%;max-width:82%;color:var(--card-cream);letter-spacing:2px;line-height:1.35}.intro-day{font-size:12.6px;text-transform:uppercase;margin-bottom:.25em}.intro-date{font-size:18px}.intro-hashtag{margin-top:.45em;font-size:18px;text-align:center;overflow-wrap:anywhere}.info{display:flex;flex-direction:column;align-items:center;padding:50px 0;position:relative;z-index:1}.lace-section{position:relative;width:100%;margin:16px auto}.lace-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:0 14%}.lace-item{display:flex;flex-direction:column;align-items:center}.lace-label{font-family:Pinyon Script,serif;font-size:28px;color:#3f5a78;line-height:1;margin-bottom:8px;margin-top:8px}.lace-item p{font-size:18px;color:#2f4257;line-height:1.7;font-weight:400}.lace-divider{width:50%;height:0;border-top:1px solid #2F4257;margin:8px 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:#2f4257;font-weight:400;letter-spacing:.3px;line-height:1.6}.event-part.one{display:flex;flex-direction:column;align-items:center;gap:0}.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;letter-spacing:.4px;line-height:1.4;font-weight:600;color:#2f4257}.event-part.two{display:flex;flex-direction:column;align-items:center;margin:8px 0}.event-part.two p{font-family:Pinyon Script,serif;letter-spacing:2px;font-size:32px;font-weight:400;font-style:normal;line-height:1.25;color:#3f5a78}.countdown{text-align:center;padding:24px 0 0}.countdown-title{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#4e5e6e;margin-bottom:20px}.count-boxes{display:flex;align-items:center;justify-content:center}.count-divider{width:1px;height:48px;background:#a9bbcd;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:#2f4257;line-height:1;margin-bottom:6px}.count-box span{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#6f8297;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:#4e5e6e;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:#6f8297;font-weight:400;text-align:center}.mini-cal-day{font-family:EB Garamond,serif;font-size:17px;color:#4e5e6e;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 #A9BBCD}.mini-cal-stem{display:block;width:0;height:40px;border-left:1.5px dashed #A9BBCD}.mini-cal-script{font-family:Pinyon Script,serif;font-size:44px;color:#2f4257;line-height:1.1;margin-top:2px;text-align:center}.aturcara-row{font-size:13px;color:#5a4535;font-weight:400;letter-spacing:.3px;line-height:1.8}.aturcara-dot{color:#2f4257;opacity:.7;margin:0 4px}.aturcara-time{color:#2f4257;font-style:italic}.rsvp-tray{position:relative;width:100%;margin:8px auto 4px;container-type:inline-size}.rsvp-tray-img{display:block;width:100%;height:auto}.rsvp-tray-inner{position:absolute;top:22%;bottom:52%;left:24%;right:24%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2cqw;text-align:center}.rsvp-tray-title{font-family:Pinyon Script,serif;font-size:clamp(22px,8.5cqw,40px);line-height:1;color:#ebd9a8;text-shadow:0 1px 3px rgba(48,10,14,.6)}.rsvp-tray-rule{width:60%;height:1px;background:linear-gradient(90deg,transparent,var(--card-gold) 22%,var(--card-gold) 78%,transparent);position:relative}.rsvp-tray-rule:after{content:"✦";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(6px,2.2cqw,10px);line-height:1;color:var(--card-gold);padding:0 4px;background:#6e191f}.rsvp-tray-text{font-family:EB Garamond,serif;font-style:italic;font-size:clamp(11px,3.9cqw,17px);line-height:1.55;color:#f3e7cee6;text-shadow:0 1px 2px rgba(48,10,14,.5)}.rsvp-btn{margin-top:1.5cqw;padding:clamp(6px,2cqw,11px) clamp(12px,4.5cqw,24px);border:1px solid var(--card-gold);outline:1px solid rgba(169,133,60,.4);outline-offset:3px;background:#5e141a59;color:#ebd9a8;font-family:EB Garamond,serif;font-size:clamp(9px,2.9cqw,13px);font-weight:600;letter-spacing:2.5px;white-space:nowrap;text-transform:uppercase;text-shadow:0 1px 2px rgba(48,10,14,.55);cursor:pointer;transition:background .25s,color .25s,border-color .25s}.rsvp-btn:hover{background:var(--card-gold);border-color:#ebd9a8;color:var(--card-maroon-deep);text-shadow:none}.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%;aspect-ratio:860 / 1828;container-type:inline-size}.ucapan-heart-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.ucapan-khas-content{position:absolute;top:34.5%;right:25%;bottom:29.5%;left:25%;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.2cqw;text-align:center;overflow:hidden}.ucapan-khas-title{font-family:Pinyon Script,serif;font-size:clamp(20px,7cqw,34px);color:var(--card-accent-light);line-height:1;margin-bottom:2.4cqw}.ucapan-khas-msg{font-family:EB Garamond,serif;font-style:italic;font-size:clamp(12px,3.7cqw,17px);color:#4e5e6e;line-height:1.65}.ucapan-khas-name{font-family:Pinyon Script,serif;font-size:clamp(16px,5.2cqw,25px);color:#8b632c;line-height:1.2}.ucapan-khas-empty{font-family:EB Garamond,serif;font-size:clamp(11px,3.4cqw,16px);color:#6f8297;font-style:italic;line-height:1.65}.ucapan-khas-controls{display:flex;flex-direction:column;align-items:center;gap:2cqw;margin-top:2.6cqw}.ucapan-khas-nav{display:flex;align-items:center;gap:4cqw}.ucapan-khas-nav button{background:none;border:none;font-size:clamp(20px,6.5cqw,30px);color:#4e5e6e;cursor:pointer;line-height:1;padding:0 4px;opacity:.8}.ucapan-khas-nav span{font-family:EB Garamond,serif;font-size:clamp(10px,3.2cqw,15px);color:#6f8297}.ucapan-khas-btn{display:flex;align-items:center;gap:1.5cqw;padding:clamp(6px,2cqw,10px) clamp(14px,4.8cqw,24px);border:1px solid #4E5E6E;background:#fefdf98c;color:#4e5e6e;font-family:EB Garamond,serif;font-size:clamp(11px,3.4cqw,16px);font-style:italic;cursor:pointer;border-radius:2px;transition:background .25s,color .25s}.ucapan-khas-btn:hover{background:#4e5e6e;color:#fefdf9}.footer{position:fixed;left:50%;transform:translate(-50%);bottom:calc(10px + 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:62px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-around;background:linear-gradient(180deg,var(--ui-dock-a),var(--ui-dock-b));border:1px solid var(--ui-line);border-radius:24px;box-shadow:0 12px 30px var(--ui-shadow),0 2px 6px var(--ui-shadow),inset 0 1px 0 var(--ui-inset)}.footer .menu:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:21px;border:1px solid var(--ui-line-faint);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(--ui-mark) 20%,var(--ui-mark) 80%,transparent);box-shadow:0 1px 6px var(--ui-mark-glow);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%;padding:0;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(--ui-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(--ui-ink-soft);white-space:nowrap;transition:color .3s ease}.footer .menu li:active .bx{transform:scale(.88)}.footer .menu li.active .bx{color:var(--ui-ink);animation:menuIconPop .45s cubic-bezier(.34,1.56,.64,1)}.footer .menu li.active span{color:var(--ui-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(--ui-mark)}@media (hover: hover){.footer .menu li:not(.active):hover .bx{color:var(--ui-ink);transform:translateY(-2px)}.footer .menu li:not(.active):hover span{color:var(--ui-ink)}}.footer .menu li .bx.is-playing{color:var(--ui-ink)}.footer .menu li .bx.is-playing:after{content:"";position:absolute;top:-2px;right:-5px;width:6px;height:6px;border-radius:50%;background:var(--ui-mark);animation:footerPlayingDot 1.8s ease-out infinite}@keyframes footerPlayingDot{0%{box-shadow:0 0 0 0 var(--ui-mark-glow)}to{box-shadow:0 0 0 7px transparent}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:var(--ui-backdrop);-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%,var(--ui-sheet-glow),transparent 70%),var(--ui-sheet);border:1px solid var(--ui-line);border-radius:26px;box-shadow:0 24px 60px var(--ui-shadow),0 4px 12px var(--ui-shadow);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:var(--ui-handle)}.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 var(--ui-line);background:var(--ui-close-bg);color:var(--ui-close-ink);font-size:20px;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.sheet-close:hover{background:var(--ui-close-hover-bg);color:var(--ui-close-hover-ink);transform:rotate(90deg)}.sheet-close:focus-visible{outline:2px solid var(--ui-mark);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,.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:#a9bbcd;background:linear-gradient(#b8c6d4,#b8c6d4) left center / 58px 1px no-repeat,linear-gradient(#b8c6d4,#b8c6d4) 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:#4e5e6e;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:#4e5e6e;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:#b8c6d4;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:#6f8297;text-align:center;margin:0 0 14px}.wishlist-qr-frame{--tick: #B8C6D4;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 #35241f1a}.wishlist-qr{width:158px;height:158px;object-fit:contain;border:1px solid rgba(179,155,120,.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:#6f8297}.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:#6f8297}.wishlist-accnum{font-family:EB Garamond,serif;font-size:23px;font-weight:600;letter-spacing:2px;color:#2f4257;font-variant-numeric:tabular-nums;line-height:1.25}.wishlist-name{font-family:Pinyon Script,serif;font-size:20px;color:#8b632c;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 #4E5E6E;border-radius:2px;background:#fefdf98c;color:#4e5e6e;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:#4e5e6e;color:#fefdf9}.wishlist-btn.primary:hover{background:#46382b;border-color:#46382b}.wishlist-btn.primary.is-copied{background:#6f8297;border-color:#6f8297}.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:1.5;text-align:center;text-wrap:balance;max-width:320px;margin:0 auto}.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(179,155,120,.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:#6f8297;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}.toggle-menu{--panel-text: #FDFBF5;--panel-muted: rgba(253, 251, 245, .72);--panel-accent: #EBD9A8;--panel-rule: rgba(235, 217, 168, .45)}.toggle-menu .modal-inner h1{color:var(--panel-text)}.toggle-menu .modal-inner h1:after{color:var(--panel-accent);background:linear-gradient(var(--panel-rule),var(--panel-rule)) left center / 58px 1px no-repeat,linear-gradient(var(--panel-rule),var(--panel-rule)) right center / 58px 1px no-repeat}.toggle-menu .modal-inner.calendar p span,.toggle-menu .modal-inner.location p,.toggle-menu .modal-inner.music p,.toggle-menu .modal-inner.success p,.toggle-menu .contact-name{color:var(--panel-text)}.toggle-menu .wishlist-note,.toggle-menu .wishlist-bank,.toggle-menu .contact-relation,.toggle-menu .rsvp-hint{color:var(--panel-muted)}.toggle-menu .wishlist-accnum{color:var(--panel-text)}.toggle-menu .wishlist-name,.toggle-menu .contact-right .bx{color:var(--panel-accent)}.toggle-menu .contact-person{border-bottom-color:var(--panel-rule)}.toggle-menu .rsvp-field label,.toggle-menu .rsvp-radio-label{color:var(--panel-text)}.toggle-menu .rsvp-radio-label.selected{color:var(--panel-accent)}.toggle-menu .rsvp-radio-label input[type=radio]{accent-color:var(--panel-accent)}.toggle-menu .rsvp-submit{background:var(--panel-accent);color:#4a6076}.toggle-menu .rsvp-submit:hover{background:#f5e9c6}.toggle-menu .wishlist-btn{border-color:var(--panel-accent);background:#ffffff14;color:var(--panel-text)}.toggle-menu .wishlist-btn:hover{background:var(--panel-accent);color:#4a6076}.toggle-menu .wishlist-btn.primary{background:var(--panel-accent);border-color:var(--panel-accent);color:#4a6076}.toggle-menu .wishlist-btn.primary:hover{background:#f5e9c6;border-color:#f5e9c6}.toggle-menu .wishlist-btn.primary.is-copied{background:#e9e2c6;border-color:#e9e2c6;color:#4a6076}.toggle-menu .vis-bar{background:var(--panel-accent)}.loading-screen{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--card-bg)}.loading-block{display:flex;flex-direction:column;align-items:center;gap:14px}.loading-heart{font-size:22px;color:var(--card-accent-soft);animation:loadingHeartPulse 1.3s ease-in-out infinite}.loading-script{font-family:Pinyon Script,serif;font-size:34px;color:var(--card-accent-light);margin:0}.loading-bar-track{width:180px;height:6px;border-radius:100px;background:var(--card-info-bg);border:1px solid var(--card-accent);overflow:hidden}.loading-bar-fill{height:100%;border-radius:100px;background:var(--card-accent-light);transition:width .2s ease-out}.loading-percent{font-family:EB Garamond,serif;font-size:13px;letter-spacing:1px;color:var(--card-accent-info);margin:0}@keyframes loadingHeartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media (prefers-reduced-motion: reduce){.loading-heart{animation:none}.loading-bar-fill{transition:none}.splash-tap{animation:none;opacity:.85}}@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:#6f8297}.made-by__logo{width:92px;height:auto;opacity:.92;-webkit-user-select:none;user-select:none}.event-intro{white-space:pre-line}.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:#2f4257;margin:0 0 24px;direction:rtl}.event-part .event-greeting{opacity:.85}.parent-names .parent-amp{font-family:Pinyon Script,serif;font-size:24px;font-style:normal;font-weight:400;line-height:1.1;color:#3f5a78}.event-part .event-intro{line-height:1.7;max-width:30em;text-wrap:balance}.event-info>.event-part.one:first-of-type{margin-bottom:22px}.event-part .event-connector{font-size:17px;opacity:.8;letter-spacing:.6px}.butterflies{position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;z-index:800;pointer-events:none;overflow:hidden}.butterfly{position:absolute;left:0;top:0;width:var(--bf-size, 24px);aspect-ratio:40 / 32;color:var(--butterfly, #A9BBCD);opacity:0;animation:var(--bf-path) var(--bf-dur) linear var(--bf-delay) infinite;will-change:left,top,opacity}.butterfly svg{display:block;overflow:visible}.butterfly path,.butterfly ellipse{fill:currentColor}.butterfly .bf-body{fill:color-mix(in srgb,currentColor 55%,#000)}.butterfly .bf-antenna{fill:none;stroke:color-mix(in srgb,currentColor 55%,#000);stroke-width:.8;stroke-linecap:round}.bf-bob{display:block;width:100%;height:100%;animation:bfBob 2.6s ease-in-out infinite}.bf-wing{transform-box:fill-box;animation:bfFlap .32s ease-in-out infinite alternate}.bf-wing-l{transform-origin:right center}.bf-wing-r{transform-origin:left center}.butterfly.b1{--bf-size: 26px;--bf-dur: 24s;--bf-delay: -6s;--bf-path: bfPath1}.butterfly.b2{--bf-size: 20px;--bf-dur: 30s;--bf-delay: -10s;--bf-path: bfPath2}.butterfly.b3{--bf-size: 18px;--bf-dur: 27s;--bf-delay: -4s;--bf-path: bfPath3}.butterfly.b4{--bf-size: 22px;--bf-dur: 34s;--bf-delay: 9s;--bf-path: bfPath4}.butterfly.b2 .bf-bob{animation-duration:3.1s}.butterfly.b3 .bf-bob{animation-duration:2.2s}.butterfly.b3 .bf-wing{animation-duration:.26s}.butterfly.b4 .bf-bob{animation-duration:2.9s}@keyframes bfFlap{0%{transform:scaleX(1)}to{transform:scaleX(.25)}}@keyframes bfBob{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-8px) rotate(8deg)}}@keyframes bfPath1{0%{left:-8%;top:82%;opacity:0}8%{opacity:.85}35%{left:30%;top:64%}60%{left:58%;top:70%}92%{opacity:.85}to{left:108%;top:44%;opacity:0}}@keyframes bfPath2{0%{left:108%;top:22%;opacity:0;transform:scaleX(-1)}8%{opacity:.75}40%{left:66%;top:12%}70%{left:30%;top:26%}92%{opacity:.75}to{left:-8%;top:16%;opacity:0;transform:scaleX(-1)}}@keyframes bfPath3{0%{left:-8%;top:48%;opacity:0}8%{opacity:.8}30%{left:34%;top:38%}45%{left:46%;top:50%}55%{left:38%;top:56%}75%{left:70%;top:46%}92%{opacity:.8}to{left:108%;top:34%;opacity:0}}@keyframes bfPath4{0%{left:108%;top:58%;opacity:0;transform:scaleX(-1)}8%{opacity:.7}40%{left:62%;top:72%}70%{left:28%;top:66%}92%{opacity:.7}to{left:-8%;top:86%;opacity:0;transform:scaleX(-1)}}@media (prefers-reduced-motion: reduce){.butterflies{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, #6F8297);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, #6F8297) 28%,transparent)}.scroll-hint-line i{position:absolute;left:-1.5px;top:0;width:4px;height:4px;border-radius:50%;background:var(--hint-ink, #6F8297);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, #6F8297) 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, #6F8297);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, #6F8297);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}}.hide-rsvp .rsvp-tray,.hide-rsvp .ucapan-khas-btn,.hide-music .music-disc,.menu-empty .footer{display:none!important}.name-font-pinyon .event-part.two p{font-family:Pinyon Script,cursive;font-weight:400;font-size-adjust:none}.name-font-montecarlo .event-part.two p{font-family:MonteCarlo,cursive;font-weight:400;font-size-adjust:none;-webkit-text-stroke:0}.name-font-tangerine .event-part.two p{font-family:Tangerine,cursive;font-weight:700;font-size-adjust:.31;-webkit-text-stroke:0}.name-font-satisfy .event-part.two p{font-family:Satisfy,cursive;font-weight:400;font-size-adjust:none;letter-spacing:0;-webkit-text-stroke:0}.name-scaled .event-part.two p{zoom:var(--name-scale, 1)}.name-weight-bold .event-part.two p{-webkit-text-stroke:.55px currentColor}.wrapper{background:#f3eee6 url(/assets/card-paper-hh0ObhUB.webp) center / cover no-repeat}.splash-sheet{width:min(100vw,100dvh * .4713,560px);aspect-ratio:861 / 1827}.splash-sheet:hover{transform:none}.splash-sheet-img{object-fit:cover}.splash-kicker{color:#6f8297}.splash-name{color:#3f5a78}.splash-joiner i{background:#b89a64}.splash-joiner em{color:#b89a64}.splash-date{color:#5d7186}.splash-tap{color:#8a6f44}.intro-content{top:0;right:24%;bottom:0;left:24%;padding:0}.walimatul{color:#6f8297;margin-bottom:7%;font-size:15px}.intro-content h2{color:#3f5a78;font-size:clamp(40px,13cqw,60px)}.intro{container-type:inline-size}.intro-content h3{color:#b89a64;font-size:26px}.intro-when{color:#5d7186;margin-top:8%;max-width:100%}.intro-hashtag{color:#8a6f44;font-size:15px}.ucapan-heart{aspect-ratio:1442 / 860}.ucapan-khas-content{top:27%;right:25%;bottom:27%;left:25%;gap:1.2cqw}.ucapan-khas-title{color:#3f5a78;font-size:clamp(18px,5.6cqw,28px);margin-bottom:.6cqw}.ucapan-khas-msg{color:#4e5e6e;font-size:clamp(10px,2.9cqw,14px);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ucapan-khas-name{color:#8a6f44;font-size:clamp(14px,4.2cqw,20px)}.ucapan-khas-empty{color:#5d7186;font-size:clamp(10px,2.9cqw,14px)}.ucapan-khas-controls{margin-top:3cqw}.ucapan-khas-btn{border-color:#3f5a78;color:#3f5a78}.ucapan-khas-btn:hover{background:#3f5a78;color:#fff}.ucapan-khas-nav button,.ucapan-khas-nav span{color:#3f5a78}.rsvp-tray-title{color:#3f5a78;text-shadow:none}.rsvp-tray-rule:after{background:#efe7da;color:#b89a64}.rsvp-tray-text{color:#4e5e6e;text-shadow:none}.rsvp-btn{border-color:#3f5a78;background:#ffffff8c;color:#3f5a78;text-shadow:none}.rsvp-btn:hover{background:#3f5a78;border-color:#3f5a78;color:#fff}.splash-sheet{width:min(96vw,500px,64dvh);aspect-ratio:1024 / 1536}.splash-sheet-img{object-fit:contain;filter:drop-shadow(0 10px 18px rgba(47,66,87,.2))}.app-root{--ui-dock-a: #F8FBFD;--ui-dock-b: #EAF1F7;--ui-line: rgba(126, 150, 174, .4);--ui-line-faint: rgba(126, 150, 174, .14);--ui-mark: #7E96AE;--ui-mark-glow: rgba(126, 150, 174, .55);--ui-ink: #2F4257;--ui-ink-soft: #6f8599;--ui-shadow: rgba(47, 66, 87, .18);--ui-backdrop: rgba(25, 38, 52, .38);--ui-sheet: #F4F8FB;--ui-sheet-glow: rgba(169, 187, 205, .3);--ui-handle: rgba(126, 150, 174, .45);--ui-close-bg: rgba(244, 248, 251, .9);--ui-close-ink: #4A6076;--ui-close-hover-bg: #2F4257;--ui-close-hover-ink: #F4F8FB;--ui-inset: #ffffff}.rsvp-tray-title{color:#fff;text-shadow:0 1px 3px rgba(30,50,80,.35)}.rsvp-tray-rule:after{background:#9db3cc;color:#f2dfae}.rsvp-tray-text{color:#f4f6fa;text-shadow:0 1px 2px rgba(30,50,80,.3)}.rsvp-btn{border-color:#f2dfae;background:#ffffff1f;color:#fff}.rsvp-btn:hover{background:#fff;border-color:#fff;color:#3f5a78}.wrapper{height:100dvh;bottom:auto}.splash-stage{height:100dvh;padding:0 12px;align-items:center;justify-content:center}.splash-sheet{margin:auto}.event-flower{width:34%;max-width:150px;min-width:110px;margin-bottom:26px;filter:drop-shadow(0 4px 8px rgba(47,66,87,.2))}.toggle-menu{--panel-text: #2F4257;--panel-muted: #5D7186;--panel-accent: #3F5A78;--panel-rule: rgba(126, 150, 174, .35)}.toggle-menu .wishlist-name{color:#8a6f44}.toggle-menu .rsvp-submit,.toggle-menu .wishlist-btn.primary{background:#3f5a78;border-color:#3f5a78;color:#fff}.toggle-menu .rsvp-submit:hover,.toggle-menu .wishlist-btn.primary:hover{background:#2f4257;border-color:#2f4257}.toggle-menu .wishlist-btn{background:#fff9}.toggle-menu .wishlist-btn:hover{color:#fff}.toggle-menu .wishlist-btn.primary.is-copied{background:#6f8297;border-color:#6f8297;color:#fff}.toggle-menu .vis-bar{background:#6f8fb4}
