@keyframes moveInLeft {
  /* 0% is at the start and 100% is at the end of the animation. Can put diff %s for diff stages in between */
  0% {
    opacity: 0;
    transform: translateX(-100px);
    /* starts at the left */ }
  80% {
    transform: translateX(35px);
    /* then goes a bit to the right with 20px */ }
  100% {
    opacity: 1;
    transform: translate(0); } }

@keyframes moveInRight {
  0% {
    opacity: 0;
    transform: translateX(100px); }
  80% {
    transform: translateX(-35px); }
  100% {
    opacity: 1;
    transform: translate(0); } }

@keyframes moveInBottom {
  0% {
    opacity: 0;
    transform: translateY(30px); }
  100% {
    opacity: 1;
    transform: translate(0); } }

.header-primary {
  display: grid;
  justify-items: center;
  color: white; }
  .header-primary-main {
    text-transform: uppercase;
    font-family: 'Gotu', sans-serif;
    letter-spacing: 0.3rem;
    display: block;
    animation-name: moveInLeft;
    animation-duration: 2s;
    animation-timing-function: ease-out; }
    @media (max-width: 360px) {
      .header-primary-main {
        font-size: 1.5rem; } }
  .header-primary-sub {
    font-family: 'Dancing Script', cursive;
    display: block;
    align-items: center;
    animation-name: moveInRight;
    animation-duration: 2s;
    animation-timing-function: ease-out;
    font-size: 1.4rem; }

.header-skewed {
  grid-column: 1 / -1;
  grid-row: 1 / 1;
  display: grid;
  align-items: end;
  color: #c2b7b7; }

.header-projects {
  font-size: 1.7rem;
  text-transform: uppercase;
  color: grey;
  text-align: right;
  position: absolute;
  top: 10%;
  right: 5%;
  width: 85%; }
  @media (max-width: 1200px) {
    .header-projects {
      font-size: 1.6rem; } }
  @media (max-width: 900px) {
    .header-projects {
      font-size: 1.2rem; } }
  @media (max-width: 600px) {
    .header-projects {
      font-size: 1.1rem; } }
  @media (max-width: 460px) {
    .header-projects {
      font-size: 0.9rem; } }
  .header-projects--sub {
    grid-row: 2 / -1;
    border-top: 1px solid grey;
    border-width: 80%;
    padding: 10px; }
    @media (max-width: 460px) {
      .header-projects--sub {
        border-top: none; } }

.about-me-text {
  color: grey;
  font-size: 1.8rem; }
  @media (max-width: 1200px) {
    .about-me-text {
      font-size: 1.4rem; } }
  @media (max-width: 900px) {
    .about-me-text {
      font-size: 1.2rem; } }
  @media (max-width: 600px) {
    .about-me-text {
      font-size: 1rem; } }

.star {
  color: #f5f58c;
  margin-top: 3%;
  margin-left: 75%; }
  @media (max-width: 600px) {
    .star {
      margin-left: 60%; } }

.btn:link,
.btn:visited {
  text-transform: uppercase;
  text-decoration: none;
  padding: 25px 20px;
  border-radius: 100px;
  transition: all .2s; }
  @media (max-width: 900px) {
    .btn:link,
    .btn:visited {
      padding: 10px 1px;
      font-size: .8rem; } }
  @media (max-width: 600px) {
    .btn:link,
    .btn:visited {
      padding: 5px 5px;
      margin: 5px;
      font-size: 0.7rem; } }
  @media (max-width: 460px) {
    .btn:link,
    .btn:visited {
      font-size: 0.6rem; } }

.btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5); }

.btn:active {
  transform: translateY(-1px); }

.btn-yellow {
  background-color: #f1f1f0;
  color: grey;
  width: 100%;
  font-size: 0.8rem; }
  @media (max-width: 600px) {
    .btn-yellow {
      font-size: 0.8rem; } }
  .btn-yellow--site {
    grid-column: 2 / span 3;
    grid-row: 2 / span 1; }
    @media (max-width: 900px) {
      .btn-yellow--site {
        grid-row: 1 / span 1;
        grid-column: 2 / span 1; } }
    @media (max-width: 600px) {
      .btn-yellow--site {
        grid-column: 2 / 3; } }
  .btn-yellow--git {
    grid-column: 2 / span 3;
    grid-row: 4 / span 1; }
    @media (max-width: 900px) {
      .btn-yellow--git {
        grid-row: 2 / span 1;
        grid-column: 2 / span 1; } }
    @media (max-width: 600px) {
      .btn-yellow--git {
        grid-column: 2 / 3; } }
    .btn-yellow--git--only {
      grid-column: 2 / span 3;
      grid-row: 3 / span 1; }
      @media (max-width: 900px) {
        .btn-yellow--git--only {
          grid-column: 2 / span 1; } }
      @media (max-width: 600px) {
        .btn-yellow--git--only {
          grid-column: 2 / span 1; } }

.contact {
  background-image: linear-gradient(to right bottom, rgba(174, 232, 245, 0.8), rgba(200, 188, 198, 0.8));
  display: grid;
  grid-template-columns: 30% 40% 30%;
  color: grey;
  justify-items: center;
  align-items: center; }
  @media (max-width: 900px) {
    .contact {
      grid-template-columns: 10% 80% 10%; } }
  @media (max-width: 460px) {
    .contact {
      grid-template-columns: 2% 96% 2%; } }
  .contact-icon {
    list-style: none;
    display: flex;
    align-items: center; }

