* {
  margin: 0;
}

h2 {
  font-size: 45px;
  font-family: "Raleway", sans-serif;
}

p,
ul,
figcaption {
  font-family: "Jost", sans-serif;
  font-size: 25px;
}

h3 {
  font-family: "Raleway", sans-serif;
  font-size: 35px;
}

.container-title {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 40px;
}

/* 'Introduction' Section */

.introduction {
  background-color: #f2ebe9;
  text-align: center;
  padding: 200px 0px;
}

#intro-heading {
  display: inline;
  position: relative;
  font-size: 70px;
  font-family: "Raleway", sans-serif;
  font-weight: bold;
}

#intro-heading::before,
#intro-heading::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

#intro-heading::before {
  background-color: #f2ebe9;
  animation: typewriter 2s steps(14) 1s forwards;
}

#intro-heading::after {
  width: 0.125em;
  background: black;
  animation: typewriter 2s steps(14) 1s forwards,
    blinking 750ms steps(14) infinite;
}

@keyframes typewriter {
  to {
    left: 100%;
  }
}

@keyframes blinking {
  to {
    background: transparent;
  }
}

#intro-subheading {
  font-family: "Jost", sans-serif;
  font-weight: 500;
  opacity: 0;
  transform: translateY(3rem);
  animation: fadeInUp 2s ease 3.5s forwards;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#intro-para {
  margin-top: 15px;
  opacity: 0;
  animation: fadeIn 1.5s ease 4.9s forwards;
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}

/* 'About Me' Section */

.about {
  display: flex;
  gap: 100px;
  background-color: #eddcd9;
  padding: 100px 300px;
  align-items: center;
}

#about-para {
  text-align: justify;
}

#subheading-highlight {
  color: #1e4345;
  margin-bottom: 30px;
}

