canvas {
  height: 500px;
  object-fit: contain;
  border: 1px solid black;
  image-rendering: pixelated;
  background-color: white;
}

* {
  font-family: monospace;
}
body, html {
  background-color: #080808;
  scroll-behavior: smooth;
  height: 100%;
  padding: 0;
  margin: 0;
}
@media (prefers-reduced-motion) {
  body, html {
    scroll-behavior: auto;
  }
}

header {
  padding: 0;
  margin: 0;
  min-height: 80vh;
  padding-bottom: 20vh;
  position: relative;
  top: 0;
  left: 0;
}
header #down {
  height: 20vh;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;

  text-align: center;
  font-size: 15vh;

  color: #eee!important;
  text-decoration: none!important;

  transition: bottom 0.5s;
}
header #down:hover {
  bottom: 5vh;
  color: #fff;
}

::-webkit-selection {
  background: linear-gradient(90deg, hsl(0deg, 50%, 75%), hsl(120deg, 50%, 75%), hsl(240deg, 50%, 75%), hsl(360deg, 50%, 75%));
  color: white;
}
::selection {
  background: hsl(240deg, 50%, 75%);
  color: #111;
}
p {
  text-align: center;
  color: #eee;
  padding: 5px;
  margin: 10px;

  width: calc(100% - 30px);
  max-width: 750px;
  margin: auto;

  line-height: 150%;
}
code {
  padding: 2px;
  border-radius: 2px;
  background-color: #222;
}
b:nth-of-type(even) {
  color: hsl(120deg, 50%, 75%);
}
b:nth-of-type(odd) {
  color: hsl(240deg, 50%, 75%);
}
a {
  background: linear-gradient(90deg, hsl(0deg, 50%, 75%), hsl(120deg, 50%, 75%), hsl(240deg, 50%, 75%), hsl(360deg, 50%, 75%));
  background-color: hsl(0deg, 50%, 75%);

  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;

  font-weight: bold;
}
a:hover {
  background-clip: unset;
  background: unset;
  color: hsl(0deg, 50%, 75%);
}
h1, h2, h3, h4, h5, h6 {
  text-align: center;
  text-decoration: underline;
  font-family: "Syne Mono";

  background: linear-gradient(135deg, hsl(0deg, 50%, 75%), hsl(120deg, 50%, 75%), hsl(240deg, 50%, 75%), hsl(360deg, 50%, 75%));
  background-color: #eee;

  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
button, input:not(input[type=file]), ::-webkit-file-upload-button {
  font-size: 20pt;
  background-color: #222;
  color: #ddd;
  border: 1px dashed #aaa;
  border-radius: 0;
  font-family: "Syne Mono";
  font-variant: small-caps;

  background: linear-gradient(90deg, #222 0%, #222 50%, hsl(0deg, 50%, 50%) 50%, hsl(120deg, 50%, 50%), hsl(240deg, 50%, 50%), hsl(360deg, 50%, 50%) 100%);
  background-size: 200% 100%;
  background-position: 0% 0%;
  transition: all 0.5s;

  background-clip: padding-box;

  cursor: pointer;
}
button:hover, button:focus, input:not(input[type=file]):focus, input::-webkit-file-upload-button:hover {
  background-color: #444;
  color: #fff;
  border-radius: 2px;

  background-position: 100% 0%;
}

#maze {
  transition: opacity 0.5s;
  background: radial-gradient(closest-side, hsl(120deg, 50%, 50%), hsl(240deg, 50%, 50%), hsl(360deg, 50%, 50%), transparent);
}

@media (prefers-color-scheme: light) {
  html {
    filter: invert(1);
  }
  canvas {
    filter: invert(1); /* cancel out filter */
  }
}
