
@import url('https://fonts.googleapis.com/css2?family=Martel+Sans:wght@200;300;400;600;700;800;900&family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&family=Zhi+Mang+Xing&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Martel+Sans:wght@200;300;400;600;700;800;900&family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&family=Rubik+Dirt&family=Zhi+Mang+Xing&display=swap');




/* ==========================================
   THEME VARIABLES
========================================== */

:root{

    /* LIGHT MODE */

    --bg-color:#f5f5f5;

    --section-color:#ffffff;

    --card-color:#ffffff;

    --text-color:#111111;

    --text-light:#666666;

    --accent:#f7b731;

    --project-accent:#f7b731;

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

}


/* ==========================================
   DARK MODE
========================================== */

body.dark{

    --bg-color:#0f172a;

    --section-color:#111827;

    --card-color:#1e293b;

    --text-color:#f8fafc;

    --text-light:#cbd5e1;

    --accent:#f7b731;

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

}


*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html{
    scroll-behavior: smooth;
}

body{
    background:var(--bg-color);
    color:var(--text-color);
}

/* ==========================================
   LOADING SCREEN
========================================== */

#loader{

    position:fixed;

    inset:0;

    background:#111;

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:999999;

    transition:opacity .6s ease,
               visibility .6s ease;

}

#loader.hide{

    opacity:0;

    visibility:hidden;

}

.loader-content{

    text-align:center;

}

.loader-content h1{

    font-size:80px;

    color:#f7b731;

    letter-spacing:5px;

    margin-bottom:15px;

}

.loader-content p{
    margin-bottom:25px;
}

.english{
    font-family: "Rubik Dirt", cursive;
    text-transform: uppercase;
    font-size:25px;
    color:#fff;
}

.chinese{
    font-family: "Zhi Mang Xing", "Noto Sans SC", sans-serif;
    font-size:45px;
    color:#c62222;
    
}


.loader-dots{

    display:flex;

    justify-content:center;

    gap:12px;

}

.loader-dots span{

    width:12px;

    height:12px;

    border-radius:50%;

    background:#f7b731;

    animation:loaderBounce 1s infinite;

}

.loader-dots span:nth-child(2){

    animation-delay:.2s;

}

.loader-dots span:nth-child(3){

    animation-delay:.4s;

}

@keyframes loaderBounce{

    0%,80%,100%{

        transform:scale(.6);

        opacity:.4;

    }

    40%{

        transform:scale(1.2);

        opacity:1;

    }

}

.main-page{
  width: 100%;
  min-height: 100vh;
  margin: 0 auto;
  background:var(--section-color);
}

.page{

    display:flex;

    align-items:center;

    justify-content:space-between;

    min-height:100vh;

    padding:80px 8%;

    gap:50px;

}

.left-side{

    flex:1;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:flex-start;

    background:var(--section-color);

}
.right-side{

    flex:1.15;

    display:flex;

    justify-content:center;

    align-items:center;

}
.intro1{

    font-size:clamp(26px,3vw,40px);

    font-weight:800;

    margin-bottom:15px;

}

.intro2{

    font-size:clamp(46px,7vw,72px);

    font-weight:900;

    margin-bottom:25px;

    letter-spacing:3px;

}


.intro3{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    background:var(--accent);

    color:#111;

    padding:12px 24px;

    border-radius:40px;

    font-size:clamp(14px,2vw,20px);

    font-weight:700;

}

/* .about{
  display:flex;
  min-height:100vh;
  
} */

.main-image{

    width:100%;

    max-width:650px;

    aspect-ratio:1/1;

    border-radius:30px;

    overflow:hidden;

    border:2px solid rgba(247,183,49,.35);

    box-shadow:var(--shadow);

}





.main-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

}

.nav-bar{
    position: fixed;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);

    background: #f7b731;
    padding: 20px 15px;
    border-radius: 40px;

    z-index: 9999;
}

.nav-links{
  display: flex;
  flex-direction: column;
  gap: 25px;
  align-items: center;
}

.nav-links a{

    width:50px;

    height:50px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    color:#111;

    font-size:22px;

    text-decoration:none;

    transition:all .35s ease;

}

/* ===========================
   ACTIVE NAVIGATION
=========================== */

.nav-links a.active{

    background:#111;

    color:#f7b731;

    transform:scale(1.12);

    box-shadow: 0 10px 25px rgba(0,0,0,.25), 0 0 15px rgba(247,183,49,.6);

}

.nav-links a:hover{

    background:rgba(255,255,255,.35);

    transform:scale(1.08);

}
/* ==========================================
   THEME TOGGLE
========================================== */

.theme-toggle{

    margin-top:25px;

    width:50px;

    height:50px;

    border-radius:50%;

    background:var(--card-color);

    color:var(--text-color);

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    transition:.35s;

    box-shadow:var(--shadow);

}

.theme-toggle:hover{

    transform:rotate(180deg) scale(1.08);

    background:var(--accent);

    color:#111;

}

body,
.about,
.skills,
.projects,
.certificates,
.contact,
.project-card,
.certificate-card,
.contact-info,
.contact-form,
.skill-card,
.mini-project,
.modal-box,
.theme-toggle{

    transition:
    background .4s ease,
    color .4s ease,
    border-color .4s ease,
    box-shadow .4s ease;

}


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

