* {
  box-sizing: border-box;
}

html {
  height: 100%;
}

body {
  font-family: Lato;
  font-size: 18px;
  background-color: #faf9f9;
  color: #222;
  text-align: center;
  line-height: 1.5;
  height: 100%;
}

main {
  height: 100%;
}

nav {
  position: absolute;
  top: 0;
  left: 0;
  right: 10px;
  z-index: 10;
}

header {
  padding-left: 25px;
  display: flex;
  align-items: center;
  height: 100%;
  margin: 0 auto;
  max-width: 400px;
}

.down {
  display: flex;
}

.icon {
  margin-bottom: 10px;
}

.nav-bar {
  list-style-type: none;
  text-align: right;
  margin-right: 7px;
}

li {
  font-weight: bold;
}

a {
  text-decoration: none;
  text-align: right;
}

.description {
  padding: 0px 30px 0px 30px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.screenshot {
  width: 75%;
  margin-top: 15px;
}

.tech-list {
  list-style-type: none;
  text-align: center;
}

.profile-img {
  box-shadow: 5px 5px grey;
  margin-bottom: 30px;
}

.intro {
  text-align: left;
  font-size: 45px;
  font-family: Playfair Display;
}

h2 {
  font-size: 45px;
  font-family: Playfair Display;
}

.contact-info {
  color: #222;
  margin: 0px 15px 0px 0px;
}

h3 {
  font-size: 30px;
}

.button-links { 
  border-radius: none;
  border: 1px solid #dddedf;
  color:#333;
  padding: .5em;
  text-decoration: none;
  width: 150px;
  padding: 12px;
  margin: 20px 5px 0px 5px;
  background-color: #faf9f9;
  transition: all 0.3s ease 0s;
  text-align: center;
  color: #222;
  font-family: Lato;
  font-size: 14px;
}

.button-links:hover,
.button-links:focus {
  background: #333;
  color: #faf9f9;
  cursor: pointer;
  outline: none;
}

.nav-link {
  color: #222;
}

.contact {
  margin: 0 auto;
  padding: 0px 5px 0px 25px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-align: center;
  align-items: center;
  height: 100%;
}

.contact-items {
  text-align: left;
}

.contact-elements {
  text-align: left;
  margin-top: 45px;
}

.app-title {
  display: inline-block;
  position: relative;
}

.app-title:before,
.app-title:after {
  background: #dddedf;
  content: "";
  display: block;
  height: 2px;
  position: absolute;
    top: 50%;
    width: 100vw;
}
.app-title:before {
  right: 110%;
}
.app-title:after {
  left: 110%;
}
.lines {
  overflow: hidden;
  text-align: center;
}

li > .nav-link,
.icon > .contact-info {
  position: relative;
  color: #222;
  text-decoration: none;
}

li > .nav-link:hover,
.icon > .contact-info:hover,
li > .nav-link:focus,
.icon > .contact-info:focus {
  color: #222;
  outline: none;
}

li > .nav-link:before,
.icon > .contact-info:before {
  content: "";
  position: absolute;
  margin-bottom: -3px;
  width: 100%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: #222;
  visibility: visible;
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transition: all 0.3s ease-in-out 0s;
  transition: all 0.3s ease-in-out 0s;
}

li > .nav-link:hover:before,
.icon > .contact-info:hover:before,
li > .nav-link:focus:before,
.icon > .contact-info:focus:before {
  visibility: visible;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}

i {
  margin-right: 2px;
}

.new-page-icon {
  margin-right: 5px;
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
}

[tabindex='-1']:focus {
  outline: none;
}

.fa-arrow-down {
  margin-top: 25px;
  margin-left: 150px;
}

@media only screen and (min-width: 320px) {
  section {
    margin: 18% 0;
  }

  .intro {
    font-size: 36px;
  }

  .language {
    text-align: left;
    margin-bottom: 4px;
  }

  .profile-img {
    width: 260px;
  }

  .bio, .capstone {
    padding-bottom: 100px;
  }
}

@media only screen and (min-width: 374px) {
  .bio, .capstone {
    padding-bottom: 100px;
  }

  .profile-img {
    width: 300px;
  }
}

@media only screen and (max-width: 400px) {
  .nav-item {
    margin-bottom: 8px;
  }

  .capstone {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-align: center;
    align-items: center;
  }
}

@media only screen and (min-width: 401px) {
  li {
    display: inline;
    margin-right: 20px;
  }

  .languages {
    margin-bottom: 45px;
  }

  .bio, .capstone {
    padding-bottom: 200px;
  }
}

@media only screen and (min-width: 540px) {
  .icon {
    display: inline-block;
  }

  .intro {
    font-size: 45px;
  }

  .bio {
    padding-bottom: 245px;
  }

  .profile-img {
    width: 375px;
  }
}

@media only screen and (min-width: 600px) {
  .bio {
    padding-bottom: 260px;
  }
}