* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  height: 100%;
  background: #0a0a08;
  overflow: hidden;
  font-family: "Zilla Slab", Georgia, monospace;
  color: rgb(235, 235, 220);
}

.stage {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1000px;
  height: 800px;
  transform: translate(-50%, -50%);
  transform-origin: center center;
  background: #0d0d0a;
}

#scene {
  position: absolute;
  left: 41px;
  top: 29px;
  width: 918px;
  height: 458px;
}

.mask {
  position: absolute;
  left: 41px;
  top: 29px;
  width: 918px;
  height: 458px;
  pointer-events: none;
  opacity: 0.9;
}

#hud {
  position: absolute;
  left: 0;
  top: 0;
  width: 1000px;
  height: 800px;
  pointer-events: none;
}

.layer {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(13, 13, 10, 0.88);
  z-index: 5;
}

.menu-box,
.quit-buttons,
.settings-box {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
}

.menu-cell,
.quit-btn,
.settings-box button {
  font: 20px "Zilla Slab", monospace;
  color: rgb(235, 235, 220);
  background: rgb(24, 24, 20);
  border: 1px solid rgb(120, 120, 105);
  padding: 10px 26px;
  cursor: pointer;
  min-width: 320px;
}

.menu-cell:hover,
.quit-btn:hover,
.settings-box button:hover {
  background: rgb(48, 48, 38);
  border-color: rgb(235, 235, 220);
}

button[hidden] {
  display: none;
}

.settings-box {
  background: rgb(24, 24, 20);
  border: 1px solid rgb(120, 120, 105);
  padding: 22px 26px;
  width: 560px;
  max-height: 660px;
  overflow: auto;
  align-items: stretch;
}

.settings-title {
  font-size: 26px;
  text-align: center;
  margin-bottom: 8px;
}

.settings-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.field {
  display: flex;
  gap: 10px;
  align-items: center;
}

.field-label {
  flex: 0 0 190px;
  font-size: 16px;
  color: rgb(190, 190, 175);
}

.field input[type='text'],
.field input[type='password'],
.field input[type='number'],
.field select {
  flex: 1;
  background: rgb(18, 18, 14);
  border: 1px solid rgb(90, 90, 80);
  color: rgb(235, 235, 220);
  font: 16px monospace;
  padding: 6px 8px;
}

.field input[type='checkbox'] {
  width: 18px;
  height: 18px;
}

.settings-buttons {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 14px;
}

.settings-buttons button {
  min-width: 110px;
  padding: 8px 16px;
}

.model-list {
  font: 13px monospace;
  color: rgb(150, 200, 120);
  max-height: 160px;
  overflow: auto;
  margin-top: 10px;
  white-space: pre-wrap;
}

.gear {
  position: absolute;
  right: 10px;
  top: 4px;
  width: 30px;
  height: 26px;
  z-index: 6;
  background: transparent;
  color: rgb(190, 190, 175);
  border: 1px solid rgb(90, 90, 80);
  cursor: pointer;
  font: 16px monospace;
}

.layer[hidden] {
  display: none;
}

input.prompt {
  position: absolute;
  z-index: 4;
  background: transparent;
  border: none;
  color: transparent;
  caret-color: rgb(235, 235, 220);
  font: 18px 'Zilla Slab', monospace;
  outline: none;
  letter-spacing: 0;
  padding: 0;
}

input.prompt::selection {
  background: rgba(235, 235, 220, 0.3);
}
