/* Gaya khusus Jawa Gebyok Pendopo. Semua gerak sekali lalu berhenti. Keadaan diam (tanpa animasi) = posisi akhir,
   jadi saat "kurangi gerakan" (bersama.css mematikan semua animasi) semua langsung tampil di tempatnya. */
/* Gebyok: sampul berupa pintu gebyok tertutup (SVG), teks di papan tengah */
body[data-gaya="gebyok"] .cover{background:transparent}
body[data-gaya="gebyok"] .cover::before{content:"";position:absolute;inset:56px 24px 34px;background:var(--t-kartu);border:1.5px solid var(--t-accent);border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.45)}
.gebyok-pintu{position:absolute;inset:0;z-index:6;display:none;perspective:900px;pointer-events:none}
body[data-tema="jawa"][data-gaya="gebyok"] .gebyok-pintu{display:flex}
body[data-tema="jawa"][data-gaya="gebyok"] .gebyok-pintu.habis{display:none}
.dg{width:50%;height:100%;position:relative}
.dg svg{display:block;width:100%;height:100%}
.dg.kiri{transform-origin:0 50%}
.dg.kanan{transform-origin:100% 50%}
.gebyok-pintu.buka .dg.kiri{animation:pintuKiri 1.7s cubic-bezier(.5,0,.3,1) .35s both}
.gebyok-pintu.buka .dg.kanan{animation:pintuKanan 1.7s cubic-bezier(.5,0,.3,1) .35s both}
@keyframes pintuKiri{from{transform:none;opacity:1}to{transform:rotateY(84deg);opacity:.5}}
@keyframes pintuKanan{from{transform:none;opacity:1}to{transform:rotateY(-84deg);opacity:.5}}

/* Daun pintu watercolor: dimuat setelah "Buka Undangan", memudar masuk di atas SVG. Tepi pertemuan tetap di tengah. */
.dg-svg{position:absolute;inset:0}
.dg-wc{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;transition:opacity .25s ease;user-select:none;-webkit-user-drag:none}
.dg.kiri .dg-wc{object-position:100% 50%}
.dg.kanan .dg-wc{object-position:0 50%}
.dg-wc.siap{opacity:1}

