:root{

--bg:#f8f8f6;
--white:#ffffff;
--text:#111111;
--grey:#7d7d7d;
--border:#ececec;

}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{

font-family:'Raleway',sans-serif;

background:var(--bg);

color:var(--text);

overflow-x:hidden;

line-height:1.7;

}

/* =====================
NAVIGATION
===================== */

nav{

position:fixed;

top:0;
left:0;

width:100%;

height:90px;

padding:0 60px;

display:flex;

align-items:center;

justify-content:space-between;

background:rgba(248,248,246,.95);

backdrop-filter:blur(12px);

z-index:9999;

}

.logo{

font-size:1.4rem;

font-weight:700;

letter-spacing:4px;

}

.logo span{

display:block;

font-size:.75rem;

font-weight:400;

letter-spacing:3px;

color:var(--grey);

margin-top:4px;

}

.desktop-menu{

display:flex;

gap:40px;

list-style:none;

}

.desktop-menu a{

text-decoration:none;

color:var(--text);

font-size:.95rem;

}

.desktop-menu a:hover{

opacity:.6;

}

.lang-switch{

display:flex;

gap:12px;

}

.lang-switch button{

background:none;

border:none;

cursor:pointer;

font-family:inherit;

font-weight:600;

}

/* =====================
PORTFOLIO
===================== */

.portfolio-home{

padding-top:120px;

}

.filters{

display:flex;

justify-content:center;

gap:12px;

flex-wrap:wrap;

padding:20px 20px 40px;

}

.filter{

border:1px solid var(--border);

background:white;

padding:12px 20px;

border-radius:999px;

cursor:pointer;

font-family:inherit;

transition:.3s;

}

.filter:hover{

background:black;

color:white;

}

.filter.active{

background:black;

color:white;

}

.portfolio-masonry{

column-count:4;

column-gap:14px;

padding:0 20px 80px;

}

/* =====================
PROJECT
===================== */

.project-card{

position:relative;

display:inline-block;

width:100%;

margin-bottom:14px;

overflow:hidden;

cursor:pointer;

break-inside:avoid;

}

.project-card img{

width:100%;

display:block;

transition:1s;

}

.project-card:hover img{

transform:scale(1.05);

}

.project-overlay{

position:absolute;

inset:0;

display:flex;

flex-direction:column;

justify-content:flex-end;

padding:25px;

background:
linear-gradient(
to top,
rgba(0,0,0,.85),
transparent
);

opacity:0;

transition:.35s;

}

.project-card:hover .project-overlay{

opacity:1;

}

.project-title{

color:white;

font-size:1.4rem;

font-weight:600;

margin-bottom:5px;

}

.project-category{

color:white;

font-size:.8rem;

letter-spacing:2px;

text-transform:uppercase;

opacity:.9;

}

.project-year{

color:white;

margin-top:10px;

font-size:.9rem;

}

/* =====================
ABOUT
===================== */

.about{

padding:160px 8%;

background:white;

}

.about-content{

max-width:900px;

margin:auto;

}

.about h2{

font-size:3rem;

margin-bottom:30px;

font-weight:500;

}

.about p{

font-size:1.1rem;

color:var(--grey);

}

/* =====================
CONTACT
===================== */

.contact{

padding:160px 8%;

text-align:center;

}

.contact h2{

font-size:3rem;

margin-bottom:50px;

font-weight:500;

}

.contact form{

max-width:700px;

margin:auto;

display:flex;

flex-direction:column;

gap:20px;

}

.contact input,
.contact textarea{

padding:18px;

border:1px solid var(--border);

background:white;

font-family:inherit;

font-size:1rem;

}

.contact textarea{

height:180px;

resize:none;

}

.contact button{

padding:18px;

background:black;

color:white;

border:none;

cursor:pointer;

font-family:inherit;

}

.contact-info{

margin-top:40px;

color:var(--grey);

}

/* =====================
FOOTER
===================== */

footer{

padding:50px;

text-align:center;

border-top:1px solid var(--border);

}

/* =====================
MODAL
===================== */

.modal{

display:none;

position:fixed;

inset:0;

background:rgba(0,0,0,.92);

z-index:10000;

overflow:auto;

}

.modal-content{

background:white;

max-width:1200px;

margin:60px auto;

padding:60px;

position:relative;

}

#closeModal{

position:absolute;

top:20px;

right:25px;

font-size:2rem;

border:none;

background:none;

cursor:pointer;

}

/* =====================
LIGHTBOX
===================== */

.lightbox{

display:none;

position:fixed;

inset:0;

background:black;

justify-content:center;

align-items:center;

z-index:11000;

}

.lightbox img{

max-width:90%;

max-height:90%;

}

#prevImage,
#nextImage{

position:absolute;

background:none;

border:none;

color:white;

font-size:4rem;

cursor:pointer;

}

#prevImage{

left:40px;

}

#nextImage{

right:40px;

}

/* =====================
ANIMATIONS
===================== */

.reveal{

opacity:0;

transform:translateY(40px);

transition:1s;

}

.reveal.active{

opacity:1;

transform:translateY(0);

}

/* =====================
RESPONSIVE
===================== */

@media(max-width:1200px){

.portfolio-masonry{

column-count:3;

}

}

@media(max-width:900px){

.portfolio-masonry{

column-count:2;

}

nav{

padding:0 25px;

}

.desktop-menu{

display:none;

}

}

@media(max-width:600px){

.portfolio-masonry{

column-count:1;

}

.logo{

font-size:1rem;

}

.about h2,
.contact h2{

font-size:2rem;

}

}