/* =====================================
   FACTTREKKER PORTFOLIO
   STYLE.CSS
===================================== */

/* Google Font */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* Reset */

*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:'Poppins',sans-serif;
scroll-behavior:smooth;
}

html{
scroll-behavior:smooth;
}

body{

background:#08111f;
color:#fff;
overflow-x:hidden;

}

/* Variables */

:root{

--primary:#00c6ff;
--secondary:#00ff95;

--bg:#08111f;

--card:#111c2e;

--text:#ffffff;

--gray:#b7bfd2;

}

/* Links */

a{

text-decoration:none;
color:inherit;

}

/* Images */

img{

max-width:100%;
display:block;

}

/* Sections */

section{

padding:100px 8%;

}

/* Title */

.title{

text-align:center;
margin-bottom:60px;

}

.title h2{

font-size:40px;
margin-bottom:10px;

}

.title p{

color:var(--gray);

}

/* Buttons */

.btn{

display:inline-block;

padding:14px 30px;

background:var(--primary);

color:#fff;

border-radius:50px;

transition:.3s;

font-weight:600;

}

.btn:hover{

background:var(--secondary);

color:#000;

}

.btn2{

display:inline-block;

padding:14px 30px;

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

border-radius:50px;

margin-left:15px;

transition:.3s;

}

.btn2:hover{

background:var(--primary);

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

header{
position:fixed;
top:0;
left:0;
width:100%;
padding:18px 8%;
display:flex;
justify-content:space-between;
align-items:center;
background:rgba(8,17,31,.95);
backdrop-filter:blur(12px);
z-index:1000;
}

.logo h2{
font-size:30px;
font-weight:700;
}

.logo span{
color:var(--primary);
}

nav{
display:flex;
gap:35px;
}

nav a{
color:#fff;
font-weight:500;
transition:.3s;
position:relative;
}

nav a:hover,
nav a.active{
color:var(--primary);
}

nav a::after{
content:"";
position:absolute;
left:0;
bottom:-5px;
width:0;
height:2px;
background:var(--primary);
transition:.3s;
}

nav a:hover::after{
width:100%;
}

.headerButtons{
display:flex;
align-items:center;
gap:12px;
}

.headerButtons button{
width:45px;
height:45px;
border:none;
border-radius:50%;
background:var(--card);
color:#fff;
font-size:18px;
cursor:pointer;
transition:.3s;
}

.headerButtons button:hover{
background:var(--primary);
transform:scale(1.08);
}

/* ===================================
   HERO
=================================== */

.hero{
min-height:100vh;
display:flex;
justify-content:space-between;
align-items:center;
gap:60px;
padding-top:130px;
}

.hero .left{
flex:1;
}

.hero h4{
font-size:22px;
color:var(--primary);
margin-bottom:15px;
}

.hero h1{
font-size:60px;
line-height:1.2;
margin-bottom:10px;
}

.hero h2{
font-size:32px;
height:45px;
margin-bottom:20px;
color:var(--secondary);
}

.hero p{
color:var(--gray);
font-size:17px;
line-height:1.8;
margin-bottom:30px;
max-width:600px;
}

.heroButtons{
display:flex;
flex-wrap:wrap;
gap:15px;
margin-bottom:35px;
}

.social{
display:flex;
gap:15px;
flex-wrap:wrap;
}

.social a{
width:50px;
height:50px;
background:var(--card);
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:20px;
transition:.3s;
}

.social a:hover{
background:var(--primary);
transform:translateY(-5px);
}

.right{
flex:1;
display:flex;
justify-content:center;
}

.profileCard{
background:var(--card);
padding:30px;
border-radius:25px;
text-align:center;
width:340px;
box-shadow:0 15px 35px rgba(0,0,0,.3);
}

.profileCard img{
width:220px;
height:220px;
border-radius:50%;
object-fit:cover;
margin:0 auto 20px;
border:5px solid var(--primary);
}

.profileCard h2{
margin-bottom:10px;
}

.profileCard p{
color:var(--gray);
}

/* ===================================
   MOBILE
=================================== */

@media(max-width:768px){

nav{
position:absolute;
top:80px;
left:0;
width:100%;
background:var(--bg);
flex-direction:column;
padding:20px;
display:none;
}

nav.active{
display:flex;
}

#menu{
display:block;
}

.hero{
flex-direction:column-reverse;
text-align:center;
}

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

.hero h2{
font-size:24px;
}

.heroButtons,
.social{
justify-content:center;
}

.profileCard{
width:100%;
max-width:320px;
}

}

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

