/* Illustrated scene clips and independent foreground ornaments. */
.premium-scene-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;pointer-events:none}
.tier-premium .theme-scene .premium-separated-art,.tier-premium .keraton-lamp,.tier-premium .keraton-gunungan{z-index:2}
.tier-premium .inv-section .premium-scene-video{opacity:.16}
.tier-premium .theme-scene:has(.premium-scene-video) .grand-scenery,.design-puspita .theme-scene:has(.premium-scene-video) .keraton-pendopo{visibility:hidden}
.tier-premium{--chapter-ink:var(--color);--chapter-paper:var(--paper);--chapter-line:color-mix(in srgb,var(--color) 28%,transparent)}
.design-celestia{--chapter-ink:#eedfbd;--chapter-paper:#1d2c43;--chapter-line:#c8ae7166}
.tier-premium .events{padding:85px 28px 100px;isolation:isolate}
.tier-premium .events>h2{font-family:'Cormorant Garamond',serif;line-height:1.3;letter-spacing:0;font-size:36px}
.tier-premium .event-cards{gap:32px;max-width:420px;grid-template-columns:1fr}
.tier-premium .event-block{color:var(--chapter-ink);background:var(--chapter-paper);border:1px solid var(--chapter-line);padding:42px 28px 30px;box-shadow:0 16px 35px #19120d12;gap:12px;isolation:isolate}
.tier-premium .event-block:before{content:'';position:absolute;inset:9px;border:1px solid var(--chapter-line);border-radius:inherit;z-index:-1;pointer-events:none}
.premium-event-emblem{width:76px;height:54px;margin:0 auto 4px;opacity:.85}.premium-event-emblem svg{width:100%;height:100%}
.tier-premium .event-block .premium-event-index{font-size:10px;letter-spacing:2.5px;margin-bottom:6px}
.tier-premium .event-block h3{font:34px/1.25 'Cormorant Garamond',serif;min-height:0;margin-bottom:10px}
.tier-premium .event-block h4{max-width:280px;margin:12px auto;font:500 21px/1.5 'Cormorant Garamond',serif}
.tier-premium .event-block [data-event-address]{max-width:270px;padding-top:16px;border-top:1px solid var(--chapter-line);margin:4px auto 16px}
.tier-premium .event-block .invite-button{margin-top:8px;min-width:174px}
.design-puspita .event-block{border-radius:90px 90px 6px 6px;border:double 4px #a17f49;background:#fff7e7;color:#604328}
.design-puspita .event-block:after{content:'';position:absolute;bottom:0;left:0;right:0;height:16px;background:repeating-linear-gradient(45deg,#a17f4922 0 3px,transparent 3px 8px);pointer-events:none}
.design-lumiere .event-block{border-radius:5px;padding-top:32px;background:#fffaf0;color:#635c4f;border:1px solid #c4b49d;box-shadow:8px 10px 0 #c4b49d44}
.design-lumiere .event-block:before{border:0;border-top:1px solid #c4b49d;border-bottom:1px solid #c4b49d;inset:16px}
.design-eden .event-block{border-radius:48% 48% 4px 4px;padding-top:55px;background:#f7f6ed;color:#355447}
.design-aurelia .event-block{border-radius:4px;border:double 4px #ad9364;background:#fffaf0;color:#76613e}
.design-celestia .event-block{border-radius:120px 120px 18px 18px;background:#1d2c43;color:#eedfbd;border-color:#c8ae71}
.design-celestia .event-block .invite-button{background:#eedfbd;color:#1d2c43}
.design-rosalia .event-block{border-radius:110px 110px 30px 30px;background:#fff6f5;color:#805363;border:1px solid #c3a0a9}
.tier-premium .gallery-section{position:relative;isolation:isolate;overflow:hidden;padding:80px 26px 100px;background:var(--chapter-paper);color:var(--chapter-ink)}
.tier-premium .gallery-section>h2{font:42px/1.2 'Cormorant Garamond',serif;margin:14px auto 35px}
.tier-premium .gallery-section>.kicker{font-size:10px;letter-spacing:2px}
.tier-premium .inv-gallery{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:22px 16px;align-items:start}
.premium-gallery-frame{margin:0;padding:9px 9px 14px;background:var(--chapter-paper);border:1px solid var(--chapter-line);box-shadow:0 12px 28px #18110d18;min-width:0}
.premium-gallery-photo{display:block;width:100%;border:0;padding:0;background:transparent;color:inherit;cursor:zoom-in;overflow:hidden;border-radius:inherit}
.tier-premium .inv-gallery .premium-gallery-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:inherit;box-shadow:none;transition:transform .7s ease}
.premium-gallery-photo:hover img{transform:scale(1.025)}
.premium-gallery-frame figcaption{font-size:9px;letter-spacing:1.2px;padding:14px 3px 0;text-align:center;line-height:1.6}
.premium-gallery-frame:first-child{grid-column:1/-1}
.tier-premium .inv-gallery .premium-gallery-frame:first-child img{aspect-ratio:4/3}
.premium-gallery-hint{position:relative;font-size:12px;margin:28px auto 0;line-height:1.7}
.design-puspita .premium-gallery-frame{border:double 4px #ad8c57;background:#fff7e7;color:#604328;padding:10px}
.design-lumiere .premium-gallery-frame{background:#fffdf7;color:#635c4f;rotate:-1.5deg;border:0;padding:10px 10px 20px}
.design-lumiere .premium-gallery-frame:nth-child(3n){rotate:1.5deg}
.design-eden .premium-gallery-frame{border-radius:80px 80px 8px 8px;background:#f7f6ed;color:#355447}
.design-eden .premium-gallery-frame:first-child{border-radius:130px 130px 8px 8px}
.design-aurelia .premium-gallery-frame{border:double 4px #ad9364;background:#fffaf0;color:#76613e}
.design-celestia .premium-gallery-frame{border-color:#c8ae71;border-radius:80px 80px 6px 6px}
.design-rosalia .premium-gallery-frame{border-radius:70px 70px 16px 16px;background:#fff6f5;color:#805363}
#premium-gallery-viewer{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:70px 20px 24px;border:0;background:#11100ff5;color:#fff;overflow:hidden}
#premium-gallery-viewer::backdrop{background:#111}
.album-close{position:absolute;top:max(14px,env(safe-area-inset-top));right:18px;width:48px;height:48px;border:1px solid #ffffff55;border-radius:50%;background:#ffffff12;color:white;font-size:30px;line-height:1}
.album-image-wrap{height:calc(100% - 70px);display:flex;align-items:center;justify-content:center}
#album-photo{width:100%;height:100%;object-fit:contain}
.album-controls{display:flex;align-items:center;justify-content:center;gap:30px;height:60px;margin-top:10px}
.album-controls p{margin:0;font-size:13px;letter-spacing:2px}
.album-controls button{width:48px;height:48px;border:1px solid #ffffff55;border-radius:50%;background:#ffffff12;color:#fff;font-size:30px;line-height:1}
@media(max-width:360px){.tier-premium .events,.tier-premium .gallery-section{padding-inline:20px}.tier-premium .event-block{padding-inline:22px}.premium-gallery-frame figcaption{font-size:8px;letter-spacing:.5px}}
@media(prefers-reduced-motion:reduce){.premium-gallery-photo img{transition:none}.premium-gallery-photo:hover img{transform:none}}

.design-lumiere .events,.design-lumiere .events>h2,.design-lumiere .events>.section-number{text-align:center;margin-inline:auto}
.design-lumiere .cover .cover-content:before{display:none}
/* Keraton uses a still architectural frame with independently moving decoration. */
.design-puspita .theme-scene .keraton-pendopo{animation:none;visibility:inherit}
.design-puspita .cover .cover-content{background:#faf1dfe8}
.design-puspita .invitation-overture .overture-copy{background:#fff7e7eb}
.keraton-mist{position:absolute;left:-25%;width:150%;height:18%;bottom:3%;pointer-events:none;z-index:1;background:radial-gradient(ellipse,#fff5dda6,transparent 68%);opacity:.35;animation:keraton-mist-drift 24s ease-in-out infinite alternate}
.mist-far{bottom:12%;height:12%;opacity:.22;animation-duration:31s;animation-delay:-15s}
.design-puspita .keraton-lamp img{animation:keraton-lamp-glow 8s ease-in-out infinite alternate}
.design-puspita .lamp-right img{animation-delay:-4s}
.design-puspita .keraton-atmosphere{animation:keraton-light 14s ease-in-out infinite alternate;z-index:1}
.design-puspita .inv-section .keraton-mist{opacity:.12}
.scene-asleep .keraton-mist,.scene-asleep .keraton-lamp img,.scene-asleep .keraton-atmosphere,.scene-asleep .keraton-gunungan,.scene-asleep .keraton-lamp,.scene-asleep .keraton-dust span{animation-play-state:paused}
@keyframes keraton-mist-drift{from{transform:translate3d(-5%,0,0) scaleX(.95)}to{transform:translate3d(5%,-8px,0) scaleX(1.05)}}
@keyframes keraton-lamp-glow{from{filter:drop-shadow(0 2px 5px #e5be6533);opacity:.88}to{filter:drop-shadow(0 3px 12px #e5be6588);opacity:1}}
.keraton-janur{position:absolute;top:22%;width:55px;height:170px;z-index:2;transform-origin:50% 0;animation:keraton-janur-sway 10s ease-in-out infinite alternate;pointer-events:none;opacity:.8}
.keraton-janur svg{width:100%;height:100%}.janur-left{left:-17px}.janur-right{right:-17px;scale:-1 1;animation-delay:-5s}
.keraton-wayang{position:absolute;bottom:7%;width:60px;height:100px;object-fit:contain;z-index:2;opacity:.72;transform-origin:50% 100%;animation:keraton-wayang-sway 13s ease-in-out infinite alternate;pointer-events:none}
.wayang-left{left:0}.wayang-right{right:0;animation-delay:-6.5s}
.keraton-petals span{position:absolute;top:0;left:calc(3% + var(--n)*.7%);width:6px;height:12px;background:#c6a763;border-radius:80% 10% 80% 10%;z-index:2;opacity:0;animation:keraton-petal-fall calc(14s + var(--n)*1s) linear infinite;animation-delay:calc(var(--n)*-2.5s);pointer-events:none}
.keraton-petals span:nth-child(even){left:auto;right:6%}
.design-puspita .inv-section .keraton-wayang{width:42px;height:70px;opacity:.32}
.design-puspita .inv-section .keraton-janur{width:38px;height:125px;opacity:.3;top:10%}
.scene-asleep .keraton-janur,.scene-asleep .keraton-wayang,.scene-asleep .keraton-petals span{animation-play-state:paused}
@keyframes keraton-janur-sway{from{transform:rotate(-7deg) translate3d(0,0,0)}to{transform:rotate(7deg) translate3d(3px,3px,0)}}
@keyframes keraton-wayang-sway{from{transform:rotate(-5deg) translate3d(0,0,0)}to{transform:rotate(5deg) translate3d(0,-6px,0)}}
@keyframes keraton-petal-fall{0%{opacity:0;transform:translate3d(0,-15px,0) rotate(0)}12%,80%{opacity:.65}50%{transform:translate3d(10px,40vh,0) rotate(140deg)}100%{opacity:0;transform:translate3d(-3px,85vh,0) rotate(300deg)}}
@media(prefers-reduced-motion:reduce){.design-puspita .theme-scene *{animation:none!important}}
/* Compact premium covers preserve a visible opening action on short phones. */
.tier-premium .cover{height:auto;min-height:100svh;align-items:center}
.tier-premium .cover .cover-content{padding-top:38px;padding-bottom:38px}
@media(max-width:600px){
 .tier-premium .cover{height:auto;min-height:100svh;padding-bottom:0;align-items:center}
 .tier-premium .cover .cover-content{width:calc(100% - 40px);max-width:380px;margin:58px auto 18px;padding:24px 16px 22px}
 .tier-premium .cover .premium-cover-portrait{width:124px;height:152px;margin:0 auto 14px}
 .tier-premium .cover .premium-edition{font-size:11px;letter-spacing:1px;margin-bottom:10px}
 .tier-premium .cover .couple-monogram{width:40px;height:40px;font-size:18px;margin-bottom:12px}
 .tier-premium .cover .kicker{margin-bottom:10px;font-size:9px;letter-spacing:2px}
 .tier-premium .cover h1{font-size:36px;line-height:1.18;margin:12px auto;max-width:100%}
 .tier-premium .cover .ampersand{font-size:22px;margin:4px auto}
 .tier-premium .cover .cover-date{margin-bottom:14px;letter-spacing:1.5px}
 .tier-premium .cover .guest-block{margin:0 auto 14px;padding:9px 12px}
 .tier-premium .cover #open-invitation{min-width:0;width:100%;max-width:240px;min-height:48px}
}
@media(max-width:600px) and (max-height:700px){
 .tier-premium .cover .cover-content{padding:18px 14px;margin-top:56px}
 .tier-premium .cover .premium-cover-portrait{width:104px;height:124px;margin-bottom:10px}
 .tier-premium .cover h1{font-size:32px;margin:9px auto}
 .tier-premium .cover .couple-monogram{width:34px;height:34px;font-size:16px;margin-bottom:9px}
 .tier-premium .cover .guest-block{padding:7px 10px;margin-bottom:12px}
}
