Тень у элемента drag-n-drop обрезается

Здраствуйте подскажите пожалусто почему у переносимого элемента тень обрезается? я не использую overflow: hidden, но тень всё равно обрезается.

Помогите пожалусто разобратся с этой проблемой, я немогу понять почему это так происходит.

введите сюда описание изображения

document.addEventListener("DOMContentLoaded", () => {
    const fill = document.querySelector(".fill");
    const empties = document.querySelectorAll(".empty");

    function dragStart() {
        this.classList.add("hold");
        setTimeout(() => (this.classList = "invisible"), 0);
    }
    function dragEnd() {
        this.classList = "fill";
    }

    function dragEnter(e) {
        e.preventDefault();
        this.classList.toggle("hovered");
    }
    function dragLeave() {
        this.classList.toggle("hovered");
    }
    function dragOver(e) {
        e.preventDefault();
    }
    function drop() {
        this.classList = "empty";
        this.append(fill);
    }

    fill.addEventListener("dragstart", dragStart);
    fill.addEventListener("dragend", dragEnd);

    for (const element of empties) {
        element.addEventListener("dragenter", dragEnter);
        element.addEventListener("dragleave", dragLeave);
        element.addEventListener("dragover", dragOver);
        element.addEventListener("drop", drop);
    }
});
body {
    overflow-x: hidden;
    min-height: 100vh;
    position: relative;
    margin: 0;
    background-color: #efefef;
    font-family: "Montserrat", serif;
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    /* box-sizing: border-box; */
}

img {
    display: block;
    width: 100%;
}

.container {
    padding: 50px 30px;
    max-width: 1200px;
    margin: 0 auto;
}

.flex {
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.box {
    display: flex;
    gap: 16px;
}
.empty {
    width: 100px;
    height: 100px;
    background-color: #fff;
    border-radius: 10px;
    border: 2px dotted #ccc;
    overflow: visible;
}

.fill {
    cursor: pointer;
    width: 100px;
    height: 100px;
    border-radius: 100px;
    background-color: #af9;
}

.hold {
    filter: opacity(0.4);
    border: 2px dotted #aaa;
    box-shadow: 0 0 20px #333;
}

.hovered {
    background-color: #aaa;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="stule.css">
    <script src="script.js"></script>
</head>
<body>
    <div class="container flex">
        <div class="box">
            <div class="empty">
                <div class="fill" draggable="true"></div>
            </div>
            <div class="empty"></div>
            <div class="empty"></div>
            <div class="empty"></div>
            <div class="empty"></div>
        </div>
    </div>
</body>
</html>


Ответы (0 шт):