/* eVoost · Vecto Kit · motion.css — clases de apoyo para motion.js (entrada escalonada, pulsacion, keyframes comunes).
   Requiere tokens.css. */

/* entrada escalonada: [data-vk-in] parte oculto; motion.stagger() anade .vk-in con retardo --vk-i  [vecto.css [data-in]] */
[data-vk-in] { opacity: 0; transform: translateY(14px); }
[data-vk-in].vk-in { opacity: 1; transform: none;
  transition: opacity var(--vk-dur-base) var(--vk-ease-out) var(--vk-i, 0ms), transform var(--vk-dur-base) var(--vk-ease-out) var(--vk-i, 0ms); }

/* feedback de pulsacion en cualquier boton del kit */
.vk-press { transition: transform var(--vk-dur-press) var(--vk-ease-out); }
.vk-press:active { transform: scale(.97); }

@keyframes vk-pin  { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes vk-up   { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes vk-ping { 0% { box-shadow: 0 0 0 0 rgba(16,185,129,.5); } 70%, 100% { box-shadow: 0 0 0 8px rgba(16,185,129,0); } }
@keyframes vk-spin { to { transform: rotate(360deg); } }
/* latido lub-dub del punto del logotipo [vecto.css @keyframes beat] */
@keyframes vk-beat { 0% { transform: scale(1); } 8% { transform: scale(1.7); } 16% { transform: scale(1.02); } 26% { transform: scale(1.38); } 40%, 100% { transform: scale(1); } }
/* latido de una miniatura hexagonal [buyer.css thumbbeat] */
@keyframes vk-thumbbeat { 0%, 30%, 100% { transform: scale(1); } 8% { transform: scale(1.16); } 16% { transform: scale(1.02); } }
.vk-beating { animation: vk-thumbbeat var(--vk-dur-beat) ease-out infinite; }

@media (prefers-reduced-motion: reduce) {
  [data-vk-in] { transform: none; }
  .vk-beating { animation: none; }
}
