/**
 * Toast entrance/exit motion. Ark emits the `data-state` attribute on the
 * toast root. We fade + slide on the relevant axis depending on placement.
 */

@keyframes sl-toast-in-bottom {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes sl-toast-in-top {
  from {
    opacity: 0;
    transform: translateY(-16px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes sl-toast-out {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.97);
  }
}

[data-sl-toast][data-state="open"] {
  animation: sl-toast-in-bottom var(--sl-duration-base) var(--sl-ease-emphasized);
}

[data-sl-toast][data-state="open"][data-placement^="top"] {
  animation: sl-toast-in-top var(--sl-duration-base) var(--sl-ease-emphasized);
}

[data-sl-toast][data-state="closed"] {
  animation: sl-toast-out var(--sl-duration-fast) var(--sl-ease-standard);
}

@media (prefers-reduced-motion: reduce) {
  [data-sl-toast][data-state="open"],
  [data-sl-toast][data-state="closed"] {
    animation: none;
    transform: none;
  }
}

