:root {
  --white-color: #fff;
  --black-color: #000;
  --gray-color: #C2C2C2;
  --headline-color: #3F3D56;
  --project-color: #21243D;
  --about-background-color: #A09BFF;
}

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html {
  font-size: 62.5%;
  line-height: 1.2;
}

body {
  font-family: sans-serif;
}

.section {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 15rem;
  /* height: 100vh; */
}

.container {
  width: 123.2rem;
}

.home-headline,
.about-headline,
.skills-headline, 
.projects-headline,
.contacts-headline {
  font-size: 3rem;
}

.home-headline,
.skills-headline, 
.projects-headline,
.contacts-headline {
  color: var(--headline-color);
}

img {
  width: 49rem;
  height: 35rem;
  max-width: 100%;
}

header {
  position: fixed;
  top: 0;
  width: 100%;

  & .header-container {
    background-color: var(--headline-color);
    color: var(--white-color);
    display: flex;
    justify-content: space-around;
    padding: 1rem;
    align-items: center;
    width: 100%;
    font-family: "Inter";
    
    & .logo {
      & h1 {
        font-size: 3rem;
        
        & sup {
          position: relative;
          top: 3px;
          right: 6px;
          font-size: 3.5rem;
        }
      }
    }

    & nav {
      font-size: 1.44rem;
      & ul {
        display: flex;
        gap: 1.6rem;
        transition: opacity 0.3s ease, transform 0.3s ease;

        & li {
          list-style: none;
          
          & a {
            text-decoration: none;
            font-size: 1.55rem;
            text-transform: uppercase;
            font-weight: 700;
            color: inherit;
            padding-bottom: .3rem;
            border-bottom: solid 3px transparent;
            transition: all .3s ease-in;

            &:hover {
              border-bottom-color: var(--white-color);
            }
          }
        }
      }
      & .bi-list {
        display: none;
      }
    }
  }
}

.home-container {
  display: flex;
  gap: 15rem;
  height: 60rem;

  & .home-headline {
    display: flex;
    gap: 2.5rem;
    flex-direction: column;
    width: 55rem;
    max-width: 100%;
    align-self: center;
    text-align: start;
    line-height: 1.2;

    & .language-select-container {
      & select {
        padding: 1rem 2rem;
      }
    }
  }

  & .home-images {
    align-items: center;
    display: flex;
  }
}

.about {
  background-color: var(--about-background-color);
  color: var(--white-color);

  & .about-container {
    display: flex;
    align-items: center;
    gap: 15rem;

    & .about-headline {
      display: flex;
      gap: 2.5rem;
      flex-direction: column;
      width: 55rem;
    }
  }
}

.skills {
  & .skills-container {
    display: flex;
    flex-direction: column;
    gap: 4rem;

    & .skills-headline {
      & h1 {
        padding-bottom: 2.5rem;
      }
    }
  
    & .skills-tech-container {
      display: flex;
      padding: 4rem;
      border-radius: 8px;
      box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
    
      & .skills-technologies-logos {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 5rem;
        justify-content: center;

        & .tech-logos {
          width: 35rem;
          height: 25rem;
        } 

        & .html {
          width: 25rem;
        }

        & .css {
          width: 20rem;
        }

        & .js {
          width: 30rem;
          height: 26.5rem;
          margin-top: -1.05rem
        }

        & .git {
          width: 31rem;
          height: 30rem;
        }

        & .reactjs {
          width: 40rem;
        }

        & .bootstrap {
          width: 25rem;
        }
      }
    }
  }
}

.projects {
  padding: 10rem 15rem;
  & .projects-container {
    height: 100%;

    & h1 {
      & a {
        color: var(--headline-color);
        text-decoration: none;
        position: relative;

        &:hover {
          text-decoration: underline;
        }
        & .bi-box-arrow-up-right {
          position: absolute;
          top: .5rem;
          right: -2rem;
          font-size: 1.6rem;
        }
      }
    }
    
    & .project-box {
      display: flex;
      align-items: flex-start;
      gap: 4rem;
      border-bottom: 1px solid var(--gray-color);
      padding: 2.5rem 0;

      & .project-image-box {
        width: 24.5rem;
        height: 18rem;

        & .project-image {
          width: 100%;
          height: 100%;
          border-radius: 6px;
        }
      }
      
      & .project-detail {
        width: 70rem;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        height: 18rem; 

        & .project-name {
          font-size: 2rem;
          color: var(--project-color);
          text-decoration: none;
          position: relative;
          
          &:hover {
            text-decoration: underline;
          }

          & .bi-box-arrow-up-right {
            position: absolute;
            font-size: 1.6rem;
            padding-left: .5rem;
            top: -.5rem;
          }
        }

        & .project-tech-stack {
          & .tech-icons-container {
            display: flex;
            gap: 2rem;
            list-style: none;

            & .tech-icon-box {
              width: 40px;
              height: 40px;
              border: 2px solid var(--project-color);
              border-radius: 50%;
              padding: 4px;

              & .tech-icon {
                width: 100%;
                height: 100%;
              }
            }
          }
        }

        & .project-description {
          font-size: 2rem;
        }
      }
    } 
  }
}

