@font-face {
    font-family: 'VT323';
    src: local('VT323'), url('/assets/VT323-Regular.ttf');
}

* {
  margin: 0;
  font: inherit;
}

body {
    box-sizing: border-box;
    margin: 1em 1lh;
    background: black;
    color: #fefeff;
    font-family: VT323, 'monospace';
    min-height: 100vh;
    min-height: calc(100vh - 2lh);
    font-size: 2rem;
    font-variant-ligatures: no-common-ligatures;
    line-height: 1;
    padding-bottom: 5em;
    filter: url(#glitch);
}

svg[height='0'][aria-hidden='true'] { position: fixed }

span.logo {
    font-family: 'monospace';
    font-size: 1.5rem;
}

span, a, button {
  filter: url(#glow);
}

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

html:not(:hover) #startup {
    opacity: 0;
}

#startup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    appearance: none;
    margin: 0;
    border: 1px white;
    background: none transparent;
    color: inherit;
    padding: 1em;
    font: inherit;
    font-size: 1.5em;
    cursor: pointer;
    opacity: 1;
    transition: opacity 1s ease;
}

#cmd {
  display: block;
  width: 100%;
  outline: transparent;
  caret-color: transparent;
}

#cmd br {
  display: none;
}

#cmd:not(:empty, :has(br))::after {
  /* translate: -1cw 0px; */
}

#cmd[contenteditable=true]::before {
  content: '$ ';
}

#cmd[contenteditable=true]::after {
  content: '_';
  font-weight: bold;
  animation: blink 1s infinite;
}

pre#hash:empty {
    opacity: 0;
}

pre#hash {
    position: fixed;
    bottom: 1lh;
    right: 1em;
    font-size: .8em;
    filter: url(#glow);
    opacity: 0.5;
    transition: opacity 1s ease;
}

pre#hash:hover {
    opacity: 1;
}

@keyframes blink {
  0%, 49.9999% {
    opacity: 0;
  }

  50%, 100% {
    opacity: 1;
  }
}
