#flash {
  --border-radius: 10px;

  position: fixed;
  width: 100%;
  top: var(--space-s);
  left: 0;
  padding-inline: var(--page-padding-inline);
  z-index: var(--flashes-z);
}

.flashes:not(:empty) {
  margin: 0 auto;
  max-width: min(100%, 80ch);
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-xl);
  overflow: hidden;
}

.flash {
  position: relative;
  padding: var(--space-m) var(--space-s);
  transition: all .5s 2s;
  transition-timing-function: ease-out;
  overflow: hidden;

  &.disappear {
    padding-block: 0;
    border-top: 0;
    overflow: hidden;
  }
}

.flash ~ .flash {
  border-top: 4px solid var(--color-background);
}

.flash--error,
.flash--alert {
  color: var(--color-error);
  background-color: var(--color-error-bg);
  border-color: var(--color-error);

  .flash__close {
    background-color: var(--color-error-alpha-40);
  }
}

.flash--success,
.flash--notice {
  color: var(--color-success);
  background-color: var(--color-success-bg);
  border-color: var(--color-success);

  .flash__close {
    background-color: var(--color-success-alpha-40);
  }
}

.flash__close {
  --offset: 5px;
  --dim: 20px;

  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: var(--offset);
  right: var(--offset);
  border-radius: var(--border-radius);
  width: var(--dim);
  height: var(--dim);
  line-height: .8;
  font-size: calc(var(--dim) * .6);
  color: white;

  transition: opacity .125s;
  cursor: pointer;

  &:hover {
    opacity: .6;
    color: white;
  }
}

.asdf {

}
