@font-face {
  font-family: oxygen mono;
  font-style: normal;
  font-weight: 400;
  /* src: url('https://fonts.googleapis.com/css2?family=Oxygen+Mono&display=swap'); */
}

@keyframes scan {
  0% {
    background-position: 0 -100vh
  }

  35%, 100% {
    background-position: 0 100vh
  }
}

@keyframes cursor-blink {
  0% {
    opacity: 1
  }

  50% {
    opacity: 0
  }

  100% {
    opacity: 1
  }
}

html, body {
  min-height: 100vh;
  margin: 0;
}

body {
  box-sizing: border-box;
  height: 100vh;
  background-color: #000;
  background-image: radial-gradient(#11581E, #041607);
  background-repeat: no-repeat;
  background-size: cover;
  font-family: oxygen mono, monospace;
  font-size: 22px;
  color: rgba(128, 255, 128, .8);
  text-shadow: 0 0 1ex #3f3, 0 0 2px rgba(255, 255, 255, .8)
}

@media (max-width: 768px){
  body{
    font-size: 14px;
  }
}

.noise {
  pointer-events: none;
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: url(static.gif);
  background-repeat: no-repeat;
  background-size: cover;
  z-index: -1;
  opacity: .015
}

.overlay {
  pointer-events: none;
  position: absolute;
  width: 100vw;
  height: 100vh;
  background: repeating-linear-gradient(180deg, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .5) 50%, rgba(0, 0, 0, 0) 100%);
  background-size: auto 4px;
  z-index: 1
}

.overlay::before {
  content: "";
  pointer-events: none;
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100vh;
  background-image: linear-gradient(0deg, transparent 0%, rgba(32, 128, 32, .2) 2%, rgba(32, 128, 32, .8) 3%, rgba(32, 128, 32, .2) 3%, transparent 100%);
  background-repeat: no-repeat;
  animation: scan 7.5s linear 0s infinite
}

.terminal {
  box-sizing: inherit;
  position: absolute;
  width: 100vw;
  height: 100vh;
  padding: 1rem;
  text-transform: uppercase;
  overflow: hidden;
}

.output {
  margin: .85rem 0;
  color: rgba(128, 255, 128, .8);
  text-shadow: 0 0 1px rgba(51, 255, 51, .4), 0 0 2px rgba(255, 255, 255, .8);
  word-break: break-word;
}

.output::before {
  content: "> ";
  opacity: .5
}

.output:first-of-type {
  margin-top: 0
}

a {
  color: rgba(255, 255, 255, .6);
  text-decoration: none
}

a:hover {
  color: #fff
}

a::before {
  content: "["
}

a::after {
  content: "]"
}

.terminal>.output:last-child:after {
  display: inline-block;
  vertical-align: -.15em;
  width: .75em;
  height: 1em;
  margin-left: 5px;
  background: #80ff80;
  box-shadow: 1px 1px 1px rgba(128, 255, 128, .8), -1px -1px 1px rgba(128, 255, 128, .8), 1px -1px 1px rgba(128, 255, 128, .8), -1px 1px 1px rgba(128, 255, 128, .8);
  animation: cursor-blink 1.2s steps(1) infinite;
  content: ''
}

.terminal>.output:last-child:empty:after {
  margin-left: 2px
}

.terminal.typing>.output:last-child:after {
  animation: none
}

::selection {
  background: #0b5016
}

::-moz-selection {
  background: #0b5016
}
