/* Gaya khusus Minimalis "Vellum & Monogram". Aksen khas: foil emas (sama di ketiga varian; latar dan teks ikut varian).
   Kalkir tembus pandang = CSS (gradien putih transparan + backdrop blur). Monogram = teks dengan kilau foil (background-clip:text).
   Lapisan adegan hanya tampil saat animasi; keadaan diam hero = posisi akhir, jadi "kurangi gerakan" langsung rapi. */
body[data-gaya="vellum"]{
  --vl-foil:linear-gradient(100deg,#6E5020 0%,#9C7A36 16%,#D9BE7A 28%,#FFF3CC 36%,#E2C88C 42%,#B8913F 54%,#7A5A24 68%,#A8823F 82%,#6E5020 100%);
  --vl-pita:linear-gradient(180deg,#EEDCAE 0%,#D2B06A 40%,#A88540 62%,#E2C88C 100%);
  /* SKALA RESPONSIF. Semua ukuran template ditulis sebagai kelipatan "1 px pada layar dasar 360 x 720".
     Layar undangan (.screen) dijadikan container, jadi skala dihitung dari ukuran layar undangan itu sendiri
     (bingkai pratinjau 360x720, layar penuh halaman contoh, atau iframe landing), bukan dari jendela peramban.
     --vl-s = adegan pembuka (dasar 360 x 580: kartu + ikat bunga setinggi ~460 px harus muat utuh), boleh membesar s.d. 1,4.
     --vl-c = sampul (dasar 360 x 720, tidak membesar). --vl-w = hero dan label pita (hanya lebar, tidak membesar).
     Di 360 x 720 ketiganya tepat 1px, jadi tampilan sama dengan versi yang disetujui CEO.
     Peramban tanpa container query memakai 1px (tampilan lama). */
  --vl-s:1px; --vl-c:1px; --vl-w:1px;
  --vl-ls:calc(var(--vl-w) * 4.25);
}
@supports (container-type:size){
  body[data-gaya="vellum"] .screen{container-type:size}
  body[data-gaya="vellum"]{
    --vl-s:min(calc(100cqw / 360), calc(100cqh / 580), 1.4px);
    --vl-c:min(calc(100cqw / 360), calc(100cqh / 720), 1px);
    --vl-w:min(calc(100cqw / 360), 1px);
  }
}
body[data-gaya="vellum"] .wc{display:block;max-width:none;height:auto;user-select:none;-webkit-user-drag:none}
/* Tekstur kertas T01 sebagai latar halus (dipasang JS setelah dibuka lewat variabel --wc-kertas) */
body[data-gaya="vellum"] #inv-isi,.vl-adegan{background-color:var(--t-bg);background-image:var(--wc-kertas,none);background-size:360px auto;background-blend-mode:multiply}

/* ---------- Foil emas dan monogram ---------- */
.vl-foil{background-image:var(--vl-foil);background-size:300% 100%;background-position:0% 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 1px 0 rgba(255,246,220,.6)) drop-shadow(0 -.5px 0 rgba(80,56,20,.35))}
.vl-mono{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1;display:flex;align-items:center;justify-content:center;gap:.06em;white-space:nowrap}
.vl-mono i{font-style:italic;font-size:.62em;padding:0 .04em}
@keyframes vlFoil{from{background-position:100% 0}to{background-position:0% 0}}

/* ---------- Sampul: dua lembar kalkir CSS dan pita emas berlabel ---------- */
body[data-gaya="vellum"] .vl-lembar{position:absolute;pointer-events:none;border-radius:3px;
  background:linear-gradient(168deg,rgba(255,255,255,.7),rgba(255,255,255,.28) 55%,rgba(255,255,255,.5));
  border:1px solid color-mix(in srgb,var(--t-accent) 38%,transparent);box-shadow:0 6px 24px rgba(40,32,20,.06)}
body[data-gaya="vellum"] .vl-lembar.belakang{inset:30px 24px;transform:rotate(-2.2deg);opacity:.75}
body[data-gaya="vellum"] .vl-lembar.depan{inset:22px 18px}
/* Label pita berujung potongan V (swallowtail): badan pita sampanye di depan, dua ekor emas lebih gelap di belakang,
   sedikit lebih rendah, seolah pita dilipat ke belakang. Warna pita dan teks tetap (tidak ikut varian), kontras teks
   #4E3A14 di atas #EBD6A4 sekitar 7:1. */
/* Label selalu satu baris: nowrap, huruf dan jarak huruf mengecil mengikuti lebar layar (12,5 px di lebar 360). */
body[data-gaya="vellum"] .vl-pita-sampul{display:flex;justify-content:center;max-width:100%;margin:0 0 calc(var(--vl-c) * 18);padding:0 calc(var(--vl-w) * 26)}
.vl-pita-ekor{position:absolute;top:8px;bottom:-8px;width:calc(var(--vl-w) * 46)}
.vl-pita-ekor.kiri{left:0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,calc(var(--vl-w) * 13) 50%);
  background:linear-gradient(90deg,#C9A65F 0%,#E3CB92 55%,#8E6C30 100%)}
.vl-pita-ekor.kanan{right:0;clip-path:polygon(0 0,100% 0,calc(100% - var(--vl-w) * 13) 50%,100% 100%,0 100%);
  background:linear-gradient(270deg,#C9A65F 0%,#E3CB92 55%,#8E6C30 100%)}
body[data-gaya="vellum"] .cover .vl-pita-badan{position:relative;z-index:1;margin:0;overflow:hidden;max-width:100%;white-space:nowrap;
  padding:6px calc(var(--vl-w) * 20 - var(--vl-ls)) 5px calc(var(--vl-w) * 20);font-size:clamp(10.5px,calc(var(--vl-w) * 12.5),12.5px);
  line-height:1.6;letter-spacing:var(--vl-ls);color:#4E3A14;
  background:linear-gradient(180deg,#F8EDD0 0%,#EBD6A4 50%,#DFC38A 100%);
  box-shadow:inset 0 1px 0 rgba(255,250,235,.9),inset 0 -1px 0 rgba(140,104,44,.4),0 2px 5px rgba(80,56,20,.18)}
/* Kilau tipis menyapu badan pita sekali saat sampul tampil */
.vl-pita-badan::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:34%;opacity:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(255,250,232,0),rgba(255,252,240,.85),rgba(255,250,232,0))}
.cover.main .vl-pita-badan::after{animation:vlSapu 1.1s ease .7s both}
body[data-gaya="vellum"] .cover .vl-mono-sampul{width:calc(var(--vl-c) * 150);height:calc(var(--vl-c) * 150);margin-bottom:calc(var(--vl-c) * 12);font-size:calc(var(--vl-c) * 52)}
body[data-gaya="vellum"] .cover .foto-ph{width:calc(var(--vl-c) * 140);height:calc(var(--vl-c) * 184);margin-bottom:calc(var(--vl-c) * 14)}
.cover.main .vl-foil{animation:vlFoil 1.6s ease .6s both}

/* Dua ikat kecil mawar krem + eukaliptus di sudut kalkir depan (kanan bawah = cermin kiri atas). Di belakang isi sampul. */
/* --vl-k = skala ikat sampul. Di layar pendek (tinggi layar undangan <= 620 px) ikat dikecilkan lagi dan didorong
   ke pojok, supaya tidak menimpa "Halaman website, bukan aplikasi." dan tombol. */
body[data-gaya="vellum"] .cover > .vl-sb{--vl-k:calc(var(--vl-c) * var(--vl-sbk,1));position:absolute;width:calc(var(--vl-k) * 124);height:calc(var(--vl-k) * 96);pointer-events:none}
.vl-sb.kiri{left:calc(var(--vl-k) * 10);top:calc(var(--vl-k) * 14)}
.vl-sb.kanan{right:calc(var(--vl-k) * 10);bottom:calc(var(--vl-k) * 14);transform:scaleX(-1)}
.vl-sb img{position:absolute}
body[data-gaya="vellum"] .vl-sb .vl-sb-daun{left:calc(var(--vl-k) * 24);width:calc(var(--vl-k) * 100);transform:rotate(-6deg)}
body[data-gaya="vellum"] .vl-sb .vl-sb-mawar{left:0;width:calc(var(--vl-k) * 60);transform:rotate(-10deg)}
.vl-sb.kiri .vl-sb-daun{top:calc(var(--vl-k) * 4)}
.vl-sb.kiri .vl-sb-mawar{top:calc(var(--vl-k) * 14)}
.vl-sb.kanan .vl-sb-daun{bottom:calc(var(--vl-k) * 4)}
.vl-sb.kanan .vl-sb-mawar{bottom:calc(var(--vl-k) * 8)}
@supports (container-type:size){
  @container (max-height:620px){
    body[data-gaya="vellum"] .cover > .vl-sb{--vl-sbk:.82}
    body[data-gaya="vellum"] .cover > .vl-sb.kiri{left:0;top:0}
    body[data-gaya="vellum"] .cover > .vl-sb.kanan{right:0;bottom:0}
  }
}
.cover.main .vl-sb-daun{animation:vlSbDaun 1s cubic-bezier(.3,.7,.3,1) .25s both}
.cover.main .vl-sb-mawar{animation:vlSbMawar 1s cubic-bezier(.3,1.3,.5,1) .45s both}
@keyframes vlSbDaun{from{opacity:0;transform:rotate(-6deg) translateX(-12px)}to{opacity:1;transform:rotate(-6deg) translateX(0)}}
@keyframes vlSbMawar{from{opacity:0;transform:rotate(-30deg) scale(.6)}to{opacity:1;transform:rotate(-10deg) scale(1)}}

/* ---------- Lapisan pembuka: kartu dasar, kalkir CSS, paket kalkir berpita (watercolor) ---------- */
.vl-adegan{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}
.vl-adegan[hidden]{display:none}
.vl-adegan.keluar{opacity:0;transition:opacity .5s ease}
/* Transisi ke hero dalam dua langkah agar tidak ada yang bertumpuk: (1) kartu, segel, dan ikat bunga memudar dulu
   sementara latar krem masih menutup penuh; (2) baru latar memudar dan hero tampil. */
.vl-adegan.main.tutup .vl-kartu{animation:vlKartuPergi .4s ease both}
@keyframes vlKartuPergi{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.985)}}
/* Isi undangan di bawah hero ikut muncul pelan setelah hero mulai (filter, bukan opacity, supaya tidak
   bentrok dengan gerak muncul .rv bersama). Hanya berlaku selama animasi buka; kurangi gerakan tidak memakai .siap. */
body[data-gaya="vellum"] .panggung.siap ~ *{filter:opacity(0)}
body[data-gaya="vellum"] .panggung.main ~ *{animation:vlIsiMasuk .7s ease .45s backwards}
@keyframes vlIsiMasuk{from{filter:opacity(0)}to{filter:opacity(1)}}
/* Latar adegan: kertas krem hangat (tekstur T01 + rona krem di tepi + cahaya hangat di belakang kartu), bukan putih polos */
.vl-adegan{background-color:color-mix(in srgb,var(--t-bg) 86%,#EAD9B8);
  background-image:radial-gradient(130% 90% at 50% 46%,rgba(255,250,238,0) 42%,rgba(201,168,112,.24) 100%),var(--wc-kertas,none);
  background-size:100% 100%,360px auto}
.vl-adegan::before{content:"";position:absolute;left:50%;top:47%;width:calc(var(--vl-s) * 420);height:calc(var(--vl-s) * 480);
  margin:calc(var(--vl-s) * -240) 0 0 calc(var(--vl-s) * -210);pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,246,226,.85),rgba(246,232,204,.35) 60%,rgba(246,232,204,0))}
