@font-face {
  font-family: "Caviar";
  src: url(fonts/CaviarDreams.ttf);
}

html {
  scroll-behavior: smooth;
}

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

body {
  font-family: 'Caviar';
  margin: 0;
  padding: 0;
  background-color: #0d0d0d;
  color: #fff;
  overflow-x: hidden;
}

.cursor-effect {
  position: absolute;
  width: 40px;
  height: 40px;
  border: 2px solid #09beaf;
  border-radius: 50%;
  pointer-events: none;
  margin: -20px 0 0 -20px;
  animation: click 0.6s linear;
  opacity: 0;
}

@keyframes click {
  0% {
    opacity: 1;
    transform: scale(0);
  }

  100% {
    opacity: 0;
    transform: scale(1);
  }
}

body::-webkit-scrollbar {
  width: 10px;
}
 
body::-webkit-scrollbar-track {
  box-shadow: inset 0 0 10px #8cbcc24d;
  border-radius: 10px;
}
 
body::-webkit-scrollbar-thumb {
  background-color: rgb(0, 68, 68);
  border-radius: 10px;
}

body::-webkit-scrollbar-corner {
  border-radius: 10px;
}

#logo {
  height: 80px;
  filter: hue-rotate(10deg) brightness(90%);
  margin: 5rem 0;
}

header {
  width: 15%;
  height: 100vh;
  position: fixed;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  background-color: rgba(0, 59, 59, 0.144);
  border-right: 3px solid;
  border-image: linear-gradient(to top, transparent, #41dad286, transparent) 1;
  z-index: 2;
}

nav {
  height: 50vh;
  display: flex;
  flex-direction: column;
  text-align: center;
  justify-content: center;
  position: absolute;
}

ul {
  display: flex;
  height: 15rem;
  justify-content: space-between;
}

nav ul li a {
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.3s ease;
  position: relative;
  cursor: pointer;
}

nav ul li a::after {
  content: "";
  width: 0%;
  height: 2px;
  background-image: linear-gradient(to left, #09beaf, rgba(0, 0, 0, 0));
  position: absolute; 
  left: 0px;
  bottom: -8px;
  transition: 1s;
}

nav ul li a:hover::after {
  width: 100%;
}

#contact-icons{
  display: flex;
  width: 100%;
  flex-direction: row;
  align-items: start;
  justify-content: space-evenly;
  position: absolute;
  bottom: 0;
}

#contact-icons i {
  font-size: 2.5rem;
  text-shadow: 0px 0px 5px rgb(0, 0, 0);
  color: rgba(0, 165, 157, 0.726);
  padding: 0.5rem;
}

#contact-icons i:hover {
  transition: 0.3s;
  scale: 1.1;
}

section {
  margin-left: 15%;
}

#home {
  background-color: #0d0d0d;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: left;
}

#home-section {
  width: 50vw;
  position: absolute;
}

.cv-download {
  background-color: transparent;
  border: none;
}

h1, h2 {
  color: #fff;
  font-weight: 600;
  margin-bottom: 20px;
}

h1 {
  font-size: 60px;
  letter-spacing: 5px;
  text-transform: uppercase;
}  

h2 {
  font-size: 30px;
  color: #09beaf;
  letter-spacing: 2px;
}

h3 {
  font-size: 18px;
  font-weight: 400;
  text-align: justify;
  line-height: 1.5;
}

#about {
  height: auto;
  display: grid;
  border-top: 3px solid;
  border-image: linear-gradient(to left, #0d0d0d, #41dad286, #0d0d0d) 1;
}

.about-div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 2rem;
  text-align: left;
  border-left: 2px solid rgb(0, 173, 173);
}

.about-div h3 {
  font-size: 1.8rem;
  margin-bottom: 30px;
}

#about-me {
  color:#09beaf;
  font-size: 2rem;
  margin-bottom: 3rem;
}

#techStack-div {
  margin-top: 5rem;
  border-left: none;
}

.techStack {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 15px;
}

#mainTech {
  height: 5rem;
  margin: 20px;
}

#secondaryTech {
  height: 6rem;
  margin-top: 10px;
}

#mechTech {
  height: 4rem;
  margin: 25px;
}

#projects {
  height: auto;
  padding-top: 50px;
  padding-bottom: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-top: 3px solid;
  border-image: linear-gradient(to left, #0d0d0d, #41dad286, #0d0d0d) 1;
}

#projects p {
  color:#09beaf;
  font-size: 2rem;
  margin-bottom: 3rem;
}

.projects-container {
  display: grid;
  align-items: center;
  justify-content: center;
  width: 90%;
}

.project {
  margin: 0 40px;
  cursor: pointer;
  width: 300px;
  filter: brightness(80%);
  transition: 100ms;
}

