html{
scroll-behavior:smooth;
}

:root{

--bg:#0b1a2a;
--panel:#13263a;
--header:#13263a;
--footer:#13263a;

--text:#d6e6ff;
--text-soft:#9fb7d8;

--accent:#2a6db4;
--accent-hover:#3b82d6;

--border:#3b6ea5;

--scrollbar:#2a6db4;
--scrollbar-hover:#3b82d6;

--selection-bg:#2a6db4;
--selection-text:#ffffff;

}

body{

margin:0;
font-family:Segoe UI,Arial;

background-color:var(--bg);
background-image:url("../images/bg-pattern2.png");
background-blend-mode:overlay;

background-repeat:repeat;
background-size:auto;

color:var(--text);

transition:background 0.3s,color 0.3s;

}

/* selection */

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


/* scrollbar */

::-webkit-scrollbar{
width:10px;
}

::-webkit-scrollbar-track{
background:var(--bg);
}

::-webkit-scrollbar-thumb{
background:var(--scrollbar);
border-radius:5px;
}

::-webkit-scrollbar-thumb:hover{
background:var(--scrollbar-hover);
}


/* header */

header{
display:flex;
justify-content:space-between;
align-items:center;

background:linear-gradient(
to bottom,
var(--header),
rgba(0,0,0,0.2)
);

padding:15px 25px;

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

box-shadow:0 3px 8px rgba(0,0,0,0.4);

position:sticky;
top:0;
z-index:1000;
}

#themeSelector{

background:var(--panel);
color:var(--text);

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

padding:6px 10px;

border-radius:4px;

font-size:14px;

cursor:pointer;

transition:0.2s;

}

#themeSelector:hover{
border-color:var(--accent);
}

#themeSelector option{
background:var(--panel);
color:var(--text);
}

.logo{

font-weight:bold;
font-size:20px;

letter-spacing:1px;

text-shadow:
0 0 6px rgba(80,160,255,0.5);

}

.logo-area{
display:flex;
align-items:center;
gap:10px;
}

.logo-img{
width:28px;
height:28px;
}

/* nav */

.nav-area{

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

}

nav a{

color:var(--text);
text-decoration:none;
margin-left:20px;

position:relative;

transition:0.2s;

}

nav a:hover{

color:var(--accent);

text-shadow:0 0 6px rgba(80,160,255,0.7);

}


/* nav hover */

nav a::after{

content:"";
position:absolute;

left:0;
bottom:-4px;

width:0;
height:2px;

background:#2a6db4;

transition:0.3s;

}

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


/* hamburger */

#hamburger{

display:none;
flex-direction:column;
cursor:pointer;

}

#hamburger span{

height:3px;
width:25px;
background:white;
margin:4px 0;

}


/* panels */

.panel{
background-blend-mode:overlay;

position:relative;

padding:80px 40px;

max-width:900px;

margin:80px 0;

background-color:var(--panel);
background-image:
linear-gradient(rgba(125, 44, 136, 0.2), rgba(19,38,58,0.84)),
url("../images/bg-pattern1.png");

background-repeat:repeat;
background-blend-mode:overlay;

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

border-radius:4px;

box-shadow:
0 0 12px rgba(0,0,0,0.4),
inset 0 1px rgba(255,255,255,0.05);

animation:fade 0.8s ease;

}


.panel-left{

margin-left:6%;
margin-right:auto;

}

.panel-right{

margin-left:auto;
margin-right:6%;

}

.panel-center{

margin-left:auto;
margin-right:auto;
text-align:center;

}

.panel-clear{

background:none;
background-image:none;

border:none;
box-shadow:none;

}

.split{

display:flex;

align-items:center;

gap:40px;

}

.reverse{

flex-direction:row-reverse;

}

.panel-text{

flex:1;

}

.panel-image{

flex:1;

}

.panel-image img{

width:100%;

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

border-radius:4px;

box-shadow:0 0 10px rgba(0,0,0,0.5);

}


/* grid */

.grid{

display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:20px;

}


/* cards */

.card{

background:linear-gradient(
to bottom,
var(--panel),
rgba(0,0,0,0.3)
);

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

padding:20px;

transition:0.25s;

box-shadow:
0 2px 6px rgba(0,0,0,0.4);

}

.card:hover{

transform:translateY(-5px);

box-shadow:
0 0 12px rgba(80,150,255,0.4),
0 6px 16px rgba(0,0,0,0.5);

}


/* buttons */

.btn{

display:inline-block;

background:linear-gradient(
to bottom,
var(--accent),
#1f4e82
);

padding:10px 18px;

text-decoration:none;
color:white;

margin:5px;

border:1px solid rgba(255,255,255,0.15);

border-radius:3px;

transition:0.2s;

box-shadow:
0 1px 3px rgba(0,0,0,0.5);

}

.btn:hover{

background:linear-gradient(
to bottom,
var(--accent-hover),
var(--accent)
);

transform:translateY(-1px);

box-shadow:
0 0 8px rgba(80,160,255,0.7);

}