/* ---------- Adegan pendopo watercolor ---------- */
.adegan .wc{display:block;max-width:none;user-select:none;-webkit-user-drag:none}
.gb-pendopo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:0;transition:opacity .5s ease}
.gb-pendopo.siap{opacity:1}
/* Lantai tegel berperspektif (gambar seamless diulang), pudar ke arah dalam pendopo */
.gb-lantai{position:absolute;left:-60%;right:-60%;bottom:-8px;height:340px;transform-origin:50% 100%;transform:perspective(500px) rotateX(50deg);
  background-image:var(--gb-tegel,none);background-size:92px 92px;background-position:50% 100%;opacity:0;transition:opacity .6s ease;
  -webkit-mask-image:linear-gradient(to top,#000 35%,transparent 95%);mask-image:linear-gradient(to top,#000 35%,transparent 95%)}
.gb-lantai.siap{opacity:.92}
.gb-vignet{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 70% at 50% 45%,rgba(0,0,0,0) 55%,rgba(0,0,0,var(--gb-vig,.4)) 100%)}
/* Lampu robyong tergantung di tengah atas, pendar hangat menyala sekali */
.gb-robyong{position:absolute;top:-6px;left:50%;width:148px;margin-left:-74px;transform-origin:50% 0}
.gb-robyong .wc,.gb-km .wc{width:100%;height:auto}
.gb-pendar{position:absolute;left:50%;top:-70px;width:360px;height:360px;margin-left:-180px;border-radius:50%;pointer-events:none;mix-blend-mode:screen;opacity:.85;
  background:radial-gradient(circle at 50% 50%,rgba(255,232,170,.62) 0,rgba(255,206,120,.28) 28%,rgba(255,200,112,0) 62%)}
/* Kembar mayang di kiri dan kanan, berdiri di lantai */
.gb-km{position:absolute;bottom:34px;width:92px;transform-origin:50% 100%}
.gb-km.kiri{left:6px}
.gb-km.kanan{right:6px}
.gb-km.kanan .wc{transform:scaleX(-1)}

.adegan.main .gb-robyong{animation:gbTurun 1.2s cubic-bezier(.3,.7,.3,1) .5s both}
.adegan.main .gb-pendar{animation:gbNyala 2s ease 1.3s both}
.adegan.main .gb-km{animation:gbKm .9s cubic-bezier(.25,.7,.3,1) 1s both}
.adegan.main .gb-km.kanan{animation-delay:1.15s}
@keyframes gbTurun{0%{opacity:0;transform:translateY(-36px) rotate(0deg)}60%{opacity:1;transform:translateY(2px) rotate(1.5deg)}80%{transform:translateY(0) rotate(-.8deg)}100%{opacity:1;transform:none}}
@keyframes gbNyala{0%{opacity:0}35%{opacity:1}55%{opacity:.6}100%{opacity:.85}}
@keyframes gbKm{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}

/* ---------- Nama di atas papan wash (teks HTML, warna dari token varian) ---------- */
body[data-gaya="gebyok"] .hero{padding-top:214px}
.gb-papan{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;width:min(100%,318px);padding:20px 14px 16px}
.gb-latar{position:absolute;top:-16px;bottom:-16px;left:-26px;right:-26px;z-index:-1;pointer-events:none}
/* Lapisan cadangan: menjamin kontras walau gambar papan belum atau gagal dimuat */
.gb-latar::before{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 50% 50% at 50% 50%,var(--gb-papan-bg,rgba(20,17,15,.84)) 0,var(--gb-papan-bg,rgba(20,17,15,.84)) 66%,rgba(0,0,0,0) 100%)}
.gb-papan-bg{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:fill;opacity:0;transition:opacity .4s ease}
.gb-papan-bg.siap{opacity:1}
/* Kilau emas satu kali: terang di papan gelap, emas tua (multiply) di papan terang */
.gb-papan[data-papan="terang"] .kilau-nama{background:linear-gradient(90deg,rgba(201,150,60,0),rgba(201,150,60,.55),rgba(201,150,60,0));mix-blend-mode:multiply}
.panggung.siap .gb-latar{opacity:0}
body[data-gaya="gebyok"] .panggung.main .gb-latar{animation:gbPapan .8s cubic-bezier(.3,.7,.3,1) both}
body[data-gaya="gebyok"] .panggung.main .hero-lbl{animation:fadeIn .6s ease .35s both}
body[data-gaya="gebyok"] .panggung.main .nama-wrap{animation:gbNaik .9s cubic-bezier(.25,.7,.3,1) .45s both}
body[data-gaya="gebyok"] .panggung.main .kilau-nama{animation:kilauNama 1.3s ease 1.45s both}
@keyframes gbPapan{from{opacity:0;transform:scaleX(.6)}to{opacity:1;transform:none}}
@keyframes gbNaik{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* Gebyok: bingkai ukiran pada kartu isi */
body[data-gaya="gebyok"] .inv .ib{border:14px solid transparent;border-radius:4px;background-clip:padding-box;
  border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 90'%3E%3Cdefs%3E%3Cg id='c'%3E%3Cpath d='M8 30C14 30 20 25 20 19C20 13 25 8 31 8M14 24C16 19 21 17 25 19M24 14C19 16 17 21 19 25' fill='none' stroke='%23C9A45C' stroke-width='1.3' stroke-linecap='round'/%3E%3Ccircle cx='13' cy='13' r='3.4' fill='%23C9A45C'/%3E%3Ccircle cx='13' cy='13' r='1.2' fill='%233E2210'/%3E%3C/g%3E%3C/defs%3E%3Crect x='2' y='2' width='86' height='86' fill='none' stroke='%23C9A45C' stroke-width='1.6'/%3E%3Crect x='6' y='6' width='78' height='78' fill='none' stroke='%23C9A45C' stroke-width='.8'/%3E%3Cuse href='%23c'/%3E%3Cuse href='%23c' transform='rotate(90 45 45)'/%3E%3Cuse href='%23c' transform='rotate(180 45 45)'/%3E%3Cuse href='%23c' transform='rotate(270 45 45)'/%3E%3C/svg%3E") 30 round}
body[data-gaya="gebyok"] .ib-sep:not(.on) svg.only-jawa rect{transform:scaleX(0)}
body[data-gaya="gebyok"] .ib-sep.on svg.only-jawa rect{animation:bentang 1.2s cubic-bezier(.3,.7,.3,1) both}

/* Penutup lama (ORN.gebyok, pintu kecil menutup) tidak dipakai lagi: penutup kini lewat TPL.isi.penutup */
body[data-gaya="gebyok"] .ornamen[data-ornamen="gebyok"]{display:none}

/* ============ ISI UNDANGAN (kait TPL.isi, keputusan CEO 2026-11-05: A + C + D + E + F) ============
   Keadaan diam = keadaan akhir (pintu penutup terbuka, semua hiasan tampil), jadi saat kurangi gerakan
   semua tampil statis di tempatnya. Ukuran memakai %, clamp, min(), dan cqi agar rapi di lebar 290 sampai 412 px. */
:is(.gi-kj,.gi-sep,.gi-pt,.kait-latar) .wc{display:block;max-width:none;height:auto;user-select:none;-webkit-user-drag:none}

/* D. Latar berlapis di DALAM kartu (di balik bingkai ukir): cahaya robyong hangat + rona varian (HOOK giWarna),
   lantai tegel samar di kaki kartu. Kartu dalam (sesi, rekening, ucapan) berlatar padat, tidak terpengaruh. */
body[data-gaya="gebyok"]{--gi-sa:rgba(255,214,140,.13);--gi-sb:rgba(201,164,92,.12);--gi-tg-op:.18}
body[data-gaya="gebyok"] .kait-latar{top:0;bottom:0;border-radius:3px;background:
  radial-gradient(ellipse 80% 32% at var(--ax,50%) var(--ay,0%),var(--gi-sa),transparent 72%),
  radial-gradient(ellipse 90% 26% at var(--bx,50%) var(--by,100%),var(--gi-sb),transparent 72%)}
body[data-gaya="gebyok"] [data-bagian="buka"] > .kait-latar{--ax:50%;--ay:0%}
body[data-gaya="gebyok"] [data-bagian="mempelai"] > .kait-latar{--ax:50%;--ay:4%;--bx:50%;--by:96%}
body[data-gaya="gebyok"] [data-bagian="acara"] > .kait-latar{--ax:20%;--ay:0%;--bx:80%;--by:100%}
body[data-gaya="gebyok"] [data-bagian="hitung"] > .kait-latar{--ax:50%;--ay:10%}
body[data-gaya="gebyok"] [data-bagian="galeri"] > .kait-latar{--ax:80%;--ay:0%;--bx:20%;--by:100%}
body[data-gaya="gebyok"] [data-bagian="video"] > .kait-latar{--ax:50%;--ay:0%}
body[data-gaya="gebyok"] [data-bagian="kisah"] > .kait-latar{--ax:22%;--ay:2%;--bx:78%;--by:98%}
body[data-gaya="gebyok"] [data-bagian="amplop"] > .kait-latar{--ax:78%;--ay:2%;--bx:22%;--by:98%}
body[data-gaya="gebyok"] [data-bagian="rsvp"] > .kait-latar{--ax:50%;--ay:0%}
body[data-gaya="gebyok"] [data-bagian="ucapan"] > .kait-latar{--ax:20%;--ay:2%;--bx:80%;--by:98%}
body[data-gaya="gebyok"] [data-bagian="tutup"] > .kait-latar{--ax:50%;--ay:6%}
body[data-gaya="gebyok"] [data-bagian="kontak"] > .kait-latar{--ax:50%;--ay:0%}
.gi-lt-tegel{position:absolute;left:-35%;right:-35%;bottom:0;height:min(130px,38%);background-image:var(--gi-tegel,none);background-size:46px 46px;background-position:50% 100%;
  opacity:var(--gi-tg-op,.18);transform-origin:50% 100%;transform:perspective(240px) rotateX(50deg);
  -webkit-mask-image:linear-gradient(to top,#000 0,rgba(0,0,0,.45) 40%,transparent 100%);mask-image:linear-gradient(to top,#000 0,rgba(0,0,0,.45) 40%,transparent 100%)}
.kait-latar .gi-lt-kp{position:absolute;width:clamp(12px,4.5%,17px);opacity:.55;transform:rotate(var(--r,0deg))}

/* A. Kuntum pengapit judul: sulur ukir emas tergambar dari arah judul, kantil condong ke luar, mawar/melati di kaki */
body[data-gaya="gebyok"] .kait-judul{width:clamp(28px,13%,42px)}
.gi-kj{position:relative;display:block;width:100%;aspect-ratio:1/1}
.gi-kj > *{position:absolute}
.gi-kj .gi-kj-sulur{right:-4%;bottom:6%;width:78%;height:78%;overflow:visible}
.gi-kj-sulur path{fill:none;stroke:var(--t-accent);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:0}
.gi-kj-sulur path.daun{fill:var(--t-accent);stroke:none;opacity:.8}
.gi-kj .gi-kj-kantil{left:2%;bottom:22%;width:46%;transform-origin:50% 100%;--tf:scaleX(-1) rotate(24deg);transform:var(--tf)}
.gi-kj .gi-kj-kaki{left:26%;bottom:0;width:30%;--tf:rotate(30deg);transform:var(--tf)}
.gi-kj .gi-kj-kaki.mw{left:20%;bottom:-4%;width:40%;--tf:rotate(-10deg)}
.kait-judul.kanan .gi-kj{transform:scaleX(-1)}
body[data-gaya="gebyok"] .rv.on .gi-kj-sulur path:not(.daun){animation:gores 1.1s ease .15s both}
body[data-gaya="gebyok"] .rv.on .gi-kj-sulur path.daun{animation:fadeIn .6s ease .9s both}
body[data-gaya="gebyok"] .rv.on .gi-kj-kantil{animation:giKt 1s ease .35s both}
body[data-gaya="gebyok"] .rv.on .kanan .gi-kj-kantil{animation-delay:.5s}
body[data-gaya="gebyok"] .rv.on .gi-kj-kaki{animation:giPop .6s cubic-bezier(.3,1.4,.5,1) 1s both}
body[data-gaya="gebyok"] .rv.on .kanan .gi-kj-kaki{animation-delay:1.15s}
@keyframes giKt{from{opacity:0;transform:var(--tf) rotate(26deg) translateY(8px) scale(.6)}to{opacity:1;transform:var(--tf)}}
@keyframes giPop{0%{opacity:0;transform:var(--tf) scale(.2)}70%{opacity:1;transform:var(--tf) scale(1.12)}100%{opacity:1;transform:var(--tf)}}

/* E. Pembatas: lis ukir gebyok (garis emas, titik truntum, ujung sulur, medali) dengan mawar di tengah,
   atau ronce melati membentang dari tengah dengan sepasang kantil. Berada di atas latar pendopo, jadi diberi bayang tipis. */
.gi-sep{position:relative;width:min(230px,76%);height:30px;margin:0 auto;container-type:inline-size}
.gi-lis{position:absolute;left:0;top:50%;width:100%;height:auto;aspect-ratio:11/1;transform:translateY(-50%);overflow:visible;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45))}
.gi-lis .gr{fill:none;stroke:var(--t-accent);stroke-width:1.1;stroke-linecap:round}
.gi-lis .tt{fill:var(--t-accent)}
.gi-sep .gi-sep-tg{position:absolute;left:50%;top:50%;width:15%;transform:translate(-50%,-50%);filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.gi-sep .gi-sep-tg .wc{width:100%}
.gi-sep .gi-sep-tg.kantil{display:flex;justify-content:center;align-items:flex-end;width:17%}
.gi-sep .gi-sep-tg.kantil .wc{width:50%;transform-origin:50% 100%}
.gi-sep .gi-sep-tg.kantil .kiri{transform:scaleX(-1) rotate(12deg)}
.gi-sep .gi-sep-tg.kantil .kanan{transform:rotate(12deg)}
.gi-rh{position:absolute;top:0;width:50%;height:100%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.gi-rh.kiri{left:0}
.gi-rh.kanan{right:0}
/* Ronce tegak diputar 90 derajat: pangkal di tengah, ujung ke luar. Panjang = 46% lebar pembatas (cqi) */
.gi-sep .gi-rh .wc{position:absolute;left:50%;top:50%;width:auto;height:46cqi;transform:translate(-50%,-50%) rotate(90deg)}
.gi-sep .gi-rh.kanan .wc{transform:translate(-50%,-50%) rotate(-90deg)}
body[data-gaya="gebyok"] .ib-sep:not(.on) .gi-sep{opacity:0}
body[data-gaya="gebyok"] .ib-sep.on .gi-lis{animation:giBentang 1.2s cubic-bezier(.3,.7,.3,1) both}
body[data-gaya="gebyok"] .ib-sep.on .gi-sep-tg{animation:giSepTg .8s cubic-bezier(.3,1.3,.5,1) .6s both}
body[data-gaya="gebyok"] .ib-sep.on .gi-rh.kiri{animation:giRhKiri 1.1s cubic-bezier(.25,.7,.3,1) .1s both}
body[data-gaya="gebyok"] .ib-sep.on .gi-rh.kanan{animation:giRhKanan 1.1s cubic-bezier(.25,.7,.3,1) .1s both}
@keyframes giBentang{from{clip-path:inset(0 50%);opacity:.3}to{clip-path:inset(0 0);opacity:1}}
@keyframes giSepTg{from{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-30deg)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes giRhKiri{from{opacity:0;transform:translateX(14%)}to{opacity:1;transform:none}}
@keyframes giRhKanan{from{opacity:0;transform:translateX(-14%)}to{opacity:1;transform:none}}

/* F. Penutup megah: gawang gebyok berukir (kayu + garis emas varian), mahkota padma, daun pintu terbuka ke dalam
   memperlihatkan pendopo dan robyong, ronce melati di ambang, kembar mayang di lantai tegel, kelopak jatuh.
   Teks di atas papan padat (--gi-papan, alfa >= .84): emas di papan gelap >= 6:1, sogan di papan terang >= 6:1. */
.gi-pt{position:relative;container-type:inline-size;margin:-8px -16px 6px;padding:13% 0 20px;overflow:hidden}
.gi-pt-cahaya{position:absolute;left:50%;top:0;width:110%;aspect-ratio:1/1;transform:translateX(-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,226,160,.3) 0,rgba(255,206,120,.12) 34%,rgba(255,200,112,0) 62%)}
.gi-pt-lantai{position:absolute;left:-30%;right:-30%;bottom:0;height:64px;background-image:var(--gi-tegel,none);background-size:40px 40px;background-position:50% 100%;
  opacity:.9;transform-origin:50% 100%;transform:perspective(220px) rotateX(52deg);
  -webkit-mask-image:linear-gradient(to top,#000 30%,transparent 100%);mask-image:linear-gradient(to top,#000 30%,transparent 100%)}
.gi-pt-gawang{position:relative;z-index:1;width:68%;aspect-ratio:3/4;margin:0 auto;border-radius:3px 3px 0 0;
  background:linear-gradient(90deg,var(--gi-kayu2,#3E2210),var(--gi-kayu1,#6B3E1F) 50%,var(--gi-kayu2,#3E2210));
  box-shadow:inset 0 0 0 1.5px var(--gi-ukir,#D9B76E),inset 0 0 0 4px var(--gi-kayu2,#3E2210),inset 0 0 0 5px var(--gi-ukir,#D9B76E),0 8px 22px rgba(0,0,0,.35)}
.gi-pt-dalam{position:absolute;top:11%;left:10%;right:10%;bottom:0;overflow:hidden;perspective:420px;background:var(--gi-kayutua,#24130A)}
.gi-pt-dalam::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 0 1px var(--gi-ukir,#D9B76E),inset 0 0 16px rgba(0,0,0,.45)}
.gi-pt .gi-pt-pendopo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.gi-pt-sinar{position:absolute;left:50%;top:-30%;width:150%;aspect-ratio:1/1;transform:translateX(-50%);pointer-events:none;mix-blend-mode:screen;opacity:.85;
  background:radial-gradient(circle,rgba(255,232,170,.5) 0,rgba(255,206,120,.18) 30%,rgba(255,200,112,0) 60%)}
.gi-pt-robyong{position:absolute;top:-2%;left:50%;width:36%;margin-left:-18%;z-index:1;transform-origin:50% 0}
.gi-pt .gi-pt-robyong .wc{width:100%}
/* Daun pintu dari tembolok adegan, terbuka ke dalam (rotateY). Keadaan diam = terbuka. */
.gi-pt .gi-pt-daun{position:absolute;top:0;width:50%;height:100%;object-fit:cover;z-index:2}
.gi-pt .gi-pt-daun.kiri{left:0;object-position:100% 50%;transform-origin:0 50%;transform:rotateY(70deg)}
.gi-pt .gi-pt-daun.kanan{right:0;object-position:0 50%;transform-origin:100% 50%;transform:rotateY(-70deg)}
.gi-pt-lis{position:absolute;left:12%;top:3.5%;width:76%;height:10px}
.gi-pt-lis .is,.gi-pt-mahkota .is{fill:var(--gi-ukir,#D9B76E)}
.gi-pt-mahkota{position:absolute;left:50%;top:0;width:62%;height:auto;aspect-ratio:120/34;transform:translate(-50%,-78%);overflow:visible}
.gi-pt-mahkota .gr{fill:none;stroke:var(--gi-ukir,#D9B76E);stroke-width:1.4;stroke-linecap:round}
.gi-pt-ronce{position:absolute;top:9%;height:46%;z-index:3;transform-origin:50% 0;pointer-events:none}
.gi-pt .gi-pt-ronce .wc{height:100%;width:auto}
.gi-pt-ronce.kiri{left:9%}
.gi-pt-ronce.kanan{right:9%}
.gi-pt .gi-pt-ronce.kanan .wc{transform:scaleX(-1)}
.gi-pt-teks{position:absolute;left:5%;right:5%;bottom:9%;z-index:4;display:flex;flex-direction:column;align-items:center;padding:6px 4px 8px;text-align:center}
.gi-pt-teks::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:10px;background:var(--gi-papan,rgba(20,17,15,.84));box-shadow:0 0 14px 8px var(--gi-papan,rgba(20,17,15,.84))}
.gi-pt .gi-pt-matur{margin:0;font-size:20px;font-size:clamp(18px,8.4cqi,26px);line-height:1.2}
.gi-pt-nama{margin:2px 0 0;font-family:var(--f-head);font-weight:var(--head-w);color:var(--t-heading);font-size:16px;font-size:clamp(15px,6.2cqi,20px);line-height:1.25}
.gi-pt-km{position:absolute;bottom:12px;width:15%;z-index:2;transform-origin:50% 100%}
.gi-pt-km.kiri{left:1%}
.gi-pt-km.kanan{right:1%}
.gi-pt .gi-pt-km .wc{width:100%}
.gi-pt .gi-pt-km.kanan .wc{transform:scaleX(-1)}
.gi-pt .gi-pt-kp{position:absolute;z-index:3;width:clamp(11px,4.4%,16px);transform-origin:50% 50%;transform:var(--tf,rotate(0deg))}
body[data-gaya="gebyok"] .rv.on .gi-pt-gawang{animation:giMuncul .8s ease .1s both}
body[data-gaya="gebyok"] .rv.on .gi-pt-mahkota{animation:giMahkota .8s ease .5s both}
body[data-gaya="gebyok"] .rv.on .gi-pt .gi-pt-daun.kiri{animation:giDaunKiri 1.9s cubic-bezier(.5,0,.3,1) .5s both}
body[data-gaya="gebyok"] .rv.on .gi-pt .gi-pt-daun.kanan{animation:giDaunKanan 1.9s cubic-bezier(.5,0,.3,1) .5s both}
body[data-gaya="gebyok"] .rv.on .gi-pt-robyong{animation:gbTurun 1.2s cubic-bezier(.3,.7,.3,1) 1s both}
body[data-gaya="gebyok"] .rv.on .gi-pt-sinar{animation:gbNyala 2s ease 1.6s both}
body[data-gaya="gebyok"] .rv.on .gi-pt-ronce{animation:giRonce 1.3s cubic-bezier(.25,.7,.3,1) 1.3s both}
body[data-gaya="gebyok"] .rv.on .gi-pt-ronce.kanan{animation-delay:1.45s}
body[data-gaya="gebyok"] .rv.on .gi-pt-km{animation:gbKm .9s cubic-bezier(.25,.7,.3,1) 1.1s both}
body[data-gaya="gebyok"] .rv.on .gi-pt-km.kanan{animation-delay:1.25s}
body[data-gaya="gebyok"] .rv.on .gi-pt-teks{animation:fadeIn .9s ease 1.7s both}
body[data-gaya="gebyok"] .rv.on .gi-pt .gi-pt-kp{animation:giJatuh 1.3s cubic-bezier(.3,.6,.4,1) var(--t,0s) both}
@keyframes giMuncul{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes giMahkota{from{opacity:0;transform:translate(-50%,-55%) scale(.7)}to{opacity:1;transform:translate(-50%,-78%)}}
@keyframes giDaunKiri{from{transform:rotateY(0deg)}to{transform:rotateY(70deg)}}
@keyframes giDaunKanan{from{transform:rotateY(0deg)}to{transform:rotateY(-70deg)}}
@keyframes giRonce{from{opacity:0;transform:scaleY(.15)}35%{opacity:1}to{opacity:1;transform:none}}
@keyframes giJatuh{0%{opacity:0;transform:var(--tf,rotate(0deg)) translateY(-90px) rotate(-60deg)}20%{opacity:1}100%{opacity:1;transform:var(--tf,rotate(0deg))}}

@media (prefers-reduced-motion: reduce){
  .panggung.siap .gb-latar{opacity:1}
}