.about{

    width:100%;

    /* min-height:100vh;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:70px; */

    padding:100px 8%;

}
  
  .about-container{
    max-width: 1350px;
    margin:  auto;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:60px;
  }
  
  .about-role{
    color:#f7b731;
    font-weight:600;
    margin-bottom:35px;
    font-size:clamp(1rem,1.3vw,1.25rem);
  }
  
 .about-left{

    flex:1;

    display:flex;

    justify-content:center;

    align-items:center;

}
  
.about-left img{

    width:100%;

    max-width:500px;

    border-radius:25px;

    object-fit:cover;

    box-shadow:0 20px 50px rgba(0,0,0,.15);

}
  
  .about-left img:hover{
    transform: scale(1.03);

    transition:.4s ease;
  }
  
  .about-right{

    flex:1.2;

    display:flex;

    flex-direction:column;

    justify-content:center;

    gap:22px;

}
  
  .about-right h2{
    font-size:clamp(2rem,4vw,3.5rem);
    margin-bottom: 25px;
    
    text-transform: uppercase;
    position: relative;
    
}

.about-right h3{
  font-size:clamp(2rem,3vw,2.8rem);

  margin-bottom: 20px;
  
  color: #f7b731;
}

.about-right h2::after{
  content: "";
  width: 80px;
  height: 4px;
  
  background-color: #f7b731;
  
  position: absolute;
  left: 0;
  bottom: -10px;
}

.about-right p{
  font-size:clamp(1rem,1.3vw,1.1rem);

    line-height:1.9;

    text-align:justify;
  
  color:var(--text-light);
}

.about-buttons{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

    margin-top:20px;

}

.btn{

    position:relative;

    overflow:hidden;

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:12px 28px;

    border-radius:35px;

    text-decoration:none;

    font-weight:700;

    background:#f7b731;

    color:#111;

    transition:

        transform .35s ease,

        box-shadow .35s ease;

}

.btn::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:60%;

    height:100%;

    background:

    linear-gradient(

        120deg,

        transparent,

        rgba(255,255,255,.65),

        transparent

    );

    transform:skewX(-25deg);

}

.btn:hover::before{

    animation:shine .8s ease;

}

@keyframes shine{

    from{

        left:-120%;

    }

    to{

        left:150%;

    }

}
.btn:hover{

transform:

translateY(-4px)

scale(1.02);

box-shadow:

0 15px 35px rgba(247,183,49,.35);

}   

/* ==========================================
   TYPING EFFECT
========================================== */

.home-role{

    font-size:24px;

    font-weight:600;

    color:#f7b731;

    min-height:35px;

}

.cursor{

    display:inline-block;

    animation:blink .8s infinite;

}

@keyframes blink{

    0%,50%{

        opacity:1;

    }

    51%,100%{

        opacity:0;

    }

}


/* skill section */

.skills{

    width:100%;

    padding:100px 8%;

    background:var(--bg-color);

}

.skills-title{
    text-align: center;
    font-size:clamp(38px,5vw,60px);
    margin-bottom: 60px;
    text-transform: uppercase;
}

.skills-title::after{
    content:"";
    display:block;
    width:100px;
    height:4px;
    background:#f7b731;
    margin:15px auto 0;
}

.skills-container{

    width:100%;

    max-width:1350px;

    margin:auto;

    display:flex;

    flex-direction:column;

    gap:50px;

}

.skill-category h3{

    font-size:clamp(24px,3vw,32px);

    color:var(--accent);

    margin-bottom:30px;

    text-align:center;

    font-weight:700;

}
.skill-cards{

    display:grid;

    grid-template-columns:

    repeat(auto-fit,minmax(230px,1fr));

    gap:25px;

}
.skills-subtitle{
    text-align: center;
    max-width: 700px;
    margin: 0 auto 50px;
    font-size: 18px;
    color:var(--text-light);
    line-height: 1.8;
}
.skill-card{

    background:var(--card-color);

    border-radius:20px;

    padding:28px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:18px;

    box-shadow:var(--shadow);

    border:1px solid rgba(255,255,255,.08);

    transition:

    transform .35s ease,

    box-shadow .35s ease,

    background .35s ease;

}

.skill-card i{

    font-size:48px;

    color:var(--accent);

    transition:.35s;

}

.skill-card span{

    font-size:clamp(16px,2vw,19px);

    font-weight:700;

}

.skill-card:hover{

    transform:

    translateY(-12px);

    background:var(--accent);

    color:#111;

    box-shadow:

    0 20px 45px rgba(247,183,49,.35);

}

.skill-card:hover i{

    color:#111;

    transform:

    rotate(-8deg)

    scale(1.12);

}
/* projects section start here */

.projects{
    min-height:100vh;
    padding:80px 10%;
    background:var(--bg-color);
}

.projects-header{
    text-align:center;
    margin-bottom:60px;
}

.projects-header h2{
    font-size:clamp(38px,5vw,60px);
    font-weight:800;
}

.projects-header .underline{
    width:80px;
    height:4px;
    background:var(--project-accent);
    margin:15px auto;
}

