@font-face {
  font-family: "Poppins";
  src: url("\Poppins-SemiBold.ttf");
}

@font-face {
  font-family: "Montserrat";
  src: url("\Montserrat-Regular.ttf");
}

html {
        scroll-behavior: smooth;
      }

      [data-fade] {
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.8s ease-out, transform 0.8s ease-out;
      }

      [data-fade].visible {
        opacity: 1;
        transform: translateY(0);
      }

body {
  font-family: "Poppins";
  margin: 0 60px;
}

html, body {
  width: 100%;
  overflow-x: hidden;
}

/* The Header with the navigation links */
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.name-logo {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.name-logo img {
  width: 15%;
}

.nav-links ul {
  padding: 0 20px;
  display: flex;
  margin-left: -30%;
}

.nav-links ul li {
  display: inline;
  margin: 0 15px;
  font-size: 20px;
  font-family: "Montserrat";
}

.nav-links a {
  text-decoration: none;
  color: #000;
}

.nav-links a:hover {
  color: darkgray;
  transition: color 300ms ease-in-out;
}

.mail-cta {
  display: flex;
  font-family: "Montserrat";
}

.mail-cta a {
  text-decoration: none;
  color: #000;
  font-size: 20px;
}

.mail-cta img {
  vertical-align: middle;
  width: 15%;
}

.mail-cta a:hover {
  color: darkgrey;
  transition: color 300ms ease-in-out;
}

/* Photo Explaining What Author Does */
.photo-exp {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 10%;
  gap: 10px;
}

.photo-exp-one {
  font-size: 2em;
}

.photo-exp-one p {
  font-size: 0.8em;
  opacity: 0.7;
}

.photo-exp-one button {
  height: 5rem;
  background-color: #000;
  color: #fff;
  border: 0;
  padding: 10px 60px;
  border-radius: 50px;
  font-size: 1.2rem;
  transition: all 300ms ease-in-out;
}

.photo-exp-one button:hover {
  background-color: #fff;
  color: #000;
  box-shadow: -2px 2px 5px 0 darkgray;
  transition: all 300ms ease-in;
}

.photo-exp-two {
  width: 280px;
  height: 360px;
  border-radius: 50% 50% 0% 0%;
  overflow: hidden;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: flex-start;  /* align image to top */
  border: 2px solid #8d8d8d;
}

.photo-exp-two img {
  width: 115%;               /* zoom in a bit */
  height: auto;
  object-fit: cover;
  object-position: top;      /* keeps top of image visible */
}


/* Services */
.services {
  margin: 15% 0;
}

.service-one {
  text-align: center;
  margin-bottom: 30px;
}

.service-one h2 {
  font-size: 2.8rem;
}

.service-one p {
  line-height: 2;
  color: grey;
  font-family: "Montserrat";
}

.services-cta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: 30px 80px;
  gap: 30px;
  background-color: rgb(247, 247, 247);
  border-radius: 20px;
}

.services-cta p {
  line-height: 2;
  font-family: "Montserrat";
}

.services-cta img {
  background-color: rgb(255, 252, 252);
  padding: 20px;
  border-radius: 30%;
}

.web-dsg,
.ui-ux {
  margin-top: 60px;
}

.web-dev,
.prd-dsg {
  margin-bottom: 60px;
}

.web-dsg,
.prd-dsg,
.ui-ux,
.web-dev {
  background-color: #ffffff;
  border-radius: 20px;
  padding: 20px 30px;
}

.web-dsg,
.prd-dsg {
  margin-left: -80px;
}

.ui-ux,
.web-dev {
  margin-right: -80px;
}

.services button {
  height: 5rem;
  background-color: #000;
  color: #fff;
  border: 0;
  padding: 10px 60px;
  border-radius: 50px;
  font-size: 1.2rem;
  display: block;
  margin: 0 auto;
  transition: all 300ms ease-in-out;
}

.services button:hover {
  background-color: #fff;
  color: #000;
  box-shadow: -2px 2px 5px 0 darkgray;
  transition: all 300ms ease-in;
}

/* About Me */
.about-me {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px;
}

