h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Spectral SC", serif;
}

p {
  font-size: clamp(1rem, 1.5vw, 1.5rem);
}

h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
}

h2 {
  font-size: clamp(1.75rem, 5vw, 2.5rem);
}

h3 {
  font-size: clamp(1.3rem, 5vw, 1.6rem);
}

h4 {
  font-size: clamp(1.25rem, 5vw, 1.5rem);
}

h5 {
  font-size: clamp(1rem, 3vw, 1.25rem);
}

@media (min-width: 1620px) {
  h2 {
    min-width: 100%;
    text-align: center;
    margin-bottom: 2rem;
  }

  a {
    font-size: clamp(1rem, 1.5vw, 1.5rem);
  }
}
.btn {
  text-align: center;
  border: none;
  border-radius: 0.25rem;
  padding: 0.5rem;
  font-weight: 600;
  margin: 1rem 0.5rem;
  text-decoration: none;
  transition: color .2s ease, background .2s ease, border .2s ease;
}
.btn i {
  margin-left: 0.5rem;
}
.btn:hover {
  cursor: pointer;
  opacity: 0.7;
}

button a {
  text-decoration: none;
}
button a i {
  margin-left: 0.5rem;
}

.btn-sm {
  min-width: 30%;
}

.btn-md {
  min-width: 40%;
}

.btn-lg {
  min-width: 50%;
}

.navbar {
  width: 100%;
  z-index: 3;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 5%;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 1s ease-in;
}

.logo-img {
  width: clamp(2.5rem, 2vw, 3.5rem);
}

.header-alert {
  background-color: #81a9fd;
  color: #000000;
  text-transform: uppercase;
  font-weight: 900;
}

/**************************************************************/
.nav-btn {
  height: 2.5rem;
  width: 2.5rem;
  background-color: transparent;
  border: none;
}

.hamburger,
.hamburger::before,
.hamburger::after {
  z-index: 5;
  display: block;
  position: absolute;
  width: 1.5rem;
  height: 0.15rem;
  background-color: black;
  transition: transform 0.35s ease-in-out, opacity 0.2s linear;
}

.hamburger::before,
.hamburger::after {
  content: "";
  position: absolute;
  left: 0;
}

.hamburger::before {
  bottom: 0.4rem;
}

.hamburger::after {
  top: 0.4rem;
}

.hamburger.active {
  transform: rotate(315deg);
}

.hamburger.active::after {
  transform: rotate(450deg) translate(-0.4rem);
}

.hamburger.active::before {
  opacity: 0;
}

/**************************************************************/
.navlist-container {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  position: fixed;
  top: 0;
  right: 0;
  height: 3rem;
  width: 3rem;
  border-radius: 100%;
  transform: translateX(100%);
  visibility: hidden;
  transition: height 0.1s ease-in, width 0.1s ease-in, all 0.25s ease-in-out;
}

.navlist-container.active {
  visibility: visible;
  background-color: #fcfcfc;
  height: 100vh;
  width: 50%;
  padding: 0 1rem;
  z-index: 3;
  border-radius: 0;
  transform: translateX(0);
  transition: height 0.1s ease, width 0.1s ease, all 0.25s ease;
}

.navlink {
  text-decoration: none;
  color: #000000;
}

.navitem {
  list-style: none;
  padding: 0.5rem 0;
}

.navbar {
  position: static;
}

.scrolled {
  position: fixed;
  background-color: #fcfcfc;
  transform: translateY(-5%);
  transition: all 1s ease-in;
}

