@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap");
/*----- Root -----*/
:root {
  --dark-navy: #020c1b;
  --light-navy: #112240;
  --lightest-navy: #233554;
  --navy-shadow: rgba(2, 12, 27, 0.7);
  --dark-slate: #495670;
  --slate: #8892b0;
  --light-slate: #a8b2d1;
  --green: #64ffda;
  --error-txt: #d93025;

  --font-sans: "Calibre", "Inter", "San Francisco", "SF Pro Text", -apple-system,
    system-ui, sans-serif;
  --font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;

  --p-fz: clamp(0.3rem, 3vw, 1.2rem);
  --fz-lg: clamp(3rem, 8vw, 7rem);
  --fz-md: clamp(2rem, 5vw, 4rem);
  --fz-sm: clamp(0.5rem, 3vw, 1.5rem);
  --fz-logo: clamp(0.3rem, 3vw, 1rem);

  --fw-lg: 600;
  --fw-logo: 700;

  --padding-lg: 1.25em 1.75em;
  --border-radius: 0.4em;

  --nav-scroll-height: 0.7em;
  --transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1);
}

/*----- Base -----*/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  list-style-type: none;
  text-decoration: none;
}
html {
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

body,
button,
input {
  font-family: var(--font-sans);
  font-size: var(--p-fz);
}

body {
  background-color: var(--dark-navy);
  color: var(--light-slate);
}

h1,
h2,
h3 {
  color: var(--slate);
  margin-bottom: 1em;
  padding: 0 2%;
}

a {
  color: inherit;
}

img {
  max-width: 100%;
  height: auto;
}

button {
  padding: var(--padding-lg);
  letter-spacing: 0.1em;
  line-height: 1;
  margin-top: 0.2em;
  cursor: pointer;
  background-color: transparent;
  color: var(--green);
  border-radius: var(--border-radius);
  border: 1px solid var(--green);
  transition: var(--transition);
  -webkit-transition: var(--transition);
  margin-top: 1em;
}

/*----- Animations -----*/
@keyframes fadeIn {
    0% {
        opacity: 0;
        transform: translateY(20px); 
    }
    100% {
        opacity: 1;
        transform: translateY(0); 
    }
}

/* Initially hide elements */
.greeting,
.name-title,
.role-title,
.hero-paragraph,
.hero-button {
    opacity: 0; 
}

/* fadeIn animation */
.greeting.animate-hero {
    animation: fadeIn 1s ease forwards;
    animation-delay: 0.2s;
}

.name-title.animate-hero {
    animation: fadeIn 1s ease forwards;
    animation-delay: 0.4s;
}

.role-title.animate-hero {
    animation: fadeIn 1s ease forwards;
    animation-delay: 0.6s;
}

.hero-paragraph.animate-hero {
    animation: fadeIn 1s ease forwards;
    animation-delay: 0.8s;
}

.hero-button.animate-hero {
    animation: fadeIn 1s ease forwards;
    animation-delay: 1s;
}

.animate-on-scroll {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 2s ease-out, transform 2s ease-out;
}

.animate-on-scroll.in-view {
  opacity: 1;
  transform: translateY(0);
}


/*----- Reusable CSS Classes -----*/
.section-title{
    font-size: var(--fz-sm);
    margin-bottom: 2em;
    padding: 0 2%;
}

.projects, .contact{
  padding: 7em 0;
}

/*----- Navbar -----*/
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 1em 10%;
  z-index: 1000;
  background-color: transparent;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: 0 2px 10px var(--lightest-navy);
  backdrop-filter: blur(50px);
  -webkit-backdrop-filter: blur(10px);
  z-index: -1;
}

.logo {
  color: var(--green);
  font-weight: var(--fw-logo);
  font-size: var(--fz-logo);
  border: 4px solid;
  padding: 0.4em;
  border-radius: 0.5em 0;
}