img[alt="portrait"] {
  max-width: 100%;
  height: auto;
  border-radius: 20px;
  filter: drop-shadow(20px 20px #de5499);
  max-width: 30%;
}

/* 'Education & Experience' Section */

.flex-container {
  display: flex;
  gap: 80px;
  margin-top: 50px;
}

.education-experience {
  background-color: #1e4345;
  color: white;
  padding: 100px 300px;
  align-items: center;
}

.education-container,
.experience-container {
  border: 2px solid white;
  border-radius: 20px;
  width: 50%;
  padding: 50px;
}

.education-info,
.experience-info {
  margin-bottom: -40px;
  line-height: 2.5em;
}

.education-info ul,
.experience-info ul {
  list-style-type: none;
  padding-left: 0;
}

.education-info li,
.experience-info li {
  margin-bottom: 50px;
}

.bullet-points {
  margin-left: 30px;
}

.bullet-points li {
  margin-bottom: 10px;
  list-style: disc;
}

/* 'Skills' Section */

.outer-progress-container {
  background-color: #eddcd9;
  gap: 80px;
  padding: 100px 300px;
  font-family: "Jost", sans-serif;
  font-weight: 300;
  font-size: 20px;
}

.container {
  margin-top: 50px;
  display: flex;
  justify-content: center;
  gap: 80px;
}

.progress-container {
  width: 50%;
  padding: 50px;
  background-color: white;
  border-radius: 20px;
  filter: drop-shadow(20px 20px #de5499);
}

.progress-bar-wrapper {
  margin-bottom: 50px;
}

.progress-info {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5px;
  align-items: baseline;
}

.progress-percentage {
  font-weight: 400;
}

.progress-bar {
  width: 100%;
  background-color: #f3f3f3;
  border-radius: 5px;
  overflow: hidden;
}

.progress {
  height: 22px;
  background-color: #1e4345;
}

/* Circular Progress */

.outer-container {
  width: 50%;
  padding: 50px;
  background-color: white;
  border-radius: 20px;
  filter: drop-shadow(20px 20px #de5499);
  font-weight: 400;
}

.grid-container {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.circular-progress-container {
  flex: 1 1 40%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.circle {
  position: relative;
  width: 165px;
  height: 165px;
  border-radius: 50%;
  background: conic-gradient(
    #1e4345 calc(var(--percentage) * 1%),
    #d9d9d9 calc(var(--percentage) * 1%)
  );
  display: flex;
  justify-content: center;
  align-items: center;
}

.circle-inner {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 400;
}

.progress-name {
  margin-top: 10px;
  font-weight: 500;
  text-align: center;
}

/* 'Projects' Section */

.projects-container {
  background-color: #1e4345;
  padding: 100px 300px;
  color: white;
}

.project-item-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 100%;
  margin: auto;
  gap: 65px;
}

.item {
  flex: 1 1 30%;
  box-sizing: border-box;
  text-align: center;
}

.item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}

.item img:hover {
  filter: grayscale(0%);
}

figcaption {
  margin-top: 10px;
  font-size: 0.9em;
  color: #ccc;
}

/* 'Contact' Section */

.contact-container {
  background-color: #eddcd9;
  gap: 80px;
  padding: 100px 300px;
}

.contact-items {
  display: flex;
  flex-wrap: wrap;
}

.contact-socials {
  display: flex;
  gap: 20px;
}

.contact-icons {
  width: 50%;
}

.contact-icons img {
  height: 40px;
  width: 40px;
  margin-bottom: 20px;
}

.email img {
  height: 30px;
  width: 40px;
}

/* Form Section */

.contact-form {
  width: 50%;
}

input[type="email"],
textarea {
  width: 100%;
  padding: 12px;
  border-radius: 15px;
  box-sizing: border-box;
  margin-top: 6px;
  margin-bottom: 16px;
  border: 2.5px solid transparent; /* Adjust border to be transparent initially */
  font-family: "Jost", sans-serif;
  font-size: 20px;
  transition: 0.5s ease;
}

input[type="email"]:focus,
textarea:focus {
  border-color: #1e4345; /* Desired border color on focus */
  outline: none; /* Remove default outline */
}

input[type="submit"] {
  background-color: #de5499;
  color: white;
  padding: 12px 40px;
  border: none;
  border-radius: 10px;
  font-family: "Raleway", sans-serif;
  font-weight: bold;
  font-size: 20px;
  margin-top: 15px;
  transition: 0.5s ease;
}

input[type="submit"]:hover {
  background-color: #1e4345;
}

/* 'Footer' Section */

footer {
  text-align: center;
  padding: 20px;
  font-family: "Jost", sans-serif;
  font-size: 20px;
  background-color: #f2ebe9;
}

/* Media Queries */

@media (max-width: 1200px) {
  .about {
    padding: 100px 150px;
  }

  .education-experience,
  .outer-progress-container,
  .projects-container,
  .contact-container {
    padding: 100px 150px;
  }

  .container-title {
    gap: 20px;
  }

  .progress-bar-wrapper,
  .circular-progress-container {
    flex: 1 1 100%;
  }
}

@media (max-width: 768px) {
  .about,
  .education-experience,
  .outer-progress-container,
  .projects-container,
  .contact-container {
    padding: 100px 50px;
  }

  .flex-container {
    flex-direction: column;
  }

  .container {
    flex-direction: column;
  }

  .grid-container {
    flex-direction: column;
  }

  .project-item-container .item {
    flex: 1 1 100%;
  }

  .contact-items {
    flex-direction: column;
  }

  .contact-icons {
    width: 100%;
    justify-content: center;
  }

  .contact-form {
    width: 100%;
  }

  .container-title {
    flex-direction: column;
    gap: 10px;
  }

  .about {
    flex-direction: column;
  }

  img[alt="portrait"] {
    max-width: 50%;
    margin-top: 20px;
  }
}

@media (max-width: 480px) {
  .about {
    padding: 50px 20px;
  }

  .education-experience,
  .outer-progress-container,
  .projects-container,
  .contact-container {
    padding: 50px 20px;
  }

  .container-title {
    margin-bottom: 20px;
  }

  h2 {
    font-size: 30px;
  }

  h3 {
    font-size: 25px;
  }

  p,
  ul,
  figcaption {
    font-size: 18px;
  }

  input[type="email"],
  textarea {
    font-size: 18px;
  }

  input[type="submit"] {
    font-size: 18px;
    padding: 12px 30px;
  }

  .circular-progress-container {
    margin-bottom: 20px;
  }

  .container-title {
    flex-direction: column;
  }

  img[alt="portrait"] {
    max-width: 70%;
    margin-top: 20px;
  }
}
