/* ==========================================
   BUTTONS
========================================== */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    padding:15px 32px;
    border-radius:14px;
    font-weight:600;
    transition:all .3s ease;
}

.btn-primary{
    background:var(--primary);
    color:#fff;
    box-shadow:0 8px 20px rgba(255,98,64,.25);
}

.btn-primary:hover{
    background:var(--primary-dark);
    transform:translateY(-3px);
    box-shadow:0 18px 35px rgba(255,98,64,.30);
}

.btn-outline{
    border:1px solid #d9d9d9;
    color:var(--heading);
    background:#fff;
}

.btn-outline:hover{
    border-color:var(--primary);
    color:var(--primary);
    transform:translateY(-3px);
}

/* ==========================================
   SECTION HEADER
========================================== */

.section-header{
    text-align:center;
    margin-bottom:70px;
}

.section-subtitle{
    display:inline-block;
    padding:8px 18px;
    background:#FFF3EF;
    color:var(--primary);
    border-radius:999px;
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.08em;
    margin-bottom:18px;
}

.section-title{
    margin-bottom:18px;
}

.section-description{
    max-width:700px;
    margin:auto;
}

/* ==========================================
   FLOATING BADGES
========================================== */

.badge{

    position:absolute;

    background:#fff;

    padding:12px 18px;

    border-radius:999px;

    font-size:.85rem;

    font-weight:700;

    color:var(--heading);

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    animation:float 5s ease-in-out infinite;

    transition:.35s;

    border:1px solid transparent;

}

.badge:hover{

    border-color:var(--primary);

    transform:translateY(-6px);

}

.badge-1{
    top:8%;
    left:-8%;
}

.badge-2{
    top:22%;
    right:-10%;
    animation-delay:.5s;
}

.badge-3{
    top:48%;
    left:-12%;
    animation-delay:1s;
}

.badge-4{
    bottom:20%;
    right:-12%;
    animation-delay:1.5s;
}

.badge-5{
    bottom:6%;
    left:8%;
    animation-delay:2s;
}

.badge-6{
    top:-4%;
    right:20%;
    animation-delay:2.5s;
}

/* ==========================================
   TRUSTED TECHNOLOGIES
========================================== */

.tech-ribbon{
    background:var(--section);
    overflow:hidden;
    padding:50px 0;
}

.tech-ribbon p{
    text-align:center;
    margin-bottom:30px;
    font-weight:600;
    color:var(--heading-secondary);
}

.logo-row{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:50px;
}

.logo-row img{
    height:42px;
    filter:grayscale(100%);
    opacity:.7;
    transition:.3s;
}

.logo-row img:hover{
    filter:none;
    opacity:1;
    transform:scale(1.08);
}

/* ==========================================
   CARD
========================================== */

.card{
    background:#fff;
    border:1px solid #ececec;
    border-radius:22px;
    overflow:hidden;
    transition:.35s;
    box-shadow:0 8px 25px rgba(0,0,0,.05);
}

.card:hover{
    transform:translateY(-8px);
    box-shadow:0 20px 45px rgba(0,0,0,.08);
}

.card-image{
    overflow:hidden;
}

.card-image img{
    transition:.5s;
}

.card:hover .card-image img{
    transform:scale(1.06);
}

.card-content{
    padding:28px;
}

/* ==========================================
   PROJECT TAGS
========================================== */


.tag{
    padding:8px 14px;
    background:#F5F5F5;
    border-radius:999px;
    font-size:.8rem;
    font-weight:600;
    color:var(--heading-secondary);
}

/* ==========================================
   STATUS BADGES
========================================== */

.status{
    display:inline-flex;
    align-items:center;
    padding:8px 14px;
    border-radius:999px;
    font-size:.8rem;
    font-weight:700;
    margin-bottom:18px;
}

.status.portfolio{
    background:#FFF3EF;
    color:var(--primary);
}

.status.intern{
    background:#EEF4FF;
    color:#3A63E8;
}

.status.thesis{
    background:#EAF8F0;
    color:#138A4A;
}

/* ==========================================
   MODAL
========================================== */

.modal-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.65);
    display:flex;
    justify-content:center;
    align-items:center;
    opacity:0;
    visibility:hidden;
    transition:.3s;
    z-index:2000;
}

.modal-overlay.active{
    opacity:1;
    visibility:visible;
}

.modal{
    width:min(1000px,90%);
    max-height:90vh;
    overflow-y:auto;
    background:#fff;
    border-radius:24px;
    padding:40px;
    transform:scale(.95);
    transition:.3s;
}

.modal-overlay.active .modal{
    transform:scale(1);
}

/* ==========================================
   SCROLL ANIMATION
========================================== */

.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all .8s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* ==========================================
   FLOATING ANIMATION
========================================== */

@keyframes float{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-12px);
    }

    100%{
        transform:translateY(0);
    }

}

/* ==========================================
PROJECTS
========================================== */

.project-filters{

    display:flex;

    justify-content:center;

    gap:16px;

    flex-wrap:wrap;

    margin-bottom:60px;

}