.aboutContainer{
display:grid;
grid-template-columns:1fr 1fr;
gap:60px;
align-items:center;
}

.aboutImage img{
width:100%;
max-width:420px;
margin:auto;
border-radius:20px;
box-shadow:0 15px 35px rgba(0,0,0,.3);
}

.aboutContent h3{
font-size:32px;
margin-bottom:20px;
}

.aboutContent p{
color:var(--gray);
line-height:1.8;
margin-bottom:30px;
}

.aboutInfo{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:20px;
}

.aboutInfo div{
background:var(--card);
padding:20px;
border-radius:15px;
transition:.3s;
}

.aboutInfo div:hover{
transform:translateY(-6px);
}

.aboutInfo h4{
color:var(--primary);
margin-bottom:8px;
}

.aboutInfo p{
margin:0;
color:#fff;
}

/* ===================================
   SKILLS
=================================== */

.skillsContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
gap:30px;
}

.skillBox{
background:var(--card);
padding:25px;
border-radius:18px;
transition:.3s;
}

.skillBox:hover{
transform:translateY(-8px);
}

.skillBox h3{
margin-bottom:15px;
}

.progress{
width:100%;
height:10px;
background:#222;
border-radius:30px;
overflow:hidden;
margin-bottom:10px;
}

.progressBar{
height:100%;
border-radius:30px;
background:linear-gradient(90deg,var(--primary),var(--secondary));
}

.progressBar.html{
width:95%;
}

.progressBar.css{
width:92%;
}

.progressBar.js{
width:85%;
}

.progressBar.python{
width:75%;
}

.progressBar.blogger{
width:90%;
}

.progressBar.seo{
width:88%;
}

.skillBox span{
font-weight:600;
color:var(--primary);
}

/* ===================================
   MOBILE
=================================== */

@media(max-width:768px){

.aboutContainer{
grid-template-columns:1fr;
text-align:center;
}

.aboutInfo{
grid-template-columns:1fr;
}

.aboutImage img{
max-width:300px;
}

}
/* ===================================
   EDUCATION & EXPERIENCE
=================================== */

.timeline{
position:relative;
max-width:900px;
margin:auto;
}

.timeline::before{
content:"";
position:absolute;
left:20px;
top:0;
width:4px;
height:100%;
background:var(--primary);
border-radius:10px;
}

.timelineItem{
position:relative;
margin-left:70px;
margin-bottom:30px;
background:var(--card);
padding:25px;
border-radius:18px;
transition:.3s;
box-shadow:0 10px 25px rgba(0,0,0,.25);
}

.timelineItem:hover{
transform:translateY(-8px);
}

.timelineItem::before{
content:"";
position:absolute;
left:-58px;
top:28px;
width:18px;
height:18px;
background:var(--primary);
border-radius:50%;
border:4px solid var(--bg);
}

.timelineItem h3{
font-size:24px;
margin-bottom:8px;
}

.timelineItem h4{
color:var(--primary);
margin-bottom:10px;
}

.timelineItem p{
color:var(--gray);
line-height:1.7;
}

/* ===================================
   SERVICES
=================================== */

.serviceContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:30px;
}

.serviceCard{
background:var(--card);
padding:35px 25px;
border-radius:20px;
text-align:center;
transition:.35s;
box-shadow:0 10px 25px rgba(0,0,0,.25);
}

.serviceCard:hover{
transform:translateY(-10px);
box-shadow:0 18px 40px rgba(0,198,255,.2);
}

.serviceCard i{
font-size:55px;
margin-bottom:20px;
color:var(--primary);
}

.serviceCard h3{
margin-bottom:15px;
font-size:24px;
}

.serviceCard p{
color:var(--gray);
line-height:1.7;
}

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