/**************************************************************/
@media (min-width: 900px) {
  .navlist-container {
    visibility: visible;
    justify-content: normal;
    transform: translateX(0%);
    position: unset;
    top: unset;
    right: unset;
    width: 75%;
    height: unset;
    border-radius: 0;
  }

  .navlist {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
  }

  .navlink {
    position: relative;
    margin: 0 1rem;
    padding-bottom: 0.5rem;
  }
  .navlink:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: .25rem;
    background: transparent;
    transition: all .25s ease;
  }

  .navlink:hover:after {
    cursor: pointer;
    width: 100%;
    height: 0.25rem;
    background: linear-gradient(to right, #81a9fd 25%, #81fdcb);
  }

  .hamburger {
    display: none;
  }
}
.hero {
  margin-top: 15vh;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: normal;
  align-items: center;
  padding: 1.5rem;
}

.hero-text-container {
  text-align: center;
  width: 100%;
  margin-bottom: 1rem;
}
.hero-text-container h1 {
  line-height: 1.25;
}
.hero-text-container p {
  font-size: clamp(1.5rem, 3vw, 3rem);
  line-height: 1;
}

.hero-btn-container {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.hero-btn-container > .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #81a9fd 10%, #81fdcb);
  color: #fcfcfc;
}
.hero-btn-container > .fill a {
  color: #fcfcfc;
}

