@import 'utilities.css';

:root{
    --primary:#3DCFD3;
    --dark:#161616;
    --pure:#FFFFFF;
    --ternary:#898989;
    --light:#F2F2F2;
    --secondary:#070606;
}

body {
    font-family: 'Poppins', sans-serif;
    overflow-x: hidden; /* This prevents mobile side-to-side wobbling */
}

html{
    scroll-behavior: smooth;
}
*{
    padding: 0;
    margin:0;
    box-sizing: border-box;
    -webkit-font-smoothing:antialiased;
}

img{
    max-width:100%;
    display:block;
}

/* hide empty placeholder images (e.g. hamburger/close icons) without removing them from the markup */
img[src=""]{
    display:none;
}

header{
    background: var(--dark);
    clip-path:polygon(0 0, 100% 0, 100% 100%, 70% 87%, 0 100%);
}
.container{
    max-width:1152px;
    padding:0 15px;
    margin:0 auto;
}

@media (min-width: 576px) {
    .container {
      max-width: 540px;
    }
  }

  @media (min-width: 768px) {
    .container {
      max-width: 720px;
    }
  }

  @media (min-width: 992px) {
    .container {
      max-width: 960px;
    }
  }

  @media (min-width: 1200px) {
    .container {
      max-width: 1152px;
    }
  }

header nav .left a{
    color:var(--pure);
    text-decoration: none;
    margin-right:2rem;
    text-transform:uppercase;
    transition:all .3s ease;
    -webkit-transition:all .3s ease;
    -moz-transition:all .3s ease;
    -ms-transition:all .3s ease;
    -o-transition:all .3s ease;
}

nav {
    position: sticky;
    top: 0;
    width: 100%;
    z-index:10;
  }
header nav .left a:hover{
    color:var(--primary);
}
header nav {
    padding:2rem 0;
    flex-wrap:wrap;
}
header nav .branding{
    margin-right:3rem;
}

/* HERO */
.hero{
    padding:4rem 0 6rem;
    min-height:50vh;
}
.hero .right{
    color:var(--pure);
    max-width:700px;
}
.hero .right h6{
    font-size:1.6rem;
    color:var(--primary);
    margin-bottom:0.5rem;
}
.hero .right h1{
    font-size:4rem;
    font-weight:100;
    line-height:1.2;
    margin-top:1rem;
    word-wrap:break-word;
}
.hero .right h1 span{
    color:var(--primary);
}
.hero .right p{
    line-height:1.9;
    margin-bottom:2rem;
}

section{
    padding:6rem 0;
}
section.about .about-me-img{
    height:450px;
    width:auto;
    max-width:100%;
    object-fit:cover;
    margin:0 auto;
}
section.about h1{
    margin-bottom: 1rem;
    font-size:1.6rem;
    font-weight:400;
}
section.about h1 span{
    color:var(--primary);
}
section.about h3{
    font-size: 1rem;
    margin-bottom:1rem;
    font-weight: 400;
}

section.about p{
    font-family:'Lato', sans-serif;
    color:var(--ternary);
    line-height: 1.8;
    margin-bottom:2rem;
}
section.about .social{
    display:flex;
    column-gap: 10px;
}

/* one single source of truth for section headings (was duplicated/conflicting before) */
.section-heading{
   color:var(--secondary);
   text-align: center;
   margin-bottom:1rem;
   line-height: 1.3;
   font-size:2.5rem;
   font-weight:600;
}
.section-heading span{
    color:var(--primary);
}
.section-heading + p{
   color:var(--ternary);
   font-family:'Lato', sans-serif;
   margin-bottom:3rem;
   text-align: center;
   max-width:600px;
   margin-left:auto;
   margin-right:auto;
}

/* Skills Section */
#skills {
  padding: 50px 20px;
  background: #f9f9f9;
  text-align: center;
}

#skills h2 {
  font-size: 2.2rem;
  margin-bottom: 10px;
  color: #333;
}