.about-me-profile img {
  width: 100%;
  border-radius: 5%;
  height: 90%;
}

.about-me-exp {
  margin-top: 15%;
}

.about-me-exp h2 {
  font-size: 2.8rem;
}

.about-me-exp p {
  font-family: "Montserrat";
  line-height: 2;
}

.about-me-exp button {
  height: 5rem;
  background-color: #000;
  color: #fff;
  border: 0;
  padding: 10px 60px;
  border-radius: 50px;
  font-size: 1.2rem;
  margin-top: 5%;
  transition: all 300ms ease-in-out;
}

.about-me-exp button:hover {
  background-color: #fff;
  color: #000;
  box-shadow: -2px 2px 5px 0 darkgray;
  transition: all 300ms ease-in;
}


.typewriter-output {
  font-size: 2rem;
  font-family: "Montserrat", sans-serif;
  white-space: nowrap;
  overflow: hidden;
  border-right: 2px solid #fff;
  display: inline-block;
  animation: rainbow 1s linear infinite;
  min-height: 2.5em;
}

@keyframes blinkCursor {
  50% {
    border-color: transparent;
  }
}

.typewriter-output {
  display: flex;
  flex-wrap: wrap;              /* allow text to break to next line */
  gap: 4px;                     /* spacing between letters */
  max-width: 100%;              /* prevents overflow */
  word-break: break-word;       /* breaks long words */
  line-height: 1.4;
  justify-content: start;
  align-items: center;
}

.typewriter-output span {
  display: inline-block;
  animation: rainbow 1s linear infinite;
}

.word {
  white-space: nowrap;
  display: inline-block;
}

@keyframes rainbow {
  0% { color: red; }
  14% { color: orange; }
  28% { color: yellow; }
  42% { color: indigo; }
  57% { color: green; }
  71% { color: indigo; }
  85% { color: violet; }
  100% { color: blue; }
}

/* Resume */
.resume {
  margin: 15% 0;
}

.resume-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.resume-head h2 {
  font-size: 2.8rem;
}

.resume-head button {
  height: 5rem;
  background-color: #000;
  color: #fff;
  border: 0;
  padding: 10px 60px;
  border-radius: 50px;
  font-size: 1.2rem;
  transition: all 300ms ease-in-out;
}

.resume-head button:hover {
  background-color: #fff;
  color: #000;
  box-shadow: -2px 2px 5px 0 darkgray;
  transition: all 300ms ease-in;
}

button {
  height: 3rem;
  background-color: #000;
  color: #fff;
  border: 0;
  padding: 5px 20px;
  border-radius: 50px;
  font-size: 1.2rem;
  transition: all 300ms ease-in-out;
  cursor: pointer;
}

button:hover {
  background-color: #fff;
  color: #000;
  box-shadow: -2px 2px 5px 0 darkgray;
  transition: all 300ms ease-in;
}

.resume-work {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  background-color: rgb(247, 247, 247);
  gap: 30px;
  margin: 30px 80px;
  border-radius: 20px;
}

.res-p {
  font-family: "Montserrat";
  line-height: 2;
  color: grey;
}

