@font-face {
  font-family: 'Open Sans Regular';
  src: url('fonts/OpenSans-Regular.ttf');
}

@font-face {
  font-family: 'Open Sans Bold';
  src: url('fonts/OpenSans-Bold.ttf');
}

:root {
  --bg-dark: hsl(336 0% 1%);
  --bg: hsl(330 0% 4%);
  --bg-light: hsl(0 0% 9%);
  --text: hsl(0 0% 95%);
  --text-muted: hsl(300 0% 69%);
  --highlight: hsl(330 0% 39%);
  --border: hsl(0 0% 28%);
  --border-muted: hsl(300 0% 18%);
  --primary: hsl(320 50% 73%);
  --secondary: hsl(149 41% 62%);
  --danger: hsl(9 26% 64%);
  --warning: hsl(52 19% 57%);
  --success: hsl(146 17% 59%);
  --info: hsl(217 28% 65%);
  --gradient: linear-gradient(0deg, var(--bg) 95%, var(--bg-light));
  --gradient-hover: linear-gradient(0deg, var(--bg), var(--bg-light));
  --border-radius: 10px;
}

body {
  background-color: var(--bg-dark);
  background-attachment: fixed;
}

* {
  color: var(--text);
  font-family: 'Open Sans Regular';
}

header {
  position: fixed;
  left: 0;
  top: 0;
  font-size: 4vh;
  margin: 2.5vh;
  font-family: 'Open Sans Bold';
}

main {
  text-align: center;
  position: absolute;
  margin: 0;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 3vh;
  padding: 2.5vh;
  border: 1px solid var(--border-muted);
  border-top: 1px solid var(--highlight);
  border-radius: var(--border-radius);
  background-image: var(--gradient);
}

main:hover {
  background-image: var(--gradient-hover);
}

button {
  font-size: 4vh;
  background-color: var(--primary);
  color: var(--bg);
  border: none;
  border-radius: var(--border-radius);
  padding: 1vh;
  font-family: 'Open Sans Bold';
  transition: transform 0.01s ease-in-out;
}

button:hover {
  background-color: var(--secondary);
  transform: scale(1.05);
}

.form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5vh;
  margin-bottom: 2.5vh;
}

.form-group {
  display: contents;
  margin: 0px;
}

.result {
  font-family: 'Open Sans Bold';
  font-size: 6vh;
  margin: 2.5vh;
}

label {
  justify-self: start;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

input {
  margin-left: auto;
  background-color: var(--bg-light);
  border: 1px solid var(--border-muted);
  border-radius: var(--border-radius);
  font-size: 3vh;
  text-align: center;
  outline: none;
  width: 8vw;
}

input:focus {
  border: 1px solid var(--border);
}

footer {
  position: fixed;
  text-align: center;
  left: 0;
  bottom: 0;
  width: 100%;
  font-size: 2vh;
  margin-bottom: 2.5vh;
  color: var(--text-muted);
}

footer,
footer a {
  color: var(--text-muted);
}

@media (max-aspect-ratio: 7/6) {
  main {
    width: 65%;
  }

  input {
    width: 100%;
  }
}