.skills-subtitle {
  font-size: 1.1rem;
  color: #666;
  margin-bottom: 40px;
}

.skills-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  max-width: 900px;
  margin: 0 auto;
}

.skill-category {
  width: 100%;
  text-align: left;
}

.skill-category h3 {
  font-size: 1.2rem;
  color: #2c3e50;
  margin-bottom: 12px;
  border-left: 4px solid #007bff;
  padding-left: 12px;
}

/* Tags - Horizontal Left to Right */
.skill-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-start; /* Left aligned */
}

.skill-tag {
  background: #007bff;
  color: #fff;
  padding: 8px 18px;
  border-radius: 30px;
  font-size: 0.95rem;
  font-weight: 500;
  transition: 0.3s ease;
  box-shadow: 0 2px 6px rgba(0, 123, 255, 0.2);
  white-space: nowrap;
}

.skill-tag:hover {
  background: #0056b3;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 123, 255, 0.4);
}


section.freelancer{
    text-align: center;
    background:linear-gradient(rgba(0,0,0,0.7),rgba(0,0,0,0.7)),url(../images/camera.png);
    background-size:cover;
    background-position:center;
    color:var(--pure);
    clip-path:polygon(0 0, 100% 0, 100% 100%, 67% 80%, 0 100%);
    padding-bottom:14rem;
}
section.freelancer h1{
    font-size:3rem;
    margin-bottom:0.5rem;
}
section.freelancer p{
    font-size:1.3rem;
    margin-bottom: 2rem;
    font-family:'Lato', sans-serif;
}

/* WORK / PROJECTS */
section.work{
    background:var(--light);
}
section.work .card-wrapper{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-gap:2rem;
}
section.work .card-wrapper .card{
    position:relative;
    height:250px;
    background:none;
    padding:0;
    box-shadow:none;
    border-radius:0;
    max-width:none;
    width:100%;
    overflow:hidden;
}
section.work .card-wrapper .card .overlay{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(61, 207, 211,0.9);
    display:flex;
    justify-content: center;
    align-items: center;
    flex-direction:column;
    color:var(--light);
    opacity:0;
    text-align:center;
    padding:1rem;
    transition:all .3s ease;
    -webkit-transition:all .3s ease;
    -moz-transition:all .3s ease;
    -ms-transition:all .3s ease;
    -o-transition:all .3s ease;
}
section.work .card-wrapper .card:hover .overlay{
    opacity:1;
}

section.work .card-wrapper .card .overlay span{
    margin-bottom:0.5rem;
    font-weight:600;
}

section.work .card-wrapper .card .overlay a{
    color:var(--secondary);
    text-decoration: none;
}
section.work .card-wrapper .card img{
    height:100%;
    width:100%;
    object-fit:cover;
}

/* EDUCATION (this whole section previously failed to render — a stray
   "***" left in the stylesheet broke the CSS parser and silently
   dropped the rule) */
.education {
    background-color: var(--light);
    padding: 4rem 0;
  }

  .education .section-heading {
    color: var(--secondary);
    text-align: center;
    margin-bottom: 3rem;
    font-size: 2rem;
  }

  .education-list {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    align-items: center;
  }

  .education-item {
    width: 100%;
    max-width: 600px;
    background-color: var(--pure);
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
  }

  .education-item:hover {
    transform: scale(1.03);
    background-color: var(--primary);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
  }

  .education-item h3 {
    color: var(--primary);
    font-size: 1.4rem;
    margin-bottom: 0.5rem;
    transition: color 0.3s ease;
  }

  .education-item:hover h3 {
    color: white;
  }

  .education-item p,
  .education-item span {
    font-family: 'Lato', sans-serif;
    color: var(--ternary);
    transition: color 0.3s ease;
    display:block;
  }

  .education-item p{
    margin-bottom:0.5rem;
  }

  .education-item:hover p,
  .education-item:hover span {
    color: white;
  }

