/* Gerakan dekoratif mengikuti urutan pembuka referensi. */
.hero-motion{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.67);pointer-events:none;z-index:1}
.hero.motion-fallback .hero-motion{display:none}
.hero .hero-copy{z-index:3}
.hero-copy>*{opacity:0;transform:translateY(24px) scale(.91)}
.is-open .hero-copy>*{animation:none;opacity:0}
.is-open .hero.names-visible .hero-copy>*{animation:hero-name-in 1.4s cubic-bezier(.16,.75,.2,1) both}
.is-open .hero.names-visible .hero-copy>h2{animation-delay:.22s}
.is-open .hero.names-visible .hero-copy>.hero-date{animation-delay:.48s}
.hero .hero-flower{z-index:4;animation-duration:4.8s;animation-name:flower-breathe}
.hero .scroll-cue{z-index:6;opacity:0;transition:opacity .9s}
.hero.names-visible .scroll-cue{opacity:1}
.hero-flower{transition:opacity 1.1s;opacity:0}
.hero.names-visible .hero-flower{opacity:1}
.poster-image{animation:poster-pan 25s ease-in-out infinite alternate}
.cover.is-opening .cover-image{animation:cover-exit 1.5s cubic-bezier(.2,.7,.2,1) both}
.cover-top>*{animation:cover-text-in 1.1s both}
.cover-top>h1{animation-delay:.2s}.cover-top>.fine-line{animation-delay:.4s}
.cover-bottom>*{animation:cover-text-in 1.1s both;animation-delay:.35s}
.cover-bottom>h2{animation-delay:.5s}.cover-bottom>.button{animation-delay:.65s}
.cover:not(.is-opening) .cover-button{box-shadow:0 0 0 0 #f3e4c933;animation:cover-text-in 1.1s .65s both,invite-pulse 3.5s 2s infinite}
.motion-group>.motion-item{opacity:0;transform:translate3d(0,30px,0) scale(.97);transition:opacity .9s ease,transform 1.1s cubic-bezier(.16,.7,.2,1);transition-delay:0s}
.motion-group.in-view>.motion-item{opacity:1;transform:translate3d(0,0,0) scale(1);transition-delay:var(--enter-delay,0s)}
.motion-group .motion-item.title-motion{transform:translate3d(0,22px,0) scale(.85)}
.motion-group.in-view .motion-item.title-motion{transform:translate3d(0,0,0) scale(1)}
.countdown.motion-group>.motion-item{transform:translate3d(0,24px,0) scale(.7);transition-timing-function:cubic-bezier(.2,.9,.3,1.2)}
.countdown.motion-group.in-view>.motion-item{transform:translate3d(0,0,0) scale(1)}
.event-card.motion-group{opacity:0;transform:translateY(45px) scale(.94);transition:opacity 1s,transform 1.2s cubic-bezier(.16,.7,.2,1)}
.event-card.motion-group.in-view{opacity:1;transform:translateY(0) scale(1)}
.gift-card.reveal:nth-of-type(even){transform:translateX(35px) rotate(2deg)}
.gift-card.reveal:nth-of-type(odd){transform:translateX(-35px) rotate(-2deg)}
.gift-card.reveal.in-view{transform:translateX(0) rotate(0)}
.couple-art.reveal{transform:translateY(55px) scale(.86);transition-duration:1.15s}
.couple-art.reveal.in-view{transform:translateY(0) scale(1)}
.together-portrait{animation:portrait-float 7s ease-in-out infinite;translate:0 var(--portrait-lift,0px)}
.couple-wayang{animation-name:wayang-sway;animation-duration:5.5s}
.couple-wayang.right{animation-direction:alternate-reverse;animation-duration:6.2s}
.together-flower{transform-origin:50% 100%;animation:flower-breathe 5s ease-in-out infinite alternate}
.together-flower.right{animation-duration:6.5s;animation-direction:alternate-reverse}
.small-gunungan{animation:gunungan-sway 5.5s ease-in-out infinite alternate;transform-origin:50% 0}
.closing-gunungan{animation:gunungan-sway 6s ease-in-out infinite alternate;transform-origin:50% 70%}
.panel-motif{animation:motif-drift 9s ease-in-out infinite alternate}
.floating-petals{position:absolute;z-index:5;inset:0;overflow:hidden;pointer-events:none}
.floating-petals span{position:absolute;left:var(--petal-x);top:-24px;width:5px;height:9px;border-radius:80% 0 80% 0;background:#f3e4c9;opacity:0;animation:petal-fall var(--petal-duration) var(--petal-delay) linear infinite}
.floating-petals span:nth-child(2n){background:#babf94;width:4px;height:7px}
.floating-petals span:nth-child(3n){background:#bfa28c}
.scene:not(.is-visible) .floating-petals span,.scene:not(.is-visible) .together-portrait,.scene:not(.is-visible) .couple-wayang,.scene:not(.is-visible) .together-flower,.scene:not(.is-visible) .panel-motif,.scene:not(.is-visible) .small-gunungan,.scene:not(.is-visible) .closing-gunungan,.scene:not(.is-visible) .hero-flower,.scene:not(.is-visible) .hero-art{animation-play-state:paused}
.page-hidden *,.page-hidden *:before,.page-hidden *:after{animation-play-state:paused!important}
@keyframes hero-name-in{from{opacity:0;transform:translateY(22px) scale(.78)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes cover-text-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes cover-exit{to{transform:scale(1.18)}}
@keyframes poster-pan{from{transform:scale(1.01) translateY(0)}to{transform:scale(1.06) translateY(-6px)}}
@keyframes invite-pulse{0%,100%{box-shadow:0 0 0 0 #f3e4c933}65%{box-shadow:0 0 0 10px #f3e4c900}}
@keyframes portrait-float{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-7px) rotate(.5deg)}}
@keyframes wayang-sway{from{rotate:-8deg;translate:-3px 2px}to{rotate:6deg;translate:3px -3px}}
@keyframes flower-breathe{from{rotate:-7deg;scale:.97}to{rotate:6deg;scale:1.04}}
@keyframes gunungan-sway{from{rotate:-5deg;translate:0 0}to{rotate:5deg;translate:0 -4px}}
@keyframes motif-drift{from{translate:0 -2px}to{translate:0 5px}}
@keyframes petal-fall{0%{transform:translate3d(-10px,-12px,0) rotate(0);opacity:0}8%{opacity:.6}80%{opacity:.45}100%{transform:translate3d(45px,var(--petal-distance,820px),0) rotate(300deg);opacity:0}}
html[data-motion="reduced"] .hero-motion,html[data-motion="reduced"] .floating-petals{display:none}html[data-motion="reduced"] .motion-group>.motion-item,html[data-motion="reduced"] .motion-group .motion-item.title-motion,html[data-motion="reduced"] .event-card.motion-group,html[data-motion="reduced"] .couple-art.reveal,html[data-motion="reduced"] .gift-card.reveal,html[data-motion="reduced"] .hero-copy>*{opacity:1!important;transform:none!important}html[data-motion="reduced"] .hero .hero-flower,html[data-motion="reduced"] .hero .scroll-cue{opacity:1}html[data-motion="reduced"] .together-portrait{translate:0 0}
.motion-toggle{position:fixed;z-index:30;right:19px;bottom:65px;width:33px;height:33px;border:1px solid #f3e4c980;border-radius:50%;background:#a98b76e8;color:var(--paper);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .5s,background .3s}.motion-toggle svg{width:19px;height:19px}.is-open .motion-toggle{opacity:1;pointer-events:auto}.motion-toggle[aria-pressed="false"]{background:#625240e8}.motion-toggle:hover{background:#87906a}@media(max-width:800px){.motion-toggle{right:max(19px,calc((100vw - 500px)/2 + 19px))}}
