* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: monospace;
  color: #a583ea;
  --hex-width: 15vw;
}

html {
  font-size: 16.9px;
}

body {
  background: #e4e7e6;
}

.main {
  display: flex;
  width: 100vw;
  height: 100vh;
}

a {
  cursor: pointer;
}

.downloads {
  width: 30%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.downloads #win-links .link-container,
.downloads #linux-links .link-container,
.downloads #mac-links .link-container {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.downloads #win-links .link-container a,
.downloads #linux-links .link-container a,
.downloads #mac-links .link-container a {
  font-size: 1.2vw;
  line-height: 2vw;
  margin: 7px 0;
}

.demo {
  width: 70%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.demo .size-limiter {
  width: 100%;
  height: 100%;
  max-width: 800px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.demo .demo-header {
  width: 90%;
  display: flex;
  align-items: baseline;
}
.demo .demo-header #title {
  width: -moz-fit-content;
  width: fit-content;
  font-size: 5vw;
}
.demo .demo-header #description {
  margin-left: 1rem;
  font-size: 1.5vw;
}
.demo #demo-content {
  width: 90%;
}
.demo #demo-content #aspect-ratio-preserver {
  width: 100%;
  padding-bottom: 68%;
  position: relative;
}
.demo #demo-content #aspect-ratio-preserver .card {
  width: 100%;
  height: 100%;
  transition: transform 0.6s;
  transform-style: preserve-3d;
  cursor: pointer;
  position: absolute;
}
.demo #demo-content #aspect-ratio-preserver .card.is-flipped {
  transform: rotateX(180deg);
}
.demo #demo-content #aspect-ratio-preserver .card-face {
  position: absolute;
  width: 100%;
  height: 100%;
  text-align: center;
  font-weight: bold;
  backface-visibility: hidden;
  background-color: #a583ea;
}
.demo #demo-content #aspect-ratio-preserver .card-text {
  position: absolute;
  bottom: 5%;
  color: #e4e7e6;
  width: 100%;
  height: -moz-fit-content;
  height: fit-content;
  text-align: center;
  padding: 0;
  font-size: 1.66vw;
}
.demo #demo-content #aspect-ratio-preserver #side1 #side1-img {
  width: 100%;
  height: 100%;
}
.demo #demo-content #aspect-ratio-preserver #side2 {
  transform: rotateX(180deg);
}
.demo #demo-content #aspect-ratio-preserver #side2 #side2-img {
  width: 100%;
  height: 100%;
}

.hex-row {
  display: flex;
  align-items: center;
  justify-content: right;
  margin-bottom: calc(var(--hex-width) * -0.255 - 3.535px + var(--hex-width) * 0.22);
}

@keyframes pulse {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.08);
  }
}
.hex-container {
  width: var(--hex-width);
  height: var(--hex-width);
  display: flex;
  align-items: center;
  justify-content: center;
}

.hex {
  display: block;
  position: relative;
  width: 100%;
  height: 100%; /* width * 0.866 */
  background: #a583ea;
  box-sizing: border-box;
  text-align: center;
  clip-path: polygon(6.7% 25%, 6.7% 75%, 50% 100%, 93.3% 75%, 93.3% 25%, 50% 0%);
  -webkit-clip-path: polygon(6.7% 25%, 6.7% 75%, 50% 100%, 93.3% 75%, 93.3% 25%, 50% 0%);
  -moz-clip-path: polygon(6.7% 25%, 6.7% 75%, 50% 100%, 93.3% 75%, 93.3% 25%, 50% 0%);
}

.hex-center {
  position: absolute;
  background-color: #e4e7e6;
  top: 7px;
  left: 7px;
  width: calc(100% - 7px * 2);
  height: calc(100% - 7px * 2);
  clip-path: polygon(6.7% 25%, 6.7% 75%, 50% 100%, 93.3% 75%, 93.3% 25%, 50% 0%);
  -webkit-clip-path: polygon(6.7% 25%, 6.7% 75%, 50% 100%, 93.3% 75%, 93.3% 25%, 50% 0%);
  -moz-clip-path: polygon(6.7% 25%, 6.7% 75%, 50% 100%, 93.3% 75%, 93.3% 25%, 50% 0%);
}

.hex-content {
  position: absolute;
  margin-top: 25%;
  margin-left: 6.7%;
  width: 86.6%;
  height: 50%;
  max-height: 50%;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  font-size: 1.3vw;
  font-weight: bold;
}

.hex-center:hover {
  background: #c8c6c6;
}

#info-btn {
  position: absolute;
  bottom: 10px;
  right: 10px;
  height: 24px;
  width: 24px;
}
#info-btn svg {
  fill: #a583ea;
}

.hide {
  visibility: hidden;
}

.undisplay {
  display: none;
}

#features {
  position: absolute;
  top: 5px;
  right: 5px;
  text-decoration: none;
}
#features:hover {
  cursor: pointer;
}

@media only screen and (max-width: 768px), only screen and (min-width: 768px) and (max-width: 1024px) {
  * {
    --hex-width: 40vw;
  }
  body {
    height: -moz-fit-content;
    height: fit-content;
    min-height: 100%;
    position: relative;
  }
  .main {
    flex-direction: column;
    height: -moz-fit-content;
    height: fit-content;
    min-height: 100%;
    padding-bottom: 25px;
  }
  .demo {
    margin-top: 8vh;
    width: 100%;
    height: auto;
  }
  .demo .demo-header {
    flex-direction: column;
  }
  .demo .demo-header #title {
    width: -moz-fit-content;
    width: fit-content;
    font-size: 9vw;
  }
  .demo .demo-header #description {
    margin-left: 1rem;
    font-size: 4vw;
    margin: 0;
  }
  .card-text {
    font-size: 3.1vw !important;
  }
  .downloads {
    margin-top: 6vh;
    width: 100%;
    height: auto;
    align-items: center;
  }
  .hex-content {
    font-size: 4.5vw;
  }
  #win-links a,
  #linux-links a {
    font-size: 3vw !important;
    line-height: 6vw !important;
  }
  #info-btn {
    bottom: 5px;
    right: 5px;
    height: 24px;
    width: 24px;
  }
}