.res-post {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.res-logo img {
  width: 12%;
  border-radius: 50%;
  margin-right: 10px;
}

.coodeck,
.socialpay,
.jdq {
  background-color: #fff;
  padding: 20px 30px;
  border-radius: 20px;
}

.coodeck,
.jdq {
  margin-left: -80px;
}

.socialpay {
  margin-right: -80px;
}

.coodeck,
.socialpay {
  margin-top: 60px;
}

.jdq {
  margin-bottom: 60px;
}

/* Design Portfolio */
.dsg-port {
  margin-bottom: 15%;
}

.dsg-port-head h2 {
  font-size: 2.8rem;
  text-align: center;
}

.dsg-port-container {
  display: flex;
  flex-wrap: nowrap;
}

.dsg-port-exp {
  margin: 0 30px;
}

.dsg-port-exp h2 {
  font-size: 1.5rem;
}

.dsg-port-exp p {
  font-family: "Montserrat";
  line-height: 2;
}

.dsg-port-exp img {
  border-radius: 30px;
  width: 100%;
}

.dsg-port-exp a {
  color: #000;
}

/* What my client say about my work */
.client-info {
  margin: 5% 0 10% 0;
}

.cl-info-head {
  text-align: center;
}

.cl-info-head h2 {
  font-size: 2.8rem;
}

.cl-info-head p {
  font-family: "Montserrat";
}

.testimonies {
  margin: 30px 80px;
}

.test-one {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  padding: 20px 30px;
  margin: 20px 0;
  background-color: rgb(247, 247, 247);
  border-radius: 20px;
}

.test-p {
  font-weight: bold;
  font-family: "Poppins";
}

.test-talk {
  margin-top: 15%;
}

.test-talk p {
  font-family: "Montserrat";
  line-height: 2;
  font-size: 1.3rem;
}

.test-photo {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: flex-start; /* keeps top of image visible */
  border: 1px solid #444;
}

.test-photo img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: top;
  display: block;
}

/* Articles and News */
.art-news {
  margin: 15% 0;
}

.a-n-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.a-n-head h2 {
  font-size: 2.8rem;
}

.a-n-head button {
  height: 5rem;
  background-color: #000;
  color: #fff;
  border: 0;
  padding: 10px 60px;
  border-radius: 50px;
  font-size: 1.2rem;
  transition: all 300ms ease-in-out;
}

.a-n-head button:hover {
  background-color: #fff;
  color: #000;
  box-shadow: -2px 2px 5px 0 darkgray;
  transition: all 300ms ease-in;
}

.art-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin: 30px 0;
}

.art-container a {
  color: #000;
  text-decoration: none;
}

.art-a {
  border-radius: 20px;
  border: 1px solid grey;
}

.art-a h2,
p {
  padding: 0 15px;
}

.art-a img {
  width: 100%;
}

/* Follow me on IG */
.follow-ig {
  margin: 0 0 5% 0;
}

.ig-head {
  text-align: center;
  margin: 20px 0;
}

.ig-head h2 {
  font-size: 2.8rem;
}

.ig-head a {
  color: #000;
}

.ig-photo {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.ig-photo img {
  width: 100%;
  border-radius: 20px;
}

.first-hr {
  margin: 10% -60px 12% -60px;
}

/* Footer */
footer {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #555;
  padding: 40px 20px; /* added horizontal padding */
  color: white;
  text-align: center;
  width: 100%;
  box-sizing: border-box; /* ensures padding is included in total width */
  overflow-x: hidden;     /* prevent horizontal overflow */
}

.footer-inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* responsive layout */
  gap: 40px;
  width: 100%;
  max-width: 1200px; /* keep it centered and readable on large screens */
  box-sizing: border-box;
  padding: 0 20px; /* add space on both sides for small screens */
}

.f-a p {
  font-size: 1.3rem;
  margin-bottom: 10px;
}