/* CONTACT */
section.contact .card-wrapper{
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    grid-gap:3rem;
    max-width:600px;
    margin:0 auto 4rem;
}
/* a stray <br> sat inside this grid and was being treated as its own grid
   item, throwing off the spacing between the two contact cards */
section.contact .card-wrapper br{
    display:none;
}
section.contact .card-wrapper .card{
    text-align: center;
    background:none;
    box-shadow:none;
    padding:0;
    max-width:none;
    width:100%;
}
section.contact .card-wrapper .card i{
    color:var(--primary);
}
section.contact .card-wrapper .card h1{
    font-weight:400;
    font-size:1.4rem;
    margin-bottom:0.5rem;
}
section.contact .card-wrapper .card h6{
    font-size:1rem;
    color:var(--ternary);
    font-weight:400;
}

section.contact form{
    max-width:900px;
    margin:0 auto;
}

section.contact .input-wrap{
    display:grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap:2rem;
    margin-bottom:2rem;
}
section.contact .input-wrap-2{
    display: flex;
    flex-direction: column;
}
section.contact .input-wrap-2 input{
    margin-bottom:2rem;
}
section.contact input{
    padding:0.7rem;
    border:1px solid var(--light);
    font-size: 0.9rem;
    width:100%;
}
section.contact .input-wrap-2 textarea{
    padding:0.7rem;
    border:1px solid var(--light);
    font-size: 0.9rem;
    width:100%;
    font-family:inherit;
}
section.contact .input-wrap-2 textarea:focus, section.contact input:focus{
    outline:none;
    border-color:var(--primary);
}
section.contact .btn-wrapper{
    text-align: center;
    margin-top:2rem;
}

footer{
    background:var(--dark);
    text-align: center;
    padding:5rem 0;
}
footer img{
    margin:0 auto 2rem;
}
footer .footer-socials a{
    margin-right:1rem;
}
footer .footer-socials{
    margin-bottom:2rem;
    display:flex;
    justify-content:center;
}
footer .copyright{
    color:var(--ternary);
}


/* MOBILE NAV */
.site-main-wrapper {
    position: relative;
    overflow-x: hidden; /* Double protection for the animations */
}
.hamberger{
    position:absolute;
    top:40px;
    right:40px;
    z-index:11;
    background:none;
    border:none;
    outline: none;
    cursor: pointer;
    display:none;
}

.mobile-nav{
   position: fixed;
   top:0;
   left:0;
   z-index:1001;
   background:var(--light);
   width:100%;
   height:100%;
   padding:2rem;
   padding-top:5rem;
   transform: translateX(-100%);
   -webkit-transform: translateX(-100%);
   -moz-transform: translateX(-100%);
   -ms-transform: translateX(-100%);
   -o-transform: translateX(-100%);
   transition:all .5s ease-in-out;
   -webkit-transition:all .5s ease-in-out;
   -moz-transition:all .5s ease-in-out;
   -ms-transition:all .5s ease-in-out;
   -o-transition:all .5s ease-in-out;
   overflow-y:auto;
}
.open{
    transform:translateX(0);
    -webkit-transform:translateX(0);
    -moz-transform:translateX(0);
    -ms-transform:translateX(0);
    -o-transform:translateX(0);
}
.times{
   position:fixed;
   top:30px;
   right:30px;
   border: none;
   background:none;
   outline:none;
   cursor: pointer;
   z-index:1002;
}

.mobile-nav ul{
    list-style-type: none;
}
.mobile-nav ul li{
    margin-bottom:1.5rem;
}
.mobile-nav ul li a{
    color:var(--secondary);
    text-decoration:none;
    font-size: 2rem;
}

@media (max-width:1024px){
    header #main-nav{
        display:none;
    }
    .hamberger{
        display: block;
    }
    .hero .right h1{
        font-size: 3rem;
    }
    .hero{
        padding-top:8rem;
    }
    header{
        clip-path: polygon(0 0, 100% 0, 100% 100%, 27% 89%, 0 100%);
    }
    section.about .about-me-img{
        height: 300px;
    }
    section.work .card-wrapper{
        grid-template-columns: repeat(2,1fr);
    }
}