.btn.small{

padding:6px 12px;
font-size:14px;

}


h1,h2,h3{

text-shadow:
0 0 4px rgba(80,160,255,0.25);

}


/* skills */

.skills{

display:flex;
flex-wrap:wrap;
gap:10px;

}

.skill{

background:var(--panel);
border:1px solid var(--border);
padding:8px 12px;

}


/* Projects */

.project-banner{

width:100%;
max-width:600px;

height:300px;

object-fit:cover;

display:block;

margin:0 auto 15px auto;

border-radius:6px;

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

}

.project-banner:hover{

transform:scale(1.02);
transition:0.3s;

}

.project-slider{
overflow:hidden;
position:relative;

max-width:750px;
margin:auto;

padding:0 60px;

}

.slider-track{

display:flex;

transition:transform 0.5s ease;

will-change:transform;

}

.slide{

min-width:100%;
padding:20px;

display:flex;
flex-direction:column;

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

text-align:center;

box-sizing:border-box;

}

.slider-btn{

position:absolute;

top:50%;
transform:translateY(-50%);

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

color:var(--text);

font-size:24px;
padding:8px 14px;

cursor:pointer;

z-index:10;

}

.prev{
left:38px;
top: 160px;
}

.next{
right:38px;
top: 160px;
}

.slider-btn:hover{
background:var(--accent);
}


/* Dots */

.slider-dots{

display:flex;
justify-content:center;

gap:10px;
margin-top:15px;

}

.slider-dot{

width:10px;
height:10px;

border-radius:50%;

background:var(--border);

cursor:pointer;

transition:0.3s;

}

.slider-dot.active{

background:var(--accent);
box-shadow:0 0 6px var(--accent);

}


/* forms */

input,textarea{

width:100%;
padding:10px;
margin-bottom:10px;

background:var(--panel);
border:1px solid var(--border);
color:var(--text);

}

textarea{

height:120px;
resize:none;

}


/* footer */

footer{

background:var(--footer);

padding:40px 20px;

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

margin-top:80px;

}

footer textarea{

font-family:inherit;

}

footer a{

color:var(--accent);

text-decoration:none;

}

footer a:hover{

text-decoration:underline;

}

.footer-grid{

max-width:1100px;

margin:auto;

display:grid;

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

gap:40px;

}


/* Project page */

.project-page{

max-width:900px;
margin:80px auto;

text-align:center;

}

.project-hero{

width:100%;
max-width:750px;

height:300px;

object-fit:cover;

border-radius:6px;

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

margin:20px auto;

display:block;

}

.project-content{

max-width:700px;

margin:20px auto;

font-size:16px;

line-height:1.6;

}

.project-actions{

margin-top:25px;

display:flex;
justify-content:center;

gap:15px;

flex-wrap:wrap;

}

.project-info{

display:grid;

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

gap:10px;

max-width:700px;

margin:20px auto;

}

.info-item{

background:var(--panel);

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

padding:10px 14px;

border-radius:4px;

display:flex;
justify-content:space-between;

font-size:14px;

}

.info-label{

color:var(--text-soft);

}

.info-value{

font-weight:bold;

}


/* Theme colors */

/* DARK */

body.dark{

--bg:#0a0a0a;
--panel:#1a1a1a;
--header:#121212;
--footer:#121212;

--text:#eeeeee;
--text-soft:#bbbbbb;

--accent:#3a8bff;
--accent-hover:#5ea2ff;

--border:#2c2c2c;

--scrollbar:#1f1f1f;
--scrollbar-hover:#222222;

--selection-bg:#3a8bff;
--selection-text:white;

}


/* LIGHT */

body.light{

--bg:#eef7fb;
--panel:#e6f8ff;
--header:#f8fdff;
--footer:#f8fdff;

--text:#1b2b34;
--text-soft:#5a7a88;

--accent:#2fb7d9;
--accent-hover:#1aa6c9;

--border:#cfe8f1;

--scrollbar:#2fb7d9;
--scrollbar-hover:#1aa6c9;

--selection-bg:#2fb7d9;
--selection-text:#ffffff;

}


/* animations */

@keyframes fade{

from{
opacity:0;
transform:translateY(20px);
}

to{
opacity:1;
transform:translateY(0);
}

}


/* mobile */

@media(max-width:800px){

nav{

position:absolute;

top:60px;
right:0;

background:#13263a;

width:200px;

flex-direction:column;

display:none;

}

nav a{

margin:15px;

}

nav.active{
display:flex;
}

.split{

flex-direction:column;

}

.reverse{

flex-direction:column;

}

#hamburger{
display:flex;
}

body::before{
display:none;
}

.panel{

margin:60px auto;

max-width:95%;

}

.panel:nth-of-type(odd),
.panel:nth-of-type(even){

margin-left:auto;
margin-right:auto;
}

}