.hero-btn-container > .nofill {
  background-color: white;
  border: solid #81a9fd 0.2rem;
  border-image: linear-gradient(to right, #81a9fd 10%, #81fdcb) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #81a9fd;
}
.hero-btn-container > .nofill a {
  color: #81a9fd;
}

.coder-img {
  height: 40vh;
}

/*****************************************************************/
@media (min-width: 900px) {
  .hero {
    display: flex;
    flex-direction: row;
    justify-content: normal;
    align-items: center;
    margin-top: 0;
  }

  .hero-text-container {
    width: 60%;
    text-align: left;
    margin-left: 1.5rem;
  }

  .hero-btn-container {
    justify-content: flex-start;
    margin: 1rem 0;
  }

  .hero-btn-container > .fill:hover {
    padding: 0.65rem;
    background: linear-gradient(to right, #81fdcb 10%, #81a9fd);
    color: #fcfcfc;
  }
  .hero-btn-container > .fill:hover a {
    color: #fcfcfc;
  }

  .hero-btn-container > .nofill:hover {
    background: linear-gradient(to right, #81a9fd, #81fdcb);
    color: #fcfcfc;
  }

  .coder-img {
    margin-right: 1.5rem;
    width: 35%;
    height: unset;
  }
}
/*****************************************************************/
@media (min-width: 1620px) {
  .hero {
    justify-content: space-evenly;
  }
}
.project {
  transform: translateX(-100%);
  position: relative;
  opacity: 0;
  width: 85vw;
  transition: transform 1s ease-in-out;
  background-color: #fcfcfc;
  margin: 1rem 0;
}
.project:after {
  content: "";
  position: absolute;
  display: block;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0.5rem;
}

.slide-in {
  opacity: 1;
  transform: translateX(0);
  visibility: visible;
  transition: all 1s ease-in-out;
}

.project-img-container {
  width: 100%;
}

.project-img {
  width: 100%;
  object-fit: cover;
}

.project-info {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: normal;
  align-items: center;
}

.project-name {
  margin-bottom: 0.75rem;
}

.project-name,
.project-description {
  text-align: center;
}

.project-btn-container {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.project-btn-container a i {
  margin-left: 0.5rem;
}

.tech-container {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  width: 75%;
}

.tech {
  padding: 0.1rem;
  border: 0.1rem solid;
  margin: 0.1rem;
}
.tech p {
  font-size: clamp(0.7rem, 1.5vw, 0.9rem);
  font-weight: 200;
}

/***************************************************************/
.featured:after {
  background-color: #57ad45;
}
.featured .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #57ad45 10%, #57ad45);
  color: white;
}
.featured .fill a {
  color: white;
}
.featured .nofill {
  background-color: white;
  border: solid #57ad45 0.2rem;
  border-image: linear-gradient(to right, #57ad45 10%, #57ad45) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #57ad45;
}
.featured .nofill a {
  color: #57ad45;
}
.featured .tech {
  border-color: #57ad45;
}

.project1:after {
  background-color: #ff7d1a;
}
.project1 .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #ff7d1a 10%, #ff7d1a);
  color: white;
}
.project1 .fill a {
  color: white;
}
.project1 .nofill {
  background-color: white;
  border: solid #ff7d1a 0.2rem;
  border-image: linear-gradient(to right, #ff7d1a 10%, #ff7d1a) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #ff7d1a;
}
.project1 .nofill a {
  color: #ff7d1a;
}
.project1 .tech {
  border-color: #ff7d1a;
}

.project2:after {
  background-color: #2bbcbd;
}
.project2 .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #2bbcbd 10%, #2bbcbd);
  color: white;
}
.project2 .fill a {
  color: white;
}
.project2 .nofill {
  background-color: white;
  border: solid #2bbcbd 0.2rem;
  border-image: linear-gradient(to right, #2bbcbd 10%, #2bbcbd) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #2bbcbd;
}
.project2 .nofill a {
  color: #2bbcbd;
}
.project2 .tech {
  border-color: #2bbcbd;
}

.project3:after {
  background-color: #6c7073;
}
.project3 .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #6c7073 10%, #6c7073);
  color: white;
}
.project3 .fill a {
  color: white;
}
.project3 .nofill {
  background-color: white;
  border: solid #6c7073 0.2rem;
  border-image: linear-gradient(to right, #6c7073 10%, #6c7073) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #6c7073;
}
.project3 .nofill a {
  color: #6c7073;
}
.project3 .tech {
  border-color: #6c7073;
}

.project4:after {
  background-color: #e648e5;
}
.project4 .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #e648e5 10%, #e648e5);
  color: white;
}
.project4 .fill a {
  color: white;
}
.project4 .nofill {
  background-color: white;
  border: solid #e648e5 0.2rem;
  border-image: linear-gradient(to right, #e648e5 10%, #e648e5) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #e648e5;
}
.project4 .nofill a {
  color: #e648e5;
}
.project4 .tech {
  border-color: #e648e5;
}

/***************************************************************/
@media (min-width: 900px) {
  .projects {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: normal;
    flex-wrap: wrap;
  }

  .project {
    width: 40vw;
  }

  /*
  !!!! Making a min-height to ensure a more homogenous visual appeareance of the project card with different length descriptions
  */
  .project-description {
    min-height: 7.5rem;
  }

  /***Featured project styling***/
  .featured {
    width: 85vw;
    display: flex;
    flex-direction: row;
    justify-content: normal;
    align-items: normal;
    /***Color stripe***/
    /******/
  }
  .featured .project-img {
    height: 100%;
  }
  .featured .project-info {
    padding: 1.5rem;
    width: 45%;
    justify-content: space-between;
  }
  .featured:after {
    bottom: unset;
    left: unset;
    top: 0;
    right: 0;
    width: 0.5rem;
    height: 100%;
  }
}
/********************************************************************/
@media (min-width: 1800px) {
  .project {
    width: 35vw;
    margin-bottom: 5rem;
  }

  .featured {
    width: 80vw;
  }
  .featured .project-info {
    padding: 3rem;
  }
}
.about-card {
  width: 85vw;
  margin: 1rem 0;
  padding: 1.5rem;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  justify-content: normal;
  align-items: center;
}
.about-card .nofill {
  background-color: white;
  border: solid #000000 0.2rem;
  border-image: linear-gradient(to right, #000000 10%, #000000) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #000000;
}
.about-card .nofill a {
  color: #000000;
}
.about-card h3 {
  position: relative;
  text-align: center;
  margin-bottom: 1rem;
}
.about-card h3:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 35%;
  height: 0.25rem;
  width: 30%;
  background-color: #74e3d5;
}

.about-card-top {
  margin-bottom: 1rem;
  padding: 0.5rem 0;
}
.about-card-top span {
  display: flex;
  flex-direction: row;
  justify-content: normal;
  align-items: center;
  margin-bottom: 1rem;
}

.label {
  font-weight: 600;
  margin-right: 0.2rem;
}

.answer {
  font-weight: 300;
}

.me-description-container {
  display: flex;
  flex-direction: column;
  justify-content: normal;
  align-items: center;
}

.resume-container {
  width: 100%;
  display: none;
}

.resume-container.active {
  display: flex;
  min-height: 80vh;
}

.resume-display {
  width: 100%;
  min-height: 80vh;
}

.about-card-bottom-container {
  display: flex;
  flex-direction: column;
  justify-content: normal;
  align-items: center;
}
.about-card-bottom-container img {
  width: 1.5rem;
}
.about-card-bottom-container h5 {
  margin-top: 1.5rem;
}

/*****************************************************************/
@media (min-width: 900px) {
  .about-card {
    flex-direction: row;
    justify-content: space-evenly;
    flex-wrap: wrap;
  }

  .about-card-top {
    order: 2;
    width: 40%;
    display: flex;
    flex-direction: column;
    justify-content: normal;
    align-items: normal;
  }

  .about-card-bottom-container {
    align-items: flex-start;
    width: 40%;
  }
  .about-card-bottom-container h4 {
    text-align: center;
    width: 100%;
  }
  .about-card-bottom-container h4,
.about-card-bottom-container p {
    margin-bottom: 1.5rem;
  }
  .about-card-bottom-container h5 {
    margin: 0;
  }

  .resume-container {
    order: 3;
  }
}
/*****************************************************************/
@media (min-width: 1800px) {
  .about-card {
    width: 80%;
  }
}
.skills {
  margin-bottom: 1.5rem;
}
.skills h3 {
  margin: 1.5rem 0;
}

.skills-container {
  display: flex;
  flex-wrap: wrap;
  width: 90%;
  margin: 0 auto;
  list-style-type: none;
}

/***********************************************************/
.polygon {
  position: relative;
  transition: all 0.5s;
}

.polygon:hover {
  transition: all 0.5s ease-in-out;
  filter: drop-shadow(0.1rem 0.2rem 0.2rem #4444dd);
  transform: scale(1.01);
}

.polygon:after {
  content: "";
  display: block;
  padding-bottom: 79%;
}

.content-container {
  position: absolute;
  width: 95%;
  padding-bottom: 100%;
  background: white;
  -webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

.content-container * {
  position: absolute;
}

.content {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  transition: transform 0.6s;
  width: 100%;
  height: 100%;
}

/***************************************************************/
.front,
.back {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  position: absolute;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  width: 100%;
  height: 100%;
}

.back {
  transform: translateY(-100%);
}

.content-container:hover .content,
.content-container:active .content {
  transform: translateY(100%);
}

/***************************************************************/
.fa-html5 {
  color: #f16529;
}

.fa-css3-alt {
  color: #2861ef;
}

.fa-js-square {
  color: #f0be25;
}

.fa-sass {
  color: #d579a8;
}

.fa-bootstrap {
  color: #6f11f4;
}

.fa-php {
  color: #777bb3;
}

/*****************************************************/
.polygon i {
  font-size: clamp(2.5rem, 5vw, 5rem);
}
.polygon img {
  width: clamp(2.5rem, 5vw, 5rem);
}

/*****************************************************/
.polygon {
  width: 50%;
}

.polygon:nth-child(3n+3) {
  margin-left: 25%;
}

@media (min-width: 425px) {
  .inner-container {
    padding-bottom: 10%;
  }

  .polygon {
    width: 40%;
  }

  .polygon:nth-child(3n+3) {
    margin-left: 0;
  }

  .polygon:nth-child(4n+3) {
    margin-left: 20%;
  }
}
@media (min-width: 768px) {
  .polygon {
    width: 25%;
  }

  .polygon:nth-child(4n+3) {
    margin-left: 0;
  }

  .polygon:nth-child(6n+4) {
    margin-left: 12.5%;
  }
}
@media (min-width: 1024px) {
  .polygon {
    width: 20%;
  }

  .polygon:nth-child(6n+4) {
    margin-left: 0%;
  }

  .polygon:nth-child(4n+6) {
    margin-left: 10%;
  }
}
/***********************************************************/
@media (min-width: 1800px) {
  .skills-container {
    width: 80%;
  }
}
.contact {
  background: linear-gradient(#e0e0e0, #81a9fd);
}

.form-container {
  margin: 1.5rem 0;
  width: 90%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.form-container input,
.form-container textarea {
  width: 100%;
  margin-bottom: 0.5rem;
}
.form-container label {
  font-weight: 600;
}
.form-container textarea {
  min-height: 5rem;
}

.submit-btn {
  margin: 0;
  padding: 0.65rem;
  background: linear-gradient(to right, #5f7ec2 10%, #5f7ec2);
  color: #fcfcfc;
}
.submit-btn a {
  color: #fcfcfc;
}

.contact-info-container {
  margin: 1rem 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: flex-end;
}

.contact-info {
  margin: 0 1rem;
}
.contact-info a {
  font-size: clamp(1rem, 1.5vw, 1.5rem);
  text-decoration: none;
  color: #000000;
}
.contact-info a:hover {
  color: #81a9fd;
}

@media (min-width: 900px) {
  .form-container {
    width: 30%;
  }

  .contact-info a:hover {
    color: #5f7ec2;
  }
}
.thanks {
  position: relative;
  width: 100%;
  height: 100vh;
}

.thanks-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: absolute;
  top: 30%;
}

.thanks-container > .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #81a9fd 10%, #81fdcb);
  color: #fcfcfc;
}
.thanks-container > .fill a {
  color: #fcfcfc;
}

@media (min-width: 900px) {
  .thanks-container > .fill:hover {
    padding: 0.65rem;
    background: linear-gradient(to right, #81fdcb 10%, #81a9fd);
    color: #fcfcfc;
  }
  .thanks-container > .fill:hover a {
    color: #fcfcfc;
  }
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  scroll-behavior: smooth;
}

body {
  font-size: 15px;
  font-weight: 300;
  font-family: "Nunito", sans-serif;
  background-color: #e0e0e0;
  color: #000000;
}
body .fill {
  padding: 0.65rem;
  background: linear-gradient(to right, #81fdcb 10%, #81fdcb);
  color: white;
}
body .fill a {
  color: white;
}
body .nofill {
  background-color: white;
  border: solid #81fdcb 0.2rem;
  border-image: linear-gradient(to right, #81fdcb 10%, #81fdcb) 5;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  color: #81fdcb;
}
body .nofill a {
  color: #81fdcb;
}

section {
  width: 100%;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: normal;
  align-items: center;
}

.overlay {
  display: none;
}

.overlay.active {
  display: inline;
  position: fixed;
  background-color: #000000;
  opacity: 70%;
  width: 100%;
  height: 100%;
  top: 0;
  z-index: 2;
}

.hidden {
  visibility: hidden;
}

.visible {
  visibility: visible;
}

/*************************************************************/
.icon-bar {
  visibility: hidden;
  transform: translateX(-100%);
}
.icon-bar i {
  font-size: clamp(1rem, 1.5vw, 1.5rem);
}

.icon-bar.visible {
  visibility: visible;
  position: fixed;
  transform: translateX(0);
  left: 0;
  top: 40%;
  transition: transform 1s ease-in;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: transparent;
}
.icon-bar.visible a {
  padding: 0.25rem;
  margin: 0.5rem 0;
  color: #000000;
}

/*************************************************************/
@media (min-width: 900px) {
  .icon-bar a:hover {
    color: #5f7ec2;
  }
}

/*# sourceMappingURL=style.css.map */