.projects-header p{
    margin-top:20px;
    color:#555;
}

.project-tech{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin:25px 0;

}

.project-tech span{

    background:rgba(247,183,49,.15);

    color:var(--accent);

    padding:10px 18px;

    border-radius:30px;

    font-size:14px;

    font-weight:700;

    border:1px solid rgba(247,183,49,.3);

}

.project-features{

    display:flex;

    flex-direction:column;

    gap:14px;

    margin-top:25px;

}

.feature-item{

    display:flex;

    align-items:center;

    gap:12px;

    color:var(--text-light);

}

.feature-item i{

    color:var(--accent);

    font-size:18px;

}

.project-card{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:80px;

    background:var(--card-color);

    border-radius:25px;

    padding:45px;

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

    transition:
        transform .4s ease,
        box-shadow .4s ease;

}

.project-card:hover{

transform:translateY(-10px);

box-shadow:

0 30px 60px rgba(0,0,0,.10),

0 0 20px rgba(247,183,49,.25);

}

.project-image{

    overflow:hidden;

    border-radius:18px;

}

.project-image img{

    width:100%;

    max-width:560px;

    display:block;

    border-radius:18px;

   transition:

    opacity .45s ease,

    transform .55s ease,

    filter .45s ease;

}

.project-image img:hover{

transform:scale(1.04);

}
.project-content{

    flex:1;

     transition:
        opacity .35s ease,
        transform .35s ease;
}

.fade-out{

opacity:0;

transform:

translateY(25px)

scale(.96);

filter:blur(6px);

}

.fade-in{

opacity:1;

transform:

translateY(0)

scale(1);

filter:blur(0);

}

.project-content h3{

font-size:clamp(32px,5vw,50px);

font-weight:800;

margin-bottom:18px;

}

.project-content h4{

font-size:22px;

color:#f7b731;

margin-bottom:25px;

}

.project-content p{

    font-size:18px;

    line-height:1.9;

    color:var(--text-light);

}

.project-buttons{

    margin-top:25px;

    display:flex;

    gap:15px;
}

.project-buttons a{

    text-decoration:none;

    padding:15px 34px;

    display:flex;

    align-items:center;

    gap:10px;

    background:var(--project-accent);

    color:#000;

    border-radius:35px;

    font-weight:700;

    transition:.35s;

}

.project-buttons a:hover{

transform:translateY(-5px);

box-shadow:
0 20px 40px rgba(247,183,49,.35);

}

.project-navigation{

    margin-top:40px;

    display:flex;

    gap:15px;
}

.project-navigation button{

    width:50px;

    height:50px;

    border:none;

    border-radius:50%;

    background:var(--project-accent);

    cursor:pointer;

    font-size:22px;
}

.project-selector{

    display:flex;

    justify-content:center;

    gap:30px;

    margin-top:40px;
}

.mini-project{

    width:260px;

    background:var(--card-color);

    border-radius:22px;

    overflow:hidden;

    cursor:pointer;

    display:flex;

    flex-direction:column;

    transition:all .35s ease;

    filter:grayscale(100%);
    
    opacity:.55;

    position:relative;

    box-shadow:var(--shadow);
    
  }
  
  
 .mini-project img{

    width:100%;

    height:170px;

    object-fit:cover;

    transition:.45s;

    }

.mini-project:hover{

transform:

translateY(-12px);

box-shadow:

0 20px 45px rgba(247,183,49,.30);

border:1px solid rgba(247,183,49,.35);

opacity:1;

filter:grayscale(0%);

}

.mini-project:hover img{

transform:scale(1.08);

}

.mini-project h4{

    text-align:center;

    padding:15px;

    background:rgb(234, 233, 233);
}

.mini-project:hover .mini-view i{

transform: translateX(8px);

}

.mini-project:hover h4{

color:var(--accent);

}

.active-project{

    transform:

    translateY(-15px)

    scale(1.04);

    border:2px solid var(--accent);

    box-shadow: 0 25px 55px rgba(247,183,49,.35);

    filter:none;

    opacity:1;

}



.mini-content{

    padding:20px;

    display:flex;

    flex-direction:column;

    gap:12px;

    }

.mini-content h4{

    font-size:20px;

    font-weight:700;

    color:var(--text-color);

}

.mini-content p{

    font-size:14px;

    color:var(--text-light);

    line-height:1.6;

}

.mini-view{

    display:flex;

    align-items:center;

    gap:8px;

    margin-top:8px;

    font-size:15px;

    font-weight:700;

    color:var(--accent);

    transition:.35s;

}

.mini-view i{

transition:.35s;

}

.carousel-controls{

display:flex;

justify-content:center;

align-items:center;

gap:28px;

margin-top:40px;

}

.carousel-controls button{

width:55px;

height:55px;

border:none;

border-radius:50%;

background:var(--project-accent);

font-size:22px;

transition:.35s;

cursor:pointer;

}

.carousel-controls button:hover{

transform:scale(1.08);

box-shadow:
0 12px 25px rgba(247,183,49,.35);

}



#project-counter{

background:var(--card-color);

padding:10px 20px;

