@import url("https://cdn.jsdelivr.net/npm/@xz/fonts@1/serve/cascadia-code.min.css");

:root{
  --highlight-text-color: #0061ab;
  --bg-color: #f0ffff;
  --type-speed: 2.5s;
}

body {
  font-family: 'Cascadia Code', sans-serif;
  color: #1f1f1f;
  background-color: var(--bg-color);
}

.mobile-landing-top {
  display: none;
  width: 100vw;
}

.mobile-landing-top .mobile-landing-img {
  width: 100vw;
  height: 100%;
}

.main-nav {
  position: absolute;
  opacity: 1;
}

.onLoad{
  opacity: 0;
  transform: translateY(3rem);
  animation: fadeInUp 2s ease calc(var(--type-speed) + 2s) forwards;
}

.onLoadImg{
  opacity: 0;
  transform: translateY(3rem);
  animation: fadeInUp 2s ease calc(var(--type-speed) + 2s) forwards;
}

.navbar {
  text-transform: uppercase;
  font-size: 30px;
}

.navigation {
  animation: fadeOut .5s ease,
    fadeBackIn .5s ease .5s forwards;
}

.landing {
  width: 100%;
  height: 100vh;
}

.landing img {
  width: 100%;
  height: 100vh;
  object-fit: scale-down;
  object-position: bottom right;
  float: right;
}


.landing .name{
  color: var(--highlight-text-color);
  font-size: 100px;
  margin-bottom: .5em;
}

h1{
  position: relative;
  width: max-content;
}

h1::before, h1::after{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

h1::before{
  background: var(--bg-color);
  animation: typewriter var(--type-speed) steps(12) 1s forwards;
}

h1::after{
  width: .125em;
  background: var(--highlight-text-color);
  animation: 
    typewriter var(--type-speed) steps(12) 1s forwards,
    blinkCursor 750ms steps(12) infinite;
}

@keyframes typewriter {
  to {left: 100%}
}

@keyframes blinkCursor {
  to {background: transparent;}
}

@keyframes fadeInUp {
  to {opacity: 1;
      transform: translateY(0);}
}

@keyframes fadeOut {
  
  from {
    opacity: 1;
    transform: translateY(0);
  }
  
  to {opacity: 0;
      transform: translateY(-3rem);}
}

@keyframes fadeBackIn {
  
  from {
    opacity: 0;
    transform: translateY(-3rem);
  }
  
  to {opacity: 1;
      transform: translateY(0);}
}

.landing .subtext {
  margin-bottom: 2em;
}

.landing .subtext h2{
  font-size: 50px;
  text-transform: uppercase;
}

.hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: left;
  width: 50%;
}

.social {
  width: 50%;
  display: flex;
  justify-content: flex-start;
  flex-wrap: nowrap;  
}

.social img {
  width: 4.5em;
  height: 4.5em;
  filter: invert(59%) sepia(14%) saturate(349%) hue-rotate(201deg) brightness(91%) contrast(82%);
}

.social img:hover{
  filter: invert(18%) sepia(74%) saturate(4566%) hue-rotate(194deg) brightness(87%);
  transition-delay: 1s;
  transition: ease-in 1s;
}

.landing .left-landing {
  width: 50%;
  float: left;
  padding-left: 2em;
  padding-top: 10em;
}

.landing .right-landing {
  width: 50%;
  float: right;
}

.resume {
  font-size: 30px;
  display: none;
}

.resume .certs {
  width: 50%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; 
  padding-bottom: 2em;
}

.resume .certs img {
  width: 4.5em;
  height: 4.5em;
}

.form {
  display: none;
  width: 100%;

}

.form input {
  margin-top: 1em;
  margin-bottom: 1em;
  width: 100%;
  
}

.form textarea {
  margin-top: 1em;
  margin-bottom: 1em;
  width: 100%;
  
}

.form .message  {
  height: 200px;
  text-align: left;
  vertical-align: text-top;
  resize: none;
}

.form button {
  cursor: pointer;
  margin-top: 1em;
  margin-bottom: 1em;
  background-color: var(--highlight-text-color);
  color: var(--bg-color);
}

.form button:hover{
  color: lightskyblue;
  transition-delay: .25s;
  transition: ease-in .25s;
}



@media all and (max-width: 991px) {
  .main-nav {
    position: static;
  }

  .landing .name{
    font-size: 5em;
  }

  .landing .subtext{
    font-size: 4em;
  }

  .landing {
    width: 100%;
    height: 100%;
  }

  .mobile-landing-top {
    display: inline;
  }

  .social img {
    width: 3.75em;
    height: 3.75em;
  }

  .social {
    padding-bottom: 3em;
  }

  .landing .right-landing {
    float: none;
    clear: none;
    display: none;
  }

  .landing .left-landing {
    float: none;
    clear: none;
    width: 100%;
  }

  .form {
    width: 75%;
  }

  .resume p {
    width: 90%;
  }
}

@media all and (max-width: 480px) {
  .landing .name{
    font-size: 2em;
  }

  .landing .subtext h2{
    font-size: 1.5rem;
  }

  .landing .subtext h2{
    margin-bottom: 1.5em;
  }
  
  .social img {
    width: 3em;
    height: 3em;
  }
}

@media all and (max-width: 375px) {
  .landing .subtext h2{
    font-size: 1.25rem;
  }
}