*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --bg-gradient-start: #2a2828;
  --bg-gradient-end: #1e1e1e;
  --font-color: #ffffff;
}

html {
  font-size: 62.5%;
  font-family: consolas, monospace;
  color-scheme: light dark;
  scroll-behavior: smooth;
}

body {
  font-size: 1.6rem;
  font-optical-sizing: auto;
  letter-spacing: 1px;
  text-rendering: optimizeLegibility;
  width: 100%;
  min-height: 100vh;
  padding: 5% 5% 0 5%;
  overflow-x: hidden;
  overflow-y: scroll;
  position: relative;
  color: var(--font-color);
  background: linear-gradient(
    to right top,
    var(--bg-gradient-start),
    var(--bg-gradient-end) 50%
  );
  background-attachment: fixed;
}

header {
  text-align: center;
  p {
    font-size: 1.8rem;
    margin: 20px 0;
  }
}

hr {
  margin: 50px 0;
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

a {
  color: inherit;
  text-decoration: none;
}

ul {
  list-style: none;
}

button {
  cursor: pointer;
}

button:focus-visible {
  outline: 2px solid #ffeb3b;
  outline-offset: 3px;
}

@media (max-width: 768px) {
  html {
    font-size: 60%;
  }
}
