*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#f6ecd9;--bg2:#efe0c3;--card:#fbf5e9;--ink:#3a2416;--muted:#7a5a42;--accent:#b8893b;--accent2:#8a5a2b;--deep:#2b1a10;--deep2:#4a2c18;--deep-ink:#f3e2bf;--script:'Pinyon Script',cursive;--serif:'Cormorant Garamond',serif;--display:'Cinzel',serif;--sans:'Jost',sans-serif;--pattern:none;--pattern-deep:none;--w:480px}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--deep);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
body.locked{overflow:hidden;height:100vh}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;cursor:pointer}
.hidden{display:none!important}

/* boot */
#app.booting{min-height:100vh;display:grid;place-items:center;background:#f7f4ef}
.boot-spinner{width:34px;height:34px;border-radius:50%;border:3px solid #d9cdb8;border-top-color:#8a6a3b;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* tipografi */
.script{font-family:var(--script);font-weight:400;line-height:1.1}
[data-theme="modern-minimalis"] .script{font-style:italic;letter-spacing:.01em}
.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.32em;font-size:12px;opacity:.85}
.names{font-size:clamp(46px,13vw,64px);margin:.12em 0 .18em}
.names .amp{display:inline-block;font-size:.7em;margin:0 .14em;color:var(--accent)}
.section-title{font-family:var(--script);font-size:46px;font-weight:400;text-align:center;line-height:1.15;color:var(--accent2)}
.deep .section-title{color:var(--deep-ink)}
[data-theme="modern-minimalis"] .section-title{font-family:var(--serif);font-style:italic;font-size:38px}
.section-sub{text-align:center;color:var(--muted);font-size:17px;margin:10px auto 0;max-width:34ch}
.deep .section-sub{color:var(--deep-ink);opacity:.85}
.lead{text-align:center;font-size:18px;color:var(--muted);max-width:34ch;margin:0 auto}
.deep .lead{color:var(--deep-ink)}

/* tombol */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:11px 22px;background:var(--accent);color:#fff;font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.04em;text-decoration:none;box-shadow:0 6px 18px -8px rgba(0,0,0,.45);transition:transform .2s,filter .2s}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn:disabled{opacity:.6}
.btn-ghost{background:transparent;color:inherit;border:1px solid currentColor;box-shadow:none}
.btn-small{padding:7px 16px;font-size:13px}

/* ---------------- sampul */
.cover{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--deep-ink);overflow:hidden;transition:transform 1s cubic-bezier(.7,0,.2,1),opacity 1s}
.cover.instant{transition:none}
.cover.gone{transform:translateY(-100%);opacity:.6;pointer-events:none}
.cover-bg{position:absolute;inset:0;background:var(--pattern-deep),radial-gradient(ellipse at 50% 30%,var(--deep2),var(--deep) 70%)}
.cover.has-photo .cover-bg{background:linear-gradient(180deg,color-mix(in srgb,var(--deep) 45%,transparent),color-mix(in srgb,var(--deep) 18%,transparent) 38%,color-mix(in srgb,var(--deep) 92%,transparent) 88%),var(--cover) center/cover no-repeat}
.cover-frame{position:absolute;inset:18px;pointer-events:none;color:var(--accent)}
.cover-inner{position:relative;padding:28px;max-width:440px;animation:rise 1.2s ease both}
.cover .names{font-size:clamp(50px,15vw,72px);text-shadow:0 2px 18px rgba(0,0,0,.25)}
.cover-date{font-family:var(--display);letter-spacing:.14em;font-size:14px}
.guest{margin:30px 0 22px;font-family:var(--sans);font-size:14px}
.guest-name{font-family:var(--serif);font-size:24px;font-weight:600;margin:6px 0 4px}
.guest-note{font-size:11px;opacity:.7}
.btn-open{padding:13px 28px}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