.contact {
  & .contact-container {
    display: flex;
    flex-direction: column;

    & .contacts-headline {
      & h1 {
        padding-bottom: 2.5rem;
      }
    }

    & .contact-box {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 4rem;
      height: 60vh;
      box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);

      & .contact-forms {
        display: flex;
        flex-direction: column;
        gap: 2.5rem;
        list-style: none;

        & .contact {
          font-size: 3.2rem;

          & a {
            text-decoration: none;
            color: var(--black-color);
            position: relative;

            &:hover {
              text-decoration: underline;
            }

            & .bi-box-arrow-up-right {
              position: absolute;
              top: 0;
              right: -2rem;
              font-size: 1.6rem;
            }
          }
        }
      }
    }
  }
}

footer {
  & p {
    background-color: #3F3D56;
    color: var(--white-color);
    font-size: 1.6rem;
    text-align: center;
    padding: 1.6rem;
    font-weight: 700;
  }
}


@media (max-width: 640px) {
  header {
    & .header-container {
      justify-content: space-between;
      padding: 1rem 2.5rem;

      & nav {
        position: relative;
        & ul {
          display: none;
          flex-direction: column;
          position: absolute;
          background-color: var(--headline-color);
          padding: 4rem 2rem 2rem;
          top: 100%;
          right: 0;
          transition: opacity 0.3s ease;
          border-bottom-left-radius: 8px;
          border-bottom-right-radius: 8px;
        }

        & .active {
          display: flex;
          transition: opacity 0.3s ease;
        }

        & .bi-list {
          display: flex;
          font-size: 3rem;
          transition: all .5s ease-in-out;
        }
      }
    }
  }

  .section {
    padding: 2rem;
  }

  .home {
    margin-top: 6rem;

    & .home-headline {
      width: 100%;
    }
  }

  .container {
    flex-direction: column;
    gap: 5rem;
    height: 100%;
    width: 100%;
  }

  .about {
    & .about-container {
      gap: 4rem;

      & .about-headline {
        width: 100%;
      }

      & .about-images {
        width: 100%;

        & .image-connected-wrld {
          & .image-coding {
            max-width: 100%;
          }
        }
      }
    }
  }

  & .skills {
    & .skills-container {
      & .skills-tech-container {
        & .skills-technologies-logos {
          gap: 4rem;

          & .html, 
          .reactjs, 
          .bootstrap {
            width: 15rem;
            height: 15rem;
          }

          & .css {
            width: 12rem;
            height: 15rem;
          }

          & .js {
            width: 17rem;
            height: 17rem;
          }

          & .git {
            width: 20rem;
            height: 20rem;
          }

          & .reactjs {
            width: 23rem;
            height: 15rem;
          }

          & .sass {
            width: 18rem;
            height: 16rem;
          }

          & .tailwind {
            width: 20rem;
            height: 15rem;
          }
        }
      }
    }
  }

  .projects {
    flex-direction: column;
    padding: 2rem;

    & .projects-container {
      width: 100%;

      & .project-box {
        flex-direction: column; 

        & .project-image-box {
          width: 100%;
          height: 100%;
        }

        & .project-detail {
          width: 100%;
          height: 100%;
          gap: 1rem;
        }
      }
    }
  }

  .contact {
    & .contact-container {
        & .contact-box {
          & .contact-forms {
            width: 100%;

            & .contact {
              & a {
                width: 100%;
                display: block;
                font-size: 2rem;
              }
            }
          }
        }
    }
  }
}

