@import url('https://fonts.googleapis.com/css2?family=Gilda+Display&family=Quicksand:wght@400;500;600;700&family=Niconne&family=Baloo+2:wght@400;600;700&family=Cinzel:wght@400;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600&family=DM+Sans:wght@400;500;700&family=DM+Serif+Display:ital@0;1&family=EB+Garamond:ital,wght@0,400;0,600;1,400&family=Great+Vibes&family=Karla:wght@400;500;600&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Lora:ital,wght@0,400;0,600;1,400&family=Manrope:wght@400;500;600&family=Montserrat:wght@400;500;600;700&family=Mulish:wght@400;500;600;700&family=Nunito+Sans:wght@400;600;700&family=Playfair+Display:ital,wght@0,400;0,600;1,400;1,600&family=Poppins:wght@400;500;600;700&family=Prata&family=Source+Sans+3:wght@400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Alice&family=Allura&family=Amiri:ital,wght@0,400;0,700;1,400&family=Bodoni+Moda:ital,wght@0,400;0,600;1,400&family=Cardo:ital,wght@0,400;0,700;1,400&family=Cormorant+Infant:ital,wght@0,400;0,600;1,400&family=Cormorant+SC:wght@400;600&family=Fraunces:opsz,wght@9..144,400;9..144,600&family=Forum&family=Italiana&family=Libre+Caslon+Display&family=Marcellus&family=Noto+Sans:wght@400;500;600&family=Noto+Serif:ital,wght@0,400;0,600;1,400&family=Parisienne&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Assistant:wght@400;500;600&family=Belleza&family=Cinzel+Decorative:wght@400;700&family=Crimson+Pro:ital,wght@0,400;0,600;1,400&family=Figtree:wght@400;500;600&family=Inter:wght@400;500;600&family=Josefin+Sans:wght@400;500;600&family=Lato:wght@400;700&family=Merriweather:ital,wght@0,400;0,700;1,400&family=Nunito:wght@400;500;600&family=Outfit:wght@400;500;600&family=Raleway:wght@400;500;600&family=Rubik:wght@400;500;600&family=Spectral:ital,wght@0,400;0,600;1,400&family=Urbanist:wght@400;500;600&family=Work+Sans:wght@400;500;600&display=swap');

/* =========================================================================
   Vintage 01 — Peacock Garden
   Satu stylesheet untuk undangan publik & Live Editor.
   ========================================================================= */