.navbar a {
  color: var(--light-slate);
  margin-left: 2em;
  transition: var(--transition);
  position: relative;
}

.navbar a:hover,
.navbar a.active-link {
  color: var(--green);
}

#check {
  display: none;
}

.icons {
  position: absolute;
  right: 5%;
  font-size: 2.8rem;
  cursor: pointer;
  display: none;
  color: var(--green);
}

.icons #close-icon {
  display: none;
}

/*----- Layout -----*/
.container {
  max-width: 1250px;
  margin: auto;
}

/*----- Home -----*/
.home {
  gap: 0.7em;
  height: 100vh;
}

.home_container {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: start;
  text-align: start;
  gap: 0.7em;
}

.home .greeting {
  font-size: var(--fz-sm);
  color: var(--green);
  font-family: var(--font-mono);
}

.name-title {
  font-size: var(--fz-lg);
}

.role-title {
  font-size: var(--fz-md);
}

.name-title,
.role-title {
  font-weight: var(--fw-lg);
}

/*----- About -----*/
.about{
  margin-bottom: 7em;
}
.about-content{
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 50px;
}

.about-image{
    position: relative;
    max-width: 100%;
}

.about-image-resize{
    display: block;
    position: relative;
    width: 100%;
    object-fit: cover;
}

.cv{
    display: none;
}

.tech-skills ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(140px, 200px));
    gap: .5em;
    padding: 0 2em;
    margin: 20px 0px 0px;
    overflow: hidden;
}

.tech-skills li {
    position: relative; 
    padding-left: 1.5em; 
    margin-bottom: .5em; 
    display: flex;
    align-items: center;
}

.tech-skills li::before {
    content: '■';
    color: var(--green); 
    position: absolute;
    left: 0; 
    top: -.1em ; 
}

.key-skills{
    margin-top: .9em;
    -webkit-padding-start: .5em;
}

.underline{
    text-decoration: underline;
    margin: 2em 0;
}

.skills-description{
    display: flex;
    gap: 2em;
}

.skill-title{
    color: var(--green);
    font-size: var(--fz-sm);
    margin-bottom: .5em;
}

/*----- Projects -----*/
#projects {
    position: relative; 
}

.project {
    position: relative;
    display: grid;
    gap: .7em;
    grid-template-columns: repeat(12, 1fr);
    align-items: center;
}

.project-content{
    position: relative;
    grid-area: 1 / 1 / -1 / 7;
    padding: 0 1.5em;
}

.project-description, .project-tech, .project-links{
    margin-top: 1em;
}

.project-image-container {
    width: 100%; 
    height: 20em; 
    overflow: hidden; 
}

.background-image {
    width: 100%;
    height: 100%;
    background-size: cover; 
    background-position: center; 
    border-radius: 5%; 
    max-width: 90%; 
}


.project-list{
  display: flex; 
  flex-wrap: wrap;
  gap: 5em;
}

.project:nth-child(even) .project-content {
    grid-column: 1 / 7; 
    text-align: left; 
    justify-self: start; 
}

.project:nth-child(even) .project-links{
    justify-content: start;
}

.project:nth-child(even) .project-image-container {
    grid-column: 7 / -1; 
    padding: 1em;
}


.project:nth-child(odd) .project-content {
    grid-column: 7 / -1; 
    text-align: right; 
    justify-self: end;
}

.project:nth-child(odd) .project-image-container {
    grid-column: 1 / 7; 
    padding: 1em;
}

.project:nth-child(odd) .project-tech, .project-links{
    justify-content: end;
}

.project-title {
    font-size: var(--fz-sm);
    font-weight: var(--fw-lg);
    text-decoration: underline;
}

.project-tech, .project-links{
    font-size: var(--p-fz);
    display: flex;
    gap: 1.2em;
}

.project-button{
    display: none;
}

.more-projects-popup {
    display: none;
    width: 37%;
    position: absolute;
    z-index: 1000;
    top: 5%; 
    background-color: var(--dark-navy);
    max-height: 70%;
    padding: 1em; 
}