border-radius:30px;

box-shadow:var(--shadow);

font-size:26px;

font-weight:700;

letter-spacing:2px;

}


.carousel-controls button:disabled{

opacity:.3;

cursor:not-allowed;

}

.project-card,
.mini-project,
.project-buttons a,
.carousel-controls button{

cursor:pointer;

}

/* ==========================================
   CERTIFICATES SECTION
========================================== */

.certificates{

    min-height:100vh;

    padding:80px 10%;

    background:var(--bg-color);

}


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

.certificate-header{

    text-align:center;

    margin-bottom:60px;

}

.certificate-header h2{

    font-size: clamp(38px, 5vw, 60px);

    font-weight:800;

}

.certificate-header .underline{

    width:80px;

    height:4px;

    background:#f7b731;

    margin:15px auto;

}

.certificate-header p{

    margin-top:20px;

    color:#666;

    font-size:18px;

}


/* ===========================
   GRID
=========================== */

/* .certificate-grid{

    display:grid;

    grid-template-columns:repeat(3,minmax(380px,1fr));;

    justify-content:center;
    

    gap:35px;

} */

.certificate-grid{

    display:grid;

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

    gap:35px;

    margin-top:45px;

}


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

.certificate-card{

    background:var(--card-color);

    border-radius:20px;

    overflow:hidden;

    cursor:pointer;

    transition:.35s;

    user-select:none;

    filter:grayscale(100%);

    opacity:.75;

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

}

/* .certificate-card img{

    width:100%;

    
    object-fit:cover;
    
    transition:.4s;
    
    } */
    
    .certificate-card img{
        
    height:280px;
    width:100%;

    aspect-ratio:16/10;

    object-fit:cover;

    display:block;

    transition:.45s;

}

.certificate-name{

    text-align:center;

    padding:18px;

    font-size:20px;

    font-weight:700;

}


/* ===========================
   HOVER
=========================== */

.certificate-card:hover{

    transform:
    translateY(-12px)
    scale(1.03);

    filter:grayscale(0);

    opacity:1;

    box-shadow:
    0 25px 55px rgba(247,183,49,.28);

}

.certificate-card:hover img{

    transform:scale(1.05);

}


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

.certificate-modal{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.82);
    backdrop-filter: blur(8px);

    display:flex;

    justify-content:center;

    align-items:center;

    visibility:hidden;

    opacity:0;

    transition:.35s;

    z-index:99999;

}


/* Active Modal */

.certificate-modal.show{

    visibility:visible;

    opacity:1;

}


/* ===========================
   BOX
=========================== */

.modal-box{

    width:90%;
    max-width:1300px;

    background:var(--card-color);

    border-radius:25px;

    display:flex;
    align-items:center;
    gap:60px;

    padding:45px;

    position:relative;

    transform:scale(.8) translateY(40px);

    transition:.45s ease;

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

}

.certificate-modal.show .modal-box{

    transform:scale(1)
    translateY(0);

}


/* ===========================
   LEFT
=========================== */

.modal-left{

    flex:17;

    display:flex;

    align-items: center;

    justify-content: center;

}

.modal-left img{

    width:100%;

    max-height:650px;

    object-fit:contain;

    border-radius:15px;

    cursor:zoom-in;

    transition:.4s;

}

.modal-left img:hover{

    transform:scale(1.02);

}


/* ===========================
   RIGHT
=========================== */

.modal-right{

    flex:8;

    display:flex;

    flex-direction:column;

    justify-content:center;

}

.modal-right h2{

    font-size:48px;

    font-weight:800;

    margin-bottom:18px;

}

.modal-right h4{

    color:#f7b731;

    margin-bottom:25px;

    font-size:22px;

    font-weight:700;

    letter-spacing:.5px;

}

.modal-right p{

    font-size:18px;

    line-height:1.9;

    max-width:500px;

    color:var(--text-light);

    margin-bottom:35px;

}

.modal-right a{

    width:fit-content;

}

.modal-right .btn{

    width:max-content;

    padding:14px 35px;

}


/* ===========================
   CLOSE BUTTON
=========================== */

.close-modal{

    position:absolute;

    right:25px;

    top:18px;

    font-size:42px;

    color:#666;

    font-weight:300;

    cursor:pointer;

    transition:.3s;

}

.close-modal:hover{

    color:#f7b731;

    transform:rotate(90deg) scale(1.2);

}

.modal-box{

    overflow:hidden;

}

body.modal-open{

    overflow:hidden;

}




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

.contact{

    min-height:100vh;

    padding:90px 10%;

    background:var(--bg-color);

}


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

.contact-header{

    text-align:center;

    margin-bottom:70px;

}

.contact-header h2{

    font-size:clamp(38px,5vw,60px);

    font-weight:800;

}

.contact-header .underline{

    width:80px;

    height:4px;

    background:#f7b731;

    margin:18px auto;

}

.contact-header p{

    max-width:700px;

    margin:25px auto 0;

    color:#666;

    font-size:18px;

    line-height:1.8;

}


/* ===========================
   CONTAINER
=========================== */

.contact-container{

    display:grid;

    grid-template-columns:1fr 1.3fr;

    gap:45px;

}


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

