:root{--ink: #3d0f1c;--pink: #8b1e3f;--pink-2: #f08a3c;--pink-soft: #ffe2c4;--yellow: #ffc93c;--yellow-soft: #fff3c4;--cream: #fffaf0;--muted: #7d5a4f;--grad: linear-gradient(90deg, #8b1e3f, #d9531e 35%, #f0a020 65%, #8b1e3f);--shadow: 5px 5px 0 var(--ink);--spring: linear(0, .009, .035 2.1%, .141, .281 6.7%, .723 12.9%, .938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .974 53.8%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1);--smooth: cubic-bezier(.22, 1, .36, 1);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}html{overflow-x:hidden;overflow-x:clip}body{margin:0;overflow-x:clip;max-width:100%;font-family:Fredoka,system-ui,sans-serif;color:var(--ink);background:linear-gradient(180deg,#fff7dc,#fff0dc,#fff4d6);overflow-x:hidden}.script{font-family:Great Vibes,cursive;font-weight:400}.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.85rem;font-weight:600;margin:0}.muted{color:var(--muted)}.amp{color:var(--pink);display:inline-block}.pill{display:inline-block;background:#fff;border:2.5px solid var(--ink);border-radius:999px;padding:6px 18px;font-weight:600;box-shadow:3px 3px 0 var(--ink)}.pill.small{font-size:.75rem;padding:2px 10px;box-shadow:none;border-width:2px}.glass{background:#ffffff8c;-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5)}.btn{position:relative;overflow:hidden;font:inherit;font-weight:600;font-size:1.05rem;background:var(--grad);background-size:200% auto;color:#fff;text-shadow:0 1px 2px rgba(61,15,28,.35);border:3px solid var(--ink);border-radius:999px;padding:12px 28px;box-shadow:var(--shadow);cursor:pointer;text-decoration:none;display:inline-block;transition:transform .4s var(--spring),box-shadow .2s,background-position .6s var(--smooth)}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translate(-120%);transition:transform .7s var(--smooth)}.btn:hover{transform:translate(-2px,-3px) scale(1.03);box-shadow:7px 8px 0 var(--ink);background-position:100% center}.btn:hover:before{transform:translate(120%)}.btn:active{transform:translate(3px,3px) scale(.98);box-shadow:2px 2px 0 var(--ink)}.btn.small{font-size:.9rem;padding:8px 18px}.card{position:relative;background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:var(--shadow);padding:22px}.blobs{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.blobs span{position:absolute;width:60vmax;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--c) 0%,color-mix(in srgb,var(--c) 55%,transparent) 45%,transparent 100%);opacity:.75;will-change:transform;animation:blob 18s ease-in-out infinite alternate}.blobs span:nth-child(1){--c: #ffd23f;top:-24%;left:-20%}.blobs span:nth-child(2){--c: #f08a3c;top:4%;right:-26%;animation-duration:22s;animation-delay:-6s}.blobs span:nth-child(3){--c: #ffb36b;bottom:-28%;left:12%;animation-duration:26s;animation-delay:-12s;opacity:.6}.blobs span:nth-child(4){--c: #b8324f;bottom:4%;left:-26%;width:40vmax;animation-duration:20s;animation-delay:-3s;opacity:.45}@keyframes blob{0%{transform:translateZ(0) scaleY(.9)}50%{transform:translate3d(6vw,4vh,0) scaleX(1.12)}to{transform:translate3d(-4vw,8vh,0) scale(.92,1.08)}}.cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:16px;text-align:center;overflow:hidden;background:linear-gradient(160deg,#fff2c2,#ffd6a8);touch-action:none;overscroll-behavior:contain}.cover>*:not(.blobs){position:relative;z-index:1}.cover-names{font-size:clamp(3rem,12vw,5.5rem);margin:0;line-height:1.1}.cover-guest p{margin:2px 0}.cover-guest strong{font-size:1.4rem}.envelope{width:min(280px,80vw);aspect-ratio:14 / 9;margin:16px 0;cursor:pointer;perspective:800px;background:#f08a3c;border:3px solid var(--ink);border-radius:12px;box-shadow:var(--shadow);animation:float-env 3s ease-in-out infinite}.envelope-card{position:absolute;left:8%;right:8%;top:8%;height:84%;background:#fffaf0;border:2px solid var(--ink);border-radius:8px;z-index:2;display:grid;place-items:start center;padding-top:10px;font-size:1.6rem;color:var(--pink);transition:transform .9s var(--spring) .45s}.envelope-front{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;background:linear-gradient(160deg,#ffb070,#ffd56b);border-radius:9px;clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%)}.envelope-flap{position:absolute;top:0;left:0;right:0;height:60%;z-index:4;background:#ffe28a;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;transition:transform .5s ease-in,z-index 0s .25s}.envelope-seal{position:absolute;left:50%;top:58%;translate:-50% -50%;z-index:5;width:46px;height:46px;border-radius:50%;background:var(--pink);color:#fff;border:3px solid var(--ink);display:grid;place-items:center;animation:heartbeat 1.4s ease-in-out infinite;transition:opacity .2s}.cover.is-opening .envelope{animation:none}.cover.is-opening .envelope-seal{opacity:0}.cover.is-opening .envelope-flap{transform:rotateX(180deg);z-index:1}.cover.is-opening .envelope-card{transform:translateY(-62%)}.cover.is-opening{animation:cover-out .6s var(--smooth) 1.05s forwards}@keyframes float-env{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-10px) rotate(1.5deg)}}@keyframes heartbeat{0%,to{scale:1}15%{scale:1.18}30%{scale:.95}45%{scale:1.1}}@keyframes cover-out{to{opacity:0;transform:scale(1.08);filter:blur(12px);visibility:hidden}}.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;overflow:hidden;background:linear-gradient(180deg,#fff1bf,#ffe6c9 38%,#ffdcae 72%,#ffcf9e);text-align:center}.hero-text{position:relative;z-index:2;padding:7svh 16px 0}.hero-names{font-size:clamp(3.4rem,13vw,7rem);margin:4px 0 12px;line-height:1.05;text-shadow:3px 3px 0 #fff}.word{display:inline-block;padding:0 .18em;margin:0 -.18em}.sky{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.sun{position:absolute;top:5%;right:6%;width:clamp(70px,12vw,120px);filter:drop-shadow(0 0 24px rgba(255,176,32,.55))}.sun-rays{transform-box:fill-box;transform-origin:center;animation:spin 18s linear infinite}.cloud{position:absolute;left:0;animation:drift linear infinite;filter:drop-shadow(0 8px 12px rgba(139,30,63,.18))}.bird{position:absolute;left:0;width:34px;animation:fly linear infinite,bird-flap .35s ease-in-out infinite alternate}@keyframes bird-flap{0%{scale:1 1}to{scale:1 -.6}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drift{0%{transform:translate(-200px)}to{transform:translate(110vw)}}@keyframes fly{0%{transform:translate(-60px)}50%{transform:translate(50vw,-30px)}to{transform:translate(110vw,10px)}}@keyframes flap{0%{transform:scaleY(1)}to{transform:scaleY(-.6)}}.hills{position:absolute;bottom:0;left:0;width:100%;height:24svh;z-index:1}.stage{position:relative;z-index:2;margin-top:auto;margin-bottom:max(5svh,76px);width:min(440px,88vw,46svh)}.arch{display:block;width:100%;transform-origin:50% 100%}.arch-flower{transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.14)}}.couple{position:absolute;left:0;right:0;bottom:-2%;display:flex;justify-content:center;align-items:flex-end}.couple .character{width:37%}.is-open .hero .eyebrow{animation:fade-down .9s var(--smooth) 1.15s backwards}.is-open .hero .w1{animation:write 1.1s cubic-bezier(.65,0,.35,1) 1.35s backwards}.is-open .hero .amp{animation:amp-pop 1s var(--spring) 2.25s backwards}.is-open .hero .w2{animation:write 1.1s cubic-bezier(.65,0,.35,1) 2.4s backwards}.is-open .hero .pill{animation:fade-up .9s var(--spring) 3.2s backwards}.is-open .arch{animation:grow-up 1.2s var(--spring) 1.2s backwards}.is-open .enter-left{animation:hop-left 1.1s var(--smooth) 1.7s backwards}.is-open .enter-right{animation:hop-right 1.1s var(--smooth) 1.9s backwards}@keyframes fade-down{0%{opacity:0;transform:translateY(-20px);filter:blur(6px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(24px) scale(.9);filter:blur(6px)}}@keyframes write{0%{clip-path:inset(-30% 100% -30% -10%)}to{clip-path:inset(-30% -10% -30% -10%)}}@keyframes amp-pop{0%{opacity:0;transform:scale(0) rotate(-40deg)}}@keyframes grow-up{0%{opacity:0;transform:scale(.4,.1)}}@keyframes hop-left{0%{opacity:0;transform:translate(-90%)}50%{opacity:1;transform:translate(-30%,-18%)}75%{transform:translate(0) scale(1.05,.95)}}@keyframes hop-right{0%{opacity:0;transform:translate(90%)}50%{opacity:1;transform:translate(30%,-18%)}75%{transform:translate(0) scale(1.05,.95)}}.character{display:block;position:relative}.character svg{display:block;width:100%;height:auto;overflow:visible}.character .char-base{position:relative}.character .layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.char-bob{display:block;position:relative;animation:bob 2.2s ease-in-out infinite;will-change:transform}.bob-delay{animation-delay:-1.1s}.layer-wave{transform-origin:74.5% 44.7%;animation:wave .7s ease-in-out infinite alternate;will-change:transform}.layer-dance-l{transform-origin:36% 42.1%;animation:dance-l 2.8s ease-in-out infinite;will-change:transform}.layer-dance-r{transform-origin:64% 42.1%;animation:dance-r 2.8s ease-in-out infinite;will-change:transform}.blink{transform-box:fill-box;transform-origin:center;animation:blink 4s infinite}.skirt{transform-box:fill-box;transform-origin:50% 0;animation:sway 2.6s ease-in-out infinite alternate}.hand-flick{transform-box:fill-box;transform-origin:50% 30%;animation:flick 1.4s ease-in-out infinite alternate}.layer-dance-r .hand-flick{animation-delay:-.7s}.melati{transform-box:fill-box;transform-origin:50% 0;animation:melati 2.8s ease-in-out infinite alternate}.melati-r{animation-delay:-1.4s}.twinkle{transform-box:fill-box;transform-origin:center;animation:twinkle 2.4s ease-in-out infinite}.mentul{transform-box:fill-box;transform-origin:50% 100%;animation:mentul 1.4s ease-in-out infinite alternate}@keyframes mentul{0%{transform:translateY(0) rotate(-6deg)}to{transform:translateY(-2px) rotate(6deg)}}@keyframes bob{50%{transform:translateY(-6px)}}@keyframes blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes wave{0%{transform:rotate(-14deg)}to{transform:rotate(16deg)}}@keyframes sway{0%{transform:skew(-2.5deg)}to{transform:skew(2.5deg)}}@keyframes dance-l{0%,to{transform:rotate(0)}30%{transform:rotate(14deg)}60%{transform:rotate(-4deg)}}@keyframes dance-r{0%,to{transform:rotate(0)}30%{transform:rotate(4deg)}60%{transform:rotate(-14deg)}}@keyframes flick{0%{transform:rotate(-18deg)}to{transform:rotate(22deg)}}@keyframes melati{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes twinkle{0%,to{transform:scale(0) rotate(0);opacity:0}50%{transform:scale(1) rotate(90deg);opacity:1}}.hearts{position:absolute;left:35%;width:30%;bottom:40%;height:70%;pointer-events:none}.hearts span{position:absolute;bottom:0;color:var(--pink);opacity:0;animation:rise 4.2s ease-out infinite}@keyframes rise{0%{transform:translateY(0) scale(.4);opacity:0}15%{opacity:1}to{transform:translateY(-160px) translate(10px) scale(1.15);opacity:0}}.petals{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;overflow:hidden}.petals span{position:absolute;top:-20px;border-radius:150% 0;opacity:.85;animation-name:fall,sway-x;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite;animation-direction:normal,alternate}@keyframes fall{to{transform:translateY(110vh) rotate(540deg)}}@keyframes sway-x{0%{translate:-30px 0}to{translate:30px 0}}.progress{display:none}.marquee{position:relative;z-index:3;width:104%;margin:-14px 0 0 -2%;background:var(--ink);color:var(--yellow);border-block:3px solid var(--ink);rotate:-1.5deg;overflow:hidden;padding:16px 0;font-weight:600;font-size:1.15rem;letter-spacing:.08em}.marquee:before,.marquee:after{content:"";position:absolute;left:0;right:0;height:7px;background:conic-gradient(from 135deg at 50% 0,#f2c14e 90deg,transparent 0) 0 0 / 14px 7px repeat-x}.marquee:before{top:0}.marquee:after{bottom:0;transform:scaleY(-1)}.marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite}.marquee-track span{white-space:pre;padding-right:0}@keyframes marquee{to{transform:translate(-50%)}}.section{position:relative;padding:90px 16px;text-align:center;max-width:980px;margin:0 auto}.section.alt{max-width:none;background-color:#ffd6a08c;background-image:radial-gradient(rgba(255,201,60,.55) 2px,transparent 2.5px);background-size:28px 28px}.title{font-family:Great Vibes,cursive;font-weight:400;font-size:clamp(2.8rem,8vw,4rem);margin:0 0 8px;padding:0 .25em;background:var(--grad);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}@keyframes shimmer{to{background-position:200% center}}.quote{max-width:640px;margin:0 auto 6px;font-size:1.1rem;line-height:1.7;font-style:italic}#couple .title{margin-top:56px}.tilt{transition:transform .6s var(--spring)}.tilt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),rgba(255,236,160,.55),transparent 50%);opacity:0;transition:opacity .3s}.reveal{opacity:0;transform:translateY(40px) scale(.97);filter:blur(10px);transition:opacity .9s var(--smooth),transform 1.1s var(--spring),filter .9s var(--smooth)}.reveal.from-left{transform:translate(-60px) rotate(-4deg)}.reveal.from-right{transform:translate(60px) rotate(4deg)}.reveal.visible{opacity:1;transform:none;filter:none}.tilt.is-tilting{transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(-4px);transition:transform .12s ease-out}.tilt.is-tilting:after{opacity:1}.profiles{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin-top:28px}.profile h3{font-size:2.2rem;margin:14px 0 6px;line-height:1.15}.profile p{margin:0}.avatar{width:170px;height:170px;margin:0 auto;border-radius:50%;border:3px solid var(--ink);background:linear-gradient(160deg,#fff1bf,#ffcf9e);overflow:hidden;display:grid;place-items:end center}.avatar .character,.avatar .char-bob{width:100%;height:100%}.avatar .character svg{height:100%}.avatar .layer-wave,.avatar .char-bob{animation:none}.profile:hover .avatar{animation:jelly .7s}@keyframes jelly{30%{transform:scale(1.12,.9)}50%{transform:scale(.92,1.08)}70%{transform:scale(1.04,.97)}}.big-amp{font-size:5rem;color:var(--pink);animation:heartbeat 2.4s ease-in-out infinite}.countdown{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:28px}.count-box{width:104px;padding:16px 8px;display:flex;flex-direction:column;overflow:hidden}.count-num{display:inline-block;font-size:2.5rem;font-weight:700;color:var(--pink);animation:roll .55s var(--spring)}.count-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}@keyframes roll{0%{transform:translateY(-70%);opacity:0;filter:blur(4px)}}.timeline{position:relative;max-width:620px;margin:36px auto 0;text-align:left}.timeline:before{content:"";position:absolute;left:27px;top:0;bottom:0;border-left:3px dashed var(--pink-2)}.timeline-item{position:relative;display:flex;gap:18px;margin-bottom:26px}.timeline-icon{flex:none;width:56px;height:56px;border-radius:50%;background:linear-gradient(140deg,#ffe17a,#ff9f4a);border:3px solid var(--ink);display:grid;place-items:center;font-size:1.6rem;z-index:1}.timeline-item .card{flex:1;padding:16px 20px}.timeline-item h3{margin:8px 0 4px}.timeline-item p{margin:0}.events{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px;max-width:760px;margin:32px auto 0}.event p{margin:8px 0}.event h3{font-size:1.5rem;margin:6px 0 12px}.event-icon{font-size:2.6rem;display:inline-block;animation:bob 2s ease-in-out infinite}.rsvp{max-width:480px;margin:28px auto 0;display:grid;gap:14px;text-align:left}.rsvp label{display:grid;gap:6px;font-weight:600}.rsvp input,.rsvp select,.rsvp textarea{font:inherit;font-weight:400;padding:10px 14px;border:2.5px solid var(--ink);border-radius:14px;background:var(--cream);color:var(--ink);transition:box-shadow .25s,transform .25s var(--spring)}.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{outline:none;box-shadow:0 0 0 4px #8b1e3f59;transform:translateY(-1px)}.rsvp .btn{justify-self:center}.wishes{max-width:480px;margin:28px auto 0;display:grid;gap:14px;text-align:left}.wish{padding:14px 18px;box-shadow:3px 3px 0 var(--ink);animation:fade-up .6s var(--spring) backwards}.wish p{margin:6px 0 0}.footer{position:relative;overflow:hidden;text-align:center;padding:40px 16px 120px;background:linear-gradient(160deg,#6e1630,#3d0c1a);color:#fff}.footer-couple{display:flex;justify-content:center}.footer-couple .character{height:170px;width:auto;aspect-ratio:200 / 380}.footer h2{font-size:3.2rem;margin:6px 0 0;background:linear-gradient(90deg,#ffd166,#ff9f4a 35%,#fff3c4 65%,#ffd166);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}.nav{position:fixed;bottom:14px;left:50%;transform:translate(-50%);z-index:50;display:flex;gap:4px;border:2px solid rgba(255,255,255,.85);border-radius:999px;padding:6px 8px;box-shadow:0 12px 32px #8b1e3f47,inset 0 1px #fff;animation:nav-in .8s var(--spring) backwards}.nav a{font-size:1.3rem;text-decoration:none;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;transition:background .3s,transform .4s var(--spring),box-shadow .3s}.nav a:hover{transform:translateY(-5px) scale(1.12)}.nav a.active{background:linear-gradient(140deg,#ffe17a,#f08a3c);box-shadow:0 4px 12px #8b1e3f59;transform:scale(1.1)}@keyframes nav-in{0%{transform:translate(-50%,120%);opacity:0}}.bismillah{font-family:Amiri,Traditional Arabic,serif;font-size:clamp(1.5rem,6vw,2rem);line-height:1.8;margin:0;color:var(--ink)}.bismillah.big{font-size:clamp(1.9rem,7vw,2.8rem);color:#8b1e3f}.salam{font-size:1.25rem;font-weight:600;margin:10px 0 8px}.intro{max-width:600px;margin:0 auto;line-height:1.7}.divider{color:var(--pink);letter-spacing:.6em;margin:28px 0;font-size:1.2rem}.gift-emoji{font-size:4.5rem;display:inline-block;margin-bottom:4px;animation:gift-shake 2.4s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(139,30,63,.35))}@keyframes gift-shake{0%,70%,to{transform:rotate(0) scale(1)}75%{transform:rotate(-12deg) scale(1.1)}82%{transform:rotate(12deg) scale(1.1)}89%{transform:rotate(-6deg)}}.gift-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;max-width:860px;margin:30px auto 0}.gift-card{z-index:41;flex:1 1 240px;max-width:270px;animation:card-in .7s var(--spring) backwards}.gift-card:nth-child(2){animation-delay:.08s}.gift-card:nth-child(3){animation-delay:.16s}.gift-card:nth-child(4){animation-delay:.24s}.gift-card:nth-child(5){animation-delay:.32s}.gift-card h3{margin:10px 0 4px;font-size:1.3rem}.gift-card p{margin:4px 0 12px}.account-number{font-size:1.5rem;font-weight:700;letter-spacing:.06em;color:var(--pink)}.qris{width:100%;max-width:220px;border-radius:12px;border:2px solid var(--ink);margin-top:10px}@keyframes card-in{0%{opacity:0;transform:translateY(24px) scale(.9);filter:blur(6px)}}@supports (animation-timeline: scroll()){.progress{display:block;position:fixed;top:0;left:0;right:0;height:4px;z-index:150;background:var(--grad);transform-origin:0 50%;animation:progress linear both;animation-timeline:scroll(root)}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero .sky,.hero .blobs,.hero-text,.stage{animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);animation-range:0 100vh}.hero .sky{animation-name:par-down}.hero .blobs{animation-name:par-down-slow}.hero-text{animation-name:par-text}.stage{animation-name:par-stage}@keyframes par-down{to{transform:translateY(140px)}}@keyframes par-down-slow{to{transform:translateY(60px) scale(1.1)}}@keyframes par-text{to{transform:translateY(-140px);opacity:0}}@keyframes par-stage{to{transform:translateY(-50px) scale(1.06)}}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none;filter:none}.petals,.progress{display:none}}.venue{max-width:760px;margin:30px auto 0}.venue h3{font-size:1.4rem;margin:0 0 4px}.venue>p{margin:0 0 16px}.event .pill.small{margin-top:4px}.map{position:relative;aspect-ratio:16 / 9;border:3px solid var(--ink);border-radius:18px;overflow:hidden;margin-bottom:16px;background:var(--yellow-soft)}.map iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}@media(max-width:640px){.map{aspect-ratio:4 / 3}}.glint{animation:glint 3.5s ease-in-out infinite}@keyframes glint{0%,70%,to{opacity:0}80%{opacity:1}}.qr{display:inline-block;padding:6px;margin:6px 0 2px;background:#fff;border:2.5px solid var(--ink);border-radius:14px;line-height:0;box-shadow:3px 3px 0 var(--pink-2)}.janur>g,.janur>path:first-of-type{transform-box:fill-box;transform-origin:50% 0;animation:melati 3s ease-in-out infinite alternate}.meadow{position:absolute;left:0;right:0;bottom:0;height:24svh;z-index:1;pointer-events:none}.meadow-flower{position:absolute;transform-origin:50% 100%;animation:flower-sway ease-in-out infinite alternate}.stem-flower{display:block;width:100%;overflow:visible}@keyframes flower-sway{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.bush{position:absolute;bottom:-6px;z-index:1;width:clamp(150px,24vw,300px);pointer-events:none}.bush-left{left:-3%}.bush-right{right:-3%;transform:scaleX(-1)}.bush-bloom{transform-box:fill-box;transform-origin:center;animation:pulse 3s ease-in-out infinite}.section{isolation:isolate}.floral-corner{position:absolute;z-index:-1;width:clamp(110px,18vw,200px);opacity:.55;pointer-events:none}.fc-tl{top:0;left:0;transform-origin:0 0}.fc-br{bottom:0;right:0;transform-origin:50% 50%;rotate:180deg}.cover .floral-corner{position:absolute;z-index:0;opacity:.8;width:clamp(140px,26vw,260px)}@media(max-width:640px){.section{padding:64px 16px}.card{padding:18px;border-radius:20px}.hero-text{padding-top:11svh}.hero-names{font-size:clamp(3rem,15vw,4.4rem)}.stage{width:min(96vw,55svh);margin-bottom:92px}.bush{width:34vw;min-width:0}.marquee{font-size:.95rem;padding:13px 0}.profiles{grid-template-columns:1fr;gap:12px}.big-amp{font-size:3.5rem;line-height:1}.avatar{width:148px;height:148px}.profile h3{font-size:1.9rem}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:420px;margin-inline:auto}.count-box{width:auto;padding:12px 2px;border-radius:16px;box-shadow:3px 3px 0 var(--ink)}.count-num{font-size:1.7rem}.count-label{font-size:.62rem;letter-spacing:.04em}.timeline-icon{width:46px;height:46px;font-size:1.3rem}.timeline:before{left:22px}.timeline-item{gap:12px}.events{gap:18px}.event-icon{font-size:2rem}.event h3{font-size:1.3rem;margin:4px 0 8px}.venue h3{font-size:1.2rem}.gift-emoji{font-size:3.4rem}.gift-card{max-width:320px}.floral-corner{width:84px;opacity:.45}.nav{padding:4px 6px;gap:2px;bottom:10px}.nav a{width:40px;height:40px;font-size:1.15rem}.footer h2{font-size:2.6rem}.footer-couple .character{height:140px}}.petals span,.cloud,.bird,.meadow-flower,.marquee-track,.hearts span{will-change:transform}.offscreen,.offscreen *{animation-play-state:paused!important}@media(max-width:768px),(pointer:coarse){.reveal{filter:none!important;transition:opacity .8s var(--smooth),transform .9s var(--spring)}.wish,.gift-card{animation-name:none}.glass,.nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffaf0f0}.sun,.cloud,.gift-emoji{filter:none}.arch-flower,.bush-bloom,.janur>g,.janur>path:first-of-type{animation:none}.title,.footer h2{animation:none}.blobs span:nth-child(4){display:none}@keyframes card-in{0%{opacity:0;transform:translateY(24px) scale(.9)}}}@media(max-width:768px),(pointer:coarse){.blink,.skirt,.melati,.twinkle,.hand-flick,.glint,.sun-rays,.mentul{animation:none}.sun{animation:sun-bob 4s ease-in-out infinite alternate;will-change:transform}@keyframes sun-bob{0%{transform:translateY(0) rotate(-6deg)}to{transform:translateY(6px) rotate(6deg)}}@keyframes par-stage{to{transform:translateY(-50px)}}@keyframes par-down-slow{to{transform:translateY(60px)}}}main.is-waiting{visibility:hidden}main.is-waiting,main.is-waiting *{animation-play-state:paused!important}
