/*CSS for Portfolio site*/
@import url('https://fonts.googleapis.com/css?family=Spartan&display=swap');

html {
  scroll-behavior: smooth;
}
/*This allows me to call this property to various other elements(see header and nav)
Useful for night mode stuff,etc.*/
:root {
  --color: rgba(85, 214, 170, .85);
}

*, *::before, *::after {
  box-sizing: border-box;
}

::-webkit-scrollbar {
    display: none;
}

body {
  margin: 0;
  background: #222;
  font-family: 'Spartan';
  font-weight: 400;
}

/*nav bar styles*/

header {
  background: var(--color);
  /*background: transparent;*/
  text-align: center;
  position: fixed;
  z-index: 999;
  width: 100%;
}

a, a:link, a:visited, a:hover {
  color: white;
}
a:active {
  color: grey;
}
.logo {
  float: left;
  width: 150px;
}

.nav-toggle {
  position: absolute !important;
  top: -9999px !important;
  left: -9999px !important;
}

.nav-toggle:focus ~ .nav-toggle-label {
  outline: 3px solid rgba(lightblue, .75);
}

.nav-toggle-label {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  display: flex;
  align-items: center;
}
/*Hamburger Button*/
.nav-toggle-label span,
.nav-toggle-label span::before,
.nav-toggle-label span::after {
  display: block;
  background: white;
  height: 2px;
  width: 2em;
  margin-right: 5px;
  border-radius: 2px;
  position: relative;
}
.nav-toggle-label span::before,
.nav-toggle-label span::after {
  content: '';
  position: absolute;
}

.nav-toggle-label span::before {
  bottom: 10px;
}

.nav-toggle-label span::after {
  top: 10px;
}
nav {
  position: absolute;
  text-align: left;
  top: 100%;
  left: 0;
  background: var(--color);
  width: 100%;
  transform: scale(1,0);
  transform-origin: top;
  transition: transform 400ms ease-in-out;
}

nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
  margin-top: 5px;
}

nav li {
  margin-bottom: 1em;
  margin-left: 1em;
}

nav a {
  color: white;
  text-decoration: none;
  font-size: 1.2rem;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 150ms ease-in-out;
}

nav a:hover {
  color: white;
}
/*clear fix basically clears floats, which would otherwise have a bug when two
float elements are stacked on top of each other, giving the parent a height of 0*/
.group:after {
  content: "";
  display: table;
  clear: both;
}
/*if the checkbox 'nav-toggle' is checked, look for the next instance of 'nav'
and change corresponding attributes*/
.nav-toggle:checked ~ nav {
  transform: scale(1,1);
}
/*Smooths animation so the text doesn't appear squished. Play around with animation
length (1st 250ms) and delay (2nd)*/
.nav-toggle:checked ~ nav a {
  opacity: 1;
  transition: opacity 250ms ease-in-out 250ms;
}
/*Text for Desktop display*/
.herotext {
  position: absolute;
  width: 55%;
  height: 20%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 150%;
  text-align: center;
  color: white;
}

.herotext span{
  font-weight: bold;
  opacity: 0;
  transform: translate(0, -100px);
  animation: animate 2s forwards;
}

