.flash {
  align-items: center;
  animation: appear-then-fade 4s 300ms both;
  backdrop-filter: var(--blur-sm);
  background-color: var(--flash-background, var(--color-surface-alt));
  border: 1px solid var(--flash-border, var(--color-border));
  border-radius: var(--rounded-md);
  color: var(--flash-color, var(--color-text));
  column-gap: var(--size-2);
  display: flex;
  font-size: var(--text-fluid-base);
  justify-content: center;
  line-height: var(--leading-none);
  margin-block-start: var(--flash-position, var(--size-4));
  margin-inline: auto;
  min-block-size: var(--size-11);
  padding: var(--size-2) var(--size-4);
  text-align: center;
  box-shadow: var(--shadow-sm);

  [data-turbo-preview] & {
    display: none;
  }
}

.flash--positive {
  --flash-background: var(--color-positive);
  --flash-color: white;
  --flash-border: var(--color-positive-dark);
}

.flash--negative {
  --flash-background: var(--color-negative);
  --flash-color: white;
  --flash-border: var(--color-negative-dark);
}

.flash--notice {
  --flash-background: var(--color-primary);
  --flash-color: white;
  --flash-border: var(--color-primary-dark);
}

.flash--alert {
  --flash-background: var(--color-error);
  --flash-color: white;
  --flash-border: var(--color-error-dark);
}

.flash--extended {
  animation-name: appear-then-fade-extended;
  animation-duration: 12s;
}

@keyframes appear-then-fade {
  0%, 100% { opacity: 0; }
  5%, 60%  { opacity: 1; }
}

@keyframes appear-then-fade-extended {
  0%, 100% { opacity: 0; }
  2%, 90% { opacity: 1; }
}