ul {
  grid-column: 2 / span 1;
  font-size: 1.2rem; }
  @media (max-width: 900px) {
    ul {
      font-size: 0.9rem; } }

.container {
  width: 95vw;
  margin: 25px auto;
  display: grid;
  grid-template-rows: 500px 80px 200px 1800px 250px;
  row-gap: 3rem; }
  @media (max-width: 600px) {
    .container {
      row-gap: 0rem; } }
  @media (max-width: 900px) {
    .container {
      grid-template-rows: 500px 80px 200px 2400px 250px; } }

.header {
  background-image: linear-gradient(to right bottom, rgba(174, 232, 245, 0.8), rgba(200, 188, 198, 0.8)), url(/images/header-background-code.jpg);
  background-size: cover;
  background-position: top;
  display: grid;
  align-items: center;
  -webkit-clip-pth: polygon(0 0, 100% 0, 100% 80%, 0 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); }
  @supports (clip-path: polygon(0 0)) or (--webkit-clip-path: polygon(0 0)) {
    .header {
      -webkit-clip-pth: polygon(0 0, 100% 0, 100% 80%, 0 100%);
      clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); } }
  @media (max-width: 600px) {
    .header {
      -webkit-clip-pth: polygon(0 0, 100% 0, 100% 90%, 0 100%);
      clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%); } }
  .header__text-box {
    display: grid;
    align-items: center;
    justify-items: center; }

.projects {
  display: grid;
  grid-template-rows: repeat(1, 0.6fr) repeat(3, 1.3fr) repeat(1, 0.2fr);
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
  column-gap: 2rem;
  row-gap: 2rem;
  background-color: #f1f1f0;
  -webkit-clip-pth: polygon(100% 0%, 0% 14%, 0% 100%, 100% 100%);
  clip-path: polygon(100% 0%, 0% 14%, 0% 100%, 100% 100%); }
  @media (max-width: 1200px) {
    .projects {
      column-gap: 0;
      -webkit-clip-pth: polygon(100% 0%, 0% 10%, 0% 100%, 100% 100%);
      clip-path: polygon(100% 0%, 0% 10%, 0% 100%, 100% 100%); } }
  @media (max-width: 900px) {
    .projects {
      grid-template-rows: repeat(1, 0.6fr) repeat(5, 1.3fr) repeat(1, 0.2fr);
      grid-template-columns: repeat(2, 1fr);
      -webkit-clip-pth: polygon(100% 0%, 0% 0%, 0% 100%, 100% 100%);
      clip-path: polygon(100% 0%, 0% 0%, 0% 100%, 100% 100%); } }

.project {
  perspective: 150rem;
  -moz-perspective: 150rem;
  width: 70%;
  position: relative; }
  @media (max-width: 1200px) {
    .project {
      width: 80%; } }
  .project__side {
    height: 100%;
    width: 100%;
    transition: all 1s ease;
    position: absolute;
    top: 0;
    left: 0;
    backface-visibility: hidden;
    --webkit-backface-visibility: hidden; }
    .project__side--front {
      background-image: linear-gradient(to bottom right, #aec5f5, #bcc6c8);
      display: grid;
      grid-template-rows: 1fr 1.3fr; }
    .project__side--back {
      background-image: linear-gradient(to top left, #aec5f5, #bcc6c8);
      transform: rotateY(180deg);
      background-color: lightgrey;
      font-size: 0.9rem;
      text-align: center;
      display: grid;
      grid-template-rows: 1fr 1fr;
      align-items: center;
      justify-items: center; }
      @media (pointer: coarse) {
        .project__side--back {
          transform: rotateY(0); } }
      @media (max-width: 900px) {
        .project__side--back {
          grid-template-rows: 1fr 2fr; } }
      .project__side--back--top {
        grid-row: 1 / span 1;
        display: grid;
        grid-template-rows: repeat(5, 1fr);
        grid-template-columns: repeat(5, 1fr);
        column-gap: 1rem;
        align-items: center; }
        @media (max-width: 900px) {
          .project__side--back--top {
            grid-template-rows: repeat(2, 1fr);
            grid-template-columns: repeat(3, 1fr);
            align-items: center; } }
        @media (max-width: 600px) {
          .project__side--back--top {
            grid-template-columns: 1fr 4fr 1fr; } }
      .project__side--back--bottom {
        grid-row: 2 / -1;
        display: grid;
        grid-template-rows: 1fr 4fr 1fr;
        grid-template-columns: 5% 90% 5%; }
        .project__side--back--bottom--pic {
          grid-row: 2 / span 1;
          grid-column: 2 / span 1;
          width: 100%;
          height: 100%; }
  .project:hover .project__side--front {
    transform: rotateY(-180deg); }
  .project:hover .project__side--back {
    transform: rotateY(0); }

.talents {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  justify-items: center;
  align-items: center;
  margin-top: 4rem; }
  @media (max-width: 600px) {
    .talents {
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: repeat(2, 1fr);
      margin-top: 2.4rem; } }

.talent {
  animation-name: moveInBottom;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  width: 70%;
  height: 70%; }
  @media (max-width: 600px) {
    .talent {
      width: 60%;
      height: 70%; } }
  .talent--nodejs {
    width: 100%; }
