.brief-shape.is-entering {
  animation: brief-feedback-in .28s cubic-bezier(.22, 1, .36, 1) both;
}

.brief-shape.is-leaving {
  animation: brief-feedback-out .16s ease both;
  pointer-events: none;
}

.brief-shape dl > div.is-entering {
  overflow: hidden;
  animation: brief-entry-in .28s cubic-bezier(.22, 1, .36, 1) both;
}

.brief-shape dl > div.is-leaving {
  overflow: hidden;
  animation: brief-entry-out .16s ease both;
  pointer-events: none;
}

.feedback-text.is-text-leaving {
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity .09s ease, transform .09s ease;
}

.feedback-text.is-text-entering {
  animation: feedback-text-in .14s cubic-bezier(.22, 1, .36, 1) both;
}

[data-optional-action] {
  display: inline-block;
  text-align: center;
}

.action-submit .feedback-text {
  display: inline-block;
}

.feedback-text-measure {
  position: absolute;
  visibility: hidden;
  inline-size: max-content;
  pointer-events: none;
}

.start-confirmation:not([hidden]) {
  animation: brief-feedback-in .32s cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes brief-feedback-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes brief-feedback-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-5px); }
}

@keyframes brief-entry-in {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes brief-entry-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-3px); }
}

@keyframes feedback-text-in {
  from { opacity: 0; transform: translateY(2px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .brief-shape.is-entering,
  .brief-shape.is-leaving,
  .brief-shape dl > div.is-entering,
  .brief-shape dl > div.is-leaving,
  .feedback-text.is-text-entering,
  .start-confirmation:not([hidden]) {
    animation: none;
  }

  .feedback-text.is-text-leaving {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