.contact-info{

    background:var(--card-color);

    border-radius:25px;

    padding:45px;

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

    transition:.35s;

}

.contact-info:hover{

    transform:translateY(-8px);

    box-shadow:0 30px 60px rgba(247,183,49,.20);

}

.contact-info h3{

    font-size:36px;

    margin-bottom:20px;

}

.contact-info p{

    color:var(--text-light);

    line-height:1.8;

    margin-bottom:35px;

}


/* ===========================
   INFO ITEMS
=========================== */

.info-item{

    display:flex;

    align-items:center;

    gap:20px;

    margin-bottom:28px;

}

.info-item i{

    width:60px;

    height:60px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    background:#f7b731;

    color:#000;

    font-size:24px;

    transition:.35s;

}

.info-item:hover i{

    transform:rotate(8deg) scale(1.12);

    box-shadow:0 12px 25px rgba(247,183,49,.45);

}

.info-item h4{

    margin-bottom:6px;

    font-size:20px;

}

.info-item span{

    color:var(--text-light);

    font-size:16px;

}


/* ===========================
   SOCIAL
=========================== */

.social-links{

    display:flex;

    gap:18px;

    margin-top:35px;

}

.social-links a{

    width:55px;

    height:55px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    background:var(--card-color);

    color:var(--text-color);

    text-decoration:none;

    font-size:22px;

    border:2px solid #f7b731;

    transition:.35s;

}

.social-links a:hover{

    background:#f7b731;

    color:#000;

    transform:translateY(-6px) scale(1.08);

    box-shadow:0 15px 35px rgba(247,183,49,.40);

}


/* ===========================
   FORM
=========================== */

.contact-form{

    background:var(--card-color);

    border-radius:25px;

    padding:45px;

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

    transition:.35s;

}

.contact-form:hover{

    transform:translateY(-8px);

    box-shadow:0 30px 60px rgba(247,183,49,.20);

}

.contact-form form{

    display:flex;

    flex-direction:column;

    gap:22px;

}


/* ===========================
   INPUTS
=========================== */

.contact-form input,

.contact-form textarea{

    width:100%;

    padding:18px 22px;

    border:2px solid #e6e6e6;

    border-radius:15px;

    font-size:17px;

    font-family:inherit;

    outline:none;

    transition:.35s;

    resize:none;

}

.contact-form input:focus,

.contact-form textarea:focus{

    border-color:#f7b731;

    box-shadow:0 0 0 5px rgba(247,183,49,.18);

}


/* ===========================
   BUTTON
=========================== */

.contact-form button{

    width:max-content;

    padding:15px 38px;

    border:none;

    cursor:pointer;

    background:#f7b731;

    color:#000;

    border-radius:35px;

    font-size:17px;

    font-weight:700;

    transition:.35s;

}

.contact-form button:hover{

    transform:translateY(-5px) scale(1.03);

    box-shadow:0 20px 40px rgba(247,183,49,.35);

}




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

.footer{

    background:#111;

    color:#fff;

    padding:80px 10% 35px;

    margin-top:120px;

}

.footer-container{

    max-width:1200px;

    margin:auto;

    text-align:center;

}

.footer-logo{

    font-size:46px;

    font-weight:800;

    margin-bottom:20px;

    letter-spacing:2px;

}

.footer-text{

    max-width:700px;

    margin:auto;

    color:#bbb;

    line-height:1.8;

    font-size:18px;

    margin-bottom:45px;

}


/* ===========================
   LINKS
=========================== */

.footer-links{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:35px;

    margin-bottom:45px;

}

.footer-links a{

    color:#fff;

    text-decoration:none;

    font-size:18px;

    transition:.3s;

    position:relative;

}

.footer-links a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-6px;

    width:0;

    height:2px;

    background:#f7b731;

    transition:.3s;

}

.footer-links a:hover{

    color:#f7b731;

}

.footer-links a:hover::after{

    width:100%;

}


/* ===========================
   SOCIAL ICONS
=========================== */

.footer-social{

    display:flex;

    justify-content:center;

    gap:25px;

    margin-bottom:45px;

}

.footer-social a{

    width:60px;

    height:60px;

    border-radius:50%;

    background:#1d1d1d;

    display:flex;

    justify-content:center;

    align-items:center;

    color:white;

    font-size:24px;

    transition:.35s;

    text-decoration:none;

}

.footer-social a:hover{

    background:#f7b731;

    color:#111;

    transform:
    translateY(-8px)
    scale(1.08);

    box-shadow:
    0 15px 35px rgba(247,183,49,.45);

}


/* ===========================
   BACK TO TOP
=========================== */

.back-top{

    width:65px;

    height:65px;

    border:none;

    border-radius:50%;

    background:#f7b731;

    cursor:pointer;

    font-size:24px;

    color:#111;

    margin:10px auto 40px;

    display:flex;

    justify-content:center;

    align-items:center;

    transition:.35s;

}

.back-top:hover{

    transform:
    translateY(-10px)
    rotate(360deg);

    box-shadow:
    0 18px 40px rgba(247,183,49,.45);

}


