/* Entrance animations: a short rise, staggered row by row */

.fadein,
.button-entrance {
  animation: ls-rise .5s cubic-bezier(.2, .7, .2, 1) both;
}

/* LinkStack sets --delay to 1s, 2s, 3s… per row */
.button-entrance { animation-delay: calc(120ms + var(--delay, 0s) * .045); }

@keyframes ls-rise {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .fadein,
  .button-entrance,
  .ls-qr[open],
  .ls-cur { animation: none; }
  a.button, a.button::after, .sharebutton, .ls-ctl { transition: none !important; }
}
