body{
    font-family: 'Open Sans', sans-serif;
}
#signUpForm {
    max-width: 500px;
}
#signUpForm .form-header .stepIndicator.active {
    font-weight: 600;
}
#signUpForm .form-header .stepIndicator.finish {
    font-weight: 600;
    color: #5a67d8;
}
#signUpForm .form-header .stepIndicator::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: 9;
    width: 20px;
    height: 20px;
    background-color: #c3dafe;
    border-radius: 50%;
    border: 3px solid #ebf4ff;
}
#signUpForm .form-header .stepIndicator.active::before {
    background-color: #a3bffa;
    border: 3px solid #c3dafe;
}
#signUpForm .form-header .stepIndicator.finish::before {
    background-color: #5a67d8;
    border: 3px solid #c3dafe;
}
#signUpForm .form-header .stepIndicator::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: 100%;
    height: 3px;
    background-color: #f3f3f3;
}
#signUpForm .form-header .stepIndicator.active::after {
    background-color: #a3bffa;
}
#signUpForm .form-header .stepIndicator.finish::after {
    background-color: #5a67d8;
}
#signUpForm .form-header .stepIndicator:last-child:after {
    display: none;
}
#signUpForm input.invalid {
    border: 2px solid #ffaba5;
}
#signUpForm .step {
  display: none;
}

/* complex otp box */
:where([autocomplete=one-time-code]) {
    --otp-digits: 6;
    --otp-ls: 2ch;
    --otp-gap: 1.25;
  
    /* private consts */
    --_otp-bgsz: calc(var(--otp-ls) + 1ch);
    --_otp-digit: 0;
  
    all: unset;
    background: 
    linear-gradient(90deg, 
      var(--otp-bg, #BBB) calc(var(--otp-gap) * var(--otp-ls)),
      transparent 0),
      linear-gradient(90deg, 
      var(--otp-bg, #EEE) calc(var(--otp-gap) * var(--otp-ls)),
      transparent 0
    );
    background-position: calc(var(--_otp-digit) * var(--_otp-bgsz)) 0, 0 0;
    background-repeat: no-repeat, repeat-x;
    background-size: var(--_otp-bgsz) 100%;
    caret-color: var(--otp-cc, #222);
    caret-shape: block;
    clip-path: inset(0% calc(var(--otp-ls) / 2) 0% 0%);
    font-family: ui-monospace, monospace;
    font-size: var(--otp-fz, 2.5em);
    inline-size: calc(var(--otp-digits) * var(--_otp-bgsz));
    letter-spacing: var(--otp-ls);
    padding-block: var(--otp-pb, 1ch);
    padding-inline-start: calc(((var(--otp-ls) - 1ch) / 2) * var(--otp-gap));
  }
  
  /* For this demo 
  label span {
    display: block;
    font-family: ui-sans-serif, system-ui, sans-serif;
    font-weight: 500;
    margin-block-end: 1ch;
  } */