.grow-wrap {
  /* easy way to plop the elements on top of each other and have them both sized based on the tallest one's height */
  display: grid;
  position: relative;
  max-width: 100%;
  overflow-wrap: anywhere; /* limit width in chrome */
}

.grow-wrap::after {
  /* Note the weird space! Needed to preventy jumpy behavior */
  content: attr(data-replicated-value) " ";

  /* This is how textarea text behaves */
  white-space: pre-wrap;

  /* Hidden from view, clicks, and screen readers */
  visibility: hidden;
}
.grow-wrap > textarea {
  /* You could leave this, but after a user resizes, then it ruins the auto sizing */
  resize: none;

  /* Firefox shows scrollbar on growth, you can hide like this. */
  overflow: hidden;
}
.grow-wrap > textarea,
.grow-wrap::after {
  padding: 0;
  width: 100%;
  font: inherit;
  border: none;
  /* Place on top of each other */
  grid-area: 1 / 1 / 2 / 2;
}

.grow-wrap > textarea:focus {
  outline: none;
}

.no-wrap::after {
  white-space: pre !important;
}