.crown-wrap{display:flex;justify-content:center;color:var(--accent);margin-bottom:8px}
.crown-wrap .orn-crown{width:110px;height:auto}
.cover .crown-wrap .orn-crown{width:140px}
.cover .crown-wrap .orn-crown.wide{width:200px}
.crown-wrap .orn-crown.wide{width:170px}
.crown-wrap.small .orn-crown{width:80px}
.crown-wrap.small .orn-crown.wide{width:130px}
.orn-crown.floral .fl-petal{fill:var(--accent);opacity:.85}
.orn-crown.floral .fl-core{fill:var(--deep-ink)}
.orn-crown.floral .fl-leaf{fill:var(--accent2);opacity:.85}
[data-theme="betawi-gigibalang"] .cover .crown-wrap,[data-theme="betawi-gigibalang"] .hero-crown .orn-crown,[data-theme="betawi-gigibalang"] .closing .crown-wrap,[data-theme="betawi-gigibalang"] .side .crown-wrap{color:var(--deep-ink)}
.cover .orn-crown.floral .fl-petal,.hero-crown .orn-crown.floral .fl-petal,.closing .orn-crown.floral .fl-petal,.side .orn-crown.floral .fl-petal{fill:#f2c9c4;opacity:1}
.cover .orn-crown.floral .fl-leaf,.hero-crown .orn-crown.floral .fl-leaf,.closing .orn-crown.floral .fl-leaf,.side .orn-crown.floral .fl-leaf{fill:#a9c3a3}
.monogram{display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:44px;font-style:italic;color:var(--accent)}
.monogram i{width:1px;height:46px;background:currentColor;transform:rotate(20deg)}

.corner{position:absolute;width:56px;height:56px;color:var(--accent)}
.corner svg{width:100%;height:100%}
.corner.tl{top:0;left:0}.corner.tr{top:0;right:0;transform:scaleX(-1)}.corner.bl{bottom:0;left:0;transform:scaleY(-1)}.corner.br{bottom:0;right:0;transform:scale(-1)}

.strip{position:absolute;left:0;right:0;bottom:0;height:22px;color:var(--deep-ink);opacity:.9;overflow:hidden}
.strip svg{display:block;height:22px;width:100%}
.section .strip,.hero .strip{bottom:auto;top:0}
[data-theme="betawi-gigibalang"] .strip{color:var(--deep-ink)}

/* ---------------- tata letak */
.content{position:relative;max-width:var(--w);margin:0 auto;background:var(--bg);box-shadow:0 0 60px rgba(0,0,0,.35);min-height:100vh;overflow:hidden}
.side{display:none}
@media (min-width:960px){
  .invitation:not(.preview):not(.simple) .side{display:flex;position:fixed;inset:0 var(--w) 0 0;align-items:flex-end;justify-content:flex-start;color:var(--deep-ink);background:var(--pattern-deep),radial-gradient(ellipse at 40% 40%,var(--deep2),var(--deep) 75%)}
  .invitation:not(.preview):not(.simple) .side[style]{background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.6)),var(--cover) center/cover no-repeat}
  .side-inner{padding:56px}
  .side .crown-wrap{justify-content:flex-start}
  .side .names{font-size:84px}
  .invitation:not(.preview):not(.simple) .content{margin:0 0 0 auto}
}
.section{position:relative;padding:72px 28px;text-align:center}
.patterned{background:var(--pattern),var(--bg2)}
.deep{background:var(--deep);color:var(--deep-ink)}
.patterned-deep{background:var(--pattern-deep),linear-gradient(180deg,var(--deep),var(--deep2))}

/* hero */
.hero{position:relative;text-align:center;padding:0 0 64px}
.hero-photo{position:relative;height:72vh;max-height:620px;min-height:420px;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo.no-photo{display:grid;place-items:center;background:var(--pattern-deep),radial-gradient(ellipse at 50% 40%,var(--deep2),var(--deep))}
.hero-crown .orn-crown{width:180px;color:var(--accent)}
.hero-crown .orn-crown.wide{width:240px}
.hero-crown .monogram{font-size:72px}
.hero-shade{position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(180deg,transparent,var(--deep))}
.hero-text{position:relative;margin-top:-120px;padding:0 24px}
.hero-date{font-family:var(--display);letter-spacing:.3em;font-size:15px}
.countdown{display:flex;justify-content:center;gap:10px;margin:22px 0}
.countdown div{width:66px;padding:10px 0;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);border-radius:12px;background:rgba(255,255,255,.04)}
.countdown b{display:block;font-family:var(--serif);font-size:26px;font-weight:600;color:var(--deep-ink)}
.countdown span{font-family:var(--sans);font-size:11px;letter-spacing:.08em;opacity:.8}