.herotext span:nth-of-type(2){
  animation-delay: 0.05s;
}
.herotext span:nth-of-type(3){
  animation-delay: 0.1s;
}
.herotext span:nth-of-type(4){
  animation-delay: 0.15s;
}
.herotext span:nth-of-type(5){
  animation-delay: 0.2s;
}
.herotext span:nth-of-type(6){
  animation-delay: 0.25s;
}
.herotext span:nth-of-type(7){
  animation-delay: 0.3s;
}
.herotext span:nth-of-type(8){
  animation-delay: 0.35;
}
.herotext span:nth-of-type(9){
  animation-delay: 0.4s;
}
.herotext span:nth-of-type(10){
  animation-delay: 0.45s;
}
.herotext span:nth-of-type(11){
  animation-delay: 0.5s;
}
.herotext span:nth-of-type(12){
  animation-delay: 0.55s;
}
.herotext span:nth-of-type(13){
  animation-delay: 0.6s;
}
.herotext span:nth-of-type(14){
  animation-delay: 0.65s;
}
.herotext span:nth-of-type(15){
  animation-delay: 0.7s;
}
.herotext span:nth-of-type(16){
  animation-delay: 0.75s;
}
.herotext span:nth-of-type(17){
  animation-delay: 0.8s;
}
.herotext span:nth-of-type(18){
  animation-delay: 0.85s;
}
.herotext span:nth-of-type(19){
  animation-delay: 0.9s;
}
.herotext span:nth-of-type(20){
  animation-delay: 0.95s;
}
.herotext span:nth-of-type(21){
  animation-delay: 1s;
}
.herotext span:nth-of-type(22){
  animation-delay: 1.05s;
}
.herotext span:nth-of-type(23){
  animation-delay: 1.1s;
}
.herotext span:nth-of-type(24){
  animation-delay: 1.15s;
}
@keyframes animate{
  40%{
    top: 100px;
    transform: translate(50px,0);
    opacity: 0.5;
    color: white;
  }
  80%{
    top: 0;
    transform: translate(0);
    opacity: 1;
  }
  100%{
    top: 0;
    transform: translate(0);
    opacity: 1;
  }
}
/*Bottom div with directions to scroll*/
#bottomdiv {
  position: absolute;
  transform: translate(-50%, -50%);
  bottom: 0;
  left: 50%;
  font-size: 80%;
  color: white;
}
#topjump {
  position: fixed;
  right: 3%;
  width: 30px;
  height: 30px;
  bottom: 1%;
  border-radius: 5px;
  background-color: white;
  z-index: 1;
}
#arrow {
  width:100%;
  height: 100%;
}
/*Projects*/
.content {
  background-color: #333;
  position:relative;
  overflow: hidden;
  /*height: 200vh;
  background-blend-mode: multiply;
  background-size: cover;
  display: grid;*/
}
.projecttitle {
  position: absolute;
  left: 2%;
  top: 2%;
  color: white;
  z-index: 3;
}
.box {
  position: relative;
  height: 100%;
  border: solid 1px black;
  overflow: hidden;
}
/*All the information boxes are here*/
.textbox {
  display: grid;
  align-items: center;
  color: white;
  /*grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));*/
  grid-gap: 1rem;
  position: absolute;
  height: 80%;
  width: 80%;
  /*border: solid 1px black;*/
  left: 10%;
  top: 15%;
  /*background-color: white;*/
  z-index: 1;
}
.githublogo {
  left:50%;
  top:50%;
  height:50px;
  width:50px;
  position:absolute;
  transform: translate(-50%, -50%);
}
.hubover {
  position: absolute;
  top: 50%;
  left: 50%;
  height: 50px;
  width: 50px;
  transform: translate(-50%, -50%);
  border-radius: 20px;
  opacity: 0;
  transition: .5s ease;
  background-color: rgba(0,0,0,0.5);
}
.hubtext, .weblink {
  position: absolute;
  font-size: 8px;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  text-align: center;
}
.pictoverlay {
  position: absolute;
  top: 40%;
  left: 32%;
  height: 150px;
  width: 150px;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: .5s ease;
  background-color: rgba(255,255,255,0);
}
.weblink {
  font-size: 14px !important;
  color: black;
}
.gitdiv {
  position: relative;
  align-items: center;
  grid-area: github;
  height: 100%;
  width: 100%;
}
.gitdiv:hover .hubover {
  opacity: 0.9;
}
.responsive {
  max-width: 100%;
  max-height: 120%;
  min-height: 80%;
}
.gap {
  height: 8%;
}
/*Projects */
#parksbox {
  display: grid;
  grid-template-columns: repeat(1, minmax(200px, 1fr));
  grid-gap: 1rem;
  position: absolute;
  height: 80%;
  width: 80%;
  left: 10%;
  top: 15%;
  color: white;
}
#mappic {
  width: 50%;
  /*height: auto;*/
  max-height: 601px;
  max-width: 1067px;
  border: solid 5px white;
  border-radius: 15px;
}
#phonebox,#crystbox,#pokebox {
  grid-template-columns: repeat(3,minmax(100px,1fr));
  grid-template-rows: repeat(4,minmax(100px,25%));
}
#phonebox {
  grid-template-areas:
    "text text text"
    "vid vid vid"
    "vid vid vid"
    "role role github";
}
#crystbox {
  grid-template-areas:
    "text text text"
    "vid vid pic"
    "vid vid ."
    "role role github";
}
#pokebox {
  grid-template-areas:
    "text text text"
    "pic pic pic"
    "pic pic pic"
    "role role github";
}
#mystbox {
  grid-template-areas:
    "text text text"
    ". . ."
    ". . ."
    "role role github";
}
#p3pic {
  position: relative;
  align-items: center;
  grid-area: pic;
}
#p3pic:hover .pictoverlay {
  opacity: 0.9;
}
#p4pic, #p2pic {
  grid-area: pic;
  height:100%;
}
#p2pic2 {
  grid-area: pic2;
  height:100%;
}
#p5text,#p4text,#p3text,#p2text {
  grid-area: text;
}
#p5vid,#p4vid {
  grid-area: vid;
  height:100%;
  width: 100%;
}
#role5,#role4,#role3 {
  grid-area: role;
}
/*Backgrounds*/
.projectbg {
  width: 100%;
  height: 100%;
}
#eagle,#myst,#poke,#crystal,#phone {
  transition: all 200ms ease-in;
}
#project3 {
  background-color: #21563a;
}
#poke {
  width: 1728px;
  height: 972px;
}
#phone {
  width: 1920px;
  height: 1029px;
}
.displayimg {
  border: solid 5px white;
  border-radius: 15px;
}
.js-eagle-animate {
  opacity: 0.4;
}
/*About*/
#about {
  height: fit-content;
}
#aboutpic {
  width: 100%;
  height: auto;
}
#aboutbox {
  display: grid;
  grid-template-columns: repeat(2,minmax(100px,1fr));
  grid-gap: 1rem;
  border: none !important;
}
#abouttext {
  margin-left: 10%;
  margin-top: 30%;
  color: white;
}
/*Contact*/
#contact {
  background-color: black;
}
#contacttext {
  display: grid;
  align-items: center:
  grid-template-columns: repeat(auto-fill,minmax(100px,1fr));
  grid-gap: 1rem;
  color: white;
  text-align: center;
}
/*Change 800px to appropriate number*/
@media screen and (min-width: 885px) {
  .nav-toggle-label {
    display: none;
  }

  header {
    display: grid;
    grid-template-columns: 1fr auto minmax(600px, 3fr) 1fr;
  }

  .logo {
    grid-column: 2 / 3;
  }

  nav {
    all: unset;
    /*removes all attributes of nav in mobile version (see above)
    DOES NOT WORK FOR IE OR EDGE
    position: relative;
    text-align: left;
    transition: none;
    transform: scale(1,1);
    background: none;
    top: initial;
    left: initial;*/
    grid-column: 3 / 4;
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }

  nav li {
    margin-left: 3em;
    margin-bottom: 0;
  }

  nav ul {
    display: flex;
  }

  nav a {
    opacity: 1;
    position: relative;
  }

  nav a::before {
    content: '';
    display: block;
    height: 5px;
    background: white;
    position: absolute;
    top: -0.5em;
    left: 0;
    right: 0;
    transform: scale(0,1);
    transform-origin: right;
    transition: transform ease-in-out 250ms;
  }

  nav a:hover::before {
    transform: scale(1,1);
  }

}
@media (max-width: 1200px) {
  #herovid {
    height: 100%;
  }
}
@media (max-width: 885px){
  #herovid {
    display: none;
  }
  .herotext {
    display: none;
  }
  #topjump {
    display: none;
  }
  #parksbox {
    grid-template-columns: repeat(1, minmax(200px, 1fr));
  }
  #aboutbox {
    grid-template-columns: repeat(1,minmax(100px,1fr));
  }
  #abouttext {
    margin-top: 0;
  }
}
@media (max-width: 640px){
  .textbox {
    height: 80%;
    width: 90%;
    /*border: solid 1px black;*/
    left: 5%;
    top: 15%;
  }
  .projecttitle {
    top: 0;
  }
  #crystbox {
    grid-template-areas:
      "text text text"
      "vid vid vid"
      "vid vid vid"
      "role role github";
  }
}
@media (min-width: 1200px){
  #p3pic {
    left: 20%;
  }
}
@media (max-height: 540px){

  #phonebox,#pokebox {
    grid-template-columns: repeat(3,minmax(100px,1fr));
    grid-template-rows: repeat(2,minmax(100px,25%));

  }
  #phonebox {
    grid-template-areas:
      "text text text"
      "role vid github";
  }
  #pokebox {
    grid-template-areas:
      "text text text"
      "role role github";
  }
}
