:root{
  --color-white:#ffffff;
  --color-black:#000000;
  --color-grey-100:#f0f0f0;
  --color-grey-200:#dcdcdc;
  --color-grey-500:#716f6f;
  --color-red-400:#ff5959;
  --color-purple-500:#854dff;
}

html {
  background-color: var(--color-grey-100);
}

.main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 95vh;
}

.calculator {
  width: 840px;
  background-color: var(--color-white);
  padding: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-radius: 24px 24px 200px 24px;
  flex-shrink: 0;
}

.input-form {
  display: flex;
  gap: 32px;
}

.input-group {
  display: flex;
  gap: 8px;
  flex-direction: column;
  max-width: 160px;
}

.input-group label {
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--color-grey-500);
}

.input-group input {
  padding: 8px 0 8px 24px;
  border: 1px solid var(--color-grey-200);
  border-radius: 8px;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  color: var(--color-black);
}

.input-group input:focus {
  outline: none;
  border-color: var(--color-purple-500);
}

.input-group span {
  font-size: 14px;
  color: var(--color-red-400);
  display: none;
}

.input-group input:invalid + .input-group span {
  display: block;
}

.btn-container {
  position: relative;
  display: flex;
  justify-content: end;
  width: 100%;
}

.separator {
  width: 100%;
  height: 1px;
  background-color: var(--color-grey-200);
  position: absolute;
  top: 50%;
  pointer-events: none;
}

.submit-button {
  border: none;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background-color: var(--color-purple-500);
  position: relative;
  cursor: pointer;
}

.submit-button:hover {
  background-color: var(--color-black);
}

.submit-button:focus {
  background-color: var(--color-black);
}

.result {
  display: flex;
  flex-direction: column;
}

.result span {
  font-size: 104px;
  font-style: italic;
  font-weight: 800;
  line-height: 110%;
  letter-spacing: -2px;
  color: var(--color-purple-500);
}

.result p {
  font-size: 104px;
  font-style: italic;
  font-weight: 800;
  line-height: 110%;
  letter-spacing: -2px;
  color: var(--color-black);
}

@media screen and (max-width: 1024px) {
  .calculator {
    max-width: 686px;
    gap: 32px;
  }

  .input-form {
    width: 100%;
    justify-content: center;
  }

  .input-group {
    width: 100%;
    max-width: 170px;
  }

  .input-group label {
    font-size: 14px;
  }

  .btn-container {
    width: 100%;
    justify-content: center;
  }
  
}

@media screen and (max-width: 700px) {
  .calculator {
    padding: 48px 24px;
    max-width: 343px;
  }

  .input-form {
    width: 100%;
    justify-content: center;
    gap: 16px;
  }

  .input-group label {
    font-size: 12px;
  }

  .input-group input {
    font-size: 20px;
    padding: 8px 0 8px 16px;
    max-width: 87.67px;
  }

  .submit-button {
    width: 64px;
    height: 64px;
  }

  .result span,
  .result p {
    font-size: 56px;
  }

}