.epicenter {
  position: relative;
}

.messages {
  position: absolute;
  width: 80%;
  left: 10%;
  top: 100%;
  text-align: center;
  height: 12em;
  overflow: hidden;
}

.message:last-child:after {
  display: block;
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to bottom, #f9f9f999, #f9f9f9);
  height: 2.5em;
}

.message {
  font-size: 1.5em;
  margin: 0.5em;
  transition: max-height 0.5s ease, margin 0.5s ease, opacity 0.5s linear;
  max-height: 3em;
  overflow: hidden;
  opacity: 1;
}
.message.message--hidden {
  max-height: 0;
  margin: 0;
  opacity: 0;
}
.message.message--old {
  transition: max-height 0.5s ease 0.5s, margin 0.5s ease 0.5s,
    opacity 0.5s linear;
}

.info {
  position: fixed;
  left: 0;
  right: 0;
  padding: 1em;
  display: grid;
  opacity: 1;
  transition: opacity 0.25s linear;
}

.info--header {
  top: 0;
  grid-template-columns: 1fr 1fr;
}

.info--footer {
  bottom: 0;
  grid-template-columns: 1fr 2fr 1fr;
}

.info-item--unset {
  opacity: 0;
}

.info-item--left {
  text-align: left;
}

.info-item--center {
  text-align: center;
}

.info-item--right {
  text-align: right;
}

.info-item__label {
  opacity: 0.7;
}

.info-item__label:after {
  content: ':';
}
