/* =========================================================
   Sandingan — tema sinematik 2.5D (saat ini: Pendopo)
   Dimuat hanya untuk tema dengan 'scene'. Ilustrasi: views/invite/_pendopo.svg
   ========================================================= */
@font-face { font-family: "Cinzel"; src: url("../fonts/cinzel-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Pinyon Script"; src: url("../fonts/pinyon-script-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }

/* ---------- palet ---------- */
[data-theme="pendopo"] {
  --bg: #F7EFF1; --bg-2: #F1E4E8; --card: #FFFAFB; --ink: #4A1F33; --muted: #7E5A6A;
  --accent: #7B2D4F; --accent-soft: rgba(123, 45, 79, .1); --on-accent: #FFF6F9;
  --line: rgba(74, 31, 51, .14); --shadow: 0 18px 40px -24px rgba(74, 31, 51, .45);
  --side-bg: #3A1627; --side-ink: #FBEFF3; --side-accent: #E9B3CA;
  --cover-bg: radial-gradient(120% 80% at 50% 0%, #FFFFFF 0%, #F7EFF1 55%, #EDDDE3 100%);
  --band: var(--accent); --band-ink: var(--on-accent); --band-muted: rgba(255, 246, 249, .8); --band-soft: #F3D1DF;
  /* adegan */
  --sk1: #E6D3DB; --sk2: #F6ECE8; --cl: #FFFFFF; --hz: #D9C2CC; --hz2: #CDB1BE;
  --rf: #B97C93; --rf2: #8A4C66; --rf3: #D8A6B8; --wd: #7A4A35; --wd2: #4E2C20; --wd3: #A06A4E; --lt: #FFCF7A; --lt2: #FFE7B0;
  --st: #D9CBCF; --st2: #9C8590; --st3: #F3E9EC; --orn: #C9A04E;
  --fo: #5C3A4A; --fo2: #80596A; --bg1: #E9B3CA; --bg2: #C96C95; --bg3: #8E3A62; --bgc: #FFF2D6;
  --bn: #EDE6E3; --bn2: #B9B2AE; --bnt: #F6EEEA; --yl: #F2D35B; --yl2: #C98F2A; --km: #FFF8F2;
  --cd: #B9A2B6; --cd2: #9C849B; --cd3: #6E5470;
  --f0: #3E0E24; --f1: #6E1C42; --f2: #A13A68; --f3: #D88AAE; --f4: #F3D1DF; --f5: #FFF6FA;
  --l0: #5E4C52; --l1: #9C8A8E; --l2: #CDBFC2; --tw: #C9A99A;
  --kawung: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6'%3E%3Cellipse cx='24' cy='12' rx='6' ry='10'/%3E%3Cellipse cx='24' cy='36' rx='6' ry='10'/%3E%3Cellipse cx='12' cy='24' rx='10' ry='6'/%3E%3Cellipse cx='36' cy='24' rx='10' ry='6'/%3E%3Ccircle cx='24' cy='24' r='2'/%3E%3C/g%3E%3C/svg%3E");
}
[data-theme="pendopo"][data-palette="sogan"] {
  --bg: #F6EEE3; --bg-2: #EFE2D1; --card: #FFFBF5; --ink: #3E2616; --muted: #765A44;
  --accent: #8A4B22; --accent-soft: rgba(138, 75, 34, .1); --on-accent: #FFF7EE;
  --line: rgba(62, 38, 22, .14); --shadow: 0 18px 40px -24px rgba(62, 38, 22, .45);
  --side-bg: #2E1B10; --side-ink: #F6EEE3; --side-accent: #E2B57A;
  --cover-bg: radial-gradient(120% 80% at 50% 0%, #FFFDF8 0%, #F6EEE3 55%, #EAD9C1 100%);
  --band-muted: rgba(255, 247, 238, .8); --band-soft: #F2D2BB;
  --sk1: #EAD9C4; --sk2: #F7EFE4; --cl: #FFFDF8; --hz: #DCC8B0; --hz2: #CFB89C;
  --rf: #A8613E; --rf2: #7A4126; --rf3: #CF8E68; --wd: #6E4528; --wd2: #452A16; --wd3: #93603A; --lt: #FFCC70; --lt2: #FFE4A8;
  --st: #DCCFC0; --st2: #9E8B76; --st3: #F4ECE2;
  --fo: #4B3A26; --fo2: #6E5A3E; --bg1: #F2B98A; --bg2: #DE7F4E; --bg3: #A84A2A;
  --bn: #EEE8DC; --bn2: #BDB4A2; --bnt: #F7F1E6; --km: #FFFAF2;
  --cd: #BFA88E; --cd2: #A08A70; --cd3: #6E5842;
  --f0: #3B160C; --f1: #6E2A14; --f2: #A0522D; --f3: #D9946A; --f4: #F2D2BB; --f5: #FFF7F0;
  --l0: #5A5440; --l1: #9A9478; --l2: #CFCBB6; --tw: #C9A98A;
}
[data-theme="pendopo"][data-palette="zamrud"] {
  --bg: #F1F4EF; --bg-2: #E6ECE4; --card: #FBFCFA; --ink: #1F3A2E; --muted: #577063;
  --accent: #2F5D46; --accent-soft: rgba(47, 93, 70, .1); --on-accent: #F3FAF5;
  --line: rgba(31, 58, 46, .14); --shadow: 0 18px 40px -24px rgba(31, 58, 46, .45);
  --side-bg: #16291F; --side-ink: #EEF4EF; --side-accent: #B9D3C2;
  --cover-bg: radial-gradient(120% 80% at 50% 0%, #FFFFFF 0%, #F1F4EF 55%, #DDE7DE 100%);
  --band-muted: rgba(243, 250, 245, .8); --band-soft: #F3D1DF;
  --sk1: #D9E4DD; --sk2: #F2F5EE; --cl: #FFFFFF; --hz: #C5D3C8; --hz2: #B3C4B6;
  --rf: #8C5A48; --rf2: #613B2E; --rf3: #B98371; --wd: #5E4232; --wd2: #3A281D; --wd3: #866049; --lt: #FFD17E; --lt2: #FFE8B4;
  --st: #D5DAD3; --st2: #8E998F; --st3: #F2F5F1;
  --fo: #2E4A3A; --fo2: #4A6B58; --bg1: #F0B5CC; --bg2: #D06A97; --bg3: #9A3D68;
  --bn: #E9EEE6; --bn2: #AFBBAA; --bnt: #F4F7F2; --km: #FFFDF8;
  --cd: #A9B5AA; --cd2: #8D9B90; --cd3: #5C6B60;
  --l0: #3F5A48; --l1: #7E9B86; --l2: #BFD0C2; --tw: #C9B49A;
}
/* warna bebas (paket Gold): bunga & bugenvil mengikuti warna aksen */
[data-theme="pendopo"][data-custom] {
  --band-muted: color-mix(in srgb, var(--on-accent) 80%, transparent); --band-soft: color-mix(in srgb, var(--accent) 22%, #fff);
  --f0: color-mix(in srgb, var(--accent) 55%, #000); --f1: color-mix(in srgb, var(--accent) 82%, #000); --f2: color-mix(in srgb, var(--accent) 85%, #fff);
  --f3: color-mix(in srgb, var(--accent) 50%, #fff); --f4: color-mix(in srgb, var(--accent) 22%, #fff); --f5: color-mix(in srgb, var(--accent) 6%, #fff);
  --bg1: color-mix(in srgb, var(--accent) 35%, #fff); --bg2: color-mix(in srgb, var(--accent) 70%, #fff); --bg3: var(--accent);
  --rf: color-mix(in srgb, var(--accent) 55%, #fff); --rf2: color-mix(in srgb, var(--accent) 85%, #000); --rf3: color-mix(in srgb, var(--accent) 30%, #fff);
  --sk1: color-mix(in srgb, var(--accent) 14%, var(--bg)); --sk2: var(--bg);
}

/* ---------- huruf ---------- */
[data-theme="pendopo"] .script { font-family: "Pinyon Script", cursive; }
[data-theme="pendopo"] .eyebrow { font-family: "Cinzel", serif; font-weight: 500; font-size: 12px; letter-spacing: .24em; }
[data-theme="pendopo"] .sec-title { font-family: "Pinyon Script", cursive; font-weight: 400; font-size: 46px; line-height: 1.15; color: var(--accent); margin-top: 6px; }
[data-theme="pendopo"] .btn { border-radius: 999px; }
[data-theme="pendopo"] .ornament { display: none; }

/* ---------- pola kawung & hiasan sudut di setiap bagian ---------- */
[data-theme="pendopo"] .sec { overflow: hidden; }
[data-theme="pendopo"] .sec:nth-of-type(even) { background: var(--bg); }
[data-theme="pendopo"] .sec:not(.hero)::before, [data-theme="pendopo"] .cover::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .045; border: 0; border-radius: 0;
  background: var(--accent); -webkit-mask: var(--kawung) repeat center / 44px 44px; mask: var(--kawung) repeat center / 44px 44px;
}
[data-theme="pendopo"] .cover::before { display: none; }
[data-theme="pendopo"] .sec:not(.hero) > :not(.pd) { position: relative; z-index: 1; }
.pd { position: absolute; z-index: 0; pointer-events: none; fill: none; stroke: none; overflow: visible; }
.pd-tl, .pd-tr { top: -30px; width: min(50vw, 230px); height: min(50vw, 230px); }
.pd-tl { left: -30px; }
.pd-tr { right: -30px; transform: scaleX(-1); }
.pd-sm.pd-tl, .pd-sm.pd-tr { width: min(36vw, 160px); height: min(36vw, 160px); top: -22px; }
.pd-sm.pd-tl { left: -22px; } .pd-sm.pd-tr { right: -22px; }
.pd-bed-l, .pd-bed-r { bottom: -6px; width: min(64%, 420px); aspect-ratio: 520 / 260; height: auto; }
.pd-bed-l { left: -10%; }
.pd-top-l, .pd-top-r { top: -34px; width: min(66%, 440px); aspect-ratio: 520 / 260; height: auto; opacity: .95; }
.pd-top-l { left: -16%; transform: scaleY(-1); }
.pd-top-r { right: -16%; transform: scale(-1, -1); }
.pd-bed-r { right: -10%; transform: scaleX(-1); }

/* ---------- sampul ---------- */
[data-theme="pendopo"] .cover-inner { z-index: 1; }
[data-theme="pendopo"] .cover-label { font-family: "Cinzel", serif; font-weight: 500; color: var(--accent); letter-spacing: .26em; font-size: 12px; }
[data-theme="pendopo"] .cover-photo { width: 170px; height: 220px; border-radius: 999px 999px 18px 18px; border: 6px solid #fff; box-shadow: 0 0 0 1.5px var(--accent), var(--shadow); margin-top: 16px; }
[data-theme="pendopo"] .cover-names { font-family: "Cinzel", serif; font-weight: 500; font-size: clamp(28px, 8.4vw, 36px); letter-spacing: .06em; text-transform: uppercase; color: var(--ink); margin: 18px 0 4px; line-height: 1.2; }
[data-theme="pendopo"] .cover-names .n { display: inline-block; }
[data-theme="pendopo"] .cover-names .amp { display: inline-block; font-family: "Pinyon Script", cursive; text-transform: none; font-size: 1.1em; margin: 0 .25em; color: var(--accent); }
[data-theme="pendopo"] .cover-date { font: 500 13px/1.4 "Cinzel", serif; letter-spacing: .14em; color: var(--muted); }
[data-theme="pendopo"] .cover-guest { margin: 22px 0 20px; }
[data-theme="pendopo"] .guest-name { font-family: "Cinzel", serif; font-weight: 500; font-size: 22px; }
[data-theme="pendopo"] .cover .pd-bed-l, [data-theme="pendopo"] .cover .pd-bed-r { width: min(76%, 500px); bottom: -10px; }
[data-theme="pendopo"] .cover .pd-tl, [data-theme="pendopo"] .cover .pd-tr { top: -10px; width: min(44vw, 200px); height: min(44vw, 200px); }
[data-theme="pendopo"] .cover { padding-top: 70px; padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
@media (max-height: 720px) { [data-theme="pendopo"] .cover-photo { width: 130px; height: 168px; } [data-theme="pendopo"] .cover-guest { margin: 14px 0 14px; } }

/* =========================================================
   Adegan pembuka (hero)
   ========================================================= */
.scene { position: relative; padding: 0; height: 100vh; height: 100svh; min-height: 600px; max-height: 1100px; overflow: hidden; background: var(--sk2); }
.sc-stage { position: absolute; inset: 0; overflow: hidden; container-type: size; }
.sc-world { position: absolute; inset: 0; transform-origin: 50% 80%; }
.sc-px { position: absolute; inset: 0; }
.sc-l { position: absolute; display: block; fill: none; stroke: none; overflow: visible; }
.sc-sky { position: absolute; inset: 0; background: linear-gradient(180deg, var(--sk1) 0%, var(--sk2) 62%); }
.sc-clouds { left: -10%; top: -2%; width: 120%; height: 68%; animation: sc-drift 40s ease-in-out infinite alternate; }
@keyframes sc-drift { to { transform: translateX(-6%); } }
.sc-haze { left: -10%; bottom: 19%; width: 120%; height: 26%; }
.sc-house { left: 50%; bottom: 4%; width: 150%; width: min(150cqw, 70cqh); height: auto; aspect-ratio: 1000 / 660; transform: translateX(-50%); }
.sc-tree { bottom: 7%; height: 66%; width: auto; aspect-ratio: 260 / 900; }
.sc-tree-l { left: -16%; }
.sc-tree-r { right: -16%; transform: scaleX(-1); }
.sc-bp { bottom: 9%; height: 42%; width: auto; aspect-ratio: 300 / 700; }
.sc-bp-l { left: -6%; }
.sc-bp-r { right: -6%; transform: scaleX(-1); }
.sc-bed { bottom: -1%; width: 70%; height: auto; aspect-ratio: 520 / 260; }
.sc-bed-l { left: -10%; }
.sc-bed-r { right: -10%; transform: scaleX(-1); }
.sc-fg { top: -6%; height: 112%; width: 78%; display: none; }
.sc-fg-l { left: -14%; }
.sc-fg-r { right: -14%; transform: scaleX(-1); }
.scene.is-intro .sc-fg { display: block; }

.sc-title { position: absolute; left: 0; right: 0; top: 11%; z-index: 3; text-align: center; padding: 0 20px; color: var(--ink); }
.sc-pre { font-size: 40px; color: var(--accent); }
.sc-names { font: 500 clamp(30px, 9.4vw, 42px)/1.15 "Cinzel", serif; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); margin-top: 6px; }
.sc-names .n { display: block; }
.sc-names .amp { display: block; font-size: 1.25em; line-height: .9; color: var(--accent); text-transform: none; margin: .02em 0 -.08em; }
.sc-date { margin-top: 10px; font: 500 13px/1.4 "Cinzel", serif; letter-spacing: .16em; color: var(--muted); }
.sc-hint { position: absolute; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 4; width: 24px; height: 38px; margin-left: -12px; border: 2px solid var(--on-accent); border-radius: 14px; opacity: .9; filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .35)); }
.sc-hint span { position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--on-accent); animation: sc-hint 1.6s ease-in-out infinite; }
@keyframes sc-hint { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(10px); opacity: 0; } 100% { opacity: 0; } }
body.has-dock .sc-hint { display: none; }

/* kupu-kupu */
.sc-bfs { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.sc-bf { position: absolute; width: 26px; height: 26px; opacity: 0; }
.sc-bf svg { display: block; width: 100%; height: 100%; fill: none; stroke: none; animation: sc-flap .22s ease-in-out infinite alternate; }
@keyframes sc-flap { from { transform: scaleX(1); } to { transform: scaleX(.25); } }
.scene.is-live .sc-bf { opacity: 1; transition: opacity 1s; }
.sc-bf1 { left: 18%; top: 46%; animation: sc-fly1 14s ease-in-out infinite; }
.sc-bf2 { left: 70%; top: 38%; width: 20px; height: 20px; animation: sc-fly2 17s ease-in-out infinite; }
.sc-bf3 { left: 40%; top: 60%; width: 18px; height: 18px; animation: sc-fly3 12s ease-in-out infinite; }
.sc-bf4 { left: 82%; top: 58%; width: 22px; height: 22px; animation: sc-fly1 19s ease-in-out -6s infinite reverse; }
.sc-bf5 { left: 10%; top: 30%; width: 16px; height: 16px; animation: sc-fly2 15s ease-in-out -4s infinite; }
@keyframes sc-fly1 { 0% { transform: translate(0, 0) rotate(-10deg); } 25% { transform: translate(60px, -40px) rotate(12deg); } 50% { transform: translate(120px, 10px) rotate(-6deg); } 75% { transform: translate(50px, 50px) rotate(18deg); } 100% { transform: translate(0, 0) rotate(-10deg); } }
@keyframes sc-fly2 { 0% { transform: translate(0, 0) rotate(8deg); } 30% { transform: translate(-70px, 30px) rotate(-14deg); } 60% { transform: translate(-20px, -50px) rotate(10deg); } 100% { transform: translate(0, 0) rotate(8deg); } }
@keyframes sc-fly3 { 0% { transform: translate(0, 0); } 50% { transform: translate(40px, -60px) rotate(20deg); } 100% { transform: translate(0, 0); } }
.scene.is-intro .sc-world, .scene.is-intro .sc-fg { will-change: transform; }

/* =========================================================
   Bagian-bagian undangan
   ========================================================= */
/* pembuka: lengkung foto + monogram */
[data-theme="pendopo"] .sec.opening { padding-top: 56px; }
.pd-arch { position: relative; width: min(84%, 340px); margin: 0 auto; }
.pd-arch-in { position: relative; aspect-ratio: 3 / 3.9; border-radius: 999px 999px 0 0; overflow: hidden; border: 6px solid #fff; box-shadow: 0 0 0 1.5px var(--accent), var(--shadow); background: linear-gradient(180deg, var(--sk1), var(--sk2)); }
.pd-arch-in img { width: 100%; height: 100%; object-fit: cover; }
.pd-candi { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: none; }
.pd-candi-cl { height: 70%; }
.pd-arch-l, .pd-arch-r { top: -26px; width: 130px; height: 130px; z-index: 2 !important; }
.pd-arch-l { left: -44px; }
.cover-photo-wrap .pd-arch-l, .cover-photo-wrap .pd-arch-r { top: -10px; width: 110px; height: 110px; }
.cover-photo-wrap .pd-arch-l { left: -52px; } .cover-photo-wrap .pd-arch-r { right: -52px; }
.pd-arch-r { right: -44px; transform: scaleX(-1); }
.pd-mono { display: flex; justify-content: center; align-items: center; gap: 4px; margin: 26px 0 6px; font: 500 64px/1 "Cinzel", serif; color: var(--accent); }
.pd-mono span:first-child { transform: translateY(-14px); }
.pd-mono span:last-child { transform: translateY(14px); }
.pd-mono .script { font-size: 84px; line-height: .8; color: var(--ink); opacity: .75; margin: 0 2px; }
.js .reveal .pd-arch-in, .js .pd-arch-in { clip-path: inset(0 0 0 0 round 999px 999px 0 0); }
.js .opening.reveal:not(.is-visible) .pd-arch-in { clip-path: inset(100% 0 0 0 round 999px 999px 0 0); }
.js .opening.reveal .pd-arch-in { transition: clip-path 1.4s cubic-bezier(.2, .7, .2, 1) .2s; }
[data-theme="pendopo"] .opening .quote { background: transparent; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; margin-top: 18px; }
[data-theme="pendopo"] .opening .quote p { font-size: 19px; }

/* mempelai */
.pd-couple-head { margin: 10px auto 30px; max-width: 34ch; }
.pd-couple-head .greeting { font-family: "Cinzel", serif; font-style: normal; font-size: 14px; letter-spacing: .06em; margin: 10px 0 8px; }
[data-theme="pendopo"] .person-photo { width: 176px; height: 236px; border-radius: 999px; border: 6px solid #fff; box-shadow: 0 0 0 1.5px var(--accent), var(--shadow); margin-bottom: 4px; }
[data-theme="pendopo"] .monogram { width: 160px; height: 210px; border-radius: 999px; }
.pd-person { width: 120px; height: 120px; left: -64px; bottom: -26px; z-index: 2 !important; transform: rotate(-90deg) scaleX(-1); }
[data-theme="pendopo"] .person:last-of-type .pd-person { left: auto; right: -64px; transform: rotate(90deg); }
[data-theme="pendopo"] .person-nick { font-size: 46px; color: var(--accent); margin-top: 6px; }
[data-theme="pendopo"] .person-name { font: 500 19px/1.35 "Cinzel", serif; letter-spacing: .03em; }
[data-theme="pendopo"] .couple-amp { font-size: 52px; color: var(--accent); margin: 22px 0 12px; }
[data-theme="pendopo"] .person-ig { display: inline-flex; padding: 6px 14px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-size: 13px; margin-top: 4px; }

/* kisah */
[data-theme="pendopo"] .timeline::before { width: 2px; background: var(--accent); opacity: .5; }
[data-theme="pendopo"] .tl-item { margin-bottom: 16px; padding: 18px; border-radius: 4px 22px 4px 22px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); }
[data-theme="pendopo"] .sec .tl-item::before { left: -27px; top: 22px; width: 12px; height: 12px; border: 0; border-radius: 2px; transform: rotate(45deg); background: var(--accent); box-shadow: 0 0 0 4px var(--bg); }
[data-theme="pendopo"] .tl-title { font: 500 19px/1.3 "Cinzel", serif; }

/* acara */
[data-theme="pendopo"] .events .countdown { margin: 18px auto 14px; }
[data-theme="pendopo"] .countdown div { background: var(--accent); color: var(--on-accent); border: 0; border-radius: 999px 999px 10px 10px; padding-top: 16px; box-shadow: 0 10px 20px -14px var(--accent); }
[data-theme="pendopo"] .countdown span { font: 500 26px/1.2 "Cinzel", serif; }
[data-theme="pendopo"] .countdown small { color: inherit; opacity: .82; }
.pd-save { margin-bottom: 6px; }
[data-theme="pendopo"] .event-card {
  position: relative; overflow: hidden; background: var(--accent); color: var(--on-accent); border: 0;
  border-radius: 220px 220px 24px 24px; padding: 64px 24px 30px; box-shadow: 0 24px 50px -30px var(--accent);
}
[data-theme="pendopo"] .event-card::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 212px 212px 18px 18px; pointer-events: none; }
.pd-ev-candi { left: 0; top: 0; width: 100%; height: 150px; opacity: .22; z-index: 0; --cd: #fff; --cd2: #fff; --cd3: #fff; --hz: #fff; --hz2: #fff; }
[data-theme="pendopo"] .event-card > :not(.pd) { position: relative; z-index: 1; }
[data-theme="pendopo"] .event-name { font: 500 26px/1.2 "Cinzel", serif; letter-spacing: .06em; text-transform: uppercase; }
[data-theme="pendopo"] .event-meta { display: none; }
[data-theme="pendopo"] .ev-row b { font-family: "Cinzel", serif; font-weight: 500; }
[data-theme="pendopo"] .event-venue { display: grid; justify-items: center; gap: 8px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .28); font-size: 16px; }
[data-theme="pendopo"] .event-venue svg { width: 20px; height: 20px; }
[data-theme="pendopo"] .event-address { color: var(--band-muted); }
[data-theme="pendopo"] .event-card .btn-primary { background: #fff; color: var(--accent); box-shadow: none; }
[data-theme="pendopo"] .event-card .btn-ghost { color: var(--on-accent); border-color: rgba(255, 255, 255, .45); }
[data-theme="pendopo"] .ev-time { color: var(--band-muted); }

/* galeri: pita warna */
[data-theme="pendopo"] .sec.gallery-sec { background: var(--band); color: var(--band-ink); border-radius: 50% 50% 0 0 / 46px 46px 0 0; padding-top: 66px; }
[data-theme="pendopo"] .sec.gallery-sec::before { background: #fff; opacity: .07; }
[data-theme="pendopo"] .gallery-sec .eyebrow { color: var(--band-soft); }
[data-theme="pendopo"] .gallery-sec .sec-title { color: var(--band-ink); }
[data-theme="pendopo"] .g-item { border: 3px solid rgba(255, 255, 255, .92); border-radius: 12px; }
[data-theme="pendopo"] .g-item--0 { border-radius: 999px 999px 12px 12px; }
[data-theme="pendopo"] .video-wrap { border: 3px solid rgba(255, 255, 255, .92); }

/* RSVP, amplop, penutup */
[data-theme="pendopo"] .rsvp-form, [data-theme="pendopo"] .gift-card { border-top: 4px solid var(--accent); }
[data-theme="pendopo"] .choice input:checked + span { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
[data-theme="pendopo"] .wish { border-left: 3px solid var(--accent); }
[data-theme="pendopo"] .wishes-head h3 { font: 500 20px/1.3 "Cinzel", serif; }
[data-theme="pendopo"] .gift-number { font-family: "Cinzel", serif; font-weight: 500; font-size: 26px; }
[data-theme="pendopo"] .closing { padding-top: 110px; padding-bottom: 190px; }
[data-theme="pendopo"] .closing-names { font: 500 34px/1.2 "Cinzel", serif; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
[data-theme="pendopo"] .closing-names .amp { font-family: "Pinyon Script", cursive; text-transform: none; color: var(--accent); }
[data-theme="pendopo"] .closing .greeting { font-family: "Cinzel", serif; font-style: normal; font-size: 15px; }

/* panel samping (desktop) */
.pd-side { right: -40px; bottom: -40px; width: 360px; height: 360px; transform: rotate(180deg); z-index: 2; }
[data-theme="pendopo"] .side-names { font-family: "Cinzel", serif; font-weight: 500; font-size: clamp(40px, 4vw, 60px); text-transform: uppercase; letter-spacing: .05em; }
[data-theme="pendopo"] .side-names .amp { font-family: "Pinyon Script", cursive; text-transform: none; color: var(--side-accent); }

@media (prefers-reduced-motion: reduce) {
  .sc-clouds, .sc-bf, .sc-bf svg, .sc-hint span { animation: none !important; }
  .scene .sc-bf { opacity: 1; }
  .js .opening.reveal .pd-arch-in { transition: none; clip-path: none; }
}

/* bagian di bawah layar tidak dirender sebelum didekati (lebih ringan di HP) */
[data-theme="pendopo"] .sec:not(.hero) { content-visibility: auto; contain-intrinsic-size: auto 900px; }

/* ---------- gambar lukisan pengganti (Admin → Tema → Gambar adegan) ---------- */
img.sc-l, img.pd { aspect-ratio: auto; object-fit: contain; max-width: none; }
img.sc-sky-img { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
img.sc-haze { height: auto; max-height: 34%; object-fit: cover; object-position: 50% 100%; }
img.sc-house { height: auto; }
img.sc-tree, img.sc-bp { width: auto; }
img.sc-bed, img.pd-bed-l, img.pd-bed-r, img.pd-top-l, img.pd-top-r { height: auto; }
img.sc-fg { object-fit: cover; object-position: 0 50%; }
img.pd-ev-candi { height: 170px; object-fit: cover; object-position: 50% 100%; opacity: .2; mix-blend-mode: luminosity; }