@media (min-width: 641px) and (max-width: 767px) {

  header {
    & .header-container {
      justify-content: space-between;
      padding: 1rem 2rem;
    }
  }

  .section {
    padding: 2rem;
  }

  .container {
    flex-direction: column;
    gap: 4rem;
    height: 100%;
  }

  .home {
    margin-top: 6rem;
    & .home-container {
      & .home-headline {
        width: 100%;
      }
      & .home-images {
        justify-content: center;
      }
    }
  } 
    
  .about {
    & .about-container {
      gap: 4rem;
      & .about-headline {
        width: 100%;
      }
    }
  }

  & .skills {
    & .skills-container {
      & .skills-tech-container {
        & .skills-technologies-logos {
          gap: 2rem;

          & .css {
            width: 19rem;
          }

          & .js {
            width: 25rem;
            height: 25rem;
          }

          & .git {
            width: 20rem;
            height: 20rem;
          }

          & .reactjs {
            width: 23rem;
            height: 15rem;
          }

          & .sass {
            width: 24rem;
            height: 17rem;
          } 

          & .bootstrap {
            width: 20rem;
            height: 20rem;
          }

          & .tailwind {
            width: 25rem;
            height: 20rem;
          }
        }
      }
    }
  }

  .projects {
    & .projects-container {
      & .project-box {
        & .project-detail {
          width: 100%;
          height: 100%;
          gap: .2rem;
        }
      }
    }
  }

  .contact {
    & .contact-container {
      gap: 2rem;
    }
  }
}

@media (max-width: 929px) {
  .contact {
    & .contact-container {
      & .contact-box {
        flex-direction: column;
        height: 100%;
        padding: 2.5rem;
        gap: 2rem;
      }
    }
  }      
}

@media (min-width: 768px) and (max-width: 991px) {
  .section {
    padding: 2.5rem 5rem;
  }
  
  .home {
    height: 100vh;
    & .home-container {
      gap: 4rem;
    }
  }

  .about {
    & .about-container {
      gap: 4rem;
    }
  }

  .projects {
    & .projects-container {
      height: 100%;
      width: 100%;

      & .project-box {
        & .project-detail {
          width: 65rem;
          height: 100%;
          gap: 0.5rem;
        }
      }
    }
  }

  .programming-image, 
  .image-coding {
    max-width: 55rem;
    width: 100%;
  }
}


@media (min-width: 992px) and (max-width: 1023px) {
  .section {
    padding: 5rem;
  }

  & .home-container {
    gap: 4rem;
    height: 100vh;

    & .home-headline {
      width: 39rem;
    }
  }

  & .about-container {
    gap: 5rem;
  
    & .about-headline {
      gap: 2.5rem;
      width: 50rem;
    }

    & .programming-image, 
    .image-coding {
      max-width: 100%;
    }
  } 
    
  & .skills {
    & .skills-container {
      & .skills-tech-container {
        & .skills-technologies-logos {
          gap: 2rem;
          
          & .html {
            width: 25rem;
          }

          & .css {
            width: 20rem;
          }

          & .js {
            width: 30rem;
            height: 26.5rem;
          }

          & .git {
            width: 31rem;
            height: 30rem;
          }

          & .reactjs {
            width: 40rem;
          }

          & .sass {
            width: 25rem;
            height: 20rem;
          } 

          & .bootstrap {
            width: 24rem;
            height: 22rem;
          }

          & .tailwind {
            width: 25rem;
            height: 20rem;
          }
        }
      }
    }
  }
  
  .projects {
    & .projects-container {
      & .project-box {
        & .project-detail {
          width: 65rem;
        }
      }
    }
  }
    
} 

@media (min-width: 1024px) and (max-width: 1199px) {
  .section {
    padding: 15rem 5rem;
  }

  .home-container {
    gap: 4rem;
    & .home-headline {
      width: 55rem;
    }
  
    & .programming-image {
      width: 35rem;
    }

  }

  .about {
    & .about-container {
      & .about-headline {
        width: 75rem;
      }
    }

    & .image-coding {
      width: 100%;
    }
  }

  .skills {
    padding-bottom: 10rem;
  }

  .projects {
    padding: 10rem;
  }

  .projects {
    & .projects-container {
      & .projects-headline {
          & h1 {
            & a {
              color: var(--headline-color);
              text-decoration: none;
              padding: 0 2rem;
            }
          }
      }
    }
  }

  .projects {
    & .projects-container {
      & .projects-headline {
        & h1 {
          & a {
            color: var(--headline-color);
            text-decoration: none;
            padding-left: 2.5rem;
          }
        }
      }

      & .project-box {
        & .project-image-box {
          & .project-image {
            width: 100%;
            height: 100%;
            margin-left: 2.5rem;
          }
        }
        
        & .project-detail {
          padding: 0rem 2rem;
        }
      }
    }
  }

}

@media (min-width: 1200px) and (max-width: 1919px) {
  .programming-image, 
  .image-coding {
    max-width: 100%;
  }
}