/* Bukaan PINTU (functions/_lib/render/bukaan/pintu.ts, koreografi pintu.js). Warna HANYA token /t/pintu/tema.css.
   Lapisan dalam cover: pentas pintu (perspektif) < plat teks atas + bawah < cop. --cop-y tinggi cop di sambungan (pintu.js
   turunkan kalau plat atas melimpah), --cop lebar cop, --sela jarak plat ke cop. Token tema wajib bila guna bukaan ni:
   --plat --plat-garis --plat-bayang (plat gading teks), --pintu-gelap (lapisan gelap pintu berayun), --pintu-sandaran
   (warna pintu sebelum imej dimuat, bukaan tetap jalan). Aset pintu 384x1749 setiap satu, cover + sauh tepi dalam. */
.bk--pintu{--cop-y:46%;--cop:min(26vw,112px);--sela:clamp(.55rem,1.6svh,.9rem);background:var(--pintu-sandaran)}
.pi-pentas{position:absolute;inset:0;z-index:0;perspective:1200px;perspective-origin:50% 50%}
.pi-pintu{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;background:var(--pintu-sandaran)}
.pi-pintu--kiri{left:0;transform-origin:0 50%}
.pi-pintu--kanan{right:0;transform-origin:100% 50%}
.pi-pintu__img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.pi-pintu--kiri .pi-pintu__img{object-position:100% 50%}
.pi-pintu--kanan .pi-pintu__img{object-position:0 50%}
.pi-pintu__gelap{position:absolute;inset:0;background:var(--pintu-gelap);opacity:0;pointer-events:none}
.is-opening .pi-pintu{will-change:transform,opacity}

/* teks: plat gading lut sinar bergaris emas, atas cop (rapat ke cop) dan bawah cop */
.pi-atas{position:absolute;left:0;right:0;top:0;bottom:calc(100% - var(--cop-y) + var(--cop) / 2 + var(--sela));z-index:3;
  display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:calc(1rem + env(safe-area-inset-top)) var(--gutter) 0}
.pi-bawah{position:absolute;left:0;right:0;top:calc(var(--cop-y) + var(--cop) / 2 + var(--sela));bottom:0;z-index:3;
  display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:0 var(--gutter) calc(1rem + env(safe-area-inset-bottom))}
.pi-plat{width:min(100%,22rem);background:var(--plat);border:1px solid var(--plat-garis);border-radius:var(--r-sm);
  box-shadow:inset 0 0 0 4px var(--plat),inset 0 0 0 5px var(--plat-garis),var(--plat-bayang)}
.bk--pintu .bk__atas{gap:.3rem;padding:1rem 1.1rem 1.05rem}
.bk--pintu .bk__atas .eyebrow{color:var(--aksen)}
.bk--pintu .names--bk{font:400 clamp(2.35rem,2rem + 1.8vw,2.85rem)/1.15 var(--f-script);color:var(--aksen);text-wrap:balance}
.bk--pintu .bk-tamu{margin-top:.3rem}
.pi-plat--bawah{width:auto;max-width:100%;gap:.5rem;padding:.75rem 1.3rem .95rem}
.bk--pintu .bk__hint{color:var(--ink-soft)}
/* nama panjang: nama lebih kecil (pintu.js turunkan cop lagi kalau plat atas masih melimpah) */
.bk--pintu.bk--panjang .names--bk{font-size:clamp(1.9rem,1.7rem + 1.2vw,2.3rem);line-height:1.1}

/* cop di sambungan, satu keping merentasi dua pintu */
.pi-cop{position:absolute;left:50%;top:var(--cop-y);z-index:5;width:var(--cop);aspect-ratio:400/403;translate:-50% -50%;padding:0;border:0;
  border-radius:50%;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pi-cop .seal{top:50%;width:100%}
.pi-cop::before{content:"";position:absolute;inset:-26%;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(closest-side,var(--glow-emas) 0%,var(--glow-emas-mid) 50%,var(--glow-0) 100%)}

@media (prefers-reduced-motion:no-preference){
  .bk--pintu.is-live .pi-cop::before{animation:denyut 2.4s var(--ease-inout) infinite}
  .bk--pintu.is-opening .pi-cop::before{animation:none;opacity:0}
}

/* templat pintu di luar bukaan: saiz tile daun sage latar panel (tile = satu daun pintu, sama skala dengan pintu) */
.kad--pintu{--tile:230px}
