


@media screen and (max-width: 768px) {
  @supports (-webkit-touch-callout: none) {
    /* Safari-only CSS here */
    .navbar-buttons button {
      width: 0;
    }
  }
  

  /* Navbar Styles */
  .navbar {
    padding: 20px;
    position: sticky;
    z-index: 9999;
    align-content: center;
  }

.navbar-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--primary-color);
    padding: 10px;
    opacity: 0;
  
    
    z-index: 9998;
    /* Initialize the clip-path to be a small circle at the top right */
    clip-path: circle(0 at 100% 0);
}

.navbar-links.active {
    display: block;
    opacity: 1;
    /* When active, apply an animation to gradually change the clip-path to a large circle */
    animation: clipPathOpen 0.5s ease-out forwards;
   
}

.navbar-links.closed {
    display: block;
    opacity: 1;
    /* When closed, apply an animation to gradually change the clip-path to a small circle */
    animation: clipPathClose 0.5s ease-out forwards;
}

@keyframes clipPathOpen {
  from {
      -webkit-clip-path: circle(0 at 100% 0);
      clip-path: circle(0 at 100% 0);
  }
  to {
      -webkit-clip-path: circle(150% at 100% 0);
      clip-path: circle(150% at 100% 0);
  }
}

@keyframes clipPathClose {
  from {
      -webkit-clip-path: circle(150% at 100% 0);
      clip-path: circle(150% at 100% 0);
  }
  to {
      -webkit-clip-path: circle(0 at 100% 0);
      clip-path: circle(0 at 100% 0);
  }
}

  
  .navbar-links li {
    margin: 10px 20px;
    opacity: 0;
    transition: opacity 0.5s ease;
  }

  .navbar-links.active li {
    opacity: 1;
  }

  .navbar-buttons {
    display: flex;
    align-content: center;
  }
  
  .navbar-buttons .hamburger-toggle {
    display: block;
    margin-top: -2px;
    
  }

  .navbar-buttons .dark-mode-toggle {
    font-size: 16px;
    margin-top: 0;


  }
  
  /* Hero Styles */
  .hero {
    background-size: cover;
    background-position: bottom;
    position: relative;
    z-index: 1;
    overflow-x: hidden;
  }

  .hero-content {
    max-width: 400px;
    margin-left: 10px;
  }
  
  .hero h1 {
    font-size: 56px;
    
  }
  
  .hero p {
    font-size: 18px;
    font-weight: 400;
    max-width: 300px;
    line-height: 1.5;
  }
  
  .hero .btn {
    font-size: 1rem;
    font-weight: 600;
    padding: 8px 12px;
  }


  /* portfolio */

  .section-heading {
    text-align: center;
    margin: 40px 0;
  }


    
  .portfolio-grid {
    grid-template-columns: repeat(6, minmax(315px, 1fr));
    padding: 0 25px 20px 20px;
    justify-content: flex-start;
    margin: 0;
    overflow-y: hidden;
    overflow-x: scroll;
  }


  .portfolio-grid::-webkit-scrollbar-thumb {
    background-color: #888;
    border-radius: 10px;
  }

  .portfolio-item img {
    height: 300px;
    width: auto;
   
  }

  .portfolio-description {
    font-size: 1rem;
    color: #777777; /* or any color you prefer */
    margin-top: 10px; /* add some spacing between title and description */
    width: 270px;
    line-height: 1.3;
    text-align: center;
  }

  
