* {
  margin: 0;
  padding: 0;
}

html,
body {
  width: 100%;
  height: 100%;
  font-size: 16px;
  overflow-x: hidden;
}

body.home {
  overflow: hidden;
}

main {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100vw;
  margin: 0;
  text-align: center;
}

.home main {
  height: 100%;
}

@media only screen and (min-width: 720px) {
  .portfolio main {
    background-image: linear-gradient(-180deg, #00000000 0%, #00000095 5%);
  }
}

section {
  width: 80%;
  margin: auto;
}

@media only screen and (max-width: 720px) {
  section {
    width: 100%;
  }
}

.project {
  margin-bottom: 20rem;
  text-align: left;
  line-height: 25px;
  display: flex;
  margin-left: -1rem;
  margin-right: -1rem;
  transition: opacity 0.5s ease-out;
  opacity: 0;
}

.project.fade-in {
  opacity: 1;
}

.project.fade-out {
  opacity: 0;
}

@media only screen and (max-width: 720px) {
  .project {
    flex-direction: column;
    margin-bottom: 2rem;
  }
}

.project figure {
  flex: 1 1 55%;
  padding: 1rem;
}

@media only screen and (max-width: 720px) {
  .project figure {
    flex: flex;
    order: 1;
  }
}

.project figure img {
  width: 100%;
  margin-right: 1rem;
  border-right: 30px solid transparent;
}

.project .content {
  flex: 1 1 35%;
  align-self: flex-start;
  padding: 1rem;
  color: white;
  font-family: "Raleway", serif;
  line-height: 1.8rem;
}

@media only screen and (min-width: 1024px) {
  .project.sticky .content {
    position: sticky;
    top: 2rem;
  }

  .project.sticky .content {
    top: 4rem;
  }

  .project .content {
    padding-left: 4rem;
  }
}

.project .content h2 {
  font-weight: 400;
}

.project .content hr {
  border: none;
  transform-origin: top left;
  width: 20%;
  height: 1px;
  background-color: #0015ff;
  margin: 1rem 0;
  transition: all 0.2s ease-out;
}

h1 {
  font-family: "Montserrat", sans-serif;
  font-size: 8rem;
  line-height: 8rem;
  color: #0015ff;
  letter-spacing: 0rem;
  font-weight: 900;
}

@media only screen and (max-width: 720px) {
  h1 {
    font-size: 3rem;
    line-height: 3rem;
  }
}

h2 {
  font-family: "Raleway";
  font-size: 2.5rem;
  color: white;
  margin-top: 1rem;
}

@media only screen and (max-width: 720px) {
  h2 {
    font-size: 1.5rem;
    line-height: 1.5rem;
  }
}

h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  line-height: 2.5rem;
  font-size: 2.5rem;
  color: white;
}

@media only screen and (max-width: 720px) {
  h3 {
    font-size: 2.5rem;
    line-height: 2.5rem;
  }
}

ul {
  padding-left: 1rem;
}

footer {
  position: fixed;
  bottom: 2rem;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

footer a {
  position: relative;
  width: 50px;
  height: 50px;
  color: #fff;
  margin: 1rem;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
}

footer svg {
  width: 20px;
  height: 20px;
  fill: #fff;
}

footer a:after {
  position: absolute;
  z-index: -1;
  width: 60px;
  height: 60px;
  content: "";
  border-radius: 50%;
  background-color: #0015ff;
  transition: all 0.2s ease-out;
  box-shadow: 0px 0px 15px 15px #0015ff50;
}

footer a:hover:after {
  transform: scale(1.1);
}

.about {
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: center;
  flex-direction: column;
  margin: 0;
  text-align: center;
  color: #fff;
  width: 100vw;
  height: 100vh;
  animation-iteration-count: 1;
  animation: fadeIn 5s ease;
}

@media only screen and (min-width: 720px) {
  .about {
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

.gradient {
  background-size: 100% 100%;
  /* background-image: repeating-radial-gradient(
    #0015ff75,
    #00000090
  ); */
  background-image: linear-gradient(
    -45deg,
    #0015ff75 0%,
    #00000090 50%,
    #0015ff75 100%
  );
}

.gradient.animation {
  /* animation: gradient 15s ease infinite; */
}

.gradient.full {
  background-size: 400% 400%;
  background-image: linear-gradient(
    -45deg,
    #0015ff 0%,
    #000000 50%,
    #0015ff 100%
  );
}

@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

#background {
  position: fixed;
  z-index: -1;
  opacity: 1;
  transition: all 5s ease-out;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@media only screen and (max-width: 720px) {
  #background {
    display: none;
  }
}

.scroll-down-icon {
  margin-top: 4rem;
}

.scroll-down-icon span {
  display: block;
  width: 20px;
  height: 20px;
  transform: rotate(45deg);
  border-right: 5px solid white;
  border-bottom: 5px solid white;
}

.scroll-down-icon .x,
.scroll-down-icon .y {
  animation: mouse-scroll 1s infinite;
  animation-direction: alternate;
}

.scroll-down-icon .x {
  animation-delay: 0.1s;
}

.scroll-down-icon .y {
  animation-delay: 0.3s;
}

@keyframes mouse-scroll {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0.5;
  }

  100% {
    opacity: 1;
  }
}
