/* Dilarang keras menghapus credits
Devoleper : Rahmad Tenpoles
WhatsApp : wa.me/6285764735713
Instagram : instagram.com/rahmad_tenpoles
Telegram : t.me/rahmad_tenpoles
Dilarang keras menghapus credits */
/* The ONE motion layer (with public/js/vf-feedback.js). Rules: transform and opacity only, 80-150 ms, no entrance
   animations, nothing hidden until a script runs, everything off under prefers-reduced-motion. */
:root { --vf-dur-tap: 100ms; --vf-dur: 140ms; --vf-ease: cubic-bezier(.2, 0, 0, 1); }

/* Press: every tappable shrinks a little while held (vf-feedback.js adds .is-pressing). The scale property composes with
   any transform the element already has, so positioned controls never jump. */
:is(a[href], button, summary, label, [role="button"], [role="tab"], [role="switch"], [role="menuitem"], [data-press], .vf-pcard) {
  transition: scale var(--vf-dur) var(--vf-ease), opacity var(--vf-dur) var(--vf-ease);
}
.is-pressing { transition-duration: var(--vf-dur-tap); }
.is-pressing:not(:disabled):not([aria-busy="true"]) { scale: .97; }
.vf-pcard.is-pressing { scale: .98; }

[aria-busy="true"] { cursor: progress; }

@keyframes vf-shake { 0%, 100% { transform: translateX(0); } 33% { transform: translateX(-5px); } 66% { transform: translateX(4px); } }
.vf-shake { animation: vf-shake 240ms var(--vf-ease) both; }

/* Touch: no grey tap flash, taps never wait for a double-tap zoom, keyboard focus always visible. */
html { -webkit-tap-highlight-color: transparent; }
:where(a, button, input, select, textarea, summary, label, [tabindex], [role="button"], [role="tab"], [role="switch"], [role="menuitem"], [role="option"]) { touch-action: manipulation; }
:where(a, button, input, select, textarea, summary, [tabindex], [role="button"], [role="tab"], [role="switch"]):focus-visible { outline: 2px solid var(--vf-focus); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