/* about section */

  .about-container {
    flex-direction: column;
    display: flex;
    align-items: center;
    justify-content: center;
    object-fit: contain; /* this will ensure that your image fits within its box */
    box-sizing: border-box; 
  }
  
  .about-grid {

    grid-template-columns: 1fr;
    gap: 20px; 
   
   
  }

  .about-img img {
   
    width: 100%; /* make the image smaller */
    height: auto;
    margin: 1% auto; 
    padding: 0 5%;
    object-fit: contain; /* this will ensure that your image fits within its box */
    box-sizing: border-box; 

  }

  .about-img p {
    margin: 0; /* center the image horizontally */
    padding: 0 5%; /* add some whitespace around the image */
  }

  
  .about-text {
    max-width: auto;
    
  }
  
  .about-text h2 {
    margin: 20px;
    font-weight: 600;
    line-height: 1.5;
  }
  
  .about-text p {
    width: 90%; 
    margin: 1% auto; 
    padding: 3% 0; 
    font-size: 1rem;
    line-height: 1.7;
    font-weight: 400;
  
  }
  
  .about-text p:first-of-type::first-letter {
    font-size: 300%;
    float: left;
    padding: 5px 10px 0 0;
    line-height: 1; 
  }



  /* contact section */

  .contact-container {
    width: 90%; 
 
    padding: 3em 0;
  }

  .form-group input, .form-group textarea {
    width: 95%;
    
  }

  #confirmation {
    width: 5%;
  }

  #button-cover {
    width: 30%;
    height: 5%;
  }
  

}


/* Styles for tablet screens */
@media only screen and (min-width: 768px) and (max-width: 1023px) {

  
  /* Navbar Styles */
  .navbar {
    padding: 20px;
    position: sticky;
    z-index: 9999;
  }

.navbar-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--primary-color);
    padding: 10px;
    opacity: 0;
    overflow: hidden;
    z-index: 9998;
    /* Initialize the clip-path to be a small circle at the top right */
    clip-path: circle(0 at 100% 0);
}

.navbar-links.active {
    display: block;
    opacity: 1;
    /* When active, apply an animation to gradually change the clip-path to a large circle */
    animation: clipPathOpen 0.5s ease-out forwards;
   
}

.navbar-links.closed {
    display: block;
    opacity: 1;
    /* When closed, apply an animation to gradually change the clip-path to a small circle */
    animation: clipPathClose 0.5s ease-out forwards;
}

/* Define the opening animation */
@keyframes clipPathOpen {
    from {
        clip-path: circle(0 at 100% 0);
    }
    to {
        clip-path: circle(150% at 100% 0);
    }
}

/* Define the closing animation */
@keyframes clipPathClose {
    from {
        clip-path: circle(150% at 100% 0);
    }
    to {
        clip-path: circle(0 at 100% 0);
    }
}

.navbar-links {
  display: none;
  padding-left: 3%;

}

.navbar-links li {
  margin: 40px 0;
  font-size: 1.2em;
}

.navbar-logo {
  font-size: 2em;
  margin-left: 0;
}

.navbar-buttons {
  display: flex;
}

.navbar-buttons .hamburger-toggle {
  display: block;
  font-size: 1.75em;
}

.navbar-buttons .dark-mode-toggle {
  font-size: 1.5em;
}

/* Hero Styles */
.hero {
  max-height: 100vh;
}


.hero-content {

  margin-left: 10%;
}

.hero h1 {
  font-size: 50px;
}

.hero p {
  max-width: 50%;
}


.hero-links p {
  
  font-size: 20px;

}



/* portfolio */

  
.portfolio-grid {
  grid-template-columns: repeat(6, minmax(350px, 1fr));
  padding: 10px 25px 30px 25px;
 
}


.portfolio-grid::-webkit-scrollbar-thumb {
  background-color: #888;
  border-radius: 10px;
}

.portfolio-item {
  border-radius: 8px;
 
  color: #333;
}


.portfolio-description {
  font-weight: 400;
  font-size: .9rem;
  width: 300px;
  line-height: 1.5;
 
}


/* about section */


.about-container {
 
  margin-top: 0;

}

.about-grid {

  grid-template-columns: 1fr 1fr;

  max-width: 800px;
 
}

.about-img img {
  width: 100%; /* make the image smaller */
 
  margin: 1% auto; /* center the image horizontally */
  padding: 0 5%; /* add some whitespace around the image */
  padding-bottom: 0;
  box-sizing: border-box;
}



.about-img p {
  font-size: 16px;
  margin: 0; /* center the image horizontally */
  padding: 1% 5%; /* add some whitespace around the image */
  box-sizing: border-box;
}


.about-text {
  max-width: 400px;
  
}