/* pembuka */
.bismillah{font-family:'Amiri',serif;font-size:30px;color:var(--accent2);margin-bottom:20px}
.quote p{font-style:italic;font-size:18px;color:var(--ink);max-width:34ch;margin:0 auto}
.quote cite{display:block;margin-top:10px;font-family:var(--display);font-style:normal;font-size:12px;letter-spacing:.2em;color:var(--accent2)}
.divider{display:flex;justify-content:center;align-items:center;gap:10px;margin:22px auto;color:var(--accent);max-width:260px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:currentColor;opacity:.6}
.divider svg{width:60px;height:20px}
.greeting{font-family:var(--serif);font-weight:600;font-size:19px;margin-bottom:10px;color:var(--accent2)}

/* mempelai */
.card-frame{position:relative;padding:44px 22px;background:color-mix(in srgb,var(--card) 88%,transparent);border-radius:6px;box-shadow:0 14px 40px -24px rgba(0,0,0,.35)}
.person{padding:8px 0}
.portrait{position:relative;width:190px;height:240px;margin:0 auto 18px;border-radius:999px 999px 18px 18px;overflow:visible}
.portrait img,.portrait.empty{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 18px 18px}
.portrait.empty{display:grid;place-items:center;background:var(--pattern),var(--bg2)}
.portrait-initial{font-size:96px;color:var(--accent)}
.portrait-ring{position:absolute;inset:-8px;border:1px solid var(--accent);border-radius:999px 999px 24px 24px;pointer-events:none}
[data-theme="modern-minimalis"] .portrait,[data-theme="modern-minimalis"] .portrait img,[data-theme="modern-minimalis"] .portrait.empty{border-radius:4px}
[data-theme="modern-minimalis"] .portrait-ring{border-radius:6px;transform:translate(8px,8px);inset:0}
[data-theme="floral-romance"] .portrait,[data-theme="floral-romance"] .portrait img,[data-theme="floral-romance"] .portrait.empty,[data-theme="floral-romance"] .portrait-ring{border-radius:50%}
[data-theme="floral-romance"] .portrait{width:200px;height:200px}
.person-nick{font-size:48px;color:var(--accent2)}
.person-full{font-family:var(--display);font-size:15px;letter-spacing:.08em;margin:4px 0 8px}
.person-parents{font-size:16px;color:var(--muted)}
.ig{display:inline-block;margin-top:10px;font-family:var(--sans);font-size:13px;text-decoration:none;border-bottom:1px solid var(--accent);color:var(--accent2)}
.couple-amp{font-size:72px;color:var(--accent);margin:12px 0}

/* acara */
.events-grid{display:grid;gap:22px;margin-top:28px}
.event{position:relative;padding:34px 22px;border-radius:200px 200px 16px 16px;background:color-mix(in srgb,var(--deep-ink) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent)}
[data-theme="modern-minimalis"] .event,[data-theme="minang-bagonjong"] .event,[data-theme="betawi-gigibalang"] .event{border-radius:8px}
.event-title{font-family:var(--script);font-weight:400;font-size:42px;color:var(--deep-ink)}
[data-theme="modern-minimalis"] .event-title{font-family:var(--serif);font-style:italic;font-size:32px}
.event .divider{margin:8px auto 12px}
.event-day{font-family:var(--display);letter-spacing:.24em;font-size:13px;text-transform:uppercase}
.event-date{font-family:var(--display);font-size:16px;letter-spacing:.1em}
.event-date span{display:block;font-family:var(--serif);font-size:56px;line-height:1;color:var(--accent)}
.event-time{font-family:var(--sans);font-size:14px;margin:10px 0 14px;opacity:.9}
.event-venue{font-weight:600;font-size:19px}
.event-addr{font-size:15px;opacity:.85;margin:4px 0 0}
.event-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}
.events .btn-ghost{color:var(--deep-ink)}

