/* Puspita owns its scenery and choreography; Standard Jawa is independent. */
.design-puspita{--color:#604328;--paper:#faf1df;--entrance-duration:11s;--entrance-reveal-delay:8.2s;--entrance-chapter-duration:7s}
.keraton-pendopo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;animation:keraton-depth 22s ease-in-out infinite alternate}
.keraton-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at center,#fff4d126,transparent 70%);animation:keraton-light 14s ease-in-out infinite alternate}
.keraton-lamp{position:absolute;top:-30px;width:13%;max-width:75px;transform-origin:50% 0;animation:keraton-sway 12s ease-in-out infinite alternate}
.lamp-left{left:5%}.lamp-right{right:5%;animation-delay:-6s}.keraton-lamp img{width:100%;height:auto;filter:drop-shadow(0 4px 8px #e5be6544)}
.keraton-gunungan{position:absolute;top:8%;left:50%;width:90px;height:135px;object-fit:contain;transform:translateX(-50%);opacity:.75;animation:keraton-emblem 16s ease-in-out infinite alternate}
.keraton-dust span{position:absolute;left:calc(4% + var(--n)*1.5%);bottom:10%;width:3px;height:3px;border-radius:50%;background:#caa86b;opacity:0;animation:keraton-dust-rise 18s linear infinite;animation-delay:calc(var(--n)*-3s)}
.keraton-dust span:nth-child(even){left:auto;right:8%}
.design-puspita .cover{min-height:100svh;height:auto;padding-bottom:40px;color:#604328;background:#faf1df}
.design-puspita .cover .cover-content{background:#faf1dfe8;border:1px solid #b8945d77;border-radius:160px 160px 6px 6px;max-width:380px;width:calc(100% - 76px);margin:110px auto 40px;padding:44px 18px 40px}
.design-puspita .cover-content:before{display:none}
.design-puspita .cover .premium-cover-portrait{width:150px;height:186px}
.design-puspita .cover .couple-monogram{display:none}
.design-puspita .cover h1{font:44px/1.2 'Cormorant Garamond',serif;margin:24px auto;display:block}
.design-puspita .cover h1>span:not(.ampersand){display:block}.design-puspita .cover .ampersand{display:block;margin:8px auto;font-size:26px}
.design-puspita .premium-edition{font-size:12px;letter-spacing:1.5px}
.design-puspita .guest-block{background:#fff9ee;border-color:#b8945d66}
.design-puspita .cover #open-invitation{background:#604328;color:#fff7e7;border-color:#604328}
.design-puspita .overture-heritage{min-height:100svh;padding:150px 34px 140px}
.design-puspita .invitation-overture .overture-copy{background:#fff7e7eb;padding:32px 18px 45px;border:double 3px #b8945d77;border-radius:8px}
.design-puspita .woven-monogram{width:100px;height:100px;font-size:66px;border:0;background:none}
.design-puspita .woven-monogram span:last-child{top:18px}
.design-puspita .overture-copy h2{font-size:38px;line-height:1.2}
.design-puspita .inv-section .keraton-pendopo{opacity:.12;animation:none}
.design-puspita .inv-section .keraton-gunungan,.design-puspita .inv-section .keraton-lamp{display:none}
.design-puspita .inv-section>.theme-scene{opacity:1}
.design-puspita .cinematic-stage{background:#faf1df}
.design-puspita .cinematic-veil{background:#3d281a;color:#d2ae6e;width:50%;border:0}
.design-puspita .keraton-door-art{height:100%;width:100%;object-fit:fill}
.design-puspita .cinematic-arch{display:none}
.design-puspita.entrance-running .veil-left{transform-origin:left center;animation:keraton-door-left 8s cubic-bezier(.4,0,.2,1) both}
.design-puspita.entrance-running .veil-right{transform-origin:right center;animation:keraton-door-right 8s cubic-bezier(.4,0,.2,1) both}
.design-puspita.entrance-running .cinematic-stage{animation:keraton-finish 11s linear both}
.design-puspita.entrance-running .cinematic-stage .keraton-pendopo{animation:keraton-arrival 11s cubic-bezier(.4,0,.2,1) both}
.design-puspita.entrance-running .entrance-transition>i{color:#604328;animation:keraton-seal 11s ease both}
.design-puspita.entrance-reveal .overture-copy{animation:keraton-chapter 6s cubic-bezier(.4,0,.2,1) both}
.design-lumiere .overture-portrait .overture-copy{background:#f5efe4f2}
@keyframes keraton-door-left{0%,18%{transform:perspective(1200px) rotateY(0);opacity:1}85%,100%{transform:perspective(1200px) rotateY(-105deg);opacity:0}}
@keyframes keraton-door-right{0%,18%{transform:perspective(1200px) rotateY(0);opacity:1}85%,100%{transform:perspective(1200px) rotateY(105deg);opacity:0}}
@keyframes keraton-arrival{from{transform:scale(1.08);opacity:.6}to{transform:scale(1);opacity:1}}
@keyframes keraton-finish{0%,82%{opacity:1}100%{opacity:0}}
@keyframes keraton-seal{0%,45%{opacity:0;transform:translate(-50%,-50%) scale(.97)}65%,80%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@keyframes keraton-chapter{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}
@keyframes keraton-sway{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}
@keyframes keraton-emblem{from{transform:translateX(-50%) translateY(-3px);opacity:.65}to{transform:translateX(-50%) translateY(3px);opacity:.9}}
@keyframes keraton-depth{from{transform:scale(1)}to{transform:scale(1.015)}}
@keyframes keraton-light{from{opacity:.45}to{opacity:1}}
@keyframes keraton-dust-rise{0%{opacity:0;transform:translateY(0)}20%,65%{opacity:.6}100%{opacity:0;transform:translateY(-220px)}}
@media(prefers-reduced-motion:reduce){.design-puspita .theme-scene *, .design-puspita.entrance-reveal *{animation:none!important}}

.design-puspita .cover .keraton-gunungan{display:none}
.design-puspita .invitation-overture .keraton-gunungan{top:35px;width:64px;height:96px}

.design-puspita .veil-right .keraton-door-art{scale:-1 1}
/* Keep the opening action visible on typical phone and editor-preview heights. */
.design-puspita .cover{padding-bottom:0;justify-content:center}
.design-puspita .cover .cover-content{margin:64px auto 16px;padding:26px 16px 24px}
.design-puspita .cover .premium-cover-portrait{width:124px;height:154px;margin-bottom:14px}
.design-puspita .cover .premium-edition{margin-bottom:12px}
.design-puspita .cover .kicker{margin-bottom:10px}
.design-puspita .cover h1{font-size:36px;margin:14px auto;line-height:1.15}
.design-puspita .cover .ampersand{font-size:23px;margin:4px auto}
.design-puspita .cover-date{margin-bottom:14px;letter-spacing:1.5px}
.design-puspita .cover .guest-block{margin-top:0;margin-bottom:16px;padding:10px 12px}
@media(max-height:700px){
 .design-puspita .cover .cover-content{margin-top:58px;padding:20px 14px 18px}
 .design-puspita .cover .premium-cover-portrait{width:104px;height:126px;margin-bottom:10px}
 .design-puspita .cover h1{font-size:31px;margin:10px auto}
 .design-puspita .cover .premium-edition{font-size:11px;margin-bottom:8px}
 .design-puspita .cover .guest-block{margin-bottom:12px;padding:8px 10px}
}
