@import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&display=swap');

/* Variables */
:root {
  
  /* Color Pallete */
  --black: #000;
  --green: #3adb5d;
  --red: #ff1f1f;
  --soft-green: #031607;
  --white: #f8f8f8;
}

body {
  font-family: "Source Code Pro", monospace;
  font-size: 16px;
  background: var(--black);
  color: var(--green);
  margin: 0;
  overflow: hidden;
}

/* Text Styles */
#title {
  margin: 0; 
}

h2 {
  font-size: 2.4em;
  font-weight: 300;
  height: auto;
  margin: 0;
}

h6 {
  text-transform: uppercase;
  font-size: .7em;
  margin: 0;
}

  h6.author {
    margin-top: -1.2rem;
  }

button {
  width: 100%;
  height: auto;

  white-space: nowrap;

  background: var(--soft-green);
  border: var(--green) dashed 2px;
  color: var(--green);

  font-family: "Source Code Pro", monospace;
  font-weight: 600;
  font-size: 1.2em;

  border-radius: 8px;
  text-align: left;
  padding-left: 12px;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-right: 48px;
}
  .animated-button {
    opacity: 0;
    transform: rotate3d(0.8, 1, 0, 32deg);
    -webkit-transform: rotate3d(0.8, 1, 0, 32deg);
    transition: transform 400ms, opacity 250ms, -webkit-transform 400ms;
    -webkit-transition: transform 400ms, opacity 250ms, -webkit-transform 400ms;
  }

    .animated-button.active {
      opacity: 1;
      transform: rotate3d(0,0,0,0);
      -webkit-transform: rotate3d(0,0,0,0);
    }

  button:hover {
    padding-right: 12px;
    padding-left: 48px;
    cursor: pointer;
  }

/* Containers */
#board {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 16px;

  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
}

.mobile {
  display: none;
}

#button-box {
  max-width: 256px;
  margin-top: 8px;

  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 8px;
  flex-direction: column;
}

aside {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  gap: 1.2rem;

  transform: rotate3d(.25,1,0,15deg);
  -webkit-transform: rotate3d(.25,1,0,15deg);
}

#info-box {
  border-left: var(--green) 2px solid;
  height: auto;
  padding: 4px 12px;
}

#shape-container {
  width: 600px;
  height: 400px;
  background: var(--soft-green);
  border: var(--green) 2px solid;
  border-radius: 8px;

  transform: rotate3d(-.25,1,0,15deg);
  -webkit-transform: rotate3d(-.25,1,0,15deg);
  box-shadow: 8px 8px 16px 0px #0f2915;
}

#shape {
  color: var(--white);
  width: 100px;
  height: 100px;
  position: relative;
  top: 150px;
  left: 150px;
  border: var(--white) solid 2px;
  border-radius: 8px;
  display: block;
  line-height: 1.2em;
  font-size: 1em;
  padding: 4px;
  box-shadow: 0 0 24px 4px #ffffff16;
}

p {
  margin: 5px;
}

/* Effects */
.line-bg-effect {
  background: url(./images/line-effect.png);
  background-size: 24px;
  
  animation: 500ms infinite linear moving-texture;
  mix-blend-mode: color;

  pointer-events: none;

  position: absolute;
  width: 100vw;
  height: 100vh;
  left: 0;
  top: 0;
  z-index: 4;
}

  .line-bg-effect.background {
    mix-blend-mode: normal !important;
    z-index: 0 !important;
    opacity: 5%;
  }

  @keyframes moving-texture {
    0% {
      background-position-y: 0;
    }
    100% {
      background-position-y: 24px;
    }
  }

/* Mobile Configuration */
@media only screen and (max-width: 870px) {

  h1, h6 {
    display: none;
  }

    h6.author {
      margin-bottom: 1.2rem;
    }

  .mobile, .mobile #info-box, .mobile h1, .mobile h6 {
    display: block !important;
  }

  #info-box {
    display: none;
  }

  #board {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column-reverse;

    gap: 12px;
    width: auto;
    height: calc(100vh - 64px) !important;
    max-height: none;
    
    overflow: hidden;

    padding: 32px;

    position: absolute;
    top: 0;
    left: 50%;
    margin: 0;
    
    transform: translate(-50%,0);
    -webkit-transform: translate(-50%,0);
  }

  #button-box {
    width: 100%;
    max-width: 100vw;

    flex-direction: row;
    /* overflow-x: scroll; */
    flex-wrap: wrap;
  }

  #shape-container {
    width: calc(100vw - 64px);
    height: -webkit-fill-available;
    max-height: 400px;
    max-width: 600px;
    position: relative;
    top: 0;
    
    transform: rotate3d(0,0,0,0);
    -webkit-transform: rotate3d(0,0,0,0);
  }

  button {
    /* height: 100%; */
    width: auto;
  }

  aside {
    width: 100%;
    transform: rotate3d(0,0,0,0);
    -webkit-transform: rotate3d(0,0,0,0);
  }
  
}