*{

margin:0;
padding:0;
box-sizing:border-box;

}

body{

font-family:'IBM Plex Mono',monospace;

background:
radial-gradient(circle,#222 1px,transparent 1px);

background-size:18px 18px;

background-color:#f6f6f6;

color:black;

}

.grain{

position:fixed;
inset:0;

background-image:url("https://www.transparenttextures.com/patterns/asfalt-dark.png");

opacity:.08;

pointer-events:none;

}

nav{

display:flex;

justify-content:space-between;

align-items:center;

padding:30px 8%;

border-bottom:1px solid black;

background:white;

position:sticky;

top:0;

z-index:100;

}

.logo{

font-family:'DotGothic16';

letter-spacing:5px;

font-size:24px;

}

nav ul{

display:flex;

gap:25px;

list-style:none;

}

nav a{

text-decoration:none;

color:black;

font-size:14px;

position:relative;

}

nav a::after{

content:"";

position:absolute;

bottom:-5px;

left:0;

width:0;

height:1px;

background:black;

transition:.3s;

}

nav a:hover::after,
.active::after{

width:100%;

}

header{

text-align:center;

padding:70px 20px;

}

header h1{

font-family:'DotGothic16';

font-size:55px;

letter-spacing:8px;

margin-bottom:10px;

}

header p{

text-transform:uppercase;

letter-spacing:3px;

font-size:13px;

}

.gallery{

width:min(1200px,90%);

margin:auto;

display:grid;

grid-template-columns:repeat(auto-fill,minmax(260px,1fr));

gap:40px;

padding-bottom:80px;

}

.photo{

background:white;

border:2px solid black;

padding:15px;

transition:.35s;

box-shadow:8px 8px black;

}

.photo:hover{

transform:translateY(-8px) rotate(-1deg);

box-shadow:14px 14px black;

}

.photo img{

width:100%;

aspect-ratio:1;

object-fit:cover;

filter:grayscale(100%);

transition:.35s;

border:1px solid black;

}

.photo:hover img{

filter:grayscale(0%);

transform:scale(1.02);

}

.caption{

padding-top:18px;

border-top:1px dashed black;

margin-top:15px;

}

.caption h3{

font-family:'DotGothic16';

font-size:18px;

margin-bottom:8px;

}

.caption p{

font-size:13px;

}

footer{

margin-top:40px;

padding:30px;

text-align:center;

border-top:1px solid black;

background:white;

}