:root {
    --primary: #4B6F79;
    --primary-light: #8C6A52;
    --secondary: #8C6A52;
    --bg-color: #EEECE6;
    --text: #5E6466;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body { margin: 0; padding: 0; }
body:not(.live-editor-body) { overflow: hidden; background: #2C3B40; }

.vintage-renderer {
    --vt-teal: var(--primary, #4B6F79);
    --vt-brown: var(--secondary, #8C6A52);
    --vt-cream: var(--bg-color, #EEECE6);
    --vt-text: var(--text, #5E6466);
    --vt-ink: var(--boho-dark, #3E5860);
    --vt-head: var(--boho-font-heading, 'Gilda Display'), serif;
    --vt-body: var(--boho-font-body, 'Quicksand'), sans-serif;
    --vt-script: var(--vt-font-script, 'Niconne'), cursive;
    --vt-panel-w: 500px;
    position: relative;
    width: 100%;
    max-width: none;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    background: #2C3B40;
    color: var(--vt-text);
    font-family: var(--vt-body);
    font-size: 14px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    container-type: inline-size;
    container-name: vtapp;
}
:where(.vintage-renderer) :where(h1, h2, h3, h4, p) { margin: 0; font-weight: inherit; }
:where(.vintage-renderer) :where(img, video) { display: block; max-width: none; }
:where(.vintage-renderer) :where(a) { color: inherit; text-decoration: none; }
:where(.vintage-renderer) :where(button) { font: inherit; color: inherit; cursor: pointer; }
:where(.vintage-renderer) :where(svg) { display: inline-block; flex: none; }
.vintage-renderer .font-serif { font-family: var(--vt-head); }
.text-terra { color: var(--primary); }
.text-coffee { color: var(--text); }

/* ---------- Kerangka: panel kiri (desktop, foto sampul) + panel undangan ---------- */
.vt-side { display: none; position: absolute; top: 0; bottom: 0; left: 0; width: calc(100% - var(--vt-panel-w)); overflow: hidden; background: #3a3a38; }
.vt-side-media, .vt-side-media img, .vt-side-media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vt-side-shade { position: absolute; inset: 0; background: rgba(28, 28, 28, .38); }
.vt-side-copy { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-58%); padding: 0 40px; text-align: center; color: #fff; }
.vt-side-eyebrow { font-family: var(--vt-body); font-weight: 600; font-size: 17px; letter-spacing: .02em; text-transform: uppercase; }
.vt-side-names { font-family: var(--vt-head); font-weight: 400; font-size: clamp(40px, 4.4vw, 58px); line-height: 1.15; margin: 10px 0 12px !important; text-shadow: 0 2px 18px rgba(0,0,0,.18); }
.vt-side-date { font-family: var(--vt-body); font-weight: 600; font-size: 18px; letter-spacing: .02em; }
.vt-side-actions { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 3; display: flex; gap: 6px; }
.vt-side-actions .photo-edit { position: static; white-space: nowrap; }
.vt-panel {
    position: relative;
    width: 100%;
    height: 100%;
    margin-left: auto;
    overflow: hidden;
    background: var(--vt-cream);
    container-type: inline-size;
    container-name: vtpanel;
}
@container vtapp (min-width: 900px) {
    .vt-side { display: block; }
    .vt-panel { width: var(--vt-panel-w); box-shadow: -10px 0 40px rgba(0,0,0,.18); }
}

.vt-scroll {
    position: relative;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.vt-scroll::-webkit-scrollbar { display: none; }

/* Section dasar (menimpa perilaku "page" template lama) */
.vintage-renderer .page-section.vt-sec {
    position: relative;
    inset: auto;
    opacity: 1;
    visibility: visible;
    transform: none;
    z-index: auto;
    overflow: hidden;
}
.vt-inner { position: relative; z-index: 2; }
.vintage-renderer .bottom-nav.vt-legacy-nav { display: none !important; }

/* ---------- Tipografi bersama ---------- */
.vt-title { font-family: var(--vt-head); font-weight: 400; font-size: 30px; font-size: clamp(26px, 6.1cqw, 32px); line-height: 1.2; text-align: center; letter-spacing: .01em; }
.vt-title-light { color: #fff; }
.vt-title-brown { color: var(--vt-brown); }
.vt-title-sm { font-size: 26px; font-size: clamp(22px, 5.2cqw, 27px); }
.vt-lead { font-size: 13px; font-weight: 500; line-height: 1.75; text-align: center; color: rgba(255,255,255,.92); max-width: 400px; margin: 14px auto 0 !important; white-space: pre-line; }
.vt-lead-dark { color: var(--vt-text); }

/* ---------- Animasi masuk & keluar ----------
   Keadaan awal sebelum JS jalan. Gerak in/out mengikuti scroll diatur oleh
   _partials/scroll-reveal (class .rv-on + variabel --rv). */
.vt-js:not(.boho-editor-mode) .vt-reveal { opacity: 0; filter: blur(4px); transition: opacity .9s ease, transform 1s cubic-bezier(.22,.61,.36,1), filter .9s ease; will-change: opacity, transform, filter; }
.vt-js:not(.boho-editor-mode) .vt-reveal[data-anim="up"] { transform: translateY(34px); }
.vt-js:not(.boho-editor-mode) .vt-reveal[data-anim="zoom"] { transform: translateY(24px) scale(.94); }
.vt-js:not(.boho-editor-mode) .vt-reveal[data-anim="fade"] { transform: none; }
.vt-js:not(.boho-editor-mode) .vt-reveal.is-in { opacity: 1; transform: none; filter: none; }

/* ---------- Ornamen tepi yang melambai ---------- */
.vt-edge { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.vt-edge-item { position: absolute; display: block; }
.vt-edge-item img { display: block; width: 100%; height: auto; }
.vt-edge-top .vt-edge-item { top: -14px; width: 62px; width: clamp(48px, 13cqw, 68px); }
.vt-edge-top .vt-edge-l { left: -24px; transform-origin: 40% 0; animation: vtSwayHang 6.4s ease-in-out infinite; }
.vt-edge-top .vt-edge-r { right: -24px; scale: -1 1; transform-origin: 40% 0; animation: vtSwayHang 7.1s ease-in-out -2.6s infinite; }
.vt-edge-bottom .vt-edge-item { bottom: -18px; width: 96px; width: clamp(74px, 20cqw, 108px); }
.vt-edge-bottom .vt-edge-l { left: -30px; transform-origin: 30% 100%; animation: vtSwayGrow 7.4s ease-in-out -1.4s infinite; }
.vt-edge-bottom .vt-edge-r { right: -30px; scale: -1 1; transform-origin: 30% 100%; animation: vtSwayGrow 6.8s ease-in-out -4s infinite; }
/* Ranting menggantung: berayun dari pangkal atas seperti tertiup angin. */
@keyframes vtSwayHang {
    0%, 100% { transform: rotate(0deg) skewX(0deg); }
    30% { transform: rotate(2.2deg) skewX(-1deg); }
    60% { transform: rotate(-1.4deg) skewX(.8deg); }
    80% { transform: rotate(.8deg) skewX(-.3deg); }
}
/* Buket tumbuh dari bawah: ujung daun melambai, pangkal diam. */
@keyframes vtSwayGrow {
    0%, 100% { transform: rotate(0deg) skewX(0deg); }
    35% { transform: rotate(-1.8deg) skewX(1.4deg); }
    70% { transform: rotate(1.2deg) skewX(-1deg); }
}

/* ---------- Burung terbang ---------- */
.vt-birds { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.vt-bird { position: absolute; left: var(--x); top: var(--y); width: 17px; height: 9px; color: #262626; transform: scale(var(--s)); animation: vtBirdFly var(--dur) linear var(--delay) infinite; }
.vt-bird svg { width: 100%; height: 100%; fill: currentColor; transform-origin: 50% 65%; animation: vtFlap .42s ease-in-out infinite alternate; }
.vt-birds-couple .vt-bird, .vt-birds-closing .vt-bird { top: calc(var(--y) + 38%); }
@keyframes vtBirdFly {
    0% { translate: -60cqw 18px; }
    50% { translate: 20cqw -10px; }
    100% { translate: 110cqw 12px; }
}
@keyframes vtFlap { from { transform: scaleY(1); } to { transform: scaleY(.35); } }

/* ---------- Tombol ---------- */
.vt-btn-open, .vt-btn-std {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border: 0; border-radius: 999px; color: #fff; white-space: nowrap;
    background: linear-gradient(180deg, #6A8A93 0%, #4C6B74 100%);
    box-shadow: 0 6px 16px rgba(46, 72, 80, .28), inset 0 1px 0 rgba(255,255,255,.18);
    transition: transform .2s ease, box-shadow .2s ease;
}
.vt-btn-open:hover, .vt-btn-std:hover { transform: translateY(-1px); box-shadow: 0 9px 20px rgba(46,72,80,.32); }
.vt-btn-open:focus-visible, .vt-btn-std:focus-visible, .vt-btn-soft:focus-visible, .vt-btn-white:focus-visible, .vt-btn-loc:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.vt-btn-open { font-family: var(--vt-head); font-size: 15px; letter-spacing: .15em; text-transform: uppercase; padding: 12px 30px; }
.vt-btn-std { font-family: var(--vt-body); font-weight: 600; font-size: 12.5px; font-size: clamp(11px, 2.6cqw, 13.5px); letter-spacing: .12em; text-transform: uppercase; padding: 10px 22px; }

/* ---------- Gate / sampul pembuka ---------- */
.vintage-renderer .gate-overlay {
    position: absolute; inset: 0; z-index: 60; overflow: hidden; display: block;
    transition: transform 1.2s cubic-bezier(.75, 0, .25, 1);
    background: var(--vt-cream);
}
.vintage-renderer .gate-overlay.open { transform: translateY(-100%); }
.vt-gate-bg { position: absolute; inset: 0; background: var(--vt-img-landscape) center bottom / cover no-repeat; }
.vt-gate-inner { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; align-items: center; padding: 70px 24px 0; padding-top: clamp(44px, 11vh, 96px); text-align: center; }
.vt-gate-eyebrow { font-family: var(--vt-body); font-weight: 600; font-size: 14.5px; letter-spacing: .06em; color: #58707A; }
.vt-gate-photo { position: relative; width: 170px; width: clamp(130px, 34cqw, 180px); aspect-ratio: 13 / 20; margin-top: 14px; border-radius: 16px; border: 3px solid #fff; overflow: hidden; background: #dfe1dd; box-shadow: 0 8px 22px rgba(40, 55, 60, .18); }
.vt-gate-photo img, .vt-gate-photo video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vt-gate-names { font-family: var(--vt-head); font-weight: 400; font-size: 34px; font-size: clamp(28px, 6.9cqw, 36px); color: #4F666D; margin-top: 20px !important; line-height: 1.2; }
.vt-gate-to { font-size: 13px; font-weight: 600; color: #5B6D73; margin-top: 14px !important; }
.vt-gate-guest { font-size: 14.5px; font-weight: 700; letter-spacing: .1em; color: #4F5F64; margin-top: 14px !important; text-transform: capitalize; }
.vt-gate-inner .vt-btn-open { margin-top: 30px; }
.vt-js:not(.boho-editor-mode) .vt-gate .vt-in { opacity: 0; animation: vtGateIn 1s cubic-bezier(.2,.75,.25,1) forwards; animation-delay: var(--d, 0s); }
.vt-js:not(.boho-editor-mode) .vt-gate .vt-in-zoom { animation-name: vtGateZoom; animation-duration: 1.3s; }
@keyframes vtGateIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes vtGateZoom { from { opacity: 0; transform: scale(.2); } to { opacity: 1; transform: none; } }
.vt-gate-photo .opening-cover-actions { position: static; }
.vt-gate-photo .photo-edit { position: absolute; left: 50%; transform: translateX(-50%); z-index: 3; white-space: nowrap; }
.vt-gate-photo .gate-position-edit { bottom: 4px; }
.vt-gate-photo .opening-cover-upload { bottom: 34px; }
.vt-gate-photo .opening-cover-remove { bottom: 64px; }

/* ---------- Musik ---------- */
.vintage-renderer .music-btn {
    position: absolute; top: auto; right: 16px; bottom: 20px; z-index: 70;
    width: 34px; height: 34px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #fff; color: var(--vt-teal); border: 0;
    box-shadow: 0 3px 10px rgba(0,0,0,.18);
    cursor: pointer; opacity: 0; transform: scale(0); transition: opacity .5s, transform .5s;
}
.vintage-renderer .music-btn svg { width: 24px; height: 24px; }
.vintage-renderer .music-btn.visible { opacity: 1; transform: scale(1); }
.vintage-renderer .music-btn.spin svg { animation: vtSpin 4s linear infinite; }
@keyframes vtSpin { to { transform: rotate(360deg); } }

/* ---------- Hero (animasi pembuka) ---------- */
.vt-hero { height: 100%; min-height: 540px; background: #E8EAE7; }
.vt-hero-media { position: absolute; inset: 0; }
.vt-hero-video, .vt-hero-still { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.vt-hero-still { transition: opacity .6s ease; }
.vt-js .vt-hero.has-video:not(.is-fallback) .vt-hero-still { opacity: 0; }
.vt-hero-copy {
    position: absolute; inset: 0; z-index: 3;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 0 14% 4%; text-align: center; color: var(--vt-ink);
}
.vt-hero-eyebrow { font-family: var(--vt-body); font-weight: 600; font-size: 15px; font-size: clamp(12px, 3cqw, 16px); letter-spacing: .03em; text-transform: uppercase; color: #506064; }
.vt-hero-names { font-family: var(--vt-script); font-weight: 400; font-size: 58px; font-size: clamp(44px, 11.5cqw, 62px); line-height: 1.12; color: var(--vt-ink); margin: 7cqw 0 8cqw !important; }
.vt-profile-note { color: #4A585B; font-size: 12px; line-height: 1.5; margin: -5cqw auto 0 !important; }
.vt-hero-n1, .vt-hero-n2 { display: block; }
.vt-hero-n2 { margin-top: .42em; }
.vt-hero-date { font-family: var(--vt-body); font-weight: 600; font-size: 16px; font-size: clamp(13px, 3.3cqw, 17px); color: #4A585B; letter-spacing: .02em; }
.vt-hero-copy .vt-btn-std { margin-top: 36px; margin-top: 7.6cqw; }
.vt-hero-date-editor { margin: 0 auto; }
.vt-js .vt-hero.has-video .vt-hero-copy > * { opacity: 0; transform: translateY(12px) scale(.96); transition: opacity 1.1s ease, transform 1.2s cubic-bezier(.2,.75,.25,1); }
.vt-js .vt-hero.has-video.is-revealed .vt-hero-copy > * { opacity: 1; transform: none; }
.vt-js .vt-hero.has-video.is-revealed .vt-hero-copy > :nth-child(2) { transition-delay: .25s; }
.vt-js .vt-hero.has-video.is-revealed .vt-hero-copy > :nth-child(3) { transition-delay: .55s; }
.vt-js .vt-hero.has-video.is-revealed .vt-hero-copy > :nth-child(4) { transition-delay: .8s; }
.vt-js .vt-hero.has-video:not(.is-revealed) .vt-hero-copy { pointer-events: none; }
.vt-birds-hero { z-index: 2; }

/* ---------- Section teal & tekstur ---------- */
.vt-teal { background-color: var(--vt-teal); color: #fff; }
.vt-teal::before {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background: var(--vt-img-forest) center / cover no-repeat;
    filter: grayscale(1) contrast(1.35);
    mix-blend-mode: multiply; opacity: .16;
}
.vt-teal-scape::before { background-image: var(--vt-img-landscape); background-position: center 70%; opacity: .26; }
.vt-teal-leaf::before { background-image: var(--vt-img-forest); background-position: center top; background-size: 180% auto; background-repeat: repeat-y; opacity: .15; }

/* Quote */
.vt-quote { padding: 60px 30px 64px; text-align: center; }
.vt-monogram { position: relative; display: inline-flex; flex-direction: column; align-items: center; color: #fff; }
.vt-monogram { display: flex; }
.vt-mono-letters { font-family: var(--vt-script); font-size: 58px; line-height: 1; letter-spacing: -.12em; padding-right: .12em; }
.vt-monogram svg { width: 86px; height: 18px; margin-top: -8px; opacity: .9; }
.vt-quote-text { font-size: 13px; font-weight: 500; line-height: 1.75; color: rgba(255,255,255,.95); max-width: 420px; margin: 22px auto 0; white-space: pre-line; }
.vt-quote-text::before { content: "\201C"; }
.vt-quote-text::after { content: "\201D"; }
.vt-quote-source { font-size: 13px; font-weight: 500; color: rgba(255,255,255,.92); margin-top: 18px !important; }

/* ---------- Mempelai ---------- */
.vt-couple {
    min-height: 1510px;
    min-height: calc(100cqw * 3.019);
    padding: 44cqw 26px 46cqw;
    background: var(--vt-cream) var(--vt-img-forest) center bottom / cover no-repeat;
    text-align: center;
}
.vintage-renderer #page-couple.vt-couple.vt-sec { display: block; }
.vt-salam { font-size: 13px; font-weight: 600; letter-spacing: .16em; color: #5A6467; }
.vt-intro { font-size: 13px; font-weight: 500; line-height: 1.75; color: #5E6466; max-width: min(380px, 80%); margin: 16px auto 0 !important; white-space: pre-line; }
.vt-person { display: flex; flex-direction: column; align-items: center; margin-top: 46px; }
.vt-person-frame { position: relative; }
.vintage-renderer .couple-photo-frame {
    position: relative; width: 132px; width: clamp(118px, 26.4cqw, 150px); aspect-ratio: 13 / 20; height: auto;
    border-radius: 16px; border: 3px solid #fff; overflow: hidden; background: #dcdcd8;
    box-shadow: 0 10px 24px rgba(50, 45, 40, .16);
}
.vintage-renderer .couple-arch { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; border: 0; box-shadow: none; }
.vt-person-name { font-family: var(--vt-head); font-weight: 400; font-size: 26px; font-size: clamp(22px, 5.3cqw, 28px); color: var(--vt-brown); margin-top: 18px !important; line-height: 1.25; }
.vt-person-parents { font-size: 12.5px; font-weight: 500; line-height: 1.75; color: #5E6466; margin-top: 10px !important; }
.vt-ig { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--vt-brown); color: #fff; margin-top: 14px; box-shadow: 0 3px 8px rgba(80,55,40,.2); }
.vt-ig svg { width: 15px; height: 15px; }
.vt-ig-edit { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 12px; font-weight: 600; color: var(--vt-brown); }
.vt-ig-edit .vt-ig { margin-top: 0; }
.vt-couple-amp { font-family: var(--vt-head); font-size: 30px; color: var(--vt-brown); margin-top: 40px; line-height: 1; }
.vt-couple-amp + .vt-person { margin-top: 30px; }
.couple-photo-actions { position: absolute; left: 50%; bottom: -14px; transform: translateX(-50%); display: flex; gap: 4px; z-index: 3; white-space: nowrap; }

/* ---------- Kabut (love story, galeri, dll.) ---------- */
.vt-mist { background: #E4E3E0; padding: 64px 22px 60px; }
.vt-mist::before {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background: var(--vt-img-forest) center top / 190% auto repeat-y;
    filter: grayscale(1); opacity: .2; mix-blend-mode: multiply;
}
.vt-mist + .vt-mist { padding-top: 24px; }

/* Keluarga */
.vt-family-card { max-width: 400px; margin: 26px auto 0; padding: 26px 20px; border-radius: 18px; background: rgba(255,255,255,.62); border: 1px solid rgba(140,106,82,.25); text-align: center; box-shadow: 0 10px 26px rgba(60,50,40,.06); }
.family-invite-label { display: block; margin-bottom: 6px; color: var(--vt-brown); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.family-invite-name { margin: 0; color: #4f5558; font-family: var(--vt-head); font-size: 16px; line-height: 1.5; white-space: pre-line; }
.family-invite-divider { display: block; margin: 12px 0; color: var(--vt-teal); font-size: 11px; }

/* ---------- Acara ---------- */
.vt-event { padding: 56px 22px 46px; text-align: center; }
.vt-flourish { width: 118px; height: 30px; color: #fff; margin: 0 auto 10px; display: block; }
.vt-countdown { display: flex; justify-content: center; gap: 12px; gap: clamp(8px, 2.4cqw, 14px); margin: 24px auto 30px; }
.vt-count { width: 76px; width: clamp(62px, 17cqw, 86px); padding: 8px 0 7px; border-radius: 6px; background: rgba(255,255,255,.22); display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.vt-count strong { font-weight: 500; font-size: 24px; color: #fff; }
.vt-count span { font-size: 11.5px; font-weight: 500; color: rgba(255,255,255,.92); margin-top: 3px; }
.vt-count-done { font-family: var(--vt-head); font-size: 20px; color: #fff; }

.vt-event-card {
    position: relative; overflow: hidden;
    margin: 0 auto 20px; max-width: 460px; min-height: 330px;
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(243,242,237,.72), rgba(243,242,237,.86)),
        var(--vt-img-landscape) center 26% / 170% auto no-repeat,
        #F2F1EC;
    box-shadow: 0 12px 28px rgba(18, 38, 44, .28);
    color: #5D6568;
}
.vt-event-detail { color: rgba(255,255,255,.92); font-size: 13px; line-height: 1.6; text-align: center; margin: 5px auto !important; }
.vt-quote-kicker { color: rgba(255,255,255,.76); font-size: 11px; letter-spacing: .14em; margin-bottom: 12px !important; text-transform: uppercase; }
.vt-card-band {
    position: absolute; top: 0; bottom: 0; width: 24px; z-index: 1;
    background-color: #C9D4DA;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='46' viewBox='0 0 24 46'%3E%3Cg fill='none' stroke='%23748C99' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M12 0v46'/%3E%3Cpath d='M12 8c-5-5-10-1-8 3s7 2 5-1'/%3E%3Cpath d='M12 31c5-5 10-1 8 3s-7 2-5-1'/%3E%3Cpath d='M12 20c-4 1-6 4-6 7M12 43c4 1 6-2 6-5' opacity='.7'/%3E%3C/g%3E%3Cg fill='%23F4F6F7' opacity='.85'%3E%3Ccircle cx='5' cy='3' r='1.4'/%3E%3Ccircle cx='19' cy='26' r='1.4'/%3E%3C/g%3E%3C/svg%3E"), linear-gradient(90deg, #AFC0C9, #DCE4E8 50%, #AFC0C9);
    background-size: 24px 46px, 100% 100%;
    box-shadow: inset 0 0 0 1px rgba(90,115,128,.35);
}
.vt-card-band-l { left: 8px; }
.vt-card-band-r { right: 8px; }
.vt-card-deco { position: absolute; z-index: 2; pointer-events: none; height: auto; }
.vt-card-branch { left: -6px; top: 6px; width: 74px; rotate: -4deg; transform-origin: 30% 0; animation: vtSwayHang 6.4s ease-in-out -1.2s infinite; }
.vt-card-pillar { right: -4px; bottom: -6px; width: 84px; }
.vt-card-bouquet { left: -18px; bottom: -22px; width: 104px; transform-origin: 20% 100%; animation: vtSwayGrow 7.2s ease-in-out -3s infinite; }
.vt-card-body { position: relative; z-index: 3; padding: 38px 46px 42px; display: flex; flex-direction: column; align-items: center; }
.vt-card-title { font-family: var(--vt-head); font-weight: 400; font-size: 30px; font-size: clamp(26px, 6.2cqw, 32px); color: #4B5D62; line-height: 1.2; }
.vt-divider { width: 178px; height: 22px; color: #8A5E48; margin: 12px 0 14px; }
.vt-card-date { font-size: 13px; font-weight: 600; letter-spacing: .02em; color: #6A7477; }
.vt-card-time { font-size: 12px; font-weight: 500; color: #6A7477; margin-top: 14px !important; }
.vt-card-place { font-size: 12px; font-weight: 500; color: #6A7477; margin-top: 18px !important; }
.vt-card-place strong { font-weight: 700; color: #54595B; text-transform: uppercase; }
.vt-card-addr { font-size: 12px; font-weight: 500; color: #6A7477; line-height: 1.6; max-width: 240px; }
.vt-btn-loc { display: inline-flex; align-items: center; gap: 6px; margin-top: 20px; padding: 6px 14px; border-radius: 999px; background: linear-gradient(180deg, #7A949C, #5E7B84); color: #fff !important; font-size: 11.5px; font-weight: 600; box-shadow: 0 4px 10px rgba(40,70,80,.25); }
.vt-btn-loc svg { width: 13px; height: 13px; }

/* Editor list di atas teal */
.vt-editor-list { position: relative; z-index: 3; text-align: left; color: var(--vt-text); }
.vt-teal .inline-add { position: relative; z-index: 3; }

/* ---------- Live streaming ---------- */
.vt-stream { padding: 58px 26px 64px; text-align: center; }
.vt-stream-date { font-size: 15px; font-weight: 700; color: #fff; margin-top: 26px !important; letter-spacing: .02em; }
.vt-stream-time { font-size: 12px; font-weight: 500; color: rgba(255,255,255,.9); margin-top: 10px !important; }
.vt-btn-white { display: inline-flex; align-items: center; gap: 7px; margin-top: 20px; padding: 8px 18px; border-radius: 999px; background: #fff; color: #3F5961 !important; font-size: 12.5px; font-weight: 700; box-shadow: 0 5px 14px rgba(0,0,0,.18); }
.vt-btn-white svg { width: 15px; height: 15px; }
.vt-stream-test { display: block; margin-top: 10px; font-size: 11px; color: rgba(255,255,255,.85); text-decoration: underline; }
.vt-field-label { display: block; max-width: 340px; margin: 16px auto 0; font-size: 11px; text-align: left; color: rgba(255,255,255,.9); }
.vt-field-label input { width: 100%; margin-top: 4px; padding: 9px 12px; border: 0; border-radius: 8px; font: inherit; font-size: 12px; color: #333; background: #fff; }
.vt-field-dark { color: var(--vt-text); }

/* ---------- Love story ---------- */
.vt-story { text-align: center; }
.vt-story-list { margin-top: 30px; display: grid; gap: 34px; }
.vt-story-item { max-width: 440px; margin: 0 auto; }
.vt-story-photo { position: relative; aspect-ratio: 16 / 7.4; border-radius: 16px; border: 3px solid #fff; overflow: hidden; background: #d9d9d6; box-shadow: 0 10px 24px rgba(0,0,0,.14); margin-bottom: 18px; }

/* Timeline zig-zag + kupu-kupu (posisi garis & kupu-kupu dihitung di _scripts) */
.vt-timeline { position: relative; max-width: 440px; margin-left: auto; margin-right: auto; }
.vt-tl-item { position: relative; z-index: 2; width: 100%; max-width: none; margin: 0; padding-left: 44px; text-align: left; }
.vt-tl-item.is-right { padding-left: 0; padding-right: 44px; text-align: right; }
.vt-tl-card { padding: 16px 16px 18px; border-radius: 14px; background: rgba(255,255,255,.74); border: 1px solid rgba(140,106,82,.22); box-shadow: 0 8px 20px rgba(60,50,40,.06); }
.vt-tl-card .vt-story-photo { margin-bottom: 14px; box-shadow: none; }
.vt-tl-dot {
    position: absolute; top: 14px; left: 0; z-index: 3;
    width: 32px; height: 32px; border-radius: 50%;
    display: grid; place-items: center;
    border: 1.5px solid var(--vt-brown); background: var(--vt-cream); color: color-mix(in srgb, var(--vt-brown) 72%, #000);
    font-size: 11px; font-weight: 700; letter-spacing: .02em;
    transition: background-color .45s ease, border-color .45s ease, color .45s ease;
}
.vt-tl-item.is-right .vt-tl-dot { left: auto; right: 0; }
.vt-tl-dot.is-reached { background: var(--vt-teal); border-color: var(--vt-teal); color: #fff; }
.vt-tl-dot > svg { display: none; width: 17px; height: 14px; }
.vt-tl-dot.is-last.is-reached > svg { display: block; animation: vtFlutter .5s ease-in-out 3 alternate; }
.vt-tl-dot.is-last.is-reached .vt-tl-num { display: none; }
.vt-tl-svg { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.vt-tl-line { fill: none; stroke: var(--vt-brown); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.vt-tl-fly { position: absolute; left: 0; top: 0; z-index: 4; width: 26px; height: 22px; margin: -11px 0 0 -13px; color: var(--vt-teal); pointer-events: none; opacity: 0; transition: opacity .35s ease; will-change: transform; }
.vt-tl-fly svg { display: block; width: 100%; height: 100%; animation: vtFlutter .26s ease-in-out infinite alternate; }
.vt-timeline.is-flying .vt-tl-fly { opacity: 1; }
@keyframes vtFlutter { from { transform: scaleX(1); } to { transform: scaleX(.32); } }
.vt-story-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vt-story-year { display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; color: var(--vt-brown); margin-bottom: 4px; }
.vt-story-title { font-family: var(--vt-body); font-size: 14.5px; font-weight: 700; color: #4A4F51; }
.vt-story-text { font-size: 12.5px; font-weight: 500; line-height: 1.75; color: #7A7F81; margin-top: 8px !important; white-space: pre-line; }

/* ---------- Galeri ---------- */
.vt-gallery { text-align: center; }
.vt-masonry { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 8px; grid-auto-flow: row dense; column-gap: 10px; margin-top: 30px; }
.vt-masonry-item { position: relative; display: block; height: calc(100% - 10px); border-radius: 10px; overflow: hidden; background: #d4d4d1; box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.vt-masonry-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: scale .5s ease; }
.vt-masonry-item:hover img { scale: 1.04; }
.vintage-renderer .gallery-grid { margin-top: 24px; }

.vt-lightbox { position: absolute; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(20,28,30,.9); opacity: 0; transition: opacity .25s ease; }
.vt-lightbox.is-open { opacity: 1; }
.vt-lightbox[hidden] { display: none; }
.vt-lightbox img { max-width: 100%; max-height: 100%; border-radius: 10px; object-fit: contain; }
.vt-lightbox-close { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font-size: 24px; line-height: 1; }

/* ---------- Amplop digital ---------- */
.vt-gift { padding: 60px 24px 30px; text-align: center; }
.vt-btn-soft { display: inline-flex; align-items: center; gap: 6px; margin-top: 30px; padding: 6px 14px; border: 0; border-radius: 999px; background: rgba(255,255,255,.28); color: #fff; font-size: 11.5px; font-weight: 600; box-shadow: 0 3px 10px rgba(0,0,0,.1); }
.vt-btn-soft svg { width: 13px; height: 13px; }
.vt-gift-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s ease; }
.vt-gift-panel.is-open { grid-template-rows: 1fr; }
.vt-gift-panel-inner { overflow: hidden; display: grid; gap: 14px; }
.vt-gift-panel.is-open .vt-gift-panel-inner { padding-top: 22px; }
.vt-gift-card { max-width: 360px; width: 100%; margin: 0 auto; padding: 22px 20px; border-radius: 14px; background: rgba(255,255,255,.93); color: #4F5558; box-shadow: 0 10px 24px rgba(0,0,0,.14); }
.vt-gift-img { width: 96px; height: 96px; object-fit: contain; margin: 0 auto 12px; border-radius: 10px; background: #fff; }
.vt-gift-bank { font-family: var(--vt-head); font-size: 21px; color: var(--vt-ink); }
.vintage-renderer .gift-account-number { font-size: 20px; font-weight: 700; letter-spacing: .08em; color: #3D4A4E !important; -webkit-text-fill-color: #3D4A4E; margin-top: 10px !important; }
.vt-gift-holder { font-size: 12.5px; font-weight: 500; margin-top: 2px !important; }
.vintage-renderer .copy-account-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; margin-top: 14px; padding: 0 20px; border: 0; border-radius: 999px; background: linear-gradient(180deg, #6A8A93, #4C6B74); color: #fff !important; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; box-shadow: 0 5px 12px rgba(46,72,80,.25); transition: background .2s ease; }
.vintage-renderer .copy-account-btn.is-copied { background: #13795b; }
.vintage-renderer .copy-account-btn.is-copy-error { background: #9b2c2c; }

/* ---------- Ucapan / RSVP ---------- */
.vt-rsvp { padding: 40px 24px 64px; text-align: center; }
.vt-gift + .vt-rsvp { padding-top: 34px; }
.vt-rsvp .vt-title-light { color: #F0D873; }
.vt-rsvp-note { font-size: 11.5px; font-weight: 500; color: #F7F0DD; margin-top: 16px !important; }
.vt-rsvp-form, .vt-rsvp-preview { max-width: 400px; margin: 22px auto 0; text-align: left; color: #F7F0DD; }
.vt-rsvp-form form { display: flex; flex-direction: column; gap: 10px; }
.vt-rsvp-form label { font-size: 13px; font-weight: 600; color: #F7F0DD; }
.vt-rsvp-form .rsvp-radio-option,
.vt-rsvp-form [data-rsvp-guest-count] :is(button, input) { color: #3F4A4E; }
.vintage-renderer .vt-input, .vt-rsvp-preview .rsvp-fake-input, .vt-rsvp-preview .rsvp-fake-textarea {
    display: block; width: 100%; margin: 0; padding: 11px 14px;
    border: 1px solid rgba(255,255,255,.6); border-radius: 8px; background: #fff;
    font-family: var(--vt-body); font-size: 13px; font-weight: 500; color: #3F4A4E; outline: none;
}
.vintage-renderer .vt-input::placeholder { color: #B5B5B5; }
.vintage-renderer .vt-input:focus { box-shadow: 0 0 0 3px rgba(255,255,255,.35); }
.vintage-renderer .vt-textarea, .vt-rsvp-preview .rsvp-fake-textarea { min-height: 96px; resize: vertical; }
.vt-rsvp-preview .rsvp-fake-input, .vt-rsvp-preview .rsvp-fake-textarea { color: #B5B5B5; margin-bottom: 10px; }
.vintage-renderer .vt-select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234B6F79' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center; padding-right: 34px; }
.vintage-renderer .vt-btn-gold, .vt-rsvp-preview .rsvp-submit {
    display: block; width: 100%; min-height: 38px; margin-top: 4px; padding: 9px 16px;
    border: 0; border-radius: 8px; background: linear-gradient(180deg, #F0D873 0%, #D8B64A 100%);
    color: #2F2F2F; font-family: var(--vt-body); font-size: 13px; font-weight: 700; text-align: center;
    box-shadow: 0 4px 12px rgba(0,0,0,.14); cursor: pointer;
}
.vt-rsvp-preview .rsvp-label { display: block; margin: 6px 0 8px; font-size: 13px; font-weight: 600; color: #F7F0DD; }
.vt-rsvp-preview .rsvp-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.vt-rsvp-preview .rsvp-choice-item { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 10px; border-radius: 999px; background: #fff; font-size: 12.5px; font-weight: 600; }
.vt-rsvp-preview .rsvp-choice-item svg { width: 14px; height: 14px; }
.vt-rsvp-preview .rsvp-choice-item.is-yes { color: #28a745; }
.vt-rsvp-preview .rsvp-choice-item.is-no { color: #dc3545; }
.vt-rsvp-preview .rsvp-choice-item.is-maybe { grid-column: 1 / -1; color: #6c757d; }
.vt-rsvp-preview .rsvp-guest-count-preview { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; font-size: 12px; }
.vt-rsvp-preview .rsvp-guest-count-preview div { display: flex; align-items: center; gap: 10px; }
.vt-rsvp-preview .rsvp-guest-count-preview button { width: 26px; height: 26px; border: 0; border-radius: 50%; background: #fff; color: var(--vt-teal); }
.vt-comments { max-width: 400px; max-height: 340px; overflow-y: auto; margin: 26px auto 0; display: grid; gap: 10px; text-align: left; scrollbar-width: thin; }
.vt-comment { padding: 12px 14px; border-radius: 10px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); }
.vt-comment strong { font-size: 13px; color: #fff; }
.vt-comment p { font-size: 12.5px; color: rgba(255,255,255,.9); margin-top: 3px !important; white-space: pre-line; }
.vt-comment small { display: block; font-size: 10.5px; color: rgba(255,255,255,.6); margin-top: 4px; }

/* ---------- Penutup ---------- */
.vt-closing {
    min-height: 995px;
    min-height: calc(100cqw * 1.99);
    padding: 40cqw 30px 60cqw;
    background: var(--vt-cream) var(--vt-img-landscape) center bottom / cover no-repeat;
    text-align: center;
}
.vt-closing-photo { position: relative; width: 132px; width: clamp(118px, 26.4cqw, 150px); margin: 0 auto; }
.vt-closing-photo-clip { position: relative; aspect-ratio: 13 / 20; border-radius: 16px; border: 3px solid #fff; overflow: hidden; background: #dcdcd8; box-shadow: 0 10px 24px rgba(50,45,40,.16); }
.vt-closing-photo-clip img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vt-closing-photo .photo-edit { position: absolute; left: 50%; transform: translateX(-50%); z-index: 3; white-space: nowrap; }
.vt-closing-photo .cover-photo-edit { bottom: 34px; }
.vt-closing-photo .cover-position-edit { bottom: 4px; }
.vt-closing-photo .cover-photo-remove { bottom: 64px; }
.vt-closing-msg { font-size: 12.5px; font-weight: 500; line-height: 1.75; color: #5E6466; max-width: 390px; margin: 26px auto 0 !important; white-space: pre-line; }
.vt-closing-salam { font-size: 12.5px; font-weight: 600; letter-spacing: .14em; color: #5A6467; margin-top: 18px !important; }
.vt-closing-names { font-family: var(--vt-head); font-weight: 400; font-size: 26px; font-size: clamp(22px, 5.4cqw, 28px); color: var(--vt-ink); margin-top: 14px !important; }

/* ---------- Footer ---------- */

/* ---------- Custom section ---------- */
.custom-dynamic-items { width: min(720px, 100%); margin: 0 auto; display: grid; gap: 18px; text-align: center; }
.custom-block-text { margin: 0 auto; max-width: 440px; color: var(--vt-text); font-size: 13px; line-height: 1.8; white-space: pre-line; }
.custom-block-image { position: relative; min-height: 200px; border-radius: 16px; overflow: hidden; background: #e2e2de; border: 3px solid #fff; display: grid; place-items: center; color: #8d8179; font-size: .8rem; box-shadow: 0 10px 24px rgba(0,0,0,.1); }
.custom-block-image img { width: 100%; height: auto; max-height: 520px; object-fit: cover; }
.custom-block-button { justify-self: center; display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 22px; border-radius: 999px; background: linear-gradient(180deg, #6A8A93, #4C6B74); color: #fff !important; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.custom-block-link { justify-self: center; color: var(--vt-teal); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.custom-block-video { aspect-ratio: 16/9; border-radius: 16px; overflow: hidden; background: #1f1b18; box-shadow: 0 16px 38px rgba(0,0,0,.14); }
.custom-block-video iframe { width: 100%; height: 100%; border: 0; }
.custom-block-map { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 16px; border-radius: 14px; border: 1px solid rgba(75,111,121,.25); background: rgba(255,255,255,.7); color: var(--vt-ink); font-size: 13px; font-weight: 700; }
.custom-block-map svg { width: 18px; height: 18px; color: var(--vt-teal); }
.custom-block-placeholder { padding: 26px 18px; border: 1px dashed rgba(75,111,121,.4); border-radius: 14px; color: #7d8588; font-size: 12px; background: rgba(255,255,255,.45); }
.custom-section-layout { display: grid; grid-template-columns: 1fr; gap: 20px; text-align: center; }
.custom-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--vt-teal); margin-bottom: 8px !important; }
.custom-image { position: relative; width: min(300px, 100%); min-height: 280px; margin: 0 auto; border-radius: 16px; border: 3px solid #fff; overflow: hidden; background: #e2e2de; box-shadow: 0 10px 24px rgba(0,0,0,.1); }
.custom-image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.custom-image-placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: #8d8179; font-size: 11px; }
.custom-section-layout.layout-image-left .custom-image { order: -1; }
.custom-section-layout.layout-text-only .custom-image { display: none; }

/* ---------- Video YouTube (partial) ---------- */
.boho-video-showcase { width: 100%; margin: 24px auto 0; }
.boho-video-card { display: block; width: 100%; max-width: 460px; margin: 0 auto; background: #fff; border-radius: 16px; overflow: hidden; border: 3px solid #fff; box-shadow: 0 10px 24px rgba(0,0,0,.12); color: inherit; }
.boho-video-launch { display: block; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: inherit; cursor: pointer; font: inherit; }
.boho-video-launch[hidden], .boho-video-inline-player[hidden] { display: none !important; }
.boho-video-thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; background: #d9d9d6; }
.boho-video-thumb img { width: 100%; height: 100%; object-fit: cover; }
.boho-video-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(40,60,66,.05), rgba(40,60,66,.35)); }
.boho-video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 64px; height: 64px; display: grid; place-items: center; }
.boho-video-badge { position: absolute; right: 12px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--vt-ink); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.boho-video-copy { padding: 14px 16px; text-align: center; }
.boho-video-copy p { margin: 0 0 4px; font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--vt-teal); font-weight: 700; }
.boho-video-copy h3 { margin: 0; color: var(--vt-ink); font-size: 1.25rem; font-family: var(--vt-head); }
.boho-video-copy span { display: inline-block; margin-top: 6px; font-size: .74rem; color: #7a7f81; }
.boho-video-inline-player { position: relative; aspect-ratio: 16/9; background: #111; }
.boho-video-inline-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Mode editor ---------- */
.boho-editor-mode .vt-hero-copy > * { opacity: 1 !important; transform: none !important; }
.boho-editor-mode .vt-gate .vt-in { opacity: 1; animation: none; }
.boho-editor-mode .section-off { opacity: .45; }
.boho-editor-mode [data-edit-path] { cursor: text; }
.vintage-renderer .le-section-drag, .vintage-renderer .le-section-switch { z-index: 20; }

/* ---------- Aksesibilitas gerak ---------- */
@media (prefers-reduced-motion: reduce) {
    .vt-bird, .vt-bird svg, .vintage-renderer .music-btn.spin svg, .vt-edge-item, .vt-card-deco, .vt-tl-fly svg, .vt-tl-dot > svg { animation: none !important; }
    .vt-js .vt-reveal, .vt-js .vt-gate .vt-in { opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important; }
    .vintage-renderer .gate-overlay { transition-duration: .3s; }
}

/* Tanggal cover di mode editor tampil seperti tanggal publik */
.vintage-renderer .vt-hero-date-editor { display: flex; flex-direction: column; align-items: center; }
.vintage-renderer .vt-hero-date-editor .manual-date-input {
    width: min(280px, 80%); padding: 4px 8px; text-align: center;
    background: transparent !important; border: 1px dashed rgba(62,88,96,.35) !important; border-radius: 6px;
    font-family: var(--vt-body) !important; font-weight: 600; font-size: 14px; letter-spacing: .03em; color: #4A585B !important;
}