@media (max-width:768px){
    section{
        padding:4rem 0;
    }
    .section-heading{
        font-size:2rem;
    }
    .hero .right h1{
        font-size:2.4rem;
    }
    .hero .right p{
        line-height:1.7;
    }
}

@media (max-width:576px){
    header{
        clip-path: polygon(0 0, 100% 0, 100% 100%, 69% 95%, 0 100%);
    }
    .hamberger{
        top:25px;
        right:20px;
    }
    .hero{
        padding-top:6rem;
        padding-bottom:4rem;
        text-align:center;
    }
    .hero .right{
        margin:0 auto;
    }
    .about-inner-wrap{
        flex-direction: column;
    }
    section.about .about-me-img{
        height:auto;
        width:80%;
        max-width:300px;
    }
    .about .right{
        text-align: center;
        margin-top:2rem;
    }
    .about .right .social{
        justify-content: center;
    }
    section{
        padding: 3rem 0;
    }
    section.freelancer h1{
        line-height:1.2;
        font-size:2rem;
    }
    section.freelancer{
        clip-path: polygon(0 0, 100% 0, 100% 100%, 67% 90%, 0 100%);
        padding-bottom: 6rem;
    }
    .section-heading + p{
        margin-bottom: 2rem;
    }
    section.work .card-wrapper{
        grid-template-columns: repeat(1,1fr);
    }
    section.contact .card-wrapper{
        grid-template-columns: repeat(1,1fr);
        gap:2rem;
    }
    section.contact .input-wrap{
        grid-template-columns: repeat(1, 1fr);
        gap:1rem;
    }
    .certifications-section{
        padding:4rem 0;
    }
    .certifications-section .card{
        padding:1.5rem;
    }
}


.flex{
    display:flex;
}
.items-center{
    align-items:center;
}
.justify-between{
    justify-content: space-between;
}
.btn{
    padding:0.8rem 3rem;
    font-size:1rem;
    font-weight:600;
    border:2px solid transparent;
    outline:none;
    cursor:pointer;
    text-transform: uppercase;
    transition:all .3s ease;
    -webkit-transition:all .3s ease;
    -moz-transition:all .3s ease;
    -ms-transition:all .3s ease;
    -o-transition:all .3s ease;
}
.btn-primary{
    background:var(--primary);
    color:var(--secondary);
}
.btn-primary:hover{
    background:transparent;
    border-color: var(--primary);
    color:var(--primary);
}
.btn-secondary{
    background:transparent;
    color:var(--primary);
    border-color:var(--primary);
}
.btn-secondary:hover{
    background:var(--primary);
    color:var(--secondary);
}

.flex-1{
    flex:1;
}
.justify-center{
    justify-content: center;
}

@media (max-width:576px){
    .btn{
        padding:0.7rem 2rem;
        font-size:0.9rem;
    }
}


/* CERTIFICATIONS — this used to be a bare, unscoped ".card" rule that leaked
   its background/padding/shadow/max-width into every other ".card" on the
   page (project cards, contact cards), which was the main cause of the
   misalignment across sections. Scoping it here fixes that. */
.certifications-section {
    padding: 6rem 0;
    display: flex;
    justify-content: center;
  }

  .certifications-section .card {
    background-color: #fff;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease-in-out;
    width: 100%;
    max-width: 600px;
  }

  .certifications-section .card:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  }

  .certifications ul {
    list-style-type: none;
    padding: 0;
  }

  .certifications ul li {
    margin-bottom: 1.5rem;
  }

  .certifications ul li h4 {
    font-size: 1.2rem;
    color: var(--primary);
    margin-bottom: 0.5rem;
  }

  .certifications ul li p {
    color: var(--ternary);
  }

  .certifications-section .section-heading {
    color: var(--secondary);
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
    text-align:left;
    border-bottom: 2px solid var(--primary);
    padding-bottom: 0.5rem;
  }