.f-a img {
  width: 28px;
  height: 28px;
  margin: 0 8px;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.f-a img:hover {
  transform: scale(1.1);
}

.f-b a,
.f-b-sub a,
.f-c a,
.f-d a {
  text-decoration: none;
  color: grey;
  display: block;
  margin: 10px 0;
  font-size: 1.1rem;
  font-family: "Montserrat", sans-serif;
  word-break: break-word; /* prevents long email/URLs from breaking layout */
}

.f-b a:hover,
.f-b-sub a:hover,
.f-c a:hover,
.f-d a:hover {
  color: darkgray;
  opacity: 0.8;
  transition: all 300ms ease-in-out;
}

.sec-hr {
  margin: 5% 60px 1% 60px;
}

.final-p {
  text-align: center;
  font-family: "Montserrat";
  font-size: 1.3rem;
}

@media (max-width: 768px) {
  body {
    margin: 0 20px;
  }

  .header {
    margin: 0 -20px;
  }
    .typewriter-output {
    font-size: 1.5rem;
  }

    h1, h2 {
    word-wrap: break-word;
  }
  
  .name-logo img {
    width: 25%;
  }

  .name-logo h2 {
    font-size: 1.5rem;
    margin-left: -15px;
  }

  .nav-links ul {
    margin-left: 0;
    padding: 0 10px;
  }

  .nav-links ul li {
    font-size: 18px;
    margin: 0 5px;
  }

  .nav-links ul li:first-child,
  .nav-links ul li:nth-child(2n),
  .nav-links ul li:nth-child(3n) {
    display: none;
  }

  .mail-cta {
    display: none;
  }

  .photo-exp {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    text-align: center;
  }

  .photo-exp-one br {
    display: none;
  }

  .photo-exp-one p {
    font-size: 0.7em;
  }

  .photo-exp-one h1 {
    font-size: 2.8rem;
  }

  .services-cta {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    margin: 30px 10px;
  }

  .service-one p br {
    display: none;
  }

  .services-cta p br {
    display: none;
  }

  .web-dsg,
  .prd-dsg {
    margin-left: 0;
  }

  .ui-ux,
  .web-dev {
    margin-right: 0;
  }

  .web-dsg,
  .web-dev,
  .prd-dsg,
  .ui-ux {
    margin: 0 -20px;
  }

  .web-dsg {
    margin-top: 40px;
  }

  .web-dev {
    margin-bottom: 40px;
  }

  .about-me {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    margin: 15% 0;
  }

  .about-me-exp {
    margin-top: -10%;
  }

  .about-me-exp p br {
    display: none;
  }

  .about-me-profile {
    grid-row: 2;
  }

  .resume-head {
    display: flex;
    flex-direction: column;
  }

  .resume-head h2 {
    font-size: 2rem;
  }

  .res-post h2 {
    font-size: 1rem;
  }

  .resume-work {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    margin: 30px 10px;
  }

  .res-p br {
    display: none;
  }

  .coodeck,
  .jdq {
    margin-left: 0;
  }

  .socialpay, {
    margin-right: 0;
  }

  .coodeck,
  .jdq,
  .socialpay, {
    margin: 0 -20px;
  }

  .coodeck {
    margin-top: 40px;
  }
 {
    margin-bottom: 40px;
  }

  .dsg-port-head h2 {
    font-size: 1.5rem;
  }

  .dsg-port-container {
    flex-wrap: wrap;
    margin: 0 20px;
  }

  .dsg-port-exp {
    margin: 20px 0;
  }

  .dsg-port-exp img {
    width: 100%;
  }

  .cl-info-head h2 {
    font-size: 2rem;
  }

  .testimonies {
    margin: 30px 10px;
  }

  .test-one {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    margin: 30px 0;
    padding: 10px;
    gap: 10px;
  }

  .test-talk {
    grid-row: 2;
    text-align: center;
  }

  .test-talk br {
    display: none;
  }

  .a-n-head {
    display: flex;
    flex-direction: column;
  }

  .a-n-head h2 {
    font-size: 2rem;
  }

  .art-container {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
  }

  .ig-head h2 {
    font-size: 1.5rem;
  }

  .ig-photo {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }

 .footer-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    padding: 20px;
    text-align: center;
  }

  .f-a img {
    margin: 10px 6px;
  }

  .f-b a,
  .f-d a {
    margin: 10px 0;
    font-size: 1.1rem;
  }

  footer {
    padding: 30px 15px;
  }

  .first-hr,
  .sec-hr {
    width: 100%;
    margin: 0;
  }

  .final-p {
    font-size: 1rem;
  }

.modal-overlay {
  display: none;
  position: fixed;
  z-index: 9999;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.6);
  justify-content: center;
  align-items: center;
  font-family: 'Segoe UI', sans-serif;
  
}

.modal-content {
  background-color: #fff;
  padding: 30px 25px;
  border-radius: 10px;
  text-align: center;
  max-width: 400px;
  width: 90%;
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
}

.modal-content h2 {
  margin-bottom: 15px;
  font-size: 24px;
  color: #222;
}

.modal-content p {
  font-size: 16px;
  color: #555;
}

.modal-content button {
  margin-top: 20px;
  padding: 10px 20px;
  background-color: #111;
  color: #fff;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

