@font-face {
  font-family: 'Terminal';
  font-weight: normal;
  src: url('type/terminal-grotesque-webfont.woff') format('woff'),
        url('type/terminal-grotesque-webfont.woff2') format('woff2');
}
* { box-sizing: border-box }
::selection { background-color: #f00; color: #000 }
html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: none;
  background-color: #000;
  color: #f00;
  font-family: 'Terminal', sans-serif;
  overflow-x: hidden;
}
main {
  text-align: center;
}
a {
  color: #f00
}
#logo {
  width: 12rem;
  vertical-align: middle;
}
#logo-melon {
  width: 5em;
  vertical-align: middle;
}
.banner {
  width: 100%;
  max-width: 90rem;
}
nav ul {
  list-style: none;
  display: flex;
  margin: 0 0 -1em;
}
nav li {
  width: 100%;
  font-size: 1.5rem;
  margin: 0;
}
nav li a:not(.logo) {
  padding: 1.9em 2em 2.1em;
  position: relative;
  display: inline-block;
  transform: rotate(-9deg);
  transition: .2s transform;
}
nav li a:not(.logo):hover {
  transform: rotate(-9deg) scale(1.1);
}
nav .logo {
  text-decoration: none;
}
h1 {
  position: relative;
  display: inline-block;
  font-weight: normal;
  padding: 1.5em 2em;
  transform: rotate(-9deg);
  margin: .5em 0 0;
}
h1::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: url('img/burst.svg') center / 100% 100%;
  z-index: -1;
  animation: 1s pulse linear infinite alternate;
}
@keyframes pulse {
  from { transform: scale(1) }
  to { transform: scale( .97) }
}
p {
  font-size: 1.2em;
  line-height: 1.24;
  padding: 0 2em;
}
.visit {
  border: 2px solid #f00;
  max-width: 30em;
  border-radius: 1em;
  margin: -1em auto;
}
.visit a:hover { background-color: #f00; color: #000 }
code {
  font-family: 'Terminal', monospace;
  background-color: #1f1f1faa;
  padding: .2em;
}
small {
  display: block;
  margin: 10em auto 1em;
  color: #333;
}

.columns {
  display: flex;
  justify-content: center;
}

.columns h1 {
  font-size: 1.25em;
}

.columns aside {
  max-width: 25em;
}

h2 {
  font-weight: normal;
  margin-top: 2em;
}

ol,
table {
  margin: 0 auto;
}

details summary {
  text-decoration: underline;
  text-decoration-style: dotted;
  text-decoration-color: #500;
  cursor: pointer;
}

details[open] summary {
  text-decoration: none;
}

details p {
  border-top: 1px dotted #f00;
  padding-top: .5em;
}

details p,
details li {
  text-align: left;
  font-size: 1.2em;
}

details ol {
  border-bottom: 1px dotted #f00;
}

details ol li {
  margin: 0 1em 1em;
  line-height: 1.02;
}

.copyable:hover {
  color: #fff;
  cursor: pointer;
}

.copyable::after {
  content: '';
  display: inline-block;
  width: .5em;
  height: .5em;
  margin-left: .2em;
  background: url('/img/copy.svg') center / contain;
}

.tooltip {
  position: fixed;
  background-color: #000;
  padding: .2em;
  transform: rotate(-9deg) translate(-50%, -150%);
  animation: floatUp 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
@keyframes floatUp {
  from {
    transform: rotate(-9deg) translate(-50%, -150%);
    opacity: 1;
  }
  to {
    transform: rotate(-9deg) translate(-50%, -250%);
    opacity: 0;
  }
}

@media (max-width: 800px) {
  nav ul {
    flex-direction: column;
    margin: 1em 0 1em 8rem;
  }
  nav li {
    text-align: left;
    font-size: 1rem;
  }
  nav li.logo-wrapper {
    position: absolute;
    left: 0;
    top: 0;
  }
  #logo {
    width: 8rem;
  }
  nav li a:not(.logo) {
    transform: none;
    padding: .5em 0em;
  }
  .columns {
    flex-direction: column;
  }
  .columns aside {
    max-width: none;
  }
}