* {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-family: "Menlo", "Andale Mono", "Courier New", Monospace;
}

#terminal {
  background-color: black;
  color: green;
  display: inline-block;

  /* Copy paste! */
  user-select: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  --cursor-color: lightgrey;
}

/* Style attributes */

.bold {
  font-weight: bold;
}

.blink {
  animation: blinker 1s step-start infinite;
}

.underline {
  text-decoration: underline;
}

.dim {
  filter: brightness(50);
}

.italic {
  font-style: italic;
}

.strikethrough {
  text-decoration: line-through;
}

.double_underline {
  text-decoration: underline double;
}

.curly_underline {
  text-decoration: underline wavy;
}

.dotted_underline {
  text-decoration: underline dotted;
}

.dashed_underline {
  text-decoration: underline dashed;
}

/* Cursor styles */

.cursor-steady-block {
  background-color: var(--cursor-color) !important;
}
.cursor-blinking-block {
  animation: blinking-block 1s step-start infinite !important;
}
@keyframes blinking-block {
  50% {
    background-color: var(--cursor-color);
  }
}

.cursor-steady-underline {
  text-decoration: underline var(--cursor-color) !important;
}
.cursor-blinking-underline {
  animation: blinking-underline 1s step-start infinite !important;
}
@keyframes blinking-underline {
  50% {
    text-decoration: underline var(--cursor-color);
  }
}

.cursor-steady-bar {
  margin-left: -2px;
}
.cursor-steady-bar:before {
  content: " ";
  width: 2px;
  background-color: var(--cursor-color) !important;
  display: inline-block;
}
.cursor-blinking-bar {
  margin-left: -2px;
}
.cursor-blinking-bar:before {
  content: " ";
  width: 2px;
  background-color: var(--cursor-color) !important;
  display: inline-block;
  animation: blinker 1s step-start infinite;
}

/* General animations */

@keyframes blinker {
  50% {
    opacity: 0;
  }
}