/* kisah */
.timeline{list-style:none;position:relative;margin:10px auto 0;max-width:360px;text-align:left;padding-left:28px}
.timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:1px;background:var(--accent)}
.timeline li{position:relative;padding:0 0 26px}
.tl-dot{position:absolute;left:-27px;top:7px;width:15px;height:15px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.tl-date{font-family:var(--display);font-size:12px;letter-spacing:.18em;color:var(--accent2)}
.timeline h3{font-family:var(--serif);font-size:22px;font-weight:600}
.timeline p{font-size:16px;color:var(--muted)}

/* galeri */
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.g-item{border:0;padding:0;background:var(--bg2);aspect-ratio:3/4;overflow:hidden;border-radius:6px}
.g-item.wide{grid-column:span 2;aspect-ratio:4/3}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.g-item:hover img{transform:scale(1.04)}
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:20px}
.lightbox img{max-height:90vh;max-width:100%;object-fit:contain;border-radius:4px}
.lightbox button{position:absolute;top:14px;right:18px;border:0;background:none;color:#fff;font-size:36px}

/* rsvp */
.rsvp-form{display:grid;gap:14px;margin:26px auto 0;max-width:380px;text-align:left;font-family:var(--sans);font-size:14px}
.rsvp-form label{display:grid;gap:6px}
.rsvp-form input:not([type=radio]),.rsvp-form textarea,.rsvp-form select{width:100%;border:1px solid color-mix(in srgb,var(--deep-ink) 35%,transparent);background:rgba(255,255,255,.08);color:var(--deep-ink);border-radius:10px;padding:11px 13px;font:inherit;font-size:15px}
.rsvp-form select option{color:#222}
.rsvp-form ::placeholder{color:var(--deep-ink);opacity:.55}
.att{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.att label{display:block}
.att input{position:absolute;opacity:0}
.att span{display:block;text-align:center;padding:10px 4px;border:1px solid color-mix(in srgb,var(--deep-ink) 35%,transparent);border-radius:10px;font-size:13px}
.att input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}
.rsvp-form .btn{justify-self:center;min-width:160px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.form-msg{text-align:center;min-height:1.4em;font-size:14px}
.wishes{margin:30px auto 0;max-width:400px;text-align:left}
.wishes-count{text-align:center;font-family:var(--sans);font-size:13px;opacity:.8;margin-bottom:10px}
.wishes ul{list-style:none;max-height:420px;overflow:auto;display:grid;gap:10px;padding-right:4px}
.wish{background:rgba(255,255,255,.07);border:1px solid color-mix(in srgb,var(--deep-ink) 18%,transparent);border-radius:12px;padding:12px 14px;font-size:16px}
.w-name{font-family:var(--sans);font-weight:600;font-size:14px}
.w-name em{font-style:normal;font-weight:400;font-size:11px;margin-left:6px;padding:2px 8px;border-radius:99px;background:var(--accent);color:#fff}
.wishes .btn{display:flex;margin:12px auto 0}

/* hadiah */
.gifts{display:grid;gap:16px;margin-top:22px}
.gift-card{position:relative;padding:24px 18px;border-radius:16px;background:linear-gradient(135deg,var(--card),var(--bg2));border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 12px 30px -22px rgba(0,0,0,.5)}
.gift-bank{font-family:var(--display);letter-spacing:.18em;font-size:14px;color:var(--accent2)}
.gift-number{font-family:var(--sans);font-size:22px;font-weight:600;letter-spacing:.06em;margin:6px 0 2px}
.gift-holder,.gift-addr{color:var(--muted);font-size:16px;margin-bottom:12px}

/* penutup */
.closing{padding-bottom:84px}
.closing .lead{margin-bottom:28px}
.closing .eyebrow{margin-top:8px}
.hashtag{font-family:var(--sans);letter-spacing:.12em;font-size:14px;color:var(--accent)}

/* footer brand WO */
.brand-footer{background:#141210;color:#e9e1d4;text-align:center;padding:34px 24px 40px;font-family:var(--sans)}
.bf-label{font-size:11px;letter-spacing:.3em;text-transform:uppercase;opacity:.65}
.bf-name{font-family:'Cinzel',serif;font-size:20px;letter-spacing:.12em;margin:6px 0 2px}
.bf-tagline{font-size:13px;opacity:.75}
.bf-cta{margin-top:16px;background:#c7a15a}
.bf-ig{display:block;margin-top:12px;font-size:13px;opacity:.75;text-decoration:none}

/* musik & toast */
.music-btn{position:fixed;right:16px;bottom:18px;z-index:30;width:46px;height:46px;border-radius:50%;border:1px solid var(--accent);background:var(--deep);color:var(--deep-ink);font-size:20px;box-shadow:0 6px 18px rgba(0,0,0,.3);display:none}
.opened .music-btn{display:grid;place-items:center}
.music-btn.playing .disc{display:inline-block;animation:spin 3s linear infinite}
@media (min-width:960px){.invitation:not(.preview) .music-btn{right:calc(var(--w) - 62px)}}
.toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%,20px);opacity:0;z-index:70;background:rgba(20,18,16,.92);color:#fff;padding:9px 18px;border-radius:99px;font-family:var(--sans);font-size:13px;transition:.3s}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* animasi muncul */
[data-reveal]{opacity:0;translate:0 22px;transition:opacity .9s ease,translate .9s ease,scale .9s ease}
[data-reveal].in{opacity:1;translate:none;scale:none}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;translate:none;scale:none;transition:none}.cover{transition:none}}

/* pratinjau di Journey */
.preview .content{box-shadow:none}

/* halaman sederhana */
.simple-page{min-height:100vh;display:flex;flex-direction:column;background:var(--pattern),var(--bg)}
.simple-card{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:60px 28px}
.simple-card h2{font-family:var(--serif);font-style:italic;font-size:30px;margin:8px 0}
.simple-card p{color:var(--muted);max-width:36ch}

/* ================================================================ Jawa Pusaka (template ilustrasi) */
[data-reveal="left"]{translate:-46px 0}
[data-reveal="right"]{translate:46px 0}
[data-reveal="zoom"]{translate:none;scale:.86}

[data-theme="jawa-pusaka"] body,[data-theme="jawa-pusaka"]{background:#2a221b}
.pk-art{position:absolute;pointer-events:none;user-select:none;max-width:none}
.pk-paper{position:absolute;inset:0;background:var(--pattern),radial-gradient(ellipse at 50% 30%,#fbf6ec,var(--bg) 70%)}
.pk-names{font-family:'Cormorant Garamond',serif;font-weight:500;text-transform:uppercase;letter-spacing:.06em;line-height:.95;color:#2a201a;font-size:clamp(30px,calc(min(16vw,74px) * min(1,6 / var(--nl,5))),74px);display:flex;flex-direction:column;align-items:center;gap:.06em;margin:.15em 0 .2em}
.pk-names em{font-style:normal;font-size:.7em;color:var(--accent)}
.pk-names-sm{font-size:clamp(28px,calc(min(12.5vw,56px) * min(1,7 / var(--nl,5))),56px)}
.pk-eyebrow{font-family:'Cormorant Garamond',serif;font-weight:600;text-transform:uppercase;letter-spacing:.42em;font-size:13px;color:#4b3d31}
.pk-date{font-family:'Cormorant Garamond',serif;font-weight:600;letter-spacing:.2em;font-size:15px;text-transform:uppercase;color:#4b3d31}
.pk-btn{background:var(--accent2);color:#fbecd0;border:1px solid var(--accent)}
.pk-ghost{color:#3b2e24;border-color:#3b2e24}
.pk-ghost-dark{color:var(--accent2);border-color:var(--accent2)}

/* sampul */
.pk-cover{color:#2a201a;align-items:flex-start}
.pk-cover-land{left:0;top:0;width:100%;height:100%;object-fit:cover;opacity:.32;mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(180deg,transparent 20%,#000 55%,#000 100%);mask-image:linear-gradient(180deg,transparent 20%,#000 55%,#000 100%)}
.pk-gate{position:absolute;left:50%;top:0;width:min(520px,118vw);height:72%;transform:translateX(-50%);color:#8d8478;opacity:.75;animation:pkFade 1.6s ease both}
.pk-gate svg{width:100%;height:100%}
.pk-gate-soft{opacity:.35;height:90%}
.pk-flower{width:min(240px,52vw)}
.pk-tl{left:-18px;top:-14px;transform:scaleY(-1)}
.pk-tr{right:-18px;top:-14px;transform:scale(-1,-1)}
.pk-bl{left:-22px;bottom:-12px}
.pk-br{right:-22px;bottom:-12px;transform:scaleX(-1)}
.pk-cover .pk-flower{animation:pkGrow 1.6s .2s ease both}
.pk-wayang{width:min(104px,22vw);top:28%}
.pk-l{left:-6px}
.pk-r{right:-6px;transform:scaleX(-1)}
.pk-cover .pk-wayang.pk-l{animation:pkInL 1.4s .5s ease both}
.pk-cover .pk-wayang.pk-r{animation:pkInR 1.4s .5s ease both}
.pk-faint{opacity:.55}
.pk-cover-inner{position:relative;z-index:2;margin:15vh auto 0;max-width:440px;padding:0 72px;text-align:center;animation:rise 1.3s .4s ease both}
.pk-guest{margin:18px 0 16px;font-family:var(--sans);font-size:13px;color:#4b3d31}
.pk-guest .guest-name{font-family:'Cormorant Garamond',serif;font-size:23px;font-weight:600;margin-top:4px;color:var(--accent2)}
.pk-joglo{left:50%;bottom:-2px;width:min(560px,128vw);margin-left:calc(min(560px,128vw) / -2);animation:pkRise 1.6s .1s ease both}
@keyframes pkFade{from{opacity:0}}
@keyframes pkGrow{from{opacity:0;scale:.6}}
@keyframes pkInL{from{opacity:0;translate:-60px 0}}
@keyframes pkInR{from{opacity:0;translate:60px 0}}
@keyframes pkRise{from{opacity:0;translate:0 80px}}

/* bagian */
.pk-sec{position:relative;overflow:hidden;text-align:center}
.pk-body{position:relative;z-index:2;padding:80px 34px}
.pk-hero{padding:56px 0 96px;min-height:100vh}
.pk-hero .pk-wayang{top:120px;width:min(110px,24vw)}
.pk-gunungan-wrap{position:relative;z-index:1;width:min(270px,62vw);margin:0 auto}
.pk-gunungan{position:static;width:100%;filter:drop-shadow(0 18px 24px rgba(90,40,10,.25));transform-origin:50% 100%;animation:pkSway 6s ease-in-out infinite}
@keyframes pkSway{0%,100%{rotate:-1.5deg}50%{rotate:1.5deg}}
.pk-hero-text{position:relative;z-index:2;margin-top:18px;padding:0 24px}
.pk-countdown div{border-color:color-mix(in srgb,var(--accent2) 45%,transparent);background:rgba(255,255,255,.55)}
.pk-countdown b{color:var(--accent2)}
.pk-countdown span{color:#4b3d31}

.pk-scene{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:90px 22px;background:#e9dfcf}
.pk-land-bg{position:absolute;inset:-12% 0;background:center/cover no-repeat;opacity:.95}
.pk-arch{position:relative;z-index:2;width:100%;max-width:360px;min-height:440px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 22px 30px rgba(40,10,5,.35))}
.pk-arch-svg{position:absolute;inset:0;width:100%;height:100%}
.pk-arch-inner{position:relative;padding:86px 34px;color:#f8ead0}
.pk-quote{font-style:italic;font-size:17px;line-height:1.7}
.pk-quote-src{margin-top:14px;font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}

.pk-photo-sec{padding:70px 0}
.pk-photo{position:relative;z-index:2;width:min(300px,72vw);aspect-ratio:3/4;margin:0 auto;border-radius:999px 999px 14px 14px;overflow:hidden;box-shadow:0 20px 40px -18px rgba(40,20,10,.5)}
.pk-photo img{width:100%;height:100%;object-fit:cover}
.pk-photo span{position:absolute;inset:8px;border:1.5px solid rgba(255,240,210,.85);border-radius:999px 999px 10px 10px}

.pk-greeting{font-weight:600;font-size:19px;color:#3b2e24}
.pk-lead{font-size:17.5px;color:#4b3d31;max-width:32ch;margin:6px auto 0}
.pk-person{margin-top:34px}
.pk-portrait{width:150px;height:190px;margin:0 auto 16px;border-radius:999px 999px 12px 12px;overflow:hidden;border:2px solid var(--accent)}
.pk-portrait img{width:100%;height:100%;object-fit:cover}
.pk-fullname{font-family:'Cormorant Garamond',serif;font-weight:600;text-transform:uppercase;color:var(--accent2);font-size:clamp(25px,7vw,32px);line-height:1.15;letter-spacing:.02em}
.pk-child{font-style:italic;margin-top:8px;color:#3b2e24}
.pk-parents{font-family:'Cormorant Garamond',serif;font-weight:600;text-transform:uppercase;font-size:15px;letter-spacing:.04em;color:#3b2e24}
.pk-amp{font-family:'Pinyon Script',cursive;font-size:58px;color:var(--accent);margin-top:26px;line-height:1}

.pk-events{padding-bottom:0}
.pk-events .pk-body{padding-bottom:30px}
.pk-event{margin-top:30px;padding-bottom:30px;border-bottom:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}
.pk-event:last-child{border-bottom:0}
.pk-day{font-family:'Pinyon Script',cursive;font-size:60px;line-height:1;color:var(--accent2)}
.pk-evdate{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:30px;letter-spacing:.04em;color:#2a201a}
.pk-times{margin:16px 0;font-size:20px;color:#2a201a}
.pk-times em{font-family:'Pinyon Script',cursive;font-style:normal;font-size:26px;color:#3b2e24;margin-right:4px}
.pk-venue{font-family:'Cormorant Garamond',serif;font-weight:700;text-transform:uppercase;font-size:21px;letter-spacing:.05em}
.pk-addr{font-size:16px;color:#4b3d31;max-width:30ch;margin:4px auto 0}
.pk-events-foot{position:relative;height:260px}
.pk-land-strip{position:absolute;inset:0;background:center 70%/cover no-repeat;-webkit-mask-image:linear-gradient(180deg,transparent,#000 45%);mask-image:linear-gradient(180deg,transparent,#000 45%);opacity:.8}
.pk-joglo-sm{left:50%;bottom:-4px;width:min(380px,90vw);margin-left:calc(min(380px,90vw) / -2)}

.pk-closing .pk-panel{position:relative;z-index:2;max-width:360px;padding:60px 30px;background:rgba(248,241,229,.86);border-radius:180px 180px 20px 20px;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:0 20px 40px -24px rgba(0,0,0,.4)}
.pk-script{font-family:'Pinyon Script',cursive;font-size:34px;color:var(--accent2);margin-top:20px}

/* bagian bawaan disesuaikan */
[data-theme="jawa-pusaka"] .story,[data-theme="jawa-pusaka"] .gift{background:var(--pattern),var(--bg)}
[data-theme="jawa-pusaka"] .section-title{font-family:'Pinyon Script',cursive;color:var(--accent2)}
[data-theme="jawa-pusaka"] .deep .section-title{color:var(--deep-ink)}
@media (min-width:960px){
  [data-theme="jawa-pusaka"] .invitation:not(.preview):not(.simple) .side:not([style]){background:linear-gradient(180deg,rgba(40,25,15,.15),rgba(40,25,15,.65)),url(/undangan/art/jawa-pusaka/lanskap.webp) center/cover}
}
