body {
  white-space: pre-wrap;
  word-break: break-word;
  font-family: monospace;
}

.property {
  font-weight: bold;
}

.type-null {
  color: gray;
}

.type-boolean {
  color: firebrick;
}

.type-number {
  color: blue;
}

.type-string {
  color: green;
}

.callback-function {
  color: gray;
}

.ellipsis::after {
  content: " … ";
}

.collapser {
  position: absolute;
  top: .1em;
  left: -2ch;
  cursor: default;
  user-select: none;
  padding-inline: 0.5ch;
}

.collapser::after {
  cursor: pointer;
  content: "-";
}

.collapsed > .collapser::after {
  content: "+";
}

.collapsible {
  margin-inline-start: 4ch;
}

.collapsible .collapsible::before {
  content: "";
  position: absolute;
  left: 0.5ch;
  top: 1.8em;
  height: calc(100% - 3.6em);
  border: 0;
  border-inline-start: #d3d3d3 0.2ch dashed;
}

.hoverable {
  display: inline-block;
  padding: 0.1em;
  transition: background-color 0.2s ease-out 0s;
}

.hovered {
  background-color: rgba(235, 238, 249, 1);
  transition-delay: 0.2s;
}

.selected {
  outline: dotted 0.1ch;
}

@media (prefers-color-scheme: dark) {
  body {
    background-color: #282828;
    color: lightgrey;
  }

  .hovered {
    background-color: #424242;
  }

  .type-boolean {
    color: tomato;
  }

  .type-number {
    color: dodgerblue;
  }

  .type-string {
    color: yellowgreen;
  }

  a {
    color: dodgerblue;
  }

  .collapsible .collapsible::before {
    border-color: #484848;
  }
}