:root{--c-navy: #080e1e;--c-navy-2: #0d1a35;--c-navy-3: #122248;--c-gold: #d4af37;--c-gold-2: #f0d060;--c-gold-3: #a88920;--c-cream: #f9f3e3;--c-text: rgba(244, 235, 200, .88);--c-text-dim: rgba(212, 175, 55, .55);--b-gold: rgba(212, 175, 55, .25);--b-gold-hi: rgba(212, 175, 55, .5);--grad-gold: linear-gradient(90deg, transparent, var(--c-gold), transparent);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-12: 3rem;--sp-16: 4rem;--sp-20: 5rem;--sp-24: 6rem;--f-script: "Pinyon Script", cursive;--f-serif: "Cinzel", serif;--f-body: "EB Garamond", Georgia, serif;--r-full: 9999px;--shadow-gold: 0 0 30px rgba(212, 175, 55, .35);--t-fast: .2s ease;--t-base: .35s ease;--t-slow: .6s ease;--z-base: 1;--z-deco: 2;--z-sticky: 10;--z-music: 50;--z-toast: 80;--z-cover: 9000}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--c-navy);color:var(--c-cream);font-family:var(--f-body);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg{max-width:100%;display:block}button{cursor:pointer;font-family:inherit;border:none;background:none}a{color:inherit}ol,ul{list-style:none}blockquote,q{quotes:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px;border-radius:2px}img{content-visibility:auto}.br-md{display:none}@media (min-width: 560px){.br-md{display:inline}}.gold-line{width:60%;height:1px;margin:0 auto;background:var(--grad-gold)}#pcv{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.32;will-change:contents}#cover{position:fixed;inset:0;background:var(--c-navy);z-index:var(--z-cover);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}#cover.is-hiding{animation:cover-out .9s cubic-bezier(.4,0,.2,1) forwards}@keyframes cover-out{to{opacity:0;transform:scale(1.04)}}#cover-stars{position:absolute;inset:0;pointer-events:none}#cover:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 48% at 50% 0%,rgba(212,175,55,.13) 0%,transparent 62%),radial-gradient(ellipse 48% 32% at 50% 100%,rgba(212,175,55,.07) 0%,transparent 62%)}.cv-corners{position:absolute;inset:0;pointer-events:none;z-index:1}.cv-corner{position:absolute;width:clamp(120px,22vw,200px);height:clamp(120px,22vw,200px);opacity:.45;background-image:url(/corner-botanical.svg);background-size:contain;background-repeat:no-repeat}.cv-corner--tl{top:0;left:0}.cv-corner--tr{top:0;right:0;transform:scaleX(-1)}.cv-corner--bl{bottom:0;left:0;transform:scaleY(-1)}.cv-corner--br{bottom:0;right:0;transform:scale(-1)}.cv-rings{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:1}.cv-ring{position:absolute;width:240px;height:240px;border-radius:50%;border:1px solid rgba(212,175,55,.14);animation:ring-out 3.5s ease-out infinite}.cv-ring:nth-child(2){animation-delay:1.15s}.cv-ring:nth-child(3){animation-delay:2.3s}@keyframes ring-out{0%{transform:scale(.45);opacity:.7}to{transform:scale(2.6);opacity:0}}.cv-body{position:relative;z-index:2;text-align:center;padding:var(--sp-8) var(--sp-6);max-width:440px;width:100%}.cv-label{font-family:var(--f-serif);font-size:clamp(.55rem,1.4vw,.7rem);letter-spacing:.5em;color:var(--c-gold);text-transform:uppercase;display:block;margin-bottom:var(--sp-4);opacity:0;animation:fade-up .9s .3s forwards}.cv-flower{width:clamp(90px,23vw,150px);height:auto;margin:0 auto var(--sp-3);opacity:0;animation:fade-up 1s .5s forwards}.cv-names{font-family:var(--f-script);font-size:clamp(3.2rem,11.5vw,7.5rem);color:var(--c-gold-2);line-height:.95;text-shadow:0 0 50px rgba(212,175,55,.42),0 4px 20px rgba(0,0,0,.6);font-style:normal;opacity:0;animation:fade-up 1.1s .7s forwards}.cv-amp{display:block;font-family:var(--f-body);font-style:italic;font-size:clamp(1.5rem,4.2vw,3rem);color:var(--c-gold);margin:-.15rem 0}.cv-divider{width:min(220px,72%);margin:var(--sp-4) auto;opacity:0;animation:fade-in .9s 1.2s forwards}.cv-date{font-family:var(--f-serif);font-size:clamp(.58rem,1.5vw,.72rem);letter-spacing:.28em;color:var(--c-cream);opacity:0;animation:fade-up .9s 1.4s forwards}.cv-btn{margin-top:var(--sp-8);display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 2.4rem;border:1px solid var(--c-gold);color:var(--c-gold);font-family:var(--f-serif);font-size:.68rem;letter-spacing:.35em;text-transform:uppercase;background:transparent;position:relative;overflow:hidden;transition:color var(--t-base);opacity:0;animation:fade-up .9s 1.85s forwards}.cv-btn:before{content:"";position:absolute;inset:0;background:var(--c-gold);transform:scaleX(0);transform-origin:left;transition:transform var(--t-base);z-index:-1}.cv-btn:hover:before,.cv-btn:focus-visible:before{transform:scaleX(1)}.cv-btn:hover,.cv-btn:focus-visible{color:var(--c-navy)}@media (max-width: 480px){.cv-corner{width:100px;height:100px}.cv-ring{width:180px;height:180px}.cv-body{padding:1.5rem 1.2rem}.cv-names{font-size:clamp(2.8rem,10vw,4rem)}.cv-btn{padding:.82rem 1.8rem;font-size:.62rem;min-height:48px}.cv-flower{width:90px}.cv-date{font-size:.58rem;letter-spacing:.18em}}@media (max-width: 360px){.cv-names{font-size:2.6rem}.cv-corner{width:80px;height:80px}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}#main{position:relative;z-index:var(--z-base)}#main[aria-hidden=true]{display:none}#main:not([aria-hidden=true]){display:block}.section{position:relative;padding:var(--sp-20) var(--sp-6);text-align:center;overflow:hidden}.section--mid{background:linear-gradient(180deg,var(--c-navy-2) 0%,var(--c-navy-3) 50%,var(--c-navy-2) 100%)}.section--glow{background:radial-gradient(ellipse 72% 48% at 50% 50%,rgba(212,175,55,.075) 0%,transparent 68%),linear-gradient(180deg,var(--c-navy) 0%,var(--c-navy-2) 100%)}.section__inner{max-width:780px;margin:0 auto;position:relative;z-index:1}.section__botanical{position:absolute;top:0;bottom:0;width:clamp(60px,10vw,140px);pointer-events:none;opacity:.16;background-size:contain;background-repeat:no-repeat;background-position:center}.section__botanical--left{left:0;background-image:url(/side-botanical.svg)}.section__botanical--right{right:0;transform:scaleX(-1);background-image:url(/side-botanical.svg)}@media (max-width: 640px){.section__botanical{display:none}}.section__label{font-family:var(--f-serif);font-size:clamp(.56rem,1.3vw,.68rem);letter-spacing:.5em;color:var(--c-gold);text-transform:uppercase;display:block;margin-bottom:.65rem}.section__heading{font-family:var(--f-serif);font-size:clamp(1rem,2.8vw,1.6rem);color:var(--c-gold);letter-spacing:.14em;font-weight:400}.section__divider{width:min(340px,84%);height:auto;margin:1.2rem auto;opacity:.7}.section__body{font-family:var(--f-body);font-style:italic;font-size:clamp(.92rem,2.2vw,1.15rem);line-height:1.95;color:var(--c-text)}.js-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.js-reveal.is-visible{opacity:1;transform:translateY(0)}#hero{min-height:100svh;display:flex;align-items:center;background:radial-gradient(ellipse 88% 52% at 50% 0%,rgba(212,175,55,.09) 0%,transparent 66%),linear-gradient(180deg,var(--c-navy) 0%,var(--c-navy-2) 100%)}.hero__flower{width:min(190px,52vw);height:auto;margin:0 auto 1.1rem;animation:float 7s ease-in-out infinite;opacity:.9}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-13px) rotate(3deg)}}.hero__bismillah{font-size:clamp(1.4rem,4vw,2.4rem);color:var(--c-gold);margin-bottom:1.1rem;text-shadow:0 0 22px rgba(212,175,55,.38);direction:rtl;unicode-bidi:bidi-override}.hero__names{font-family:var(--f-script);font-style:normal;font-size:clamp(3.6rem,12vw,8.5rem);color:var(--c-gold-2);line-height:.93;text-shadow:0 0 75px rgba(212,175,55,.36),0 4px 26px rgba(0,0,0,.6);margin:.7rem 0}.hero__and{display:block;font-family:var(--f-body);font-style:italic;font-size:clamp(1.7rem,4.8vw,3.4rem);color:var(--c-gold);margin:-.15rem 0}.hero__quote{font-family:var(--f-body);font-style:italic;font-size:clamp(.88rem,2.1vw,1.12rem);color:var(--c-text);margin:1.2rem auto 1.8rem;line-height:1.95;max-width:560px}.hero__quote footer{color:var(--c-gold);font-size:.9em;margin-top:.6rem}.couple__grid{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--sp-6);align-items:center;margin:var(--sp-8) 0}@media (max-width: 520px){.couple__grid{grid-template-columns:1fr;gap:var(--sp-6)}.couple__and{order:1}.couple__card:last-of-type{order:2}}.couple__card{padding:1.8rem 1.2rem;border:1px solid var(--b-gold);background:#d4af3708;transition:transform var(--t-base),border-color var(--t-base);position:relative}.couple__card:before,.couple__card:after{content:"";position:absolute;width:20px;height:20px;border-color:#d4af376b;border-style:solid}.couple__card:before{top:6px;left:6px;border-width:1px 0 0 1px}.couple__card:after{bottom:6px;right:6px;border-width:0 1px 1px 0}.couple__card:hover{transform:translateY(-4px);border-color:var(--b-gold-hi)}.couple__photo-ring{width:118px;height:118px;margin:0 auto 1.1rem;border-radius:50%;border:2px solid var(--c-gold);padding:3px;position:relative}.couple__photo-ring:before{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(212,175,55,.2)}.couple__photo{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,var(--c-navy-3),var(--c-navy-2));display:flex;align-items:center;justify-content:center;font-family:var(--f-script);font-size:2.7rem;color:var(--c-gold);object-fit:cover}.couple__name-script{font-family:var(--f-script);font-size:clamp(1.7rem,4.2vw,2.7rem);color:var(--c-gold-2);font-weight:400}.couple__fullname{font-family:var(--f-serif);font-size:.74rem;letter-spacing:.18em;color:var(--c-gold);text-transform:uppercase;margin:.22rem 0 .65rem}.couple__parents{font-size:.88rem;color:var(--c-text);line-height:1.85}.couple__parents strong{color:var(--c-gold);font-weight:400;display:block}.couple__and{font-family:var(--f-script);font-style:normal;font-size:clamp(2.6rem,7vw,4.8rem);color:var(--c-gold);opacity:.58}.event__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:var(--sp-6);margin:var(--sp-8) 0}.event__card{border:1px solid var(--b-gold);background:#d4af3707;padding:2.1rem 1.7rem;position:relative;transition:transform var(--t-base),box-shadow var(--t-base)}.event__card:before,.event__card:after{content:"";position:absolute;width:24px;height:24px;border-color:var(--c-gold);border-style:solid;opacity:.4}.event__card:before{top:7px;left:7px;border-width:1px 0 0 1px}.event__card:after{bottom:7px;right:7px;border-width:0 1px 1px 0}.event__card:hover{transform:translateY(-5px);box-shadow:0 18px 52px #d4af3717}.event__icon{width:52px;height:52px;margin:0 auto 1.2rem;border:1px solid var(--c-gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--c-gold)}.event__type{font-family:var(--f-serif);font-size:.58rem;letter-spacing:.46em;color:var(--c-gold);text-transform:uppercase;margin-bottom:.3rem}.event__title{font-family:var(--f-body);font-size:1.45rem;color:var(--c-gold-2);margin-bottom:1.2rem}.event__detail{font-size:.88rem;color:var(--c-text);line-height:2.05}.event__detail strong{color:var(--c-gold);font-weight:500;display:block}.countdown__row{display:flex;justify-content:center;align-items:flex-start;gap:clamp(.7rem,3.2vw,2.4rem);flex-wrap:wrap;margin:var(--sp-8) 0}.countdown__item{text-align:center;min-width:60px}.countdown__num{display:block;font-family:var(--f-serif);font-weight:600;font-size:clamp(2rem,6.2vw,4.2rem);color:var(--c-gold);line-height:1;text-shadow:0 0 28px rgba(212,175,55,.48);transition:transform .15s ease}.countdown__num.tick{animation:num-tick .15s ease}@keyframes num-tick{0%{transform:translateY(-4px);opacity:.7}to{transform:translateY(0);opacity:1}}.countdown__num:after{content:"";display:block;width:100%;height:1px;margin-top:.5rem;background:var(--grad-gold);opacity:.38}.countdown__label{font-family:var(--f-serif);font-size:.52rem;letter-spacing:.42em;color:var(--c-text-dim);text-transform:uppercase;margin-top:.65rem}.countdown__sep{font-family:var(--f-serif);font-size:clamp(1.7rem,4.2vw,3.2rem);color:#d4af3742;align-self:flex-start;padding-top:.1rem}@media (max-width: 380px){.countdown__sep{display:none}}.timeline{position:relative;max-width:600px;margin:var(--sp-8) auto 0;padding:0;list-style:none}.timeline:before{content:"";position:absolute;left:20px;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(212,175,55,.38) 10%,rgba(212,175,55,.38) 90%,transparent)}.timeline__item{display:flex;align-items:flex-start;gap:0;margin-bottom:var(--sp-8);position:relative}.timeline__dot{flex:0 0 40px;width:40px;height:40px;border-radius:50%;border:1px solid var(--c-gold);background:var(--c-navy);display:flex;align-items:center;justify-content:center;color:var(--c-gold);font-size:.95rem;position:relative;z-index:1;flex-shrink:0}.timeline__dot:before{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(212,175,55,.15)}.timeline__box{flex:1;margin-left:1rem;border:1px solid rgba(212,175,55,.18);background:#d4af3709;padding:.9rem 1rem;text-align:left;position:relative}.timeline__box:before{content:"";position:absolute;left:-11px;top:12px;border:6px solid transparent;border-right-color:#d4af3733}.timeline__item--highlight .timeline__dot{background:#d4af371f;border-color:var(--c-gold-2)}.timeline__item--highlight .timeline__box{border-color:#d4af376b;background:#d4af3712}.timeline__year{font-family:var(--f-serif);font-size:.55rem;letter-spacing:.34em;color:var(--c-gold);margin-bottom:.25rem;text-transform:uppercase}.timeline__title{font-family:var(--f-body);font-size:1.05rem;color:var(--c-gold-2);margin-bottom:.28rem}.timeline__desc{font-size:.83rem;color:var(--c-text);font-style:italic;line-height:1.65}@media (min-width: 640px){.timeline{padding:0 .5rem}.timeline:before{left:50%;transform:translate(-50%)}.timeline__item{display:grid;grid-template-columns:1fr 40px 1fr;align-items:center;gap:0;margin-bottom:var(--sp-10)}.timeline__item--left .timeline__dot{grid-column:2;grid-row:1;margin:0 auto}.timeline__item--left .timeline__box{grid-column:1;grid-row:1;margin-left:0;margin-right:1rem;text-align:right}.timeline__item--left .timeline__box:before{display:none}.timeline__item--left .timeline__box:after{content:"";position:absolute;right:-11px;top:50%;transform:translateY(-50%);border:6px solid transparent;border-left-color:#d4af3733}.timeline__item--right .timeline__dot{grid-column:2;grid-row:1;margin:0 auto}.timeline__item--right .timeline__box{grid-column:3;grid-row:1;margin-left:1rem;text-align:left}.timeline__item--right .timeline__box:before{left:-11px;top:50%;transform:translateY(-50%)}}.map__wrap{margin:var(--sp-8) 0;border:1px solid var(--b-gold);overflow:hidden;position:relative}.map__placeholder{width:100%;height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:var(--c-text-dim);background:var(--c-navy-2);font-family:var(--f-serif);font-size:.72rem;letter-spacing:.2em}.map__wrap iframe{width:100%;height:360px;border:0;display:block;filter:sepia(.36) hue-rotate(180deg) saturate(.45) brightness(.76)}.map__btn{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.2rem;padding:.78rem 1.7rem;border:1px solid var(--c-gold);color:var(--c-gold);font-family:var(--f-serif);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;transition:background var(--t-base),color var(--t-base)}.map__btn:hover{background:var(--c-gold);color:var(--c-navy)}.rek__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-6);margin:var(--sp-8) 0}.rek__card{border:1px solid var(--b-gold);background:#080e1ee0;padding:2rem 1.7rem;text-align:center;position:relative}.rek__card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:var(--grad-gold)}.rek__card:after{content:"";position:absolute;bottom:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(212,175,55,.28),transparent)}.rek__card>*:first-child:before{content:"";position:absolute;top:8px;left:8px;width:16px;height:16px;border-top:1px solid rgba(212,175,55,.4);border-left:1px solid rgba(212,175,55,.4)}.rek__bank-icon{width:62px;height:62px;margin:0 auto .9rem;border-radius:50%;border:1px solid rgba(212,175,55,.35);background:#d4af3711;display:flex;align-items:center;justify-content:center;font-family:var(--f-serif);font-size:1rem;font-weight:600;color:var(--c-gold);letter-spacing:.08em}.rek__bank-name{font-family:var(--f-serif);font-size:.7rem;letter-spacing:.18em;color:var(--c-text-dim);text-transform:uppercase;margin-bottom:1.2rem}.rek__divider{width:55%;margin:.75rem auto 1.1rem;height:1px;background:linear-gradient(90deg,transparent,rgba(212,175,55,.38),transparent)}.rek__number{font-family:var(--f-serif);font-size:1.25rem;color:var(--c-gold-2);letter-spacing:.16em;margin-bottom:.38rem;background:#d4af370e;padding:.55rem .9rem;border:1px solid rgba(212,175,55,.16);display:inline-block}.rek__holder{font-size:.84rem;color:var(--c-text);margin-bottom:.75rem}.rek__copy-btn{padding:.5rem 1.3rem;border:1px solid rgba(212,175,55,.36);color:var(--c-gold);font-family:var(--f-serif);font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.4rem;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.rek__copy-btn:hover{background:#d4af371a}.rek__copy-btn.is-copied{color:#5cb85c;border-color:#5cb85c}.rek__card--qris{grid-column:1 / -1;max-width:320px;margin:0 auto}@media (min-width: 560px){.rek__card--qris{grid-column:auto;max-width:none}}.rek__bank-icon--qris{font-size:.8rem;letter-spacing:.06em;background:linear-gradient(135deg,#d4af3726,#d4af370d);border-color:var(--c-gold)}.rek__qris-wrap{width:170px;height:170px;margin:0 auto .6rem;border:1px solid rgba(212,175,55,.3);padding:8px;background:#fff;position:relative}.rek__qris-wrap:before,.rek__qris-wrap:after{content:"";position:absolute;width:18px;height:18px;border-color:var(--c-gold);border-style:solid}.rek__qris-wrap:before{top:3px;left:3px;border-width:2px 0 0 2px}.rek__qris-wrap:after{bottom:3px;right:3px;border-width:0 2px 2px 0}.rek__qris-img{width:100%;height:100%;object-fit:contain;display:block;image-rendering:pixelated}.rek__qris-fallback{display:none;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:#00000073;text-align:center;font-size:.65rem;line-height:1.5;padding:.5rem;background:#f8f8f8}.rek__qris-fallback code{font-size:.6rem;background:#0000000f;padding:1px 4px;border-radius:2px}.rek__grid{grid-template-columns:1fr}@media (min-width: 480px){.rek__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 820px){.rek__grid{grid-template-columns:repeat(3,1fr)}}.rsvp__form{max-width:460px;margin:var(--sp-8) auto 0;text-align:left}.rsvp__field{margin-bottom:1.3rem;position:relative}.rsvp__label{display:block;font-family:var(--f-serif);font-size:.58rem;letter-spacing:.28em;color:var(--c-gold);text-transform:uppercase;margin-bottom:.4rem}.rsvp__input,.rsvp__select,.rsvp__textarea{width:100%;background:#d4af370b;border:1px solid rgba(212,175,55,.27);color:var(--c-cream);font-family:var(--f-body);font-size:1rem;padding:.8rem .9rem;outline:none;transition:border-color var(--t-fast);appearance:none}.rsvp__input:focus,.rsvp__select:focus,.rsvp__textarea:focus{border-color:var(--c-gold)}.rsvp__input::placeholder,.rsvp__textarea::placeholder{color:#f4ebc845}.rsvp__textarea{height:110px;resize:vertical}.rsvp__select option{background:var(--c-navy-2)}.rsvp__error{display:block;font-size:.75rem;color:#e05555;margin-top:.3rem;min-height:1rem}.rsvp__char-count{display:block;font-size:.65rem;color:var(--c-text-dim);text-align:right;margin-top:.25rem;font-family:var(--f-serif);letter-spacing:.08em}.rsvp__submit{width:100%;padding:.95rem;background:transparent;border:1px solid var(--c-gold);color:var(--c-gold);font-family:var(--f-serif);font-size:.66rem;letter-spacing:.38em;text-transform:uppercase;position:relative;overflow:hidden;transition:color var(--t-base);display:flex;align-items:center;justify-content:center;gap:.6rem}.rsvp__submit:before{content:"";position:absolute;inset:0;background:var(--c-gold);transform:scaleX(0);transform-origin:left;transition:transform var(--t-base);z-index:-1}.rsvp__submit:hover:before,.rsvp__submit:focus-visible:before{transform:scaleX(1)}.rsvp__submit:hover,.rsvp__submit:focus-visible{color:var(--c-navy)}.rsvp__submit:disabled{opacity:.55;cursor:not-allowed}.rsvp__submit-loader{width:14px;height:14px;border-radius:50%;border:2px solid transparent;border-top-color:currentColor;animation:spin .6s linear infinite;display:none}.rsvp__submit.is-loading .rsvp__submit-text{display:none}.rsvp__submit.is-loading .rsvp__submit-loader{display:block}@keyframes spin{to{transform:rotate(360deg)}}.wall__list{max-height:420px;overflow-y:auto;margin:1.6rem 0;scrollbar-width:thin;scrollbar-color:var(--c-gold-3) transparent}.wall__list::-webkit-scrollbar{width:3px}.wall__list::-webkit-scrollbar-thumb{background:var(--c-gold-3)}.wall__item{padding:1.2rem;border-bottom:1px solid rgba(212,175,55,.09);text-align:left;animation:fade-up-soft .45s ease forwards}.wall__item:last-child{border-bottom:none}@keyframes fade-up-soft{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wall__sender{font-family:var(--f-serif);font-size:.68rem;color:var(--c-gold);letter-spacing:.16em;margin-bottom:.32rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.wall__badge{font-size:.54rem;padding:.1rem .45rem;border:1px solid var(--c-gold);border-radius:var(--r-full);opacity:.62}.wall__badge--absent{color:#888;border-color:#888}.wall__badge--maybe{color:var(--c-gold-3);border-color:var(--c-gold-3)}.wall__time{font-size:.58rem;color:#f4ebc842;margin-left:auto}.wall__msg{font-style:italic;color:var(--c-text);font-size:.9rem;line-height:1.7}.wall__empty{text-align:center;padding:1.8rem;color:var(--c-text-dim);font-style:italic;font-size:.9rem}.site-footer{text-align:center;padding:4.5rem var(--sp-6);background:var(--c-navy);position:relative;overflow:hidden}.site-footer__top-line{position:absolute;top:0;left:8%;right:8%;height:1px;background:var(--grad-gold)}.site-footer__flower{width:clamp(110px,26vw,180px);margin:0 auto 1.6rem;opacity:.52}.site-footer__names{font-family:var(--f-script);font-style:normal;font-size:clamp(2.6rem,7vw,4.8rem);color:var(--c-gold);opacity:.62}.site-footer__text{font-size:.82rem;color:var(--c-text-dim);margin-top:.85rem;font-style:italic;line-height:1.9}.site-footer__credit{font-size:.58rem;color:#d4af3733;margin-top:1.6rem;letter-spacing:.24em;font-family:var(--f-serif)}.music-player{position:fixed;bottom:1.3rem;right:1.3rem;z-index:var(--z-music)}.music-player__btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--c-gold);background:#080e1eeb;color:var(--c-gold);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);transition:background var(--t-fast);position:relative}.music-player__btn:hover{background:#d4af371a}.music-player__btn[aria-pressed=true]:before{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(212,175,55,.3);animation:music-ring 1.6s ease infinite}@keyframes music-ring{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.22);opacity:0}}.toast-container{position:fixed;bottom:4.5rem;left:50%;transform:translate(-50%);z-index:var(--z-toast);pointer-events:none}.toast{background:#080e1ef5;border:1px solid var(--c-gold);color:var(--c-gold);font-family:var(--f-serif);font-size:.66rem;letter-spacing:.18em;padding:.68rem 1.7rem;white-space:nowrap;pointer-events:none;animation:toast-in .3s ease forwards}.toast.is-leaving{animation:toast-out .3s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0;transform:translateY(-5px)}}@media (max-width: 480px){.section{padding:3rem var(--sp-4)}.section__inner{padding:0}.hero__flower{width:min(140px,44vw)}.hero__bismillah{font-size:1.4rem}.hero__names{font-size:clamp(2.8rem,10vw,4rem)}.hero__quote{font-size:.88rem}.couple__grid{grid-template-columns:1fr;gap:var(--sp-4)}.couple__and{order:1;font-size:2.8rem}.couple__card{order:0;padding:1.4rem 1rem}.couple__card:last-of-type{order:2}.couple__photo-ring{width:96px;height:96px}.couple__name-script{font-size:1.55rem}.couple__fullname{font-size:.66rem}.couple__parents{font-size:.82rem}.event__grid{grid-template-columns:1fr}.event__card{padding:1.5rem 1.1rem}.event__title{font-size:1.3rem}.event__detail{font-size:.86rem}.countdown__row{gap:.55rem}.countdown__num{font-size:1.9rem}.countdown__label{font-size:.46rem;letter-spacing:.32em}.countdown__sep{font-size:1.5rem}.map__wrap iframe,.map__placeholder{height:240px}.map__btn{width:100%;justify-content:center;padding:.85rem 1rem;min-height:48px}.rek__grid{grid-template-columns:1fr;gap:var(--sp-4)}.rek__card{padding:1.5rem 1rem}.rek__card--qris{max-width:100%;grid-column:auto}.rek__number{font-size:1rem;letter-spacing:.08em;padding:.5rem .7rem;word-break:break-all}.rek__bank-icon{width:54px;height:54px}.rek__copy-btn{width:100%;justify-content:center;min-height:48px;padding:.7rem 1rem}.rek__qris-wrap{width:150px;height:150px}.rsvp__form{margin-top:var(--sp-6)}.rsvp__input,.rsvp__select,.rsvp__textarea{font-size:1rem;padding:.78rem .85rem}.rsvp__submit{padding:.9rem 1rem;font-size:.6rem;min-height:48px}.wall__list{max-height:380px}.wall__msg{font-size:.86rem}.site-footer{padding:3rem var(--sp-4)}.site-footer__flower{width:100px}.site-footer__names{font-size:2.6rem}.music-player{bottom:1rem;right:1rem}.music-player__btn{width:44px;height:44px}.toast-container{left:var(--sp-4);right:var(--sp-4);transform:none}.toast{white-space:normal;text-align:center}}@media (max-width: 360px){.section{padding:2.6rem var(--sp-3)}.hero__names{font-size:2.6rem}.hero__bismillah{font-size:1.2rem}.countdown__num{font-size:1.7rem}.countdown__sep{display:none}.rek__number{font-size:.88rem}.section__heading{font-size:.95rem;letter-spacing:.1em}}
