:root {
  --fg: #fff;
  --bg: #111;
  --bg2: #333;
  --bg3: #555;
  --bd: #999;
  --bd2: #aaa;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background-color: var(--bg);
  color: var(--fg);
}

html {
  font-size: 16px;
}
body {
  padding: 1rem;
}

h1 {
  font-size: 3rem;
}
h2 {
  font-size: 2rem;
}
h3, h4, h5, h6 {
  font-size: 1.5rem;
}
h1, h2, h3, h4, h5, h6, p {
  margin-bottom: 1rem;
}
p {
  font-size: 1.2rem;
}

button, input:not([type="image"], [type="hidden"]) {
  border: 1px solid var(--bd);
  background-color: var(--bg2);
  color: var(--fg);
}
button:focus, input:not([type="image"], [type="hidden"]):focus {
  outline: none;
  border-color: var(--bd2);
  background-color: var(--bg3);
}

hr {
  border-color: #888;
}

.bd-dark {
  border-color: #444;
}
.dotted {
  border-style: dotted;
}

.no-deco, .no-deco * {
  text-decoration: none;
}
.button {
  cursor: pointer;
}
.button:hover {
  color: #ccc;
}
.button.pressed {
  color: #444;
}
.gray, .gray * {
  color: #888;
}
.green, .green * {
  color: #8a8;
}
.block {
  display: block;
}
.center {
  text-align: center;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mb-1 {
  margin-bottom: 1rem;
}
.mb-2 {
  margin-bottom: 2rem;
}
.pb-1 {
  padding-bottom: 1rem;
}
.pb-2 {
  padding-bottom: 2rem;
}