/* ===========================
   COPYRIGHT
=========================== */

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.08);

    padding-top:30px;

    color:#999;

    font-size:16px;

    line-height:1.9;

}

.footer-bottom span{

    color:#f7b731;

}


/* ==========================================
   SCROLL REVEAL
========================================== */
/* ==========================================
   SCROLL REVEAL
========================================== */

.reveal{

    opacity:0;

    transition:
        opacity .9s ease,
        transform .9s ease;

}

.reveal.active{

    opacity:1;

}

/* Bottom */

.reveal-up{

    transform:translateY(80px);

}

.reveal-up.active{

    transform:translateY(0);

}

/* Left */

.reveal-left{

    transform:translateX(-80px);

}

.reveal-left.active{

    transform:translateX(0);

}

/* Right */

.reveal-right{

    transform:translateX(80px);

}

.reveal-right.active{

    transform:translateX(0);

}

/* Scale */

.reveal-scale{

    transform:scale(.94);

}

.reveal-scale.active{

    transform:scale(1);

}

/* Fade */

.reveal-fade{

    transform:none;

}

.reveal-fade.active{

    transform:none;

}


/*======================================
        RESPONSIVE DESIGN
======================================*/

/* ---------- 1400px ---------- */

@media (max-width:1400px){

}

/* ---------- 1200px ---------- */

@media (max-width:1200px){

}

/* ---------- 992px ---------- */

@media (max-width:992px){
.page{

    flex-direction:column-reverse;

    text-align:center;

    gap:50px;

}

.left-side{

    align-items:center;

}


.left-side,
.right-side{

    width:100%;

    height:auto;

}

.right-side{

    justify-content:center;

    margin-top:60px;

}

.main-image{
    max-width:340px;

    height:320px;

    border-radius:50%;

    overflow:hidden;

    border:6px solid var(--accent);

}

.main-image img{

    object-fit:cover;

}

.intro1,
.intro2,
.intro3{

    position:static;

    text-align:center;

    justify-content:center;

    left:0;
    top:0;

}

.intro1{

    font-size:34px;

}

.intro2{

    font-size:58px;

    margin:15px 0;

    letter-spacing:2px;

}

.intro3{

    display:inline-block;

    margin:auto;

}

.about{

flex-direction:column;

text-align:center;

padding:80px 5%;

}

.about-container{

flex-direction:column;

text-align:center;

gap:50px;


}

.about-right{

align-items:center;

}

.about-right p{

text-align:center;

}


.about-right h2::after{

left:50%;
transform:translateX(-50%);

}

.about-buttons{

justify-content:center;

}

.project-card{

flex-direction:column;

text-align:center;

}

.project-buttons{

justify-content:center;

}

.skills{

padding:90px 6%;

}

.skill-cards{

grid-template-columns:

repeat(2,1fr);

}

.projects{
    padding:80px 6%;
}

.project-card{

    gap:45px;

    padding:35px;

}

.project-image img{

    max-width:450px;

}

.project-content h3{

    font-size:42px;

}

.project-content p{

    font-size:16px;

}

.project-buttons{

    flex-wrap:wrap;

}

.project-buttons a{

    padding:14px 28px;

}

.project-selector{

    gap:20px;

}

.mini-project{

    width:220px;

}


.certificates{

    padding:70px 6%;

}

.certificate-header{

    margin-bottom:45px;

}

.certificate-header h2{

    font-size:50px;

}

.certificate-header p{

    font-size:17px;

}

.certificate-grid{

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

    gap:28px;

}

.certificate-card img{

    height:240px;

}

.modal-box{

    flex-direction:column;

    gap:35px;

    padding:35px;

    max-width:900px;

}

.modal-left{

    width:100%;

}

.modal-left img{

    max-height:420px;

}

.modal-right{

    width:100%;

    text-align:center;

    align-items:center;

}

.modal-right h2{

    font-size:38px;

}

.modal-right h4{

    font-size:20px;

}

.modal-right p{

    max-width:100%;

    font-size:17px;

}

.contact{

    padding:80px 6%;

}

.contact-header{

    margin-bottom:50px;

}

.contact-header h2{

    font-size:50px;

}

.contact-header p{

    font-size:17px;

}

.contact-container{

    grid-template-columns:1fr;

    gap:35px;

}

.contact-info,
.contact-form{

    padding:38px;

}

.contact-info h3{

    font-size:32px;

}

.footer{

    padding:70px 6% 30px;

    margin-top:90px;

}

.footer-logo{

    font-size:40px;

}

.footer-text{

    max-width:650px;

    font-size:17px;

}

.footer-links{

    gap:28px;

}

.footer-links a{

    font-size:17px;

}

.footer-social{

    gap:20px;

}

.footer-social a{

    width:55px;

    height:55px;

    font-size:22px;

}

.back-top{

    width:60px;

    height:60px;

}

}



/* ---------- 768px ---------- */

