@keyframes appear {
  0% {
    opacity: 0;
    transform: translate(-50%, -12px);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
.flash {
  position: fixed;
  z-index: 10;
  left: 50%;
  top: var(--spacing-8);
  border-radius: var(--radius-4);
  transform: translate(-50%, 0);
  padding: var(--spacing-8);
  display: inline-flex;
  gap: var(--spacing-4);
  align-items: center;
  width: calc(100vw - 32px);
  max-width: 400px;
  background: rgba(var(--color-primary-rgb), 0.95);
  box-shadow: 0 8px 16px -4px rgba(0, 0, 0, 0.1);
  color: var(--color-text-inverse-high);
  opacity: 0;
  animation: appear 0.4s forwards;
  &.alert {
    background: rgba(164, 10, 36, 0.9);
  }
  &.notice {
    background: rgba(75, 105, 80, 0.9);
  }
  .flash-content {
    flex: 1;
    p {
      text-shadow: 0 0 24px rgba(0, 0, 0, 0.1);
    }
  }
  .icon {
    width: 20px;
    height: 20px;
    fill: var(--color-text-inverse-middle);
  }
}