.more-projects-list{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1.2em;
    margin: 20px 0px 0px;
    overflow: hidden;
}

.more-projects-list .more-project{
    background-color: var(--light-navy);
    padding: .5em;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin-bottom: .5em;
}

.more-project-tech{
    display: flex;
    justify-content: flex-start;
    gap: .5em;
}

/*----- Contact -----*/
.contact_container{
    padding-top: 9em;
}

.contact form{
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 5em;
}

.contact_container p{
    margin: 1.2em;
    margin-bottom: 3em;
}

.input-box{
    display: flex;
    width: 100%;
    flex-wrap: nowrap;
    gap: 2em;
}

.input-box label, .textarea-field label {
    font-size: 1.2rem;
    margin-bottom: .7em;
}

.input-field{
    display: flex;
    flex-direction: column; 
}

.input-box .input-field{
    width: 48.5%;
}

.textarea-field{
    width: 100%;
    margin-bottom: 1em;
}

.field .item{
    width: 100%;
    padding: 18px;
    background: transparent;
    border: none;
    border-bottom: 2px solid var(--green);
    outline: none;
    border-radius: 6;
    color: var(--light-slate);
}

.field .item::placeholder{
    color: var(--lightest-slate);
}

form{
    padding: .1em 2%;
}

form .textarea-field .item{
    resize: none;
}

/*----- Footer -----*/
.footer {
    background-color: var(--dark-navy);
    color: var(--light-slate);
    padding: 2em 10%;
    font-family: var(--font-sans);
    font-size: clamp(0.8rem, 2vw, 1rem);
    margin-top: 5em;
}

.footer-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1.5em;
}

.footer-social a {
    font-size: 1.5em;
    color: var(--light-slate);
    margin: 0 0.5em;
    transition: color 0.3s ease;
}

.footer-social a:hover {
    color: var(--green);
}


.footer-bottom {
    text-align: center;
    margin-top: 2em;
    color: var(--slate);
}

/*----- Breakpoint -----*/
@media (max-width: 768px) {
  .container {
    padding: 1em;
    margin: 0 1em;
    min-height: 60vh;
  }

  /*----- Navbar -----*/
  .icons {
    display: inline-flex;
  }

  #check:checked ~ .icons #menu-icon {
    display: none;
  }

  #check:checked ~ .icons #close-icon {
    display: block;
  }

  #check:checked ~ .navbar {
    height: 17.7rem;
  }

  .navbar a {
    display: block;
    font-size: 1.1rem;
    margin: 1.5em 0;
    text-align: center;
    transform: translateY(-50px);
    transition: 0.3s ease-in-out;
    opacity: 0;
  }

  #check:checked ~ .navbar a {
    transform: translateY(0);
    transition-delay: calc(0.15s * var(--i));
    opacity: 1;
  }

  .navbar {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 0;
    background-color: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(2em);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: 0.3s ease-in-out;
  }

  /*----- Home -----*/
  .home {
    height: auto;
  }

  /*----- About -----*/
   .about-content {
        display: flex;
        flex-direction: column; 
    }

    .skills-description{
        flex-direction: column;
    }

    /*----- Projects -----*/
    .project,  .project-description {
        display: flex;
        flex-direction: column; 
        align-items: center;    
        text-align: center; 
        width: 100%;
    }

    .project-image-container {
        order: 1;
        width: 100%;
    }
   
    .project-content {
        order: 2;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    /*----- Contact -----*/
     .input-box{
        flex-wrap: wrap;
    }

    .input-box .input-field{
        width: 100%;

    }
    .input-field{
        margin-bottom: .3em;
    }
    .textarea-field{
        margin-top: -1.5em;
    }

    /*----- Footer -----*/
    .footer-container {
        align-items: center;
    }

    .footer-bottom {
        margin-top: 1em;
    }

}