@media (max-width:768px){
 .page{

    padding:35px 20px;
    gap:30px;

}

.main-image{

    max-width:220px;

}


.intro1{

    font-size:26px;

}

.intro2{

    font-size:44px;

    letter-spacing:2px;

}

.intro3{

    font-size:16px;

    padding:10px 20px;

}

.nav-bar{

    bottom:20px;

    top:auto;

    left:50%;

    right:auto;

    transform:translateX(-50%);

    border-radius:40px;

}

.nav-links{

    flex-direction:row;

    gap:18px;

}

.theme-toggle{

    display:none;

}

.about{

padding:70px 30px;

}

.about-left img{

max-width:340px;

}

.about-right h3{

font-size:2rem;

}

.skills{

padding:80px 30px;

}

.skill-cards{

grid-template-columns:1fr;

}

.skill-card{

padding:24px;

}

.projects{

    padding:70px 5%;

}

.projects-header{

    margin-bottom:40px;

}

.project-card{

    flex-direction:column;

    text-align:center;

    gap:35px;

    padding:30px;

}

.project-image{

    width:100%;

}

.project-image img{

    width:100%;

    max-width:100%;

}

.project-content{

    width:100%;

}

.project-content h3{

    font-size:38px;

}

.project-tech{

    justify-content:center;

}

.project-features{

    align-items:center;

}

.feature-item{

    justify-content:center;

}

.project-buttons{

    justify-content:center;

    flex-wrap:wrap;

}

.project-selector{

    flex-wrap:wrap;

    gap:18px;

}

.mini-project{

    width:220px;

}

.carousel-controls{

    margin-top:30px;

}

.certificates{

    padding:65px 5%;

}

.certificate-header h2{

    font-size:42px;

}

.certificate-header p{

    font-size:16px;

}

.certificate-grid{

    grid-template-columns:1fr;

    gap:25px;

}

.certificate-card{

    max-width:500px;

    margin:auto;

}

.certificate-card img{

    height:230px;

}

.modal-box{

    width:94%;

    padding:28px;

}

.modal-left img{

    max-height:340px;

}

.modal-right h2{

    font-size:34px;

}

.modal-right h4{

    font-size:19px;

}

.modal-right p{

    font-size:16px;

    line-height:1.8;

}

.close-modal{

    font-size:36px;

    top:15px;

    right:18px;

}

.contact{

    padding:70px 5%;

}

.contact-header{

    margin-bottom:45px;

}

.contact-header h2{

    font-size:42px;

}

.contact-header p{

    font-size:16px;

    line-height:1.7;

}

.contact-info,
.contact-form{

    padding:30px;

}

.contact-info h3{

    font-size:30px;

}

.info-item{

    gap:16px;

}

.info-item i{

    width:55px;

    height:55px;

    font-size:22px;

}

.info-item h4{

    font-size:18px;

}

.info-item span{

    font-size:15px;

}

.social-links{

    justify-content:center;

    flex-wrap:wrap;

}

.contact-form button{

    width:100%;

    justify-content:center;

}

.footer{

    padding:65px 5% 28px;

    margin-top:80px;

}

.footer-logo{

    font-size:34px;

}

.footer-text{

    font-size:16px;

    line-height:1.7;

    margin-bottom:35px;

}

.footer-links{

    gap:20px;

    margin-bottom:35px;

}

.footer-links a{

    font-size:16px;

}

.footer-social{

    gap:18px;

    margin-bottom:35px;

}

.footer-social a{

    width:50px;

    height:50px;

    font-size:20px;

}

.back-top{

    width:55px;

    height:55px;

    font-size:20px;

}

.footer-bottom{

    font-size:15px;

}



}

/* ---------- 576px ---------- */

@media (max-width:576px){

.page{

    padding:40px 20px;

}

.main-image{

    max-width:190px;

}

.intro1{

    font-size:20px;

}

.intro2{

    font-size:30px;
    line-height: 1.15;

}

.intro3{

    font-size:14px;
    padding:10px 18px;

}

.nav-links a{

    font-size:18px;

}

.nav-bar{

    padding:14px 18px;

}

.about{

padding:60px 20px;

}

.about-left img{

max-width:280px;

}

.about-buttons{

flex-direction:column;

width:100%;

}

.about-buttons .btn{

width:100%;

text-align:center;

}

.projects{

    padding:60px 18px;

}

.projects-header h2{

    font-size:42px;

}

.projects-header p{

    font-size:15px;

}

.project-card{

    padding:22px;

    border-radius:20px;

}

.project-content h3{

    font-size:32px;

}

.project-content p{

    font-size:15px;

    line-height:1.7;

}

.project-tech{

    gap:10px;

}

.project-tech span{

    padding:8px 16px;

    font-size:13px;

}

.project-buttons{

    flex-direction:column;

    width:100%;

}

.project-buttons a{

    justify-content:center;

    width:100%;

}

.project-selector{

    gap:15px;

}

.mini-project{

    width:100%;

    max-width:320px;

}

#project-counter{

    font-size:20px;

    padding:8px 18px;

}

.carousel-controls button{

    width:48px;

    height:48px;

}

.certificates{

    padding:60px 18px;

}

.certificate-header h2{

    font-size:36px;

}

.certificate-header p{

    font-size:15px;

    line-height:1.7;

}

.certificate-card{

    border-radius:16px;

}

.certificate-card img{

    height:200px;

}

.certificate-name{

    font-size:18px;

    padding:15px;

}

