/* Modal Overlay */
.vhs-spin-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
}

.vhs-spin-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.65);
}

/* Modal Dialog */
.vhs-spin-dialog {
    position: fixed;
    margin: auto;
    max-width: 500px;
    background: black;
    padding: 60px;
    z-index: 1000000;
    animation: vhsFadeIn 0.25s ease;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: table;
    box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.5);
}

@keyframes vhsFadeIn {
    from { opacity: 0; transform: scale(.95); }
    to { opacity: 1; transform: scale(1); }
}

/* Close Button */
.vhs-spin-close-btn {
    position: absolute;
    right: 15px;
    top: 15px;
    background: none;
    border: none;
    font-size: 26px;
    cursor: pointer;
}

/* Opening Button */
.vhs-spin-open-btn {
    cursor: pointer;
    padding: 12px 20px;
    border-radius: 0px 8px 8px 0px;
     background: #BC00F4 !important;
    background: linear-gradient(120deg, rgba(188, 0, 244, 1) 0%, rgba(0, 173, 245, 1) 100%) !important;
    color: #fff;
    font-size: 14px;
    border: none;
    position: fixed;
    bottom: 20px;
    margin: auto;
    height: fit-content;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    z-index: 999;
}

/* .vhs-spin-wheel {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    position: relative;
    overflow: hidden;
    transition: transform 4s cubic-bezier(.17,.67,.37,1.28);
} */

/* Pointer (triangle) */
.vhs-spin-pointer {
    position: absolute;
    left: 0;
    right: 0;
    top: -5%;
    margin: auto;
    background: url('../images/spin-wheel-arrow.png');
    width: 31px;
    height: 35px;
    background-size: cover;
}

/* Spin Button */
.vhs-spin-btn {
    margin-top: 20px;
    padding: 12px 20px;
    cursor: pointer;
    background: #BC00F4 !important;
    background: linear-gradient(120deg, rgba(188, 0, 244, 1) 0%, rgba(0, 173, 245, 1) 100%) !important;
    color: #fff;
    border: none;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}

.vhs-spin-btn.hidden {
    display: none !important;
}

.vhs-spin-result {
    margin-top: 50px;
    text-align: center;
    font-size: 18px;
    font-weight: 600;
}

.vhs-spin-wheel-wrapper {
    position: relative;
    width: 400px;
    height: 400px;
    margin: 50px auto 0 auto;
    border-radius: 50%;
    border: 0;
}


#vhs-spin-wheel {
    position: relative;
    width: 390px;
    height: 390px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto;
    transition: transform 4s cubic-bezier(0.33, 1, 0.68, 1);
}

.vhs-wheel-slice {
    position: absolute;
    inset: 0;
    transform-origin: 50% 50%;
    clip-path: polygon(
        50% 50%,   /* center */
        100% 0%,   /* top-right */
        100% 100%  /* bottom-right */
    );
}


/* alternating colours */
.vhs-wheel-slice:nth-child(odd) {
    background: #007BFF;
}
.vhs-wheel-slice:nth-child(even) {
    background: #FF3B3B;
}


/* correctly rotated label */
.vhs-wheel-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform-origin: 0 -120px;
    transform: rotate(calc(-1 * var(--slice-rotation))) translate(0, -120px);

    pointer-events: none;
    font-size: 18px;
    font-weight: bold;
    white-space: nowrap;
    color: #fff;
}






/* SVG borders */
.vhs-spin-borders {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}


/**/
.vhs-spin-wheel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 0 0 8px #333, 0 0 22px 13px #00c0f5;
}

.vhs-spin-wheel-number {
    position: absolute;
    width: 50%;
    height: 50%;
    background: var(--clr);
    transform-origin: bottom right;
    transform: rotate(calc(45deg * var(--i)));
    clip-path: polygon(0 0, 59% 0, 100% 100%, 0 59%);
    display: flex;
    justify-content: center;
    align-items: center;
}

.vhs-spin-wheel-number span {
    transform: rotate(45deg);
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    transition: color 0.4s ease;
}

.vhs-spin-wheel-number:nth-child(odd) {
    background: white;
}

.vhs-spin-wheel-number:nth-child(odd) span {
    color: black;
}

.vhs-spin-wheel-number:nth-child(even) {
    background: #00c0f5;
    background: linear-gradient(120deg, rgba(0, 192, 245, 1) 0%, rgba(0, 173, 245, 1) 10%, rgba(188, 0, 244, 1) 100%);
}

.vhs-debug-label {
    position: absolute;
    top: 35%;
    left: 35%;
    transform: rotate(0deg);
    font-size: 30px;
    font-weight: 900;
    color: yellow;
    pointer-events: none;
    z-index: 9999;
    text-shadow: 2px 2px 5px black; 
}

.vhs-winning-slice {
    background: #000 !important;
    color: #fff !important;
    transition: background 0.4s ease, color 0.4s ease;
}

.vhs-spin-wheel-number.vhs-winning-slice:nth-child(even) span,
.vhs-spin-wheel-number.vhs-winning-slice:nth-child(odd) span {
    color: #fff !important;
}

@media(max-width: 768px) {
    .vhs-spin-wheel-wrapper {
        width: 300px;
        height: 300px;
    }

    #vhs-spin-wheel {
        width: 300px;
        height: 300px;
    }

    .vhs-spin-pointer {
        top: -8%;
    }
}

@media(max-width: 480px) {
    .vhs-spin-wheel-wrapper {
        width: 250px;
        height: 250px;
        margin: 50px auto 80px auto;
    }

    #vhs-spin-wheel {
        width: 250px;
        height: 250px;
    }

    .vhs-spin-dialog {
        padding: 20px;
        width: 95%;
    }

    .vhs-spin-wheel-number span {
        font-size: 9px;
    }

    .vhs-spin-result {
        margin-top: -40px;
    }
}