html,
body {
  height: 100%;
  padding: 0;
  display: block;
  margin: 0;
}

h1 {
  font-size: 50px;
  padding: 20px 0;
  margin: auto 0 10px;
  color: #fff;
  letter-spacing: 4px;
  font-weight: 600;
}
p { color: #fff; }
body {
  background: #202344;
  font: 30px Helvetica;
  letter-spacing: 2px;
  text-align: center;
}

.flex_container {
  display: flex;
  flex-flow: column wrap;
  height: 100%;
  justify-content: center;
}

form {
  margin: auto;
}

.input_wrap {
  width: 500px;
  max-width: 100%;
  position: relative;
}
.input_wrap .after {
  position: absolute;
  height: 2px;
  width: 100%;
  background: #fff;
  left: 0;
  bottom: 0;
  transform: scale(0, 1);
  transition: 0.3s;
}
.input_wrap span {
  display: none;
  font-size: 20px;
  color: #fff;
  position: absolute;
  bottom: 50%;
  transition: margin 0.8s;
  opacity: 0.8;
  margin: 0;
  left: 50%;
  font-weight: 100;
}
.input_wrap span.in {
  margin-bottom: 20px;
}

input {
  -webkit-appearance: none;
  border-radius: 0;
  border: none;
  outline: none;
  padding: 0 10px;
  height: 60px;
  width: 100%;
  background: rgba(255, 255, 255, 0.1);
  font: 25px Helvetica;
  color: #fff;
  transition: 0.3s;
  text-align: center;
  letter-spacing: 3px;
}
input:focus::-moz-placeholder {
  opacity: 0;
}
input:focus:-ms-input-placeholder {
  opacity: 0;
}
input:focus::placeholder {
  opacity: 0;
}
input:focus + .after {
  transform: scale(1, 1);
}
input::-moz-placeholder {
  -moz-transition: 0.3s;
  transition: 0.3s;
  color: #fff;
  font-weight: 900;
}
input:-ms-input-placeholder {
  -ms-transition: 0.3s;
  transition: 0.3s;
  color: #fff;
  font-weight: 900;
}
input::placeholder {
  transition: 0.3s;
  color: #fff;
  font-weight: 900;
}
input:focus {
  background: rgba(255, 255, 255, 0.3);
}
input.error {
  border-color: #ea1d1d;
}