.about-text h2 {
  margin: auto;
  font-size: 2em;
  padding: 2.5% 5%; 

}

.about-text p {
  margin: 0;
  padding: 0 0 .5rem 0;
  font-size: .9rem;
  line-height: 1.5;
  font-weight: 400;
  box-sizing: border-box;

}

  
.about-text p:first-of-type::first-letter {

  line-height: .8; 
}





/* contact section */

.contact-container {
  width: 70%; 
  padding: 5% 0;
 
  
}

.contact-container h2 {
  font-size: 2em;
}

.contact-container p {
  font-size: 20px;
  padding-bottom: 32px;
 
}

.form-group input, .form-group textarea {
  width: 100%;

  border: 1px solid var(--primary-color);
  background: var(--secondary-color);
}

.form-group label {

  font-size: 20px;
}

#confirmation {
  width: 3%;
 
}





#button-cover {
  width: 30%;
  height: 7%;
  
}

}




/* large laptop */
@media screen and (min-width: 1024px) and (max-width: 1440px) {
 
  
   /* Navbar Styles */
   .navbar {
    padding: 20px;
    
  }


  .navbar-logo {
    font-size: 2em;
  }
  
  .navbar-links li {
    margin-top: 5px;
  }

  .navbar-buttons .dark-mode-toggle {

    font-size: 1.2em;
  }
  
  
  /* Hero Styles */
  .hero {
    max-height: 100vh;
  }
  
  
  .hero-content {
    width: 100%;
    margin-left: 25%;
  }
  
  .hero h1 {
    font-size: 3em;
    
  }
  
  .hero p {
    font-size: 1.3em;
    max-width: 45%;
  }
  
  .hero .btn {
    font-size: 1.1em;
  
    padding: 10px 15px;
  }
  
  .hero-links p {
    
    font-size: 1.1em;
  
  }

  #arrow {
    margin-left: 5%;
  }


  
  /* portfolio */


  .section-heading {
    margin: 60px 0 40px 0;
  }
  
    
  .portfolio-grid {
 
    grid-template-columns: repeat(6, minmax(400px, 1fr));
    padding: 0 5%; 
    margin: auto 0;
    overflow-x: scroll;

   
  }
  
  
  .portfolio-grid::-webkit-scrollbar-thumb {
    background-color: #888;
    border-radius: 10px;
  }
  
  .portfolio-item {
    border-radius: 8px;
   
    color: #333;
  }
  
  

  .portfolio-title {
    font-size: 1.7em;
    color: var(--primary-color); 
    display: flex;
    margin-top: 40px; 
  }
  
  .portfolio-description {
    
    font-weight: 400;
    margin-bottom: 1.5rem;
    width: 350px;
   
   
  }
  
  
  /* about section */
  
  .about-container {
   
    margin-top: 0;
  
  }


  .about-img { 
    margin-top: 10%;
    padding-left: 5%;
   
  }
  
  .about-img img {
    width: 95%; 
    height: auto;
  }
  
  
  
  .about-img p {
    font-size: 16px;
    margin: 0; 

  }

  .about-grid {
    gap: 0;
  }
  
  
  .about-text {

    padding: 0;
    margin: 7.5% 0;
  }
  
  .about-text h2 {
    margin: auto;
    font-size: 2em;
    padding: 2.5% 5%; 
  
  }
  
  .about-text p {
    width: 475px ;
    margin: 1% auto; 
    padding-bottom: 3% ; 
    font-size: 1.1em;
    line-height: 1.55;
    font-weight: 400;
  
  }
  
  
  
  
  /* contact section */
  .contact-container {
    width: 60%;
    padding-bottom: 2.5em;
  }
 
  .contact-container h2 {
    font-size: 2.25em;
  }
  
  .contact-container p {
    font-size: 20px;
    padding-bottom: 32px;
   
  }
  
  .form-group input, .form-group textarea {
    width: 100%;
    border: 1px solid var(--primary-color);
    background: var(--secondary-color);
  }
  

  
  #confirmation {
    width: 3%;
   
  }


  
  #button-cover {
    width: 30%;
    height: 7%;
    
  }
}




