@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

/* Hiệu ứng hover cho project card */
.project-card {
    transition: transform 0.25s cubic-bezier(.4,2,.6,1), box-shadow 0.25s;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
}
.project-card:hover {
    transform: translateY(-10px) scale(1.03) rotate(-1deg);
    box-shadow: 0 8px 32px rgba(64,112,244,0.13), 0 2px 12px rgba(0,0,0,0.10);
    background: #f5f8ff;
}
.project-card__image {
    transition: filter 0.3s, transform 0.3s;
}
.project-card:hover .project-card__image {
    filter: brightness(0.92) blur(1px);
    transform: scale(1.05);
}
.project-card__desc {
    transition: color 0.2s;
}
.project-card:hover .project-card__desc {
    color: #4070f4;
}
body.dark-mode .project-card {
    background: #232323;
}
body.dark-mode .project-card:hover {
    background: #222a3a;
}

/* ...existing code... */
.contact-modal-content {
    max-width: 400px;
    width: 90vw;
    padding: 2rem 2rem 1.5rem 2rem;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}
body.dark-mode .contact-modal-content {
    background: #232323;
}
.contact__form input,
.contact__form textarea {
    width: 100%;
    padding: 10px 14px;
    margin-bottom: 14px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 1rem;
    background: #fafafa;
    transition: border 0.2s;
}
.contact__form input:focus,
.contact__form textarea:focus {
    border: 1.5px solid #4070f4;
    outline: none;
    background: #fff;
}
body.dark-mode .contact__form input,
body.dark-mode .contact__form textarea {
    background: #181818;
    color: #f1f1f1;
    border: 1px solid #444;
}
.contact__form button.btn {
    width: 100%;
    margin-top: 8px;
    background: #4070f4;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 0;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s;
}
.contact__form button.btn:hover {
    background: #3057b7;
}
#form-status {
    min-height: 24px;
    text-align: center;
    font-size: 0.98rem;
}
/* ...existing code... */

.skills__cards {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: center;
    margin-top: 2rem;
  }
.skill-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    padding: 1.2rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 110px;
    transition: transform 0.2s, box-shadow 0.2s;
  }
.skill-card:hover {
    transform: translateY(-8px) scale(1.05);
    box-shadow: 0 8px 24px rgba(0,0,0,0.13);
  }
.skill-card__icon {
    width: 48px;
    height: 48px;
    margin-bottom: 0.7rem;
    object-fit: contain;
  }
.skill-card span {
    font-size: 1rem;
    font-weight: 500;
    color: #333;
    text-align: center;
  }
body.dark-mode .skill-card {
    background: #232323;
    color: #f1f1f1;
  }
body.dark-mode .skill-card span {
    color: #f1f1f1;
  }

.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    transition: background 0.3s;
  }
body.dark-mode .navbar {
    background: #232323;
  }
body {
    padding-top: 70px; /* Điều chỉnh theo chiều cao navbar thực tế */
  }

.fade-in {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.7s, transform 0.7s;
  }
.fade-in.visible {
    opacity: 1;
    transform: none;
  }

body.dark-mode {
    background: #181818;
    color: #f1f1f1;
  }
body.dark-mode .navbar,
body.dark-mode .modal-content {
    background: #232323;
  }
body.dark-mode .navbar__link.active {
    color: #ffd54f;
    border-bottom: 2px solid #ffd54f;
  }

.navbar__link.active {
    color: #ff9800;
    font-weight: bold;
    border-bottom: 2px solid #ff9800;
  }

html {
    scroll-behavior: smooth;
  }
/* ...existing code... */

.modal {
    position: fixed;
    z-index: 9999;
    left: 0; top: 0;
    width: 100vw; height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.4);
    transition: opacity 0.2s;
  }
  
.modal.hidden {
    display: none;
  }
  
.modal-content {
    background: #fff;
    border-radius: 12px;
    padding: 2rem 2.5rem;
    max-width: 400px;
    width: 90vw;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    position: relative;
    animation: modalShow 0.3s;
  }
  