/* Kartu 260 x 357 (= rasio gambar kartu berpita 280 x 384), diskalakan --vl-s. Kartu dasar, kalkir CSS, dan gambar
   berpita semuanya inset:0 di kotak yang sama, jadi selalu tepat sejajar di ukuran layar mana pun. */
.vl-kartu{position:absolute;left:50%;top:47%;width:calc(var(--vl-s) * 260);height:calc(var(--vl-s) * 357);
  margin:calc(var(--vl-s) * -178) 0 0 calc(var(--vl-s) * -130)}
/* Kartu dasar: gading hangat bertekstur, dengan bingkai emas tipis di dalam */
.vl-dasar{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--vl-s) * 14);padding:0 calc(var(--vl-s) * 16);
  background-color:color-mix(in srgb,var(--t-surface) 84%,#F1E2C4);
  background-image:linear-gradient(160deg,rgba(255,252,244,.55),rgba(236,218,182,.22)),var(--wc-kertas,none);
  background-size:100% 100%,360px auto;background-blend-mode:normal,multiply;
  border:1px solid color-mix(in srgb,var(--t-border) 50%,transparent);border-radius:3px;box-shadow:0 12px 32px rgba(80,60,30,.14)}
.vl-dasar::before{content:"";position:absolute;inset:calc(var(--vl-s) * 10);border:1px solid color-mix(in srgb,#B8913F 45%,transparent);border-radius:2px;pointer-events:none}

/* ---------- Ikat bunga krem di sudut kartu (kiri atas, kanan bawah) ---------- */
/* Kotak 170x140 menonjol 52/50 (x skala) keluar dari sudut kartu. --tf = transform dasar tiap gambar (diisi JS). */
.vl-ikat{position:absolute;width:calc(var(--vl-s) * 170);height:calc(var(--vl-s) * 140);pointer-events:none;z-index:2}
.vl-ikat.atas{left:calc(var(--vl-s) * -52);top:calc(var(--vl-s) * -50)}
.vl-ikat.bawah{right:calc(var(--vl-s) * -52);bottom:calc(var(--vl-s) * -50)}
.vl-ik{position:absolute;transform:var(--tf)}
body[data-gaya="vellum"] .vl-ik.gyp{width:calc(var(--vl-s) * 88);opacity:.95}
body[data-gaya="vellum"] .vl-ik.d1{width:calc(var(--vl-s) * 92)}
body[data-gaya="vellum"] .vl-ik.d2{width:calc(var(--vl-s) * 86)}
body[data-gaya="vellum"] .vl-ik.m1{width:calc(var(--vl-s) * 84);filter:drop-shadow(0 3px 4px rgba(120,90,40,.16))}
body[data-gaya="vellum"] .vl-ik.m2{width:calc(var(--vl-s) * 56);filter:drop-shadow(0 2px 3px rgba(120,90,40,.14))}
.vl-ikat.atas .gyp{left:0;top:calc(var(--vl-s) * -6)}
.vl-ikat.atas .d1{left:calc(var(--vl-s) * 40);top:calc(var(--vl-s) * 14)}
.vl-ikat.atas .d2{left:0;top:calc(var(--vl-s) * 84)}
.vl-ikat.atas .m2{left:calc(var(--vl-s) * 72);top:calc(var(--vl-s) * 40)}
.vl-ikat.atas .m1{left:calc(var(--vl-s) * 14);top:calc(var(--vl-s) * 10)}
.vl-ikat.bawah .gyp{left:calc(var(--vl-s) * 80);top:calc(var(--vl-s) * 54)}
.vl-ikat.bawah .d1{left:calc(var(--vl-s) * 36);top:calc(var(--vl-s) * 84)}
.vl-ikat.bawah .d2{left:calc(var(--vl-s) * 84);top:calc(var(--vl-s) * 4)}
.vl-ikat.bawah .m2{left:calc(var(--vl-s) * 38);top:calc(var(--vl-s) * 68)}
.vl-ikat.bawah .m1{left:calc(var(--vl-s) * 74);top:calc(var(--vl-s) * 56)}
/* Daun dan baby's breath tumbuh bersama kartu; mawar krem mekar bergantian saat segel tertekan */
.vl-adegan.main .vl-ik.daun{animation:vlTumbuh .9s cubic-bezier(.3,.7,.3,1) .3s both}
.vl-adegan.main .vl-ikat.bawah .vl-ik.daun{animation-delay:.42s}
.vl-adegan.main .vl-ik.gyp{animation:vlTumbuh 1s ease .55s both}
.vl-adegan.main .vl-ikat.atas .m1{animation:vlMekar .9s cubic-bezier(.3,1.3,.5,1) 2.6s both}
.vl-adegan.main .vl-ikat.bawah .m1{animation:vlMekar .9s cubic-bezier(.3,1.3,.5,1) 2.75s both}
.vl-adegan.main .vl-ikat.atas .m2{animation:vlMekar .8s cubic-bezier(.3,1.3,.5,1) 2.85s both}
.vl-adegan.main .vl-ikat.bawah .m2{animation:vlMekar .8s cubic-bezier(.3,1.3,.5,1) 2.95s both}
@keyframes vlTumbuh{from{opacity:0;transform:var(--tf) scale(.55)}to{opacity:1;transform:var(--tf) scale(1)}}
@keyframes vlMekar{from{opacity:0;transform:var(--tf) rotate(-24deg) scale(.35)}to{opacity:1;transform:var(--tf) rotate(0deg) scale(1)}}
body[data-gaya="vellum"] .vl-dasar-nama{font-size:calc(var(--vl-s) * 32);text-align:center;white-space:nowrap}
.vl-kalkir{position:absolute;inset:0;transform-origin:0 0;border-radius:3px;
  background:linear-gradient(165deg,rgba(255,255,255,.66),rgba(255,255,255,.4) 55%,rgba(255,255,255,.58));
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 0 28px rgba(255,255,255,.55)}
.vl-paket{position:absolute;inset:0;transform-origin:50% 0;opacity:.95}
body[data-gaya="vellum"] .vl-paket img{position:absolute;left:0;top:0;width:100%;height:100%}
/* Kilau menyapu pita (letak pita pada gambar: 47,4 sampai 51,8 persen tinggi) */
.vl-kilau-pita{position:absolute;left:0;right:0;top:47.4%;height:4.4%;overflow:hidden;mix-blend-mode:screen}
.vl-kilau-pita::after{content:"";position:absolute;top:0;bottom:0;left:-36%;width:35%;opacity:0;background:linear-gradient(90deg,rgba(255,244,214,0),rgba(255,246,222,.95),rgba(255,244,214,0))}

.vl-adegan.main .vl-kartu{animation:vlMasuk .55s ease .1s both}
.vl-adegan.main .vl-kilau-pita::after{animation:vlSapu .8s ease .6s both}
.vl-adegan.main .vl-paket{animation:vlAngkat 1s cubic-bezier(.45,0,.6,1) 1.35s both}
.vl-adegan.main .vl-kalkir{animation:vlSingkap .85s cubic-bezier(.5,0,.4,1) 2.15s both}
.vl-adegan.main .vl-segel{animation:vlTekan .6s cubic-bezier(.3,1.4,.5,1) 2.6s both}
.vl-adegan.main .vl-foil{animation:vlFoil 1.3s ease 2.75s both}
@keyframes vlMasuk{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes vlSapu{0%{opacity:0;transform:translateX(0)}15%,85%{opacity:1}100%{opacity:0;transform:translateX(420%)}}
@keyframes vlAngkat{
  0%{opacity:.95;transform:perspective(900px) translateY(0) rotateX(0deg) scale(1)}
  35%{opacity:.95;transform:perspective(900px) translateY(-6%) rotateX(14deg) scale(1)}
  100%{opacity:0;transform:perspective(900px) translateY(-78%) rotateX(52deg) scale(.92)}}
@keyframes vlSingkap{0%{opacity:1;transform:translateY(0) rotate(0deg)}100%{opacity:0;transform:translateY(-62%) rotate(-4deg)}}
@keyframes vlTekan{from{transform:scale(.92)}to{transform:scale(1)}}

/* ---------- Segel lilin (watercolor) dengan monogram foil di tengah ---------- */
.vl-segel{position:relative;flex:none}
.vl-segel-img,.vl-segel-img img{display:block;width:100%}
.vl-segel .vl-mono{position:absolute;inset:0}
.vl-segel.besar{width:calc(var(--vl-s) * 132);height:calc(var(--vl-s) * 132);font-size:calc(var(--vl-s) * 40)}
.vl-segel.kecil{width:calc(var(--vl-w) * 104);height:calc(var(--vl-w) * 104);font-size:calc(var(--vl-w) * 32)}

/* ---------- Hero: segel bermonogram di antara eukaliptus, nama, pita tipis ---------- */
body[data-gaya="vellum"] .hero{padding-top:44px}
body[data-gaya="vellum"] .hero .ib-judul{font-size:40px;margin-bottom:4px}
/* Hero diskalakan --vl-w (lebar layar, tidak membesar): 276 px di lebar 360, 222 px di lebar 290, tanpa gulir samping */
.vl-hero{position:relative;display:flex;justify-content:center;align-items:center;gap:calc(var(--vl-w) * 2);width:calc(var(--vl-w) * 276);max-width:100%;margin:0 auto}
.vl-hero > .vl-daun,.vl-hero > .vl-segel{position:relative;z-index:1}
/* Bunga krem hero: baby's breath di belakang daun, mawar krem di pangkal daun dekat segel (kanan = cermin kiri) */
.vl-hero-lapis{position:absolute;inset:0;pointer-events:none}
.vl-hero-lapis.belakang{z-index:0}
.vl-hero-lapis.depan{z-index:2}
.vl-hb{position:absolute;transform:var(--tf)}
body[data-gaya="vellum"] .vl-hb.gyp{top:calc(var(--vl-w) * -16);width:calc(var(--vl-w) * 84);opacity:.95}
.vl-hb.gyp.kiri{left:calc(var(--vl-w) * -4)}
.vl-hb.gyp.kanan{right:calc(var(--vl-w) * -4)}
body[data-gaya="vellum"] .vl-hb.mawar{bottom:calc(var(--vl-w) * -10);width:calc(var(--vl-w) * 50);filter:drop-shadow(0 2px 3px rgba(120,90,40,.15))}
.vl-hb.mawar.kiri{left:calc(var(--vl-w) * 60)}
.vl-hb.mawar.kanan{right:calc(var(--vl-w) * 60)}
.vl-daun{width:calc(var(--vl-w) * 84);flex:none}
body[data-gaya="vellum"] .vl-daun img{width:100%}
.vl-daun.kiri{align-self:flex-end;transform:scaleX(-1) rotate(-6deg)}
.vl-daun.kanan{align-self:flex-end;transform:rotate(-6deg)}
.vl-pita-garis{position:relative;width:calc(var(--vl-w) * 220);max-width:100%;height:14px;margin:2px auto 14px}
.vl-pita-garis::before{content:"";position:absolute;left:0;right:0;top:5px;height:4px;border-radius:2px;background:var(--vl-pita)}
.vl-pita-garis::after{content:"";position:absolute;left:50%;top:2px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--vl-pita);box-shadow:0 0 0 2px var(--t-bg)}
body[data-gaya="vellum"] .panggung.siap .vl-hero,body[data-gaya="vellum"] .panggung.siap .vl-pita-garis{opacity:0}
body[data-gaya="vellum"] .panggung.main .vl-segel{animation:vlMasuk .7s ease both}
body[data-gaya="vellum"] .panggung.main .vl-daun.kiri{animation:vlDaunKiri .9s cubic-bezier(.3,.7,.3,1) .3s both}
body[data-gaya="vellum"] .panggung.main .vl-daun.kanan{animation:vlDaunKanan .9s cubic-bezier(.3,.7,.3,1) .3s both}
body[data-gaya="vellum"] .panggung.main .vl-foil{animation:vlFoil 1.4s ease .5s both}
body[data-gaya="vellum"] .panggung.main .vl-pita-garis{animation:vlBentang .9s ease .6s both}
body[data-gaya="vellum"] .panggung.main .vl-hb.gyp{animation:vlTumbuh 1s ease .45s both}
body[data-gaya="vellum"] .panggung.main .vl-hb.mawar.kiri{animation:vlMekar .9s cubic-bezier(.3,1.3,.5,1) .6s both}
body[data-gaya="vellum"] .panggung.main .vl-hb.mawar.kanan{animation:vlMekar .9s cubic-bezier(.3,1.3,.5,1) .72s both}
@keyframes vlDaunKiri{from{opacity:0;transform:scaleX(-1) rotate(-6deg) translateX(-14px)}to{opacity:1;transform:scaleX(-1) rotate(-6deg) translateX(0)}}
@keyframes vlDaunKanan{from{opacity:0;transform:rotate(-6deg) translateX(-14px)}to{opacity:1;transform:rotate(-6deg) translateX(0)}}
@keyframes vlBentang{from{opacity:0;transform:scaleX(.2)}to{opacity:1;transform:scaleX(1)}}

@media (prefers-reduced-motion: reduce){
  .vl-adegan{display:none !important}
  body[data-gaya="vellum"] .panggung.siap .vl-hero,body[data-gaya="vellum"] .panggung.siap .vl-pita-garis{opacity:1}
  body[data-gaya="vellum"] .panggung.siap ~ *{filter:none}
  .cover.main .vl-sb-daun,.cover.main .vl-sb-mawar,.cover.main .vl-pita-badan::after,
  body[data-gaya="vellum"] .panggung.main .vl-hb{animation:none !important}
}