.modal-box{

    width:96%;

    padding:20px;

    border-radius:18px;

}

.modal-left img{

    max-height:260px;

}

.modal-right h2{

    font-size:28px;

}

.modal-right h4{

    font-size:17px;

}

.modal-right p{

    font-size:15px;

    line-height:1.7;

}

.modal-right .btn{

    width:100%;

    text-align:center;

}

.close-modal{

    font-size:32px;

}

.contact{

    padding:60px 18px;

}

.contact-header h2{

    font-size:36px;

}

.contact-header p{

    font-size:15px;

}

.contact-info,
.contact-form{

    padding:24px;

    border-radius:18px;

}

.contact-info{

    text-align:center;

}

.contact-info h3{

    font-size:26px;

}

.info-item{

    flex-direction:column;

    text-align:center;

    gap:12px;

}

.info-item i{

    width:50px;

    height:50px;

    font-size:20px;

}

.social-links{

    justify-content:center;

    gap:15px;

}

.social-links a{

    width:50px;

    height:50px;

    font-size:20px;

}

.contact-form input,
.contact-form textarea{

    padding:16px 18px;

    font-size:15px;

}

.contact-form button{

    width:100%;

    padding:14px;

    font-size:16px;

}

.footer{

    padding:55px 18px 25px;

    margin-top:70px;

}

.footer-logo{

    font-size:30px;

}

.footer-text{

    font-size:15px;

    margin-bottom:30px;

}

.footer-links{

    flex-direction:column;

    gap:16px;

    margin-bottom:30px;

}

.footer-links a{

    font-size:15px;

}

.footer-social{

    gap:15px;

    flex-wrap:wrap;

    margin-bottom:30px;

}

.footer-social a{

    width:48px;

    height:48px;

    font-size:18px;

}

.back-top{

    width:50px;

    height:50px;

    font-size:18px;

    margin-bottom:30px;

}

.footer-bottom{

    font-size:14px;

    line-height:1.8;

}

.loader-content h1{

    font-size:60px;

}

.loader-content p{

    font-size:17px;

}

.loader-dots span{

    width:10px;

    height:10px;

}




}

/* ---------- 400px ---------- */

@media (max-width:400px){

.about-left img{

max-width:240px;

}

.about-right h2{

font-size:2rem;

}

.about-right h3{

font-size:1.6rem;

}

.skills{

padding:70px 20px;

}

.skill-card i{

font-size:40px;

}

.projects{

    padding:50px 15px;

}

.projects-header h2{

    font-size:36px;

}

.project-card{

    padding:18px;

    gap:25px;

}

.project-content h3{

    font-size:28px;

}

.project-content p{

    font-size:14px;

}

.project-tech{

    justify-content:center;

}

.project-tech span{

    font-size:12px;

    padding:7px 14px;

}

.feature-item{

    font-size:14px;

}

.feature-item i{

    font-size:16px;

}

.project-buttons a{

    padding:13px;

    font-size:15px;

}

.mini-project{

    max-width:100%;

}

.carousel-controls{

    gap:18px;

}

.carousel-controls button{

    width:42px;

    height:42px;

}

#project-counter{

    font-size:18px;

}

.certificates{

    padding:50px 15px;

}

.certificate-header h2{

    font-size:30px;

}

.certificate-header .underline{

    width:65px;

}

.certificate-header p{

    font-size:14px;

}

.certificate-card img{

    height:180px;

}

.certificate-name{

    font-size:16px;

}

.modal-box{

    padding:16px;

    gap:20px;

}

.modal-left img{

    max-height:210px;

}

.modal-right h2{

    font-size:24px;

}

.modal-right h4{

    font-size:15px;

}

.modal-right p{

    font-size:14px;

}

.modal-right .btn{

    width:100%;

    padding:12px;

    font-size:15px;

}

.close-modal{

    font-size:28px;

    right:12px;

    top:10px;

}

.contact{

    padding:50px 15px;

}

.contact-header h2{

    font-size:30px;

}

.contact-header .underline{

    width:65px;

}

.contact-header p{

    font-size:14px;

}

.contact-info,
.contact-form{

    padding:18px;

}

.contact-info h3{

    font-size:22px;

}

.contact-info p{

    font-size:14px;

}

.info-item h4{

    font-size:17px;

}

.info-item span{

    font-size:14px;

}

.social-links{

    gap:12px;

}

.social-links a{

    width:45px;

    height:45px;

    font-size:18px;

}

.contact-form input,
.contact-form textarea{

    padding:14px 16px;

    font-size:14px;

}

.contact-form label{

    font-size:14px;

}

.contact-form button{

    width:100%;

    font-size:15px;

    padding:13px;

}

.footer{

    padding:50px 15px 20px;

}

.footer-logo{

    font-size:26px;

    letter-spacing:1px;

}

.footer-text{

    font-size:14px;

}

.footer-links{

    gap:14px;

}

.footer-links a{

    font-size:14px;

}

.footer-social{

    gap:12px;

}

.footer-social a{

    width:44px;

    height:44px;

    font-size:17px;

}

.back-top{

    width:45px;

    height:45px;

    font-size:17px;

}

.footer-bottom{

    font-size:13px;

}

}