/* Adapted from https://moderncss.dev/custom-css-styles-for-form-inputs-and-textareas/ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  --input-border: #8b8a8b;
  --input-focus-h: 245;
  --input-focus-s: 100%;
  --input-focus-l: 42%;
}

body {
  min-height: 100vh;
  display: grid;
  place-content: center;
  gap: 0.5rem;
  font-size: 1.10rem;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
  background-color: #e9f2fd;
  padding: 1rem;
}

h1 {
  font-size: clamp(1.75rem, 4vw + 1rem, 3rem);
}

a {
  text-decoration-line: none;
}

p {
  line-height: 1.5;
}

label {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1;
}

.input + label {
  margin-top: 2rem;
}

.input {
  font-size: 16px;
  font-size: max(16px, 1em);
  font-family: inherit;
  padding: 0.25em 0.5em;
  background-color: #fff;
  border: 2px solid var(--input-border);
  border-radius: 4px;
  transition: 180ms box-shadow ease-in-out;
  line-height: 1;
  height: 2.25rem;
}

.input:focus {
  border-color: hsl(
    var(--input-focus-h),
    var(--input-focus-s),
    var(--input-focus-l)
  );
  box-shadow: 0 0 0 3px
    hsla(
      var(--input-focus-h),
      var(--input-focus-s),
      calc(var(--input-focus-l) + 40%),
      0.8
    );
  outline: 3px solid transparent;
}