.project:hover {
  scale: 1.05;
  filter: brightness(100%);
}

#project1 {
  grid-row: 1;
}

#project2 {
  grid-row: 1;
}

#project3 {
  grid-row: 1;
}

.project img {
  width: 100%;
}

.projectInactive {
  margin: 20px;
  cursor: default;
  width: 300px;
  filter: brightness(80%);
  grid-row: 1;
}

.projectInactive img {
  width: 100%;
}

.modal {
  overflow: hidden;
}

.modal-dialog {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 140px);
  max-width: 40vw;
}

.modal-content {
  border: 2px solid rgb(0, 173, 164);
  border-radius: 20px;
  background-color: rgb(0, 18, 22);
}

.modal-header {
  display: flex;
  justify-content: center;
  border-bottom: 1px solid rgb(0, 61, 71);
}

.modal-title {
  color: rgb(255, 255, 255);
  font-weight: bold;
  font-size: 2rem;
}

.modal-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.modal-body h6 {
  text-align: justify;
  font-size: 1rem;
  margin-bottom: 2rem;
  width: 80%;
}

.modal-body img {
  width: 50%;
  margin-bottom: 1rem;
}

.modal-body .mp4 {
  width: 80%;
  margin: 2rem 0;
}

/* Customize the modal footer */
.modal-footer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-top: 1px solid rgb(0, 61, 71);
}

.modal-footer a {
  text-decoration: none;
  color: rgb(255, 255, 255);
  margin: 0;
}

#contact {
  height: auto;
  padding-top: 50px;
  padding-bottom: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-top: 3px solid;
  border-image: linear-gradient(to left, #0d0d0d, #41dad286, #0d0d0d) 1;
}

#contact p {
  color:#09beaf;
  font-size: 2rem;
  margin-bottom: 3rem;
}

#error-message {
  display: none;
  background: #ed3c0d;
  text-align: left;
  padding: 15px;
  font-weight: 600;
}

.sent-message {
  display: none;
}

.sent-messageSuccess {
  display: block;
  background: #18d26e;
  text-align: center;
  padding: 15px;
  font-weight: 600;
}

#submitBtn {
  background-color: #ffffff11;
  border: 1px solid transparent;
  color: white;
  padding: 10px 20px;
  border-radius: 5px;
  transition: 200ms;
}

#submitBtn:hover {
  color: rgb(0, 173, 164);
  border: 1px solid rgb(0, 173, 164);
}

#footer {
  height: 10vh;
  background-color: rgba(0, 40, 43, 0.473);
  display: flex;
  justify-content: center;
  align-items: center;
  padding-right: 2rem;
}

.copyright {
  scale: 1.2;
  margin-right: 10px;
}

@media (max-width: 768px) {
  header {
    width: 100%;
    height: auto;
    position: relative;
    border-right: none;
    border-bottom: 3px solid;
  }

  nav {
    height: auto;
    position: static;
  }

  nav ul {
    flex-direction: column;
    height: auto;
  }

  nav ul li {
    margin: 10px 0;
  }

  #contact-icons {
    flex-direction: row;
    position: static;
    margin-top: 20px;
  }

  section {
    margin-left: 0;
    padding-top: 20px;
  }

  #home-section {
    width: 90vw;
    text-align: center;
    margin: auto;
  }

  h1 {
    font-size: 40px;
  }

  h2 {
    font-size: 24px;
  }

  #about {
    grid-template-columns: 1fr;
    padding: 20px;
  }

  .about-div {
    margin: 20px 0;
    border-left: none;
    border-top: 2px solid rgb(0, 138, 138);
  }

  #techStack-div {
    margin-top: 2rem;
  }

  .techStack {
    flex-direction: column;
    margin: 10px;
  }

  #mainTech, #secondaryTech, #mechTech {
    height: auto;
    width: 80%;
    margin: 10px 0;
  }

  #projects {
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .projects-container {
    grid-template-columns: 1fr;
    width: 50%;
  }

  #project1 {
    grid-row: 1;
  }

  #project2 {
    grid-row: 2;
  }

  #project3 {
    grid-row: 3;
  }

  .project, .projectInactive {
    width: 85%;
  }

  .modal-dialog {
    max-width: 90vw;
    min-height: calc(100vh - 2rem);
  }

  .modal-content {
    border-radius: 10px;
  }

  .modal-title {
    font-size: 1.5rem;
  }

  .modal-body h6 {
    font-size: 0.9rem;
    width: 90%;
  }

  .modal-body img, .modal-body .mp4 {
    width: 90%;
  }
}

@media (max-width: 480px) {
  h1 {
    font-size: 30px;
  }

  h2 {
    font-size: 20px;
  }

  .modal-title {
    font-size: 1.2rem;
  }

  .modal-body h6 {
    font-size: 0.8rem;
  }
}