/* Bali Sekar: reveal the split gates and keep the sunset free of extra bouquets. */
body.design-bali-sekar :is(.cover,.invitation-overture) .collection-backdrop{object-fit:fill!important;object-position:center!important;transform:none!important;animation:none!important}
body.design-bali-sekar .premium-theme-kit .kit-arrival{display:none!important}
body.design-bali-sekar .invitation-overture .overture-copy{background:transparent!important;box-shadow:none!important;isolation:isolate}
body.design-bali-sekar .invitation-overture .overture-copy:before{content:"";position:absolute;inset:-45px -15px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse closest-side,#fff2e4d9 0%,#fff2e48c 52%,#fff2e400 100%);border:0;border-radius:50%;box-shadow:none}
body.design-bali-sekar .cover .cover-content:before{background:radial-gradient(ellipse closest-side,#fff2e4d9 0%,#fff2e48c 52%,#fff2e400 100%)!important;border-radius:50%!important}

/* Start the camera push when the revealed scene becomes visible, not behind the transition. */
body.design-bali-sekar.invitation-open .invitation-overture .collection-backdrop{transform:none!important;transform-origin:50% 60%;animation:bali-sekar-camera-in 4s cubic-bezier(.22,1,.36,1) both!important}
@keyframes bali-sekar-camera-in{from{scale:1}to{scale:1.09}}
@media(prefers-reduced-motion:reduce){body.design-bali-sekar.invitation-open .invitation-overture .collection-backdrop{animation:none!important;scale:1!important}}

/* Keep every chapter in the same gate composition as the entrance. */
body.design-bali-sekar .inv-section .collection-backdrop{object-fit:fill!important;object-position:center!important;transform:none!important;scale:1.09;transform-origin:50% 60%;animation:none!important}
/* Override the legacy continuous-camera selector, which otherwise cancels this camera push. */
body.design-bali-sekar.tier-premium.premium-entrance-started.invitation-open .invitation-overture>.theme-scene .collection-backdrop{animation:bali-sekar-camera-in 4s cubic-bezier(.22,1,.36,1) both!important;transform:none!important;transform-origin:50% 60%}
@media(prefers-reduced-motion:reduce){body.design-bali-sekar.tier-premium.premium-entrance-started.invitation-open .invitation-overture>.theme-scene .collection-backdrop{animation:none!important;scale:1.09!important}}

/* Four individual leaves drift on clear water, never on paper-only chapters. */
.bali-sekar-water-leaves{display:none;position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none}
body.design-bali-sekar :is(.cover,.invitation-overture,#mempelai,#story-section,.closing)>.theme-scene>.bali-sekar-water-leaves{display:block}
.sekar-floating-leaf{position:absolute;left:var(--x);bottom:var(--y);width:var(--size);height:var(--size);animation:sekar-water-drift 9s var(--delay) ease-in-out infinite alternate}
.sekar-floating-leaf img{display:block;width:100%;height:100%;object-fit:contain;transform:rotate(-35deg) scaleY(.55);filter:brightness(.65) saturate(.65) sepia(.3) drop-shadow(0 2px 1px #47352466);opacity:.85}
.sekar-floating-leaf:nth-child(even) img{transform:rotate(40deg) scaleY(.55)}
.sekar-floating-leaf i{position:absolute;left:50%;top:50%;width:190%;height:55%;border:1px solid #eddbb770;border-radius:50%;translate:-50% -20%;animation:sekar-water-ripple 5s var(--delay) ease-out infinite}
body.design-bali-sekar .inv-section .bali-sekar-water-leaves{opacity:.6}
@keyframes sekar-water-drift{from{translate:-8px 0;rotate:-5deg}to{translate:10px -3px;rotate:6deg}}
@keyframes sekar-water-ripple{from{scale:.5;opacity:0}30%{opacity:.5}to{scale:1.4;opacity:0}}
body.design-bali-sekar.motion-pause .bali-sekar-water-leaves *,body.design-bali-sekar.page-asleep .bali-sekar-water-leaves *,body.design-bali-sekar .scene-asleep .bali-sekar-water-leaves *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.bali-sekar-water-leaves *{animation:none!important}.sekar-floating-leaf i{opacity:.2}}

body.design-bali-sekar .sekar-floating-flower img{transform:rotate(-15deg) scaleY(.65);filter:brightness(.78) saturate(.7) drop-shadow(0 2px 1px #47352466);opacity:.85}

/* Flowers bob on a small moving patch of water, with two outward ripples. */
body.design-bali-sekar .sekar-floating-flower{animation:sekar-flower-float 6.4s var(--delay) ease-in-out infinite alternate}
body.design-bali-sekar .sekar-floating-flower img{animation:sekar-flower-bob 3.2s var(--delay) ease-in-out infinite alternate}
body.design-bali-sekar .sekar-floating-flower i{width:270%;height:85%;border-color:#f5e3ba8c;box-shadow:0 2px 4px #6a4d2420;animation:sekar-flower-wave 3.6s var(--delay) ease-out infinite}
body.design-bali-sekar .sekar-floating-flower i:after{content:"";position:absolute;inset:-4px -10px;border:1px solid #f7e8c680;border-radius:50%;animation:sekar-flower-wave 3.6s calc(var(--delay) + 1.8s) ease-out infinite}
@keyframes sekar-flower-float{from{translate:-13px 1px;rotate:-7deg}to{translate:14px -5px;rotate:8deg}}
@keyframes sekar-flower-bob{from{transform:rotate(-12deg) scaleY(.62) translateY(1px)}to{transform:rotate(7deg) scaleY(.7) translateY(-2px)}}
@keyframes sekar-flower-wave{0%{scale:.45;opacity:0}18%{opacity:.65}100%{scale:1.65;opacity:0}}
body.design-bali-sekar.motion-pause .sekar-floating-flower i:after,body.design-bali-sekar.page-asleep .sekar-floating-flower i:after,body.design-bali-sekar .scene-asleep .sekar-floating-flower i:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body.design-bali-sekar .sekar-floating-flower i:after{animation:none!important;opacity:.12}}