@keyframes modalShow {
    from { transform: translateY(-40px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
  }
  

  
.modal .overlay {
    display: none;
  }
  
  /* ...existing code... */
/* Hiệu ứng Say Hi */
/* Kiểu dáng chính cho nút */
.btn-glow {
    position: relative;
    display: inline-block;
    padding: 12px 24px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    border: 2px solid transparent;
    background: linear-gradient(90deg, #6a11cb, #2575fc);
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-glow i {
    margin-left: 8px; /* Khoảng cách giữa chữ và icon */
}

/* Hiệu ứng ánh sáng xoay */
.btn-glow::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(90deg, #ff7eb3, );
    z-index: -1;
    border-radius: 8px;
    filter: blur(4px);
    animation: glow 2s linear infinite;
    opacity: 0.7;
}

@keyframes glow {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* Hover effect */
.btn-glow:hover {
    transform: scale(1.1);
    background: linear-gradient(90deg, #2575fc, #6a11cb);
}



/* Thay chữ Digital Marketing */

#dynamic-text, .static-text {
    font-size: 36px;        /* Đồng nhất kích thước chữ */
    border-right: 1px solid #333; /* Hiệu ứng con trỏ nhấp nháy */

    white-space: nowrap;
    font-weight: bold;
    line-height: 1.2;       /* Đảm bảo chiều cao dòng giống nhau */
    white-space: nowrap;    /* Ngăn chữ bị xuống dòng */
}

@keyframes blink {
    50% {
        border-color: transparent;
    }
}



/* Popup Modal Styling */
#popup-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
  }
  
  #popup-modal.hidden {
    display: none;
  }
  
.modal-content {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    max-width: 400px;
    width: 90%;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    
  }
  .modal.active .modal-content {
    opacity: 1; /* Hiển thị hoàn toàn */
    transform: scale(1); /* Kích thước bình thường */
  }  
.modal-content i {
    font-size: 50px;
    color: #4070f4;
    margin-bottom: 10px;
  }
  
.modal-content h2 {
    font-size: 24px;
    color: #333;
    margin-bottom: 10px;
  }
  
.modal-content p {
    font-size: 16px;
    color: #666;
    margin-bottom: 20px;
  }

.modal-content p:last-of-type {
    font-style: italic;
    color: #444; /* Màu đậm hơn một chút */
  }
.modal-content .close-btn {
    background: #4070f4;
    color: #fff;
    padding: 10px 20px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
  }
  
.modal-content .close-btn:hover {
    background: #265df2;
  }
.overlay {
    background: rgba(0, 0, 0, 5.2); /* Giảm độ mờ */
}
.buttons {
    display: flex;
    gap: 10px; /* Khoảng cách giữa các nút */
    justify-content: center;
    margin-top: 20px;
  }
  
  .close-btn,
  .download-btn {
    padding: 10px 20px;
    border-radius: 8px;
    border: none;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
  }
  
  .close-btn {
    background: #4070f4;
    color: #fff;
  }
  
  .close-btn:hover {
    background: #265df2;
  }
  
  .download-btn {
    background: #601eda; /* Xám nhạt */
    color: #f8f2f2; /* Chữ màu xám đậm */
    border: 1px solid #ccc; /* Đường viền nhẹ */
  }
  
  .download-btn:hover {
    background: #6f66ec;
  }
 

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Roboto", sans-serif;
}

a{
    text-decoration: none;
    color: #1f2937;
}

img{
    object-fit: cover;
}

body{
    background: #f3f4f6;
}


.btn{
    border: 2px solid #1f2937;
    background: #1f2937;
    color: #fff;
    cursor: pointer;
    border-radius: 10px;
    transition: all 0.5s ease;
}

.btn:hover{
    color: #1f2937;
    background: #fff;
    border-color: #e5e7eb;
}

.btn--secondary{
    color: #1f2937;
    background: #fff;
    border: 2px solid #e5e7eb;
}

.btn--secondary:hover,
.hero__socials a:hover{
    border-color: #1f2937;
    background: #1f2937;
    color: #fff;
}

.navbar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 60px;
}

.navbar__logo{
    display: flex;
    align-items: center;
    font-weight: 500;
    gap: 10px;
}

.navbar__logo i{
    font-size: 30px;
}

.navbar__menu,
.footer__links{
    display: flex;
    gap: 20px;
}

.navbar__link,
.footer__links a{
    font-size: 14px;
    font-weight: 500;
    transition: all 0.5s ease;
}

.navbar__link:hover,
.footer__links a:hover{
    color: #000;
}

.navbar__actions{
    display: flex;
    align-items: center;
    gap: 20px;
}

.navbar__location h5{
    font-weight: 500;
    color: #6b7280;
    font-size: 12px;
}

.navbar__location p{
    font-size: 11px;
    font-weight: 600;
}

.navbar__actions .btn{
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 500;
}

.hero{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 100px 60px;
    gap: 60px;
    height: calc(100vh - 75px);
}

.hero__content,
.hero__intro{
    width: 50%;
}

.hero__image{
    width: 340px;
    height: 340px;
    border-radius: 10px;
}

.hero__content h2{
    font-size: 48px;
    line-height: 60px;
    font-weight: 400;
    margin-top: 20px;
    width: 85%;
}

.hero__intro{
    padding-right: 40px;
}

.hero__intro h3{
    font-weight: 500;
    font-size: 40px;
    line-height: 50px;
    margin-bottom: 10px;
}

.hero__intro p{
    color: #6b7280;
    font-weight: 500;
    margin-bottom: 30px;
}

.hero__actions,
.skills__actions{
    display: flex;
    gap: 10px;
}

.hero__actions .btn,
.skills__actions .btn{
    padding: 6px 20px;
    font-size: 12px;
    font-weight: 500;
}

.hero__socials{
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 16px;
    right: 30px;
    top: 20%;
}

.hero__socials a{
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    border: 2px solid #e5e7eb;
    padding: 8px;
    border-radius: 50%;
    transition: all 0.5s ease;
}

.skills{
    padding: 60px;
    display: flex;
    align-items: center;
    gap: 40px;
}

.skills__desc,
.skills__stats{
    width: 50%;
}

.skills__desc{
    padding-right: 80px;
}

.skills__desc h3{
    font-size: 30px;
    font-weight: 400;
    margin-bottom: 10px;
}

.skills__desc p{
    color: #6b7280;
    font-size: 14px;
    margin-bottom: 30px;
}

.skills__stats{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
}

.skills__stats i{
    font-size: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 0;
}

.skill__info{
    background: #e5e7eb;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.skill__info h5{
    text-align: center;
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 10px;
}

.skill__info p{
    width: 50%;
    text-align: center;
    font-size: 14px;
    color: #7a7a7a;
    font-weight: 500;
}

.showcase{
    padding: 80px 60px 100px;
    background: #e5e7eb;
}

.showcase__header{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 36px;
}

.showcase__header h3{
    font-size: 28px;
    font-weight: 400;
}

.showcase__header .btn{
    font-size: 13px;
    padding: 5px 16px;
    color: #fff;
    background: #1f2937;
    border-color: #1f2937;
}

.showcase_categories .category:first-child{
    margin-bottom: 100px;
}

.category__header{
    display: flex;
    align-items: center;
}

.category__title,
.category__desc{
    width: 50%;
    display: flex;
    align-items: center;
}

.category__title{
    gap: 12px;
}

.category__title h4{
    font-size: 22px;
    font-weight: 400;
}

.category__title i{
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.category__desc{
    gap: 40px;
    justify-content: space-between;
}

.category__desc p{
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.category__desc a{
    font-size: 22px;
}

.category__projects{
    margin-top: 40px;
    display: flex;
    gap: 20px;
}

.project-card{
    position: relative;
    width: 25%;
    height: 420px;
    padding: 20px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.project-card__image{
    width: 100%;
    height: 200px;
    border-radius: 10px;
    object-position: top center;
    border: 1px solid #e5e7eb;
    margin-bottom: 20px;
}

.project-card__info{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 8px;
}

.project-card__info h5{
    font-size: 17px;
    font-weight: 500;
}

.project-card__info p{
    font-size: 12px;
    color: #6b7280;
    font-weight: 500;
}

.project-card__desc{
    font-size: 13px;
    color: #7a7a7a;
    margin-bottom: 30px;
}

.project-card .btn{
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 8px 20px;
    border-radius: 16px 0 10px 0;
    border: none;
    color: #fff;
    background: #1f2937;
}

.project-card .btn:hover{
    background: #000;
}

.career{
    padding: 60px 60px 80px;
    display: flex;
    align-items: center;
    gap: 100px;
}

.career__jobs,
.career__awards{
    width: 50%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.career h3{
    font-size: 32px;
    font-weight: 400;
    margin-bottom: 20px;
}

.job,
.award{
    display: flex;
    align-items: center;
    gap: 20px;
    padding-bottom: 20px;
    border-bottom: 2px solid #e5e7eb;
}

.job i,
.award div i{
    font-size: 20px;
    padding: 10px;
    background: #fff;
    border-radius: 10px;
    font-weight: bold;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.award{
    justify-content: space-between;
}

.award > div{
    display: flex;
    align-items: center;
    gap: 20px;
}

.job__info h5,
.award__info h5{
    font-size: 15px;
    font-weight: 500;
}

.job__info h5 span,
.award__info h5 span{
    font-weight: 600;
}

.job__info p,
.award__info p{
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.award a i{
    font-size: 24px;
}

.contact{
    text-align: center;
    padding: 60px;
}

.contact h5{
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 12px;
}

.contact h2{
    font-size: 36px;
    font-weight: 500;
    margin-bottom: 20px;
}

.contact .btn{
    padding: 6px 20px;
    border: 2px solid #1f2937;
    color: #fff;
    background: #1f2937;
    margin-bottom: 14px;
}

.contact p{
    color: #6b7280;
    font-size: 14px;
    font-weight: 500;
}

.contact p span{
    color: #1f2937;
    font-weight: 600;
    font-size: 13px;
}

.footer{
    padding: 20px 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.footer__brand{
    display: flex;
    align-items: flex-end;
    gap: 30px;
}

.footer__brand a{
    font-weight: bold;
    font-size: 18px;
}

.footer__brand p{
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.skills__groups {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
    margin-top: 2rem;
}
.skills__group {
    background: #f9f9f9;
    border-radius: 16px;
    padding: 24px 32px;
    min-width: 260px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.skills__group h4 {
    margin-bottom: 18px;
    font-size: 20px;
    font-weight: 600;
    color: #4070f4;
    letter-spacing: 1px;
}
body.dark-mode .skills__group {
    background: #232323;
  }

@media screen and (max-width: 1230px) {
    
    .hero__image{
        width: 100%;
    }

    .hero__content h2{
        font-size: 38px;
        text-align: center;
    }

    .hero__intro h3{
        font-size: 30px;
    }

    .hero__intro p{
        font-size: 15px;
    }

    .skills__desc{
        padding-right: 20px;
    }
    
    .skills__desc h3{
        font-size: 26px;
    }

    .skills__stats i{
        font-size: 50px;
    }

    .skill__info h5{
        font-size: 20px;
    }

    .skill__info p{
        font-size: 12px;
        width: 100%;
    }

    .category__title{
        width: 40%;
    }

    .category__desc{
        width: 60%;
    }

    .category__projects{
        flex-wrap: wrap;
    }

    .project-card{
        width: 48%;
    }

}

@media screen and (max-width: 992px) {
    
    .navbar{
        padding: 20px 30px;
    }

    .hero{
        padding: 100px 30px 40px;
    }

    .hero__intro h3{
        font-size: 22px;
        line-height: 34px;
    }

    .hero__intro p{
        font-size: 13px;
    }

    .hero__socials{
        top: 6%;
    }

    .skills{
        flex-direction: column;
        padding: 60px 30px 80px;
    }

    .skills__desc,
    .skills__stats,
    .category__title,
    .category__desc,
    .career__jobs,
    .career__awards{
        width: 100%;
    }

    .skills__desc{
        padding-right: 0;
    }

    .showcase{
        padding: 80px 30px 100px;
    }

    .category__header{
        flex-direction: column;
    }

    .category__title{
        margin-bottom: 20px;
    }

    .career{
        padding: 60px 30px 80px;
        flex-direction: column;
        gap: 60px;
    }

    .footer{
        padding: 20px 30px;
    }

}


@media screen and (max-width: 768px) {
    
    .navbar__actions{
        display: none;
    }

    .hero{
        flex-direction: column;
        height: auto;
        padding: 40px 30px 0px;
        gap: 30px;
    }

    .hero__content,
    .hero__intro{
        width: 100%;
    }

    .hero__content h2{
        width: 100%;
        font-size: 30px;
    }

    .hero__socials{
        position: relative;
        flex-direction: row;
        right: auto;
        margin-top: 10px;
    }

    .showcase__header h3{
        font-size: 24px;
    }

    .category__title h4{
        font-size: 20px;
    }

    .project-card{
        width: 100%;
        height: 500px;
    }

    .project-card__image{
        height: 300px;
    }

    .career h3{
        font-size: 26px;
    }

    .footer{
        flex-direction: column-reverse;
        gap: 16px;
    }

}