*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  font-family: 'Inconsolata', monospace !important;
}

html,
body {
  min-height: 100vh;
  min-width: 100vw;
  background-color: pink;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}

.container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.otpOuter {
  background: rgba(255,255,255,0.1);
  padding: 2.6rem 2.1rem 1.2rem 2.1rem;
  border-radius: 2rem;
  box-shadow: 0 6px 48px -12px #ff56a1cc, 0 2px 8px #0001;
  backdrop-filter: blur(8px);
  text-align: center;
  min-width: 350px;
  max-width: 90vw;
}

h1 {
  font-weight: 600;
  letter-spacing: 0.10em;
  color: #ff6bb2;
  margin-bottom: 1.4rem;
  font-size: 2.7rem;
  background: -webkit-linear-gradient(0deg, #ff69b4 60%, #ffd6e0 95%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

form {
  display: contents;
}

input {
  background: rgba(255,255,255,0.18);
  border: 1.7px solid #ff83c1;
  color: #e91e63;
  border-radius: 0.75em;
  font-size: 20px;
  font-weight: 600;
  box-shadow: 0 1.5px 0 #ffd6e055;
  margin-bottom: 1.25rem;
  margin-top: 0.25rem;
  padding: 12px 14px;
  width: 270px;
  transition: border 0.18s, background 0.18s, color 0.18s;
}

input:focus {
  outline: none;
  border-color: #ff0080;
  background: rgba(255,255,255,0.24);
  color: #ff1493;
}

::placeholder {
  font-weight: 300;
  color: #ff6bb2;
  opacity: 1;
}

layflags-rolling-number {
  font-family: 'Inconsolata', monospace;
  font-size: 60px;
  font-weight: 700;
  letter-spacing: 0.21em;
  display: block;
  background: linear-gradient(90deg, #ff91b1 0%, #ffbad2 100%);
  padding: 12px 32px;
  border-radius: 1.25rem;
  box-shadow: 0 2px 12px #ff69b488;
  opacity: 1;
  margin: 1.20rem auto 0.65rem auto;
  color: #fff;
  transition: box-shadow 0.2s, transform 0.2s;
}

layflags-rolling-number.pop {
  animation: otpPop 0.23s;
}

@keyframes otpPop {
  0% { transform: scale(1) }
  35% { transform: scale(1.09); box-shadow: 0 4px 22px #ff7dc888; }
  80% { transform: scale(0.99);}
  100% { transform: scale(1); }
}

p {
  font-size: 18px;
  color: rgb(255, 255, 255, 0.74);
  font-weight: 500;
  margin-bottom: 0.5rem;
}

@media screen and (max-width: 600px) {
  input {
    width: 99%;
    font-size: 18px;
  }

  .otpOuter {
    min-width: 90vw;
    padding: 15vw 2vw 1.2rem 2vw;
  }

  layflags-rolling-number {
    font-size: 36px;
    padding: 10px 10vw;
  }
}