@media(max-width:768px){

.timeline::before{
left:12px;
}

.timelineItem{
margin-left:40px;
padding:20px;
}

.timelineItem::before{
left:-32px;
}

.serviceContainer{
grid-template-columns:1fr;
}

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

.projectContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:30px;
}

.projectCard{
background:var(--card);
border-radius:20px;
overflow:hidden;
transition:.35s;
box-shadow:0 10px 25px rgba(0,0,0,.25);
}

.projectCard:hover{
transform:translateY(-10px);
box-shadow:0 20px 40px rgba(0,198,255,.2);
}

.projectCard img{
width:100%;
height:220px;
object-fit:cover;
}

.projectCard h3{
padding:20px 20px 10px;
font-size:24px;
}

.projectCard p{
padding:0 20px;
color:var(--gray);
line-height:1.7;
}

.projectCard a{
display:inline-block;
margin:20px;
padding:12px 25px;
background:var(--primary);
color:#fff;
border-radius:30px;
transition:.3s;
}

.projectCard a:hover{
background:var(--secondary);
color:#000;
}

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

.certificateContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:30px;
}

.certificateCard{
background:var(--card);
border-radius:20px;
overflow:hidden;
transition:.35s;
text-align:center;
}

.certificateCard:hover{
transform:translateY(-10px);
}

.certificateCard img{
width:100%;
height:200px;
object-fit:cover;
}

.certificateCard h3{
margin:20px 0 10px;
}

.certificateCard p{
padding:0 20px 25px;
color:var(--gray);
}

/* ===================================
   STATISTICS
=================================== */

.statsContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:25px;
}

.statBox{
background:linear-gradient(135deg,var(--primary),var(--secondary));
padding:35px 20px;
border-radius:20px;
text-align:center;
color:#fff;
transition:.35s;
}

.statBox:hover{
transform:translateY(-8px);
}

.statBox h2{
font-size:42px;
margin-bottom:10px;
}

.statBox p{
font-size:18px;
}

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

@media(max-width:768px){

.projectContainer,
.certificateContainer,
.statsContainer{
grid-template-columns:1fr;
}

.projectCard img,
.certificateCard img{
height:200px;
}

.statBox h2{
font-size:34px;
}

}
/* ===================================
   BLOG
=================================== */

.blogContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:30px;
}

.blogCard{
background:var(--card);
border-radius:20px;
overflow:hidden;
transition:.35s;
box-shadow:0 10px 25px rgba(0,0,0,.25);
}

.blogCard:hover{
transform:translateY(-10px);
}

.blogCard img{
width:100%;
height:220px;
object-fit:cover;
}

.blogCard h3{
padding:20px;
font-size:24px;
}

.blogCard p{
padding:0 20px;
line-height:1.7;
color:var(--gray);
}

.blogCard a{
display:inline-block;
margin:20px;
padding:12px 25px;
background:var(--primary);
color:#fff;
border-radius:30px;
transition:.3s;
}

.blogCard a:hover{
background:var(--secondary);
color:#000;
}

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

.galleryContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:20px;
}

.galleryContainer img{
width:100%;
height:220px;
object-fit:cover;
border-radius:18px;
cursor:pointer;
transition:.35s;
}

.galleryContainer img:hover{
transform:scale(1.05);
}

/* ===================================
   TESTIMONIALS
=================================== */

.testimonialContainer{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
gap:30px;
}

.testimonialCard{
background:var(--card);
padding:30px;
border-radius:20px;
transition:.3s;
}

.testimonialCard:hover{
transform:translateY(-8px);
}

.testimonialCard p{
font-style:italic;
line-height:1.8;
color:var(--gray);
}

.testimonialCard h3{
margin-top:20px;
color:var(--primary);
}

/* ===================================
   FAQ
=================================== */

.faqContainer{
max-width:900px;
margin:auto;
}

.faqItem{
background:var(--card);
padding:25px;
border-radius:15px;
margin-bottom:20px;
}

.faqItem h3{
margin-bottom:10px;
color:var(--primary);
}

.faqItem p{
color:var(--gray);
line-height:1.7;
}

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

.contactForm{
max-width:700px;
margin:auto;
display:flex;
flex-direction:column;
gap:20px;
}

