@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap');

body {
    background-color: #101010;
    margin: 0;
}

/* ---------- MASONRY GRID ---------- */
.gifList {
    display: grid;
    grid-template-columns: repeat(auto-fill, 300px);   /* fixed column width */
    grid-auto-rows: 10px;                              /* tiny row height */
    gap: 15px;                                         /* space between bricks */
    justify-content: center;                           /* center when < full row */
    padding: 15px;
}

/* each brick */
.image-container {
    position: relative;
    cursor: pointer;
    /* will be set by JS */
    grid-row-end: span var(--row-span, 1);
}

/* image fills the whole brick, keeps aspect ratio */
.image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;          /* crop if needed, or use "contain" */
    border-radius: 5px;
    display: block;
}

/* ---------- HOVER OVERLAY ---------- */
.hover-text {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-family: "IBM Plex Sans", sans-serif;
    font-size: 16px;
    text-align: center;
    opacity: 0;
    transition: opacity .3s ease;
    pointer-events: none;
}

/* dark overlay + text */
.image-container::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.6);
    border-radius: 5px;
    opacity: 0;
    transition: opacity .3s ease;
}

/* show on hover */
.image-container:hover::before,
.image-container:hover .hover-text {
    opacity: 1;
}