.filter-btn{

    padding:12px 22px;

    border-radius:999px;

    border:1px solid #e5e5e5;

    background:#fff;

    font-weight:600;

    transition:.3s;

}

.filter-btn:hover{

    border-color:var(--primary);

    color:var(--primary);

}

.filter-btn.active{

    background:var(--primary);

    color:#fff;

    border-color:var(--primary);

}

.projects-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));

    gap:32px;

}

.project-card{

    background:#fff;

    border:1px solid #ececec;

    border-radius:28px;

    padding:34px;

    transition:.35s;

    display:flex;

    flex-direction:column;

    gap:24px;

    box-shadow:0 12px 35px rgba(0,0,0,.05);

    position:relative;

    overflow:hidden;

}

.project-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:4px;

    background:var(--primary);

    transform:scaleX(0);

    transform-origin:left;

    transition:.35s;

}

.project-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 60px rgba(0,0,0,.08);

}

.project-card:hover::before{

    transform:scaleX(1);

}

.project-top{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.project-category{

    font-size:.75rem;

    color:#777;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:.05em;

}

.project-card h3{

    font-size:1.5rem;

    line-height:1.3;

}

.project-card p{

    color:var(--body);

    line-height:1.8;

}

.project-tags{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}

.project-tags span{

    padding:8px 14px;

    background:#F8F8F8;

    border-radius:999px;

    font-size:.82rem;

    font-weight:600;

    transition:.25s;

}

.project-tags span:hover{

    background:var(--primary);

    color:#fff;

}

.project-btn{

    margin-top:auto;

    border:none;

    background:none;

    color:var(--primary);

    font-weight:700;

    cursor:pointer;

    padding:0;

    transition:.25s;

}

.project-btn:hover{

    transform:translateX(6px);

}


/* ==========================================
MODAL
========================================== */

.modal{

    position:relative;

}

.modal-close{

    position: sticky;

    top: 25px;

    margin-left: auto;

    display: flex;

    justify-content: center;

    align-items: center;

    width: 42px;

    height: 42px;

    border: none;

    border-radius: 50%;

    background: #F5F5F5;

    font-size: 1.5rem;

    cursor: pointer;

    z-index: 100;

    transition: .3s;

}

.modal-close:hover{

    margin-top: 20px;
    
    background:var(--primary);

    color:white;

}

.modal-image{

    width:100%;

    border-radius:18px;

    margin-bottom:25px;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.modal h2{

    margin:20px 0;

}

.modal h3{

    margin-top:40px;

    margin-bottom:15px;

}

/* ==========================================
MODAL HEADER
========================================== */

.modal-header{

    display:flex;

    align-items:center;

    gap:12px;

    margin:25px 0 15px;

    flex-wrap:wrap;

}

.modal-title{

    margin-bottom:18px;

}


/* ==========================================
WORKFLOW IMAGE
========================================== */

.workflow-image{

    width:100%;

    border-radius:18px;

    margin:20px 0;

    border:1px solid #ececec;

    box-shadow:0 12px 35px rgba(0,0,0,.06);

}

/* ==========================================
FEATURE LIST
========================================== */

.feature-list{

    list-style:none;

    display:flex;

    flex-direction:column;

    gap:14px;

    padding:0;

    margin-top:18px;

}

.feature-list li{

    display:flex;

    align-items:flex-start;

    gap:12px;

    line-height:1.7;

}

.feature-list li::before{

    content:"✓";

    color:var(--primary);

    font-weight:700;

}

/* ==========================================
GALLERY
========================================== */

.gallery-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:18px;

    margin-top:20px;

}

.gallery-grid img{

    width:100%;

    border-radius:18px;

    cursor:pointer;

    transition:.3s;

    border:1px solid #ececec;

}

.gallery-grid img:hover{

    transform:scale(1.03);

    box-shadow:0 18px 35px rgba(0,0,0,.08);

}

/* ==========================================
MODAL BUTTONS
========================================== */

.modal-actions{

    display:flex;

    gap:18px;

    margin-top:50px;

    flex-wrap:wrap;

}

/* ==========================================
MODAL IMAGE
========================================== */

.modal-image{

    width:100%;

    border-radius:20px;

    margin-bottom:25px;

    box-shadow:0 20px 45px rgba(0,0,0,.08);

}

/* ==========================================
MODAL SECTIONS
========================================== */

.modal-header{

    display:flex;

    gap:12px;

    align-items:center;

    margin:25px 0 15px;

}

.modal-section{

    margin-top:16px;

}

.modal-section h3{

    margin-bottom:8px;

}

.modal-section p{

    margin-bottom: 0;

    line-height:1.65;

    color:var(--body);

}

.feature-list{

    margin-top: 12px;

    padding-left:20px;

    display:flex;

    flex-direction:column;

    gap:12px;

}

.feature-list li{

    line-height:1.7;

}

.modal-actions{

    display:flex;

    gap:18px;

    margin-top:45px;

    flex-wrap:wrap;

}

/* ==========================================
WORKFLOW CARD
========================================== */

.workflow-card{

    margin-top:20px;

    padding:24px;

    border:1px solid var(--border);

    border-radius:20px;

    background:var(--surface);

}

.workflow-description{

    margin-top:20px;

    line-height:1.8;

}

/* ==========================================
ABOUT
========================================== */

.about{

    background:var(--section);

}

.about-grid{

    display:grid;

    grid-template-columns:1.1fr .9fr;

    gap:70px;

    align-items:center;

}

.about-content p{

    margin:24px 0;

}

.about-highlights{

    display:flex;

    gap:50px;

    margin-top:50px;

    flex-wrap:wrap;

}

.highlight h3{

    color:var(--primary);

    font-size:2rem;

}

.highlight span{

    color:var(--body);

}

.about-cards{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:24px;

}

.info-card{

    background:white;

    padding:32px;

    border-radius:22px;

    border:1px solid #ececec;

    transition:.35s;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

}

.info-card:hover{

    transform:translateY(-8px);

    box-shadow:0 18px 40px rgba(0,0,0,.08);

}

.info-card h3{

    margin-bottom:16px;

}

/* ==========================================
TECH STACK
========================================== */

.tech{

    background:white;

}

.tech-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:24px;

}

