*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Segoe UI, sans-serif;
}

body{
transition:0.3s;
}

/* Layout */

.layout{
display:flex;
min-height:100vh;
}

/* Sidebar */

.sidebar{
width:280px;
background:#1e1e1e;
color:white;
padding:30px;
flex-shrink:0;
position: sticky;
top: 0;
height: fit-content;
}

.profile{
text-align:center;
}

.profile img{
width:120px;
border-radius:50%;
margin-bottom:10px;
}

.section{
margin-top:30px;
}

.skills{
display:flex;
flex-wrap:wrap;
gap:12px;
margin-top:10px;
}

.skills img{
/* width:32px; */
height:32px;
}

/* Content */

.content{
flex:1;
padding:40px;
background:#252526;
color:white;
}

section{
margin-bottom:50px;
}

/* Timeline */

.timeline .item{
margin-top:20px;
padding-left:15px;
border-left:3px solid #007acc;
}

/* Projects */

.projects{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:20px;
margin-top:20px;
}

.project{
background:#333;
padding:20px;
border-radius:8px;
transition:0.3s;
}

.project:hover{
transform:translateY(-5px);
}

.project-buttons{
margin-top:15px;
display:flex;
gap:10px;
}

.btn{
padding:8px 14px;
border-radius:6px;
text-decoration:none;
font-size:14px;
display:flex;
align-items:center;
gap:5px;
}

.btn.live{
background:#007acc;
color:white;
}

.btn.code{
background:#444;
color:white;
}

/* Resume button */

.resume-btn{
display:inline-block;
margin-top:15px;
padding:10px 18px;
background:#007acc;
color:white;
text-decoration:none;
border-radius:6px;
}

/* Services */

.services{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:20px;
margin-top:20px;
}

.service{
background:#333;
padding:20px;
border-radius:8px;
}

/* Skills text */

.skill-list{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:20px;
margin-top:20px;
}

/* Toggle Switch */

.theme-switch{
position:fixed;
top:20px;
right:20px;
z-index:999;
}

.switch{
position:relative;
display:inline-block;
width:50px;
height:24px;
}

.switch input{
opacity:0;
}

.slider{
position:absolute;
cursor:pointer;
background:#555;
border-radius:34px;
top:0;
left:0;
right:0;
bottom:0;
transition:0.3s;
}

.slider:before{
position:absolute;
content:"";
height:18px;
width:18px;
left:3px;
bottom:3px;
background:white;
border-radius:50%;
transition:0.3s;
}

input:checked + .slider{
background:#007acc;
}

input:checked + .slider:before{
transform:translateX(26px);
}

/* Light mode */

body.light .sidebar{
background:#e5e5e5;
color:#111;
}

body.light .content{
background:#f5f5f5;
color:#111;
}

body.light .project{
background:white;
}

body.light .service{
background:white;
}

.gallery img{
    width:250px;
    height:150px;
    margin:10px;
    border-radius:10px;
    transition:0.3s;
}

.gallery img:hover{
    transform:scale(1.05);
}
/* base link style */

a{
text-decoration:none;
font-weight:500;
transition:all 0.25s ease;
position:relative;
}


/* ---------------- */
/* DARK THEME LINKS */
/* ---------------- */

body.dark .contact_section a{
color:#38bdf8;
}

body.dark .contact_section a:hover{
color:#7dd3fc;
}

/* underline animation */

body.dark .contact_section a::after{
content:"";
position:absolute;
left:0;
bottom:-2px;
width:0%;
height:2px;
background:#38bdf8;
transition:width 0.3s ease;
}

body.dark .contact_section a:hover::after{
width:100%;
}


/* ---------------- */
/* LIGHT THEME LINKS */
/* ---------------- */

body.light .contact_section a{
color:#2563eb;
}

body.light .contact_section a:hover{
color:#1d4ed8;
}

body.light .contact_section a::after{
content:"";
position:absolute;
left:0;
bottom:-2px;
width:0%;
height:2px;
background:#2563eb;
transition:width 0.3s ease;
}

body.light .contact_section a:hover::after{
width:100%;
}

/* Responsive */

@media (max-width:768px){

.layout{
flex-direction:column;
}

.sidebar{
width:100%;
text-align:center;
position: relative;
}

.skills{
justify-content:center;
}

.content{
padding:25px;
}

}