.contactForm input,
.contactForm textarea{
padding:15px;
background:#182338;
border:none;
border-radius:12px;
color:#fff;
font-size:16px;
}

.contactForm input:focus,
.contactForm textarea:focus{
outline:2px solid var(--primary);
}

.contactForm button{
padding:15px;
border:none;
border-radius:50px;
background:var(--primary);
color:#fff;
font-size:18px;
cursor:pointer;
transition:.3s;
}

.contactForm button:hover{
background:var(--secondary);
color:#000;
}

.socialLinks{
margin-top:40px;
display:flex;
justify-content:center;
flex-wrap:wrap;
gap:18px;
}

.socialLinks a{
width:50px;
height:50px;
background:var(--card);
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:20px;
transition:.3s;
}

.socialLinks a:hover{
background:var(--primary);
transform:translateY(-5px);
}

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

footer{
margin-top:80px;
padding:35px 20px;
text-align:center;
background:#050b16;
border-top:1px solid rgba(255,255,255,.1);
}

footer h2{
font-size:30px;
margin-bottom:10px;
}

footer span{
color:var(--primary);
}

footer p{
margin-top:8px;
color:var(--gray);
}

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

@media(max-width:768px){

.blogContainer,
.galleryContainer,
.testimonialContainer{
grid-template-columns:1fr;
}

.galleryContainer img{
height:200px;
}

footer h2{
font-size:24px;
}

}
/* ===================================
   DARK / LIGHT MODE
=================================== */

body.light{
background:#f5f7fb;
color:#111;
}

body.light header{
background:rgba(255,255,255,.95);
}

body.light nav{
background:#ffffff;
}

body.light nav a,
body.light h1,
body.light h2,
body.light h3,
body.light h4,
body.light .logo h2{
color:#111;
}

body.light p{
color:#555;
}

body.light .profileCard,
body.light .skillBox,
body.light .timelineItem,
body.light .serviceCard,
body.light .projectCard,
body.light .certificateCard,
body.light .blogCard,
body.light .testimonialCard,
body.light .faqItem{
background:#ffffff;
box-shadow:0 8px 20px rgba(0,0,0,.08);
}

body.light .contactForm input,
body.light .contactForm textarea{
background:#eeeeee;
color:#111;
}

body.light footer{
background:#ffffff;
}

/* ===================================
   SCROLL PROGRESS BAR
=================================== */

#progressBar{
position:fixed;
top:0;
left:0;
width:0;
height:4px;
background:linear-gradient(90deg,var(--primary),var(--secondary));
z-index:99999;
}

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

#topBtn{
position:fixed;
right:20px;
bottom:20px;
width:55px;
height:55px;
border:none;
border-radius:50%;
background:var(--primary);
color:#fff;
font-size:22px;
cursor:pointer;
display:none;
align-items:center;
justify-content:center;
transition:.3s;
z-index:9999;
}

#topBtn.show{
display:flex;
}

#topBtn:hover{
transform:translateY(-5px);
}

/* ===================================
   PRELOADER
=================================== */

#preloader{
position:fixed;
inset:0;
background:#08111f;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
z-index:999999;
transition:.6s;
}

.loader{
width:70px;
height:70px;
border:6px solid rgba(255,255,255,.15);
border-top:6px solid var(--primary);
border-radius:50%;
animation:spin 1s linear infinite;
margin-bottom:20px;
}

@keyframes spin{

100%{
transform:rotate(360deg);
}

}

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

section{
opacity:0;
transform:translateY(40px);
transition:1s;
}

section.show{
opacity:1;
transform:translateY(0);
}

/* ===================================
   TEXT SELECTION
=================================== */

::selection{
background:var(--primary);
color:#fff;
}

/* ===================================
   MOBILE MENU
=================================== */

#menu{
display:none;
}

@media(max-width:768px){

#menu{
display:block;
}

nav{
display:none;
position:absolute;
top:80px;
left:0;
width:100%;
padding:20px;
background:#08111f;
flex-direction:column;
gap:20px;
}

nav.active{
display:flex;
}

header{
padding:18px 5%;
}

section{
padding:80px 5%;
}

.hero{
padding-top:120px;
}

}

/* ===================================
   END
=================================== */