* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
 
body {
    display: flex;
    justify-content: center;
    min-height: 100vh;
    background: #222;
}
 
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 50px;
    flex-wrap: wrap;
}
 
.container .card {
    cursor: pointer;
    position: relative;
    width: 370px;
    height: 500px;
    background: rgba(45, 45, 45, 1);
    border-radius: 33px;
    overflow: hidden;
}
 
.container .card::before {
    content: '';
    position: absolute;
    top: var(--y);
    left: var(--x);
    transform: translate(-50%, -50%);
    background: radial-gradient(var(--clr), transparent, transparent);
    width: 700px;
    height: 700px;
    opacity: 0;
    transition: 0.7s, top 0s, left 0s;
}
 
.container .card:hover::before {
    opacity: 1;
}
 
.container .card::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 30px;
    background: rgba(45, 45, 45, 0.7);
}
 