.tech-card{

    background:white;

    border:1px solid #ececec;

    border-radius:20px;

    padding:30px;

    transition:.35s;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

}

.tech-card:hover{

    transform:translateY(-8px);

    border-color:var(--primary);

    box-shadow:0 20px 40px rgba(0,0,0,.08);

}

.tech-category{

    display:inline-block;

    font-size:.8rem;

    color:var(--primary);

    background:#FFF3EF;

    padding:6px 12px;

    border-radius:999px;

    margin-bottom:18px;

    font-weight:600;

}

.tech-card h3{

    margin:0;

}

/* ==========================================
RESUME
========================================== */

.resume{

    background:var(--section);

}

.resume-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:40px;

}

.resume-card{

    background:#fff;

    padding:40px;

    border-radius:24px;

    border:1px solid #ececec;

    box-shadow:0 10px 30px rgba(0,0,0,.05);

    transition:.35s;

}

.resume-card:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 45px rgba(0,0,0,.08);

}

.resume-card h3{

    margin-bottom:30px;

}

.timeline{

    display:flex;

    flex-direction:column;

    gap:30px;

}

.timeline-item{

    padding-left:24px;

    border-left:3px solid var(--primary);

}

.timeline-year{

    display:inline-block;

    margin-bottom:10px;

    font-size:.85rem;

    font-weight:700;

    color:var(--primary);

}

.timeline-item h4{

    margin-bottom:10px;

}

.timeline-item small{

    color:#888;

}

.resume-actions{

    margin-top:40px;

}

/* ==========================================
CONTACT
========================================== */

.contact{

    background:white;

}

.contact-grid{

    display:grid;

    grid-template-columns:380px 1fr;

    gap:50px;

    align-items:start;

}

.contact-info{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.contact-card{

    background:white;

    border:1px solid #ececec;

    border-radius:20px;

    padding:30px;

    transition:.3s;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

}

.contact-card:hover{

    transform:translateY(-5px);

    border-color:var(--primary);

}

.contact-card h3{

    margin-bottom:10px;

}

.contact-card a{

    color:var(--primary);

    word-break:break-word;

}

.calendar-wrapper{

    overflow:hidden;

    border-radius:24px;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.calendar-wrapper iframe{

    display:block;

}

/* ==========================================
FOOTER
========================================== */

footer{

    background:#222;

    color:white;

    padding:40px 0;

}

.footer-container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    flex-wrap:wrap;

}

.footer-container p{

    color:#ccc;

}

/* ==========================================
TECH RIBBON
========================================== */

.logo-row{

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:40px;

    margin-top:30px;

}

.logo-item{

    width:55px;

    height:55px;

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:.7;

    transition:.3s ease;

}

.logo-item:hover{

    opacity:1;

    transform:translateY(-4px);

}

.logo-item img{

    width:100%;

    height:100%;

    object-fit:contain;

}

/* ==========================================
   SCROLL TO TOP BUTTON
========================================== */

#scrollTopBtn {

    position: fixed;

    bottom: 30px;
    right: 30px;

    width: 50px;
    height: 50px;

    border: none;
    border-radius: 50%;

    background: var(--primary);
    color: #fff;

    font-size: 18px;

    cursor: pointer;

    display: flex;
    justify-content: center;
    align-items: center;

    opacity: 0;
    visibility: hidden;

    transform: translateY(20px);

    transition: all .3s ease;

    z-index: 999;

    box-shadow: 0 8px 20px rgba(0,0,0,.2);

}

#scrollTopBtn.show {

    opacity: 1;
    visibility: visible;

    transform: translateY(0);

}

#scrollTopBtn:hover {

    background: var(--primary-dark);

    transform: translateY(-4px);

    

}