html {
  box-sizing: border-box;
}

*, *:before, *:after {
  box-sizing: inherit;
}

body {
  font-family: sans-serif;
  margin: 0;
  padding: 0;
  font-size: 11pt;
  font-family: 'Nunito', sans-serif;
}

header {
  position: relative;
  font-family: 'Poiret One', cursive;
  text-align: right;
  font-size: 20pt;
  padding: 13px;
}

.link, .link:active {
  color: steelblue;
}

.link:visited {
  color: teal;
}

.link:hover {
  color: orange;
}

#fork {
  position: absolute;
  top: -2em;
  left: -2em;
  height: 4em;
  width: 4em;
  transform: rotate(-45deg);
  background-color: teal;
}

#fork-icon {
  position: relative;
  height: 100%;
  width: 100%;
  display: block;
  color: #fff;
  font-weight: bolder;
  font-size: 2em;
}

#fork-icon > i {
  position: absolute;
  bottom: -.2em;
  right: .7em;
  z-index: 1;
  transform:  rotate(45deg);
  transition: transform .8s;
}

#fork-text {
  z-index: -1;
  position: absolute;
  top: 4.9em;
  left: -50%;
  height: 0;
  width: 10em;
  overflow: hidden;
  background-color: teal;
  color: #fff;
  font-size: 16pt;
  text-align: center;
  text-decoration: none;
  transition: height .4s;
}

#fork:hover > #fork-icon > i {
  transform: rotate(405deg);
}

#fork:hover > #fork-text {
  height: 1.3em;
}

h1 {
  font-family: 'Poiret One', cursive;
  font-size: 40pt;
  text-align: center;
  padding: 0px;
  margin: 0px;
}

h3 {
  font-family: 'Poiret One', cursive;
  font-size: 20pt;
}

p {
  font-size: 13pt;
}

nav {
  width: 100%;
  display: flex;
  flex-flow: column wrap;
  justify-content: space-around;
}

.nav-link {
  display: block;
  text-align: center;
  position: relative;
  margin: 0 0;
  text-decoration: none;
  color: #000;
  white-space: nowrap;
}

.nav-link-wrapper {
  margin-top: 4px;
  margin-left: 6px;
  margin-right: 6px;
  margin-bottom: 7px;
}

.nav-hover {
  height: 5px;
  width: 100%;
  position: absolute;
  bottom: 0;
  z-index: -1;
  transition: height, 600ms, ease-in;
}

.email {
  display: inline-block;
  font-size: 10pt;
}

.current > * {
  height: 100%;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  color: #fff;
  font-weight: bolder;
}

.nav-link:hover > .nav-hover {
  height: 100%;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}

.nav-link:hover {
  color: #fff;
  font-weight: bolder;
}

.red {
  background-color: tomato;
}

.orange {
  background-color: orange;
}

.green {
  background-color: olivedrab;
}

.blue {
  background-color: teal;
}

.purple {
  background-color: steelblue;
}

.about {
  width: 90%;
  max-width: 42em;
  margin: 0px auto;
}

.resume-dimensions {
  min-height: 550px;
  height: 95vh;
  width: 80vw;
}

.resume {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

footer {
  text-align: center;
  font-size: 9pt;
  font-family: 'Poiret One', cursive;
  margin: 9px 0px;
}

#body404 {
  background: url('../images/circuit_tile_texture.gif') repeat;
  font-family: TimesNewRoman, 'Times New Roman', Times, Baskerville, Georgia, serif;
}

#body404 p {
  font-size: 40pt;
}

.marquee {
  position: absolute;
  width: 100vw;
  margin: 0 auto;
  white-space: nowrap;
  overflow: hidden;
  color: #fff;
  font-size: 40pt;
}

.marquee span {
  display: inline-block;
}

.marquee-left span {
  padding-left: 100%;
}

.marquee-right span {
  padding-left: 0;
}

.top-8vh {
  top: 8vh;
}

.top-70vh {
  top: 70vh;
}

.top-85vh {
  top: 85vh;
}

.marquee-right-1s {
  animation: marquee-right 1s linear infinite;
}

.marquee-right-3s {
  animation: marquee-right 3s linear infinite;
}

.marquee-left-2s span {
  animation: marquee-left 2s linear infinite;
}

@keyframes marquee-left {
  100% { transform: translate(-100%, 0); }
}

@keyframes marquee-right {
  100% { transform: translate(100%, 0); }
}

.cell-404-wrapper {
  margin: 20vh auto;
  width: 45%;
  height: 40%;
  border: 2pt solid;
  color: #fff;
  padding: 2px;
}

.cell-404 {
  background: url('../images/shimmering-multistars.gif') repeat;
  width: 100%;
  height: 100%;
  text-align: center;
  font-size: 40pt;
  border: 1pt solid;
}

@media (min-width: 31em) {
  /* width where nav expands */

  nav {
    flex-flow: row nowrap;
    justify-content: flex-end;
  }

  .nav-link {
    margin: 0 .16em;
  }

}

@media (min-width: 33em) {
  /* width where title expands */

  h1 {
    text-align: right;
  }
}
