/* vibes-extra — tambahan di atas build Tailwind live (vibes.css). Animasi hanya opacity/transform; tanpa JS / reduced-motion = konten langsung tampil. */
/* animasi masuk ala framer-motion (state tersembunyi HANYA bila html.js-anim dari skrip inline <head>) */
.js-anim [data-anim]{opacity:0;transform:translate3d(0,20px,0);transition:opacity .5s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.22,1,.36,1)}
.js-anim [data-anim].anim-in{opacity:1;transform:none}
.js-anim [data-anim].anim-now{transition-duration:.3s}
.js-anim [data-anim].anim-done{transition:none}
/* menu mobile: panel di dalam header sticky, buka/tutup halus (live: framer height auto) */
.vibes-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s ease,opacity .2s ease;border-top-width:0}
.vibes-panel.is-open{grid-template-rows:1fr;opacity:1;border-top-width:1px}
.vibes-panel>.vibes-panel-in{overflow:hidden;min-height:0}
.vibes-panel:not(.is-open) a{visibility:hidden}
@media (min-width:1024px){.vibes-panel{display:none}}
/* tombol WA melayang: muncul (scale 0 -> 1, jeda 1 dtk) persis initial/animate live */
.vibes-float{animation:vibesPop .3s ease-out 1s backwards}
@keyframes vibesPop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.vibes-float:hover{transform:scale(1.1) rotate(5deg)}
/* tautan CTA (dulu <button>): tanpa garis bawah */
a[data-wa-label]{text-decoration:none}
@media (prefers-reduced-motion:reduce){
[data-anim]{opacity:1!important;transform:none!important;transition:none!important}
.vibes-float{animation:none}
.vibes-panel{transition:none}
}
