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

html, body {
    height: 100%;
    overflow: hidden;
    background: #0a0a0f;
    font-family: system-ui, sans-serif;
}

.scene {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(ellipse at center, #151520 0%, #0a0a0f 70%);
}

.stone-container {
    position: relative;
    width: 372px;
    height: 500px;
    user-select: none;
    -webkit-user-select: none;
    overflow: visible;
}

.stone-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
    filter: drop-shadow(0 0 30px rgba(100, 100, 120, 0.15));
}

.holes {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.hole-glow {
    position: absolute;
    pointer-events: none;
    transform: translate(-50%, -50%);
}

.hole-glow::before {
    content: '';
    position: absolute;
    inset: 0;
    background: transparent;
    clip-path: var(--clip, ellipse(50% 50% at 50% 50%));
}

.hole-glow.hover {
    filter: blur(10px);
}

.hole-glow.hover::before {
    inset: -8px;
    background: rgba(200, 180, 140, 0.2);
}

.hole-glow.active {
    filter: blur(14px);
}

.hole-glow.active::before {
    inset: -10px;
    background: rgba(255, 215, 130, 0.6);
}

.hole-btn {
    position: absolute;
    border: none;
    background: transparent;
    cursor: pointer;
    transform: translate(-50%, -50%);
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.hole-btn.active {
    box-shadow:
        inset 0 0 12px 6px rgba(255, 225, 170, 0.12),
        inset 0 0 25px 14px rgba(255, 200, 100, 0.06);
}
