@charset "UTF-8";
:root {
  --field-dim: 3.5rem;
  --hint-marker-dim: 1em;
}

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

input, button, select {
  color: #b9b9b9;
  background-color: #1c1c1c;
  border: none;
  border-radius: 0.2em;
  padding: 0.5em;
}
input:hover, button:hover, select:hover {
  cursor: pointer;
  background-color: #393939;
}

body {
  width: 100vw;
  min-height: 100vh;
  display: flex;
  gap: 1em;
  font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
  color: #b9b9b9;
  background-color: #242424;
  padding: 1rem;
}

.crosswords-field {
  display: grid;
  flex: 1;
  font-size: 7pt;
  gap: 0.2em;
  grid-template: repeat(var(--y), max-content)/repeat(var(--x), max-content);
}
.crosswords-field .text {
  grid-column: span calc(var(--x) - 1);
  grid-row: span calc(var(--y) - 1);
  font-size: 18pt;
  width: unset;
  height: unset;
}
.crosswords-field * {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 0.1rem;
  width: var(--field-dim);
  height: var(--field-dim);
  text-transform: uppercase;
}
.crosswords-field * .coords {
  position: absolute;
  top: -0.5em;
  left: 0;
  width: -moz-max-content;
  width: max-content;
  height: -moz-max-content;
  height: max-content;
  font-size: 0.5rem;
  background-color: black;
  z-index: 20;
}
.crosswords-field .field {
  background-color: #1c1c1c;
}
.crosswords-field .field.error {
  color: #ff0000;
}
.crosswords-field .field.char {
  font-size: 24pt;
  text-align: center;
  color: inherit;
  border: none;
  background-color: #1a1a1a;
}
.crosswords-field .field.char input {
  color: inherit;
  font-size: inherit;
  text-align: inherit;
  border: inherit;
  border-radius: unset;
}
.crosswords-field .field.char input:focus {
  z-index: 2;
  outline: solid #1aa1d3;
}
.crosswords-field .field.char:not(.word-correct) input {
  background-color: #151515;
}
.crosswords-field .field.char.word-correct {
  background-color: #003125;
}
.crosswords-field .field.char.word-correct input {
  background-color: rgba(0, 0, 0, 0);
}
.crosswords-field .hint {
  -webkit-hyphens: auto;
          hyphens: auto;
  justify-content: center;
  align-items: center;
  text-align: center;
  border: 1px solid #5b5b5b;
}
.crosswords-field .hint.word-correct {
  background-color: #003125;
}
.crosswords-field .hint.up-down::before {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  top: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↑";
}
.crosswords-field .hint.up-down::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  bottom: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↓";
}
.crosswords-field .hint.right-down {
  display: flex;
  flex-direction: column;
}
.crosswords-field .hint.right-down > *:first-child {
  border-bottom: 1px solid #5b5b5b;
}
.crosswords-field .hint.right-down::before {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  right: -1em;
  top: calc(var(--field-dim) / 4 - var(--hint-marker-dim) / 2);
  content: "→";
}
.crosswords-field .hint.right-down::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  bottom: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↓";
}
.crosswords-field .hint.left-down::before {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  left: -1em;
  top: calc(var(--field-dim) / 4 - var(--hint-marker-dim) / 2);
  content: "←";
}
.crosswords-field .hint.left-down::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  bottom: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↓";
}
.crosswords-field .hint.up-left::before {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  top: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↑";
}
.crosswords-field .hint.up-left::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  left: -1em;
  bottom: calc(var(--field-dim) / 4 - var(--hint-marker-dim) / 2);
  content: "←";
}
.crosswords-field .hint.up-right::before {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  top: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↑";
}
.crosswords-field .hint.up-right::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  right: -1em;
  bottom: calc(var(--field-dim) / 4 - var(--hint-marker-dim) / 2);
  content: "→";
}
.crosswords-field .hint.down::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  bottom: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↓";
}
.crosswords-field .hint.up::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  top: -1em;
  left: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  content: "↑";
}
.crosswords-field .hint.left::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  bottom: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  left: -1em;
  content: "←";
}
.crosswords-field .hint.right::after {
  width: var(--hint-marker-dim);
  height: var(--hint-marker-dim);
  position: absolute;
  z-index: 100;
  font-weight: bolder;
  bottom: calc(var(--field-dim) / 2 - var(--hint-marker-dim) / 2);
  right: -1em;
  content: "→";
}/*# sourceMappingURL=style.css.map */