@font-face {
  font-family: "Xolonium";
  font-weight: normal;
  src: url("Xolonium-Regular.woff2") format("woff2"),
       url("Xolonium-Regular.woff") format("woff"),
       url("Xolonium-Regular.otf") format("opentype");
}
@font-face {
  font-family: "Xolonium";
  font-weight: bold;
  src: url("Xolonium-Bold.woff2") format("woff2"),
       url("Xolonium-Bold.woff") format("woff"),
       url("Xolonium-Bold.otf") format("opentype");
}
@font-face {
  font-family: "Video Glau";
  font-weight: normal;
  src: url("VideoGlau.ttf") format("truetype");
}

* {
   margin: 0rem;
   padding: 0rem;
}

html {
  font-size: 1.25rem;
  font-size: min(1.25rem, max(1rem, 2.5vw));
}
body {
  font-family: "Xolonium", sans-serif;
  text-underline-offset: 0.1em;
  color: #AF5;
  background-color: #000;
  background-image: url("background.png"),
                    linear-gradient(to top, #000057, #000000);
  background-size: 1280px 272px, 256px 272px;
  background-attachment: fixed, fixed;
  background-repeat: repeat-x, repeat-x;
  text-shadow: 0.1rem 0.1rem 0rem #000;
  max-width: 50rem;
  margin: 1rem auto;
}
@media (forced-colors: active) {
  body { background: none; }
}

section, [role="tabpanel"] {
  background-color: rgba(0,87,0,0.125);
  margin: 0.5rem 0rem;
  padding: 0rem 1rem;
  border: 0.1rem solid rgba(0,87,0,0.25);
  border-radius: 0.25rem;
}
[role="tabpanel"] {
  margin: 0rem;
}

p {
  margin: 0.5rem 0rem;
}
h1 {
  font-size: 3rem;
  margin: 0.75rem 0rem 0.5rem;
}
h2 {
  font-size: 2rem;
  border-bottom: 0.1rem solid;
  margin: 0.75rem -0.5rem 0.5rem;
  padding: 0rem 0.5rem;
  background-image: linear-gradient(to right,
                    rgba(0,87,0,0.5), rgba(0,87,0,0));
}
h3 {
  font-size: 1.5rem;
  font-variant: small-caps;
  margin: 0.75rem 0rem 0.5rem;
}

ul, ol {
  margin: 0.75rem 0rem;
}
li {
  margin: 0.25rem 0rem;
  margin-left: 1.5rem;
}
ul li {
  list-style: square;
}

strong {
  color: #FB7;
}

img {
  max-width: 100%;
  height: auto;
  overflow: clip;
}

video {
  max-width: 100%;
  height: auto;
  border-radius: 0.5rem;
  outline: 1px solid #5A0;
  overflow: clip;
}
video:focus {
  outline: 0.25rem solid #AF5;
}

audio {
  max-width: 100%;
  border-radius: 0.5rem;
  overflow: clip;
}

a {
  font-weight: bold;
  text-decoration: none;
}
a[href] {
  font-weight: inherit;
  text-decoration: underline;
  color: #FFF;
  margin: 0em -0.125em;
  padding: 0em 0.125em;
  border-radius: 0.125em;
}
a[href]:hover,
a[href]:focus {
  color: #000;
  background-color: #FFF;
  text-shadow: none;
  outline: 0.1rem solid transparent;
}

a.imglink {
  outline: none;
}
a.imglink:hover img,
a.imglink:focus img {
  outline: 0.25rem solid #AF5;
}

code {
  font-family: "Video Glau", monospace, monospace;
  font-size: 1em;
}

kbd {
  font-family: "Xolonium", sans-serif;
  font-size: 0.9em;
  background-color: #343434;
  background-image: linear-gradient(to bottom, #000000, #575757);
  text-shadow: 0em -0.075em #000000,
               0em 0.075em #575757;
  padding: 0em 0.125em;
  border-top: 0.1em solid #575757;
  border-left: 0.2em solid #575757;
  border-bottom: 0.2em solid #000000;
  border-right: 0.2em solid #000000;
}
kbd.dpad {
  display: inline-block;
  text-align: center;
  background: none;
  border: none;
  position: relative;
  width: 1em;
}
kbd.dpad::before,
kbd.dpad::after {
  content: " ";
  display: block;
  position: absolute;
  background-color: #343434;
  border-top: 0.1em solid #575757;
  border-left: 0.1em solid #575757;
  border-bottom: 0.1em solid #000000;
  border-right: 0.1em solid #000000;
  box-sizing: border-box;
}
kbd.dpad::before {
  z-index: -1;
  top: 0%;
  left: 30%;
  width: 40%;
  height: 100%;
  clip-path: polygon(0% 0%, 0% 30%, 50% 50%, 0% 70%, 0% 100%,
             100% 100%, 100% 70%, 50% 50%, 100% 30%, 100% 0%);
}
kbd.dpad::after {
  z-index: -2;
  top: 30%;
  left: 0%;
  width: 100%;
  height: 40%;
}
kbd.abc,
kbd.xyz {
  border-left: none;
  border-right: none;
  border-bottom-width: 0.1em;
  border-radius: 100%;
  margin: -0.125em 0em;
  padding: 0.125em 0.25em;
  min-width: 2em;
}
kbd.xyz {
  color: #000000;
  background-color: #ACACCE;
  background-image: linear-gradient(to bottom, #9090AC, #CECEFF);
  border-top-color: #CECEFF;
  border-bottom-color: #9090AC;
  text-shadow: 0em -0.075em #9090AC,
               0em 0.075em #CECEFF;
}

.navbar {
  display: block;
  text-align: right;
}
.navbar li {
  display: inline;
  margin: 0em 0.25em;
}
main .navbar {
  text-align: center;
}
main .navbar a {
  display: inline-block;
  position: relative;
  background-color: rgba(0,116,0,0.5);
  margin: 0.25em 0em;
  padding: 0.25em 0.5em 0.25em 1.5em;
  outline: 1px #007400 solid;
  border-radius: 0.75em;
}
main .navbar a::before {
  content: " ";
  display: block;
  position: absolute;
  top: 0.375em;
  left: 0.5em;
  width: 0.75em;
  height: 1em;
  background-color: #AF5;
  clip-path: polygon(0% 10%, 0% 40%, 50% 90%, 100% 40%, 0% 40%, 0% 25%,
                     100% 25%, 100% 10%);
}
main .navbar a:focus,
main .navbar a:hover {
  outline: 0.2em #FFF solid;
}
main .navbar a:focus::before,
main .navbar a:hover::before {
  background-color: #000;
}

@media (min-width: 30rem) {
  .two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    column-gap: 2rem;
  }
}

.bigtext {
  font-size: 1.25rem;
}

.sidepic-right img {
  float: right;
  max-width: 50%;
}

a.download {
  display: grid;
  grid-template-columns: 64px 1fr;
  grid-template-rows: 1fr;
  column-gap: 0.5rem;
  text-decoration: none;
  background-color: #349000;
  background-image: linear-gradient(to bottom, #57AC00, #007400);
  padding: 0.5rem;
  outline: 1px solid transparent;
  border-bottom: 0.25rem solid #003400;
  border-radius: 0.5rem;
}
a.download:hover,
a.download:focus {
  color: #FFF;
  text-shadow: unset;
  outline: 0.25rem solid #AF5;
}
a.download:active {
  border-bottom: none;
  border-top: 0.25rem solid #003400;
}
a.download p {
  margin: 0rem;
}
a.download b {
  font-size: 1.5rem;
}

.cast {
  display: grid;
  position: relative;
  grid-template-areas:
    "tab1 info" "tab2 info" "tab3 info" "tab4 info"
    "tab5 info" "tab6 info" "tab7 info" "tab8 info"
    ". info";
  grid-template-columns: 10rem 1fr;
  grid-template-rows: auto;
  grid-column-gap: 0rem;
  grid-row-gap: 0.125rem;
}
.cast input[type="radio"] {
  appearance: none;
  position: absolute;
  width: 0rem;
  height: 0rem;
}
.cast label {
  z-index: 200;
}
.cast h3 {
  font-size: 1.25rem;
  text-align: right;
  margin: 0rem;
  margin-left: 0.5rem;
  padding-right: 0.5rem;
  background-color: rgb(0,29,0);
  background-color: rgba(0,116,0,0.25);
  border-radius: 0.5rem 0rem 0rem 0.5rem;
}
.cast input:focus {
  outline: none;
}
.cast input:checked+label h3 {
  margin-left: 0rem;
  background-color: #005700;
  background-image: linear-gradient(to right, #007400, #003400);
  outline: 0.1rem solid transparent;
}
.cast h3:hover,
.cast input:focus+label h3 {
  z-index: 300;
  outline: 0.25rem solid #AF5;
}
.cast [role="tabpanel"] {
  display: block;
  opacity: 0%;
  pointer-events: none;
  z-index: 100;
}
.cast .cast-tab1 { grid-area: tab1; }
.cast .cast-tab2 { grid-area: tab2; }
.cast .cast-tab3 { grid-area: tab3; }
.cast .cast-tab4 { grid-area: tab4; }
.cast .cast-tab5 { grid-area: tab5; }
.cast .cast-tab6 { grid-area: tab6; }
.cast .cast-tab7 { grid-area: tab7; }
.cast .cast-tab8 { grid-area: tab8; }
.cast .cast-info { grid-area: info; }
.cast #cast-tab1:checked ~ #cast-info1,
.cast #cast-tab2:checked ~ #cast-info2,
.cast #cast-tab3:checked ~ #cast-info3,
.cast #cast-tab4:checked ~ #cast-info4,
.cast #cast-tab5:checked ~ #cast-info5,
.cast #cast-tab6:checked ~ #cast-info6,
.cast #cast-tab7:checked ~ #cast-info7,
.cast #cast-tab8:checked ~ #cast-info8 {
  opacity: 100%;
  pointer-events: inherit;
}
@media (max-width: 30rem) {
  .cast {
    grid-template-areas:
      "tab1 tab2 tab3 tab4"
      "tab5 tab6 tab7 tab8"
      "info info info info";
    grid-template-columns: 24% 24% 24% 24%;
    grid-template-rows: auto;
    grid-row-gap: 0.375rem;
  }
  .cast h3 {
    text-align: left;
    overflow: hidden;
    margin: 0rem;
    padding: 0.375rem 0.25rem;
    mask-image: linear-gradient(to left,
      rgba(255,255,255,0.0) 0%,
      rgba(255,255,255,0.0) 0.25rem,
      rgba(255,255,255,1.0) 20%,
      rgba(255,255,255,1.0) 100%);
    mask-position: -0.25rem -0.25rem;
    mask-size: calc(100% + 0.5rem) calc(100% + 0.5rem);
    mask-clip: no-clip;
  }
}

.portrait {
  float: right;
  margin: 0.75rem 0.5rem;
}
.portrait img {
  max-width: 30vw;
  border: 0.1rem solid;
  border-radius: 0.5rem;
}

.screenshots {
  display: block;
  text-align: center;
}
.screenshots li {
  display: inline-block;
  margin: 0.25rem 0.5rem;
  max-width: 40%;
}
.screenshots img {
  border-radius: 0.25rem;
  transition-property: transform;
  transition-duration: 0.1s;
  transition-timing-function: ease-in-out;
}
.screenshots a:hover img,
.screenshots a:focus img {
  transform: scale(110%);
}
@media (prefers-reduced-motion: reduce) {
  .screenshots img { transition-duration: 0s; }
}

.feature {
  display: grid;
  grid-template-areas: "image header" "image text";
  grid-template-columns: 20% 1fr;
  grid-template-rows: auto;
  grid-column-gap: 1rem;
  padding: 0.5rem 1rem;
}
.feature:nth-child(even) {
  margin-right: 10%;
}
.feature:nth-child(odd) {
  margin-left: 10%;
  grid-template-areas: "header image" "text image";
  grid-template-columns: 1fr 20%;
}
.feature img {
  grid-area: image;
}
.feature h2 {
  grid-area: header;
  font-size: 1.5rem;
  background-color: none;
  background-image: none;
  border: none;
  margin: 0rem;
  padding: 0rem;
}
.feature p {
  grid-area: text;
  margin: 0rem;
}
.feature:nth-child(odd) h2,
.feature:nth-child(odd) p {
  text-align: right;
}

footer {
  font-size: 0.75rem;
  margin-top: 0.75rem;
  border-top: 0.1rem solid #007400;
}
