body {
    display: flex;
    justify-content: center;
    align-items: center;
}

:root {
    --size: 250px;
}

.container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100vh;
    position: relative;
}


.lower-image:hover {
    opacity: 1;
    transition: opacity 250ms ease;
}


.upper-image {
    object-fit: contain;
    justify-content: center;
    opacity: 1;
}

.lower-image {
    object-fit: contain;
    justify-content: center;
    position: absolute;
    opacity: 0;
    z-index: 0;
    clip-path: circle(var(--size * 0.5) at 0 0);
}

img {
    width: 100%;
    height: 100%;
}