.portfolio-list {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.portfolio-item {
flex: 0 1 calc(33.333333% - 1rem);
aspect-ratio: 1 / 1;
position: relative;
}
.portfolio-item a {
position: absolute;
display: block;
width: 100%;
height: 100%;
overflow: hidden;
}
.portfolio-item a .imgfit {
position: absolute;
display: block;
width: 100%;
height: 100%;
}
.portfolio-item a .imgfit:before {
content: "";
position: absolute;
inset: 0;
width: 100%;
height: 100%;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0) 0%,
rgba(0, 0, 0, 0.8) 100%
);
z-index: 2;
}
.portfolio-item a .imgfit img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
transform: scale(1);
transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
z-index: 1;
}
.portfolio-item a .imgfit .txt {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 3.5rem 4rem;
z-index: 3;
}
.portfolio-item a .imgfit .txt span {
opacity: 0.8;
font-size: 1.5rem;
font-weight: 500;
}
.portfolio-item a .imgfit .txt h3 {
margin-top: 1rem;
font-size: 2.1rem;
font-weight: 700;
}
.portfolio-item a:hover .imgfit img {
transform: scale(1.05);
}
@media (max-width: 1024px) {
.portfolio-item {
flex: 0 1 calc(50% - 1rem);
}
}
@media (max-width: 768px) {
.portfolio-item {
flex: 1 1 calc(100% - 1rem);
}
}