счастье рядом
2026
Уважаемые партнеры!
От всей души поздравляем вас с Новым годом!
Мы искренне благодарны за ваше доверие, компетентность и готовность находить оптимальные решения в любых ситуациях.
Нажмите на кнопку и выиграйте подарок
Введите ваш персональный код, указанный
в поздравительном тексте.
отправить код
Крутите колесо удачи!
крутить
Поздравляем!
Ваш подарок -
.....................
.................
У меня есть другой код
<!--КОД КОЛЕСА С ПРИЗАМИ-->
<script>

//Сообщение о закончивихся призах
const outOfPrizeText = 'Увы, но все призы закончились. Подождите следующего розыгрыша';

//Режим тестирования
let testMode = false; // true - включен -- false выключен
//Через какое время в часах резрешить следующую попытку
let timeRepeat = 1000; // 48 - это 48 часов
//Версия запуска виджета
let vers = '#1';


const noCodeMessageLink = '#popup:error-no-code';
const problemMessageLink = '#popup:problem';


//Кол-во оборотов до остановки
let maxRevolution = 25;
//Время вращения
let spinTime = 5;

$( document ).ready(function() {

setTimeout(function() {

let wheelOption = [];
let probability = [];
let probabilityFinal = [];
let prob = true;
let probMem=0;
let probSumm=0;
let probAuto=0;
let sector = null;


//Получаем текcтовую итоговую ссылку
const linkText = document.querySelector('a[href="#link-text"]');
//Получаем текcтовую итоговую картинку
const prizeImage = document.querySelector('.prize-image img');


//Проверка ссылки перехода
function waitForFormRendered(selector, callback) {
    const element = document.querySelector(selector);
    if (!element) {
        console.warn(`Элемент ${selector} не найден`);
        return;
    }
    if (element.classList.contains('zero-form-rendered')) {
        callback(element);
        return;
    }
    const observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.type === 'attributes' && 
                mutation.attributeName === 'class' &&
                element.classList.contains('zero-form-rendered')) {
                observer.disconnect();
                callback(element);
            }
        });
    });
    observer.observe(element, {
        attributes: true,
        attributeFilter: ['class']
    });
    setTimeout(() => {
        observer.disconnect();
    }, 30000);
}

// Использование
waitForFormRendered('.wheel_form', function(form) {
    //Получаем параметр 'code' из URL
    const urlParams = new URLSearchParams(window.location.search);
    console.log(urlParams);
    const codeValue = urlParams.get('code');
    // Если параметр 'code' существует
    if (codeValue) {
        // Ищем элемент input с name="wheel-code"
        const inputElement = document.querySelector('input[name="wheel-code"]');
        // Если элемент найден, вставляем значение
        if (inputElement) {
            inputElement.value = codeValue;
        }
    }
});


//Получаем сектора КОЛЕСА
let wheelData = null;
async function fetchWheelData() {
    try {
        const response = await fetch('https://moti-app.ru/webhook/get-sectors', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
        });

        if (!response.ok) {
            throw new Error(`HTTP error! Status: ${response.status}`);
        }

        const data = await response.json();
        
        wheelData = data;
        
        //Формируем массив колеса
        wheelOption = wheelData.map(item => [
            item["Название на колесе"],
            item["Процент выдачи, %"],
            item["Количество"],
            item["Код"],
            item["Картинка"],
            item["Ссылка"],
            item["Текст ссылки"]
        ]);
        
        
       
        //Проверка закончившихся призов
        // Проверяем, все ли элементы с индексом 2 равны 0
        const allZeros = wheelOption.every(item => item[2] === 0);
        
        if (allZeros) {
            // 1. Устанавливаем текст для элемента .wheel-subtitle .tn-atom
            const subtitleElement = document.querySelector('.wheel-subtitle .tn-atom');
            if (subtitleElement) {
                subtitleElement.textContent = outOfPrizeText;
            }
            
            // 2. Скрываем элемент .wheel_form
            const wheelForm = document.querySelector('.wheel_form');
            if (wheelForm) {
                wheelForm.style.display = 'none';
            }
            
            // 3. Скрываем элемент .check-code
            const checkCode = document.querySelector('.check-code');
            if (checkCode) {
                checkCode.style.display = 'none';
            }
        };
        
        
        sector = wheelOption.length;
        creatingWheel();
        
        return wheelData;
    } catch (error) {
        console.error('Ошибка при получении данных:', error);
        return null;
    }
}
fetchWheelData();




//Отправляем код на проверку по нажатию кнопки
document.querySelectorAll('.check-code').forEach(button => {
    button.addEventListener('click', function(event) {
        const button = event.target;
        const tRecParent = button.closest('.t-rec');
        if (!tRecParent) return;
        
        const codeInput = tRecParent.querySelector('input[name="wheel-code"]');
        if (!codeInput) return;
        
        const codeValue = codeInput.value.trim();
        if (!codeValue) return;
        
        // Блокируем кнопку
        button.disabled = true;
        
        tRecParent.querySelector('.check-code').classList.add('clicked-button');
        
        const now = new Date();
        const time = `${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')} ${String(now.getDate()).padStart(2, '0')}.${String(now.getMonth() + 1).padStart(2, '0')}.${now.getFullYear()}`;
        
        
        fetch('https://moti-app.ru/webhook/check-code', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ code: codeValue, timestamp: time })
        })
        .then(response => response.json())
        .then(data => {
            if (data.answer === "success") {
                localStorage.setItem('wheelCode', codeValue);
                tRecParent.querySelector('.wheel-screen_1').style.display = 'none';
                tRecParent.querySelector('.wheel-screen_2').style.display = 'block';
            } else if (data.answer === "no code") {

                tRecParent.querySelector('.check-code').classList.remove('clicked-button');
                
                const tooltipBlock = document.querySelector(`div[data-tooltip-hook="${noCodeMessageLink}"]`);
                if (tooltipBlock) {
                    const parentElement = tooltipBlock.closest('.t-rec');
                    if (parentElement && parentElement.id) {
                        const numericId = parentElement.id.replace(/\D/g, '');
                        if (numericId)  t390_showPopup(numericId);
                    }
                }
            }
            
            
        })
        .catch(error => console.error('Ошибка:', error))
        .finally(() => {
            button.disabled = false; // Разблокируем кнопку
        });
        
        
    });
});


/**
 * Функция вращения рулетки с учетом вероятностей и остатков призов
 * @param {Array} wheelOptions - Массив секторов рулетки
 * @returns {Object|null} - Результат вращения или null если нет доступных призов
 */

function getRandomSector(wheelOptions) {
    // Фильтруем активные секторы (вероятность > 0 и количество > 0)
    const activeOptions = wheelOptions.filter((option, index) => {
        const probability = parseFloat(option[1]);  // Процент выдачи
        const quantity = option[2];                  // Количество
        return probability > 0 && quantity > 0;
    });
    
    // Если нет активных секторов, возвращаем null
    if (activeOptions.length === 0) {
        return null;
    }
    
    // Рассчитываем суммарную вероятность активных секторов
    let totalProbability = 0;
    activeOptions.forEach(option => {
        totalProbability += parseFloat(option[1]);
    });
    
    // Создаем секторы с нормализованными вероятностями и сохраняем исходные индексы
    const wheelSectors = [];
    let accumulated = 0;
    
    activeOptions.forEach(option => {
        const probability = parseFloat(option[1]);
        // Нормализуем вероятность (чтобы сумма была 100%)
        const normalizedProbability = (probability / totalProbability) * 100;
        
        // Находим исходный индекс этого сектора в wheelOptions
        const originalIndex = wheelOptions.findIndex(opt => 
            opt[0] === option[0] && opt[3] === option[3]
        );
        
        // Диапазон сектора на рулетке
        const sector = {
            option: option,                           // Исходные данные приза
            originalIndex: originalIndex,             // Индекс в исходном массиве
            name: option[0],                          // Название приза
            code: option[3],                          // Код приза
            probability: normalizedProbability,       // Нормализованная вероятность
            min: accumulated,                         // Начало диапазона (0-100)
            max: accumulated + normalizedProbability  // Конец диапазона
        };
        
        accumulated += normalizedProbability;
        wheelSectors.push(sector);
    });
    
    // Генерируем случайное число от 0 до 100
    const randomValue = Math.random() * 100;
    
    // Находим выигрышный сектор
    const winningSector = wheelSectors.find(sector => 
        randomValue >= sector.min && randomValue < sector.max
    );
    
    if (!winningSector) {
        return null;
    }
    
    // Возвращаем результат с индексом исходного сектора
    return {
        index: winningSector.originalIndex,           // Индекс в исходном массиве wheelOptions
        prize: winningSector.name,                    // Название приза
        code: winningSector.code,                     // Код приза
        originalProbability: winningSector.option[1], // Исходная вероятность
        normalizedProbability: winningSector.probability.toFixed(2) + '%', // Нормализованная
        remaining: winningSector.option[2],           // Текущее количество
        randomValue: randomValue.toFixed(2)          // Сгенерированное случайное число
    };
}


//Создаём элемент в Zero
$('.wheelfortune .tn-atom').append('<div class="wheel_wrp"></div>');
//Получаем блок с колесом
let wheelRec = $('.wheelfortune').closest('.t-rec');
$('.wheel_form').addClass('t-text');

let resizeTxt = '';
let diameter = 0;



//Функция создание колеса
function creatingWheel(){
    //Диаметр колеса
    diameter = $('.wheelfortune').width();
    
    //Угол сектора
    let angle = Number(((360*Math.PI)/(sector*180)).toFixed(3));
    //Катет сектора
    let sectorHalfWidth = 0.5*diameter*Math.tan(angle/2);

    //Заполняем сектора
    for (let i=0; i<sector; i++){
        //Структура сектора
        let sectorContent = `
            <div class="wheel_sector bg-sector${i}"></div>
            <div class="wheel_line line-sector${i}"></div>
            <div class="wheel_textcont  t-text text-sector${i}">
                <div></div>
            </div>
        `;
        //Формируем сектор
        $('.wheel_wrp').append(sectorContent);
        
        //Формируем угол поворота и задаём цвет
        $('.bg-sector'+i+'').css({
            "transform":"rotate("+(360*i/sector+90)+"deg)"
        });

        //Отрисовка границ сектора
        $('.line-sector'+i+'').css({
            "width" : diameter/2+"px",
            "transform" : "rotate("+((360*i/sector)+(180*(sector-1))/sector)+"deg)",
            "height":"1px",
            "top" : "calc(50% - 1px)",
            "transform-origin" : diameter/2+"px 1px"
        });
        
        //Расставляем текст
        $('.text-sector'+i+' div').html(wheelOption[i][0]);
        

        
        // Формируем угол для текста
        $('.text-sector'+i+'').css({"transform":"rotate("+(360*i/sector+90)+"deg)"});
    
    };


    //Форма сектора
    $('.wheel_sector').css({
        "border-width": (diameter/2)+"px "+sectorHalfWidth+"px 0",
        "transform-origin": ""+sectorHalfWidth+"px "+(diameter/2)+"px",
        "left":((diameter/2)-sectorHalfWidth)+"px"
    });

    //Форма текста
    $('.wheel_textcont').css({
        "width": (diameter/2)+"px",
        "height": (diameter/2)+"px",
        "transform-origin": ""+(diameter/4)+"px "+(diameter/2)+"px",
        "left":((diameter/2)-(diameter/4))+"px",
    });
    
    
    spinWheel(0);
    
}; 




//Проверяем, есть ли изображение у колеса
let bgUrl = $('.wheelfortune .tn-atom').attr('data-original');
//Если загружено своё изображение, то ставим его на фон колеса
if(bgUrl!=undefined){
    //Делаем невидимыми остальные сектора
    $('.wheel_wrp>div').css('opacity', '0');
    $('.wheel_wrp').css('background-image','url('+bgUrl+')');
};



//Вращение колеса
function spinWheel(deg){
    $('.wheel_wrp').css({
       "height": diameter+"px",
       "transform" : "rotate("+deg+"deg)",
       "transition": "transform "+spinTime+"s cubic-bezier(0, 0.76, 0.5, 1.01)"
    });
};


//Распределение случайного сектора
function getRandomInRange(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
let finalSector = -1;


//При отравке формы запускаем получение выигрыша
$('.wheel_form').delegate(".t-submit", "click", function(){
    //Распределяем приз
    distribution();
    //Если включен режим тестирования
    if(testMode){
        //Запускаем колесо
        startSpinWheel();
        
    }else{
    //Если включен рабочий режим
        //Проверка успешной отправки формы
        setTimeout(function(){
            //Если форма успешно отправлена с данными
            if ( $('.wheel_form .t-form').hasClass("js-send-form-success")){
                //Запускаем колесо
                startSpinWheel();
            };
        }, 1000);
    };
    
});

//При нажатии на кнопку Крутить колесо
$(document).on('click', '.wheel-start-btn', function(){
    document.querySelector('.wheel-start-btn').classList.add('clicked-button');
    //Распределяем приз
    distribution();
});

//Распределение выигрыша
function distribution(){
    //Если активна вероятность
    if (prob) {
        //Получаем финальный сектор ***********
        finalSector = getRandomSector(wheelOption).index;
        
        
    }else{
  
        //Если розыгрыш без вероятностей
        //Получаем финальный сектор 
        finalSector = getRandomInRange(0, sector-1);
    };
    
    //Получаем название приза
    let prizTitle = wheelOption[finalSector][0];
    //Получаем картинку приза
    let sectorImage = wheelOption[finalSector][4];
    //Получаем ссылку приза 
    let sectorLink = wheelOption[finalSector][5];
    //Получаем текст ссылки
    let sectorLinkText = wheelOption[finalSector][6];
    
    //Записываем в хранилище
    localStorage.setItem('sectorImage', sectorImage);
    localStorage.setItem('sectorLink', sectorLink);
    localStorage.setItem('sectorLinkText', sectorLinkText);
    
    
    
    
    spinFinish = true;
    resizeTxt = prizTitle.replace(/<\/?[^>]+>/g,' ');
    
    //Вписываем название приза в скрытое поле
    $('input[name="sector_prize"]').val(resizeTxt);
    localStorage.setItem('prizTitle', resizeTxt);
    
    let invite_code = localStorage.getItem('wheelCode');
    let shop_code = wheelOption[finalSector][3];//Получаем код
    let href = location.href;//Получаем ссылку
    
    
    //Запускаем колесо
    startSpinWheel();
    
    
    //Отправляем данные на получение приза
    async function sendPostRequest() {
        const url = 'https://moti-app.ru/webhook/get-prize';
        
        // Ваши данные
        const data = {
            "invite_code": invite_code,
            "shop_code": shop_code,
            "href": href,
            "prizTitle": prizTitle
        };
        
        try {
            const response = await fetch(url, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify(data)
            });
            
            if (!response.ok) {
                throw new Error(`HTTP error! status: ${response.status}`);
            }
            
            const result = await response.json();
         
            
            // 1. Обработка положительного ответа
            if (result && result.answer) { 
                const prizeCodeWheel = result.answer;
                
                
                // Устанавливаем текст в .prize-name .tn-atom
                const prizeNameElement = document.querySelector('.prize-name .tn-atom');
                if (prizeNameElement) {
                    prizeNameElement.textContent = prizTitle;
                }
                
                // Устанавливаем код в .promocode .tn-atom
                const promocodeNameElement = document.querySelector('.promocode .tn-atom');
                if (promocodeNameElement) {
                    promocodeNameElement.textContent = prizeCodeWheel;
                }
                
                localStorage.setItem('prizeCodeWheel', prizeCodeWheel);
                
                //Устанавливаем фото
                prizeImage.setAttribute('data-original', sectorImage);
                prizeImage.setAttribute('src', sectorImage);
                //Устанавливаем ссылку
                linkText.textContent = sectorLinkText;
                linkText.setAttribute('href', sectorLink);
                
            } else {
                showAlertToolTip()
                console.log("Ответ не содержит ключ 'answer'");
            }
            
            return result;
            
        } catch (error) {
            showAlertToolTip()
            console.error(error);
            throw error;
        }
    }
    
    // Вызов функции
    sendPostRequest();
    
    function showAlertToolTip(){
        const tooltipBlock = document.querySelector(`div[data-tooltip-hook="${problemMessageLink}"]`);
                if (tooltipBlock) {
                    const parentElement = tooltipBlock.closest('.t-rec');
                    if (parentElement && parentElement.id) {
                        const numericId = parentElement.id.replace(/\D/g, '');
                        if (numericId)  t390_showPopup(numericId);
                    }
                }  
    };

};


//Функция запуска вращения колеса
function startSpinWheel(){  
    //Остановить вращения колеса ---- анимация
    $('.wheel_wrp').addClass('stop-animation');
    
    setTimeout(function(){
        //Поворачиваем колесо
        spinWheel(  (maxRevolution*360 +  (finalSector*360)/sector)*(-1) );
        //Выводим окно с призом
        setTimeout(function(){
            
            //Сохраняем результат в LS
            localStorage.setItem('_code_w', finalSector );
            let time = new Date();
            localStorage.setItem('_code_t', time.getTime() );
            localStorage.setItem('_code_v', vers );
            localStorage.setItem('_code_demo', testMode );
            
            
            showPrizeDescription();
            
            //удаляем таймер
            const timerBlock =  document.querySelector('.uc-timer-element');
            if(timerBlock) timerBlock.remove();

        }, spinTime*1000);
        
    }, 50);
};


let twoStep = true;

//Показываем текст приза************
function showPrizeDescription(mem){
    
    if(mem=='memory'){
        
        
        let prizTitle = localStorage.getItem('prizTitle');
        if (prizTitle!=null){
            // Устанавливаем текст в .prize-name .tn-atom
            const prizeNameElement = document.querySelector('.prize-name .tn-atom');
            if (prizeNameElement) {
                prizeNameElement.textContent = prizTitle;
            }  
        };
       
        
        let prizeCodeWheel = localStorage.getItem('prizeCodeWheel');
        if (prizeCodeWheel!=null){
            // Устанавливаем код в .promocode .tn-atom
            const promocodeNameElement = document.querySelector('.promocode .tn-atom');
            if (promocodeNameElement) {
                promocodeNameElement.textContent = prizeCodeWheel;
            }  
        };
        
        //Показываем картинку
        let sectorImage = localStorage.getItem('sectorImage');
        if (sectorImage!=null){
            prizeImage.setAttribute('data-original', sectorImage);
            prizeImage.setAttribute('src', sectorImage);
        };
        
        //Вставляем ссылку
        let sectorLink = localStorage.getItem('sectorLink');
        if (sectorLink!=null){
            linkText.setAttribute('href', sectorLink);
        };
        
        //Вставляем текст в ссылку
        let sectorLinkText = localStorage.getItem('sectorLinkText');
        if (sectorLinkText!=null){
            linkText.textContent = sectorLinkText;
        };

        
        //Поворачиваем колесо
        let finalSector = localStorage.getItem('_code_w');
        if (finalSector!=null){
            spinWheel(  (maxRevolution*360 +  (finalSector*360)/sector)*(-1) );
        };
        
    };
    
    
    
    
    // Скрываем .wheel-screen_1
    const wheelScreen1 = document.querySelector('.wheel-screen_1');
    if (wheelScreen1) {
        wheelScreen1.style.display = 'none';
    }
    
    
    // Скрываем .wheel-screen_2
    const wheelScreen2 = document.querySelector('.wheel-screen_2');
    if (wheelScreen2) {
        wheelScreen2.style.display = 'none';
    }
                
    // Показываем .wheel-screen_3
    const wheelScreen3 = document.querySelector('.wheel-screen_3');
    if (wheelScreen3) {
        wheelScreen3.style.display = 'block';
    }
                
    document.querySelector('.wheel-start-btn').classList.remove('clicked-button');
};



//Проверка версий
let prevVersion = localStorage.getItem('_code_v');
if (prevVersion!=null){
    //Если версии изменились, то удаляем записи
    if(prevVersion!=vers){
        deleteLsItem()
    };
};


//Проверка предыдущего режима
let prevMode = localStorage.getItem('_code_demo');
if (prevVersion!=null){
    if(prevMode=='true'){
        prevMode = true;
    }else{
        prevMode = false;  
    };
    
    if(prevMode!=testMode) {
        deleteLsItem();
    };

};


let prevResult = localStorage.getItem('_code_w');//Данные о прошлом вращении
let prevTime = localStorage.getItem('_code_t');//Данные о прошлом вращении


//Проверка интервала времени
if(timeRepeat>0 ){
    //Получаем разницу между временем
    let currentTime = new Date();
    currentTime = currentTime.getTime();
    //Переводим разницу в часы
    let timePassed = (currentTime - prevTime)/1000/60/60;
        
    //Если прошло достаточно времени, то удаляем записи
    if(timePassed>timeRepeat){
        deleteLsItem()
    };
};



let prevList = '';

//Если есть запись в LS о прошлом вращении и это не тестовый режим
if (prevResult!=null && !testMode) {
    twoStep = false;
    //Останавливаем анимацию вращения
    $('.wheel_wrp').addClass('stop-animation');
    //Выводим данные о выигрыше
    showPrizeDescription('memory');
};


//Очистка данных
function deleteLsItem(){
    //Удаляем переменные из localStorage если они существуют
    const localStorageKeys = ['wheelCode', '_code_w', '_code_t', '_code_v', '_code_demo', 'prizTitle', 'prizeCodeWheel', 'sectorImage', 'sectorLink', 'sectorLinkText'];
    localStorageKeys.forEach(key => {
        if (localStorage.getItem(key)) {
            localStorage.removeItem(key);
        }
    });
};



//Копировать промокод
    $('.copy-icon').on('click', function() {
        // Копируем текстовое содержимое элемента .promocode .tn-atom
        var textToCopy = $('.promocode .tn-atom').text();
        
        // Используем современный Clipboard API
        navigator.clipboard.writeText(textToCopy).then(function() {
           
            let elem = $(this);
            elem.addClass('copy-mode');
            
            // Удаляем класс через 300мс
            setTimeout(function() {
                elem.removeClass('copy-mode');
            }, 300);
        }.bind(this)).catch(function(err) {
            console.error('Ошибка при копировании: ', err);
        });
    });




//Кнопка рестарт - Обработка
document.addEventListener('click', function(event) {
    if (event.target.closest('.restart-wheel')) {
        
        //Получаем заново сектора
        fetchWheelData();
        
        // 1. Обновляем текст приза
        const prizeElement = document.querySelector('.prize-name .tn-atom');
        if (prizeElement) {
            prizeElement.textContent = "..........";
        }
        
        // 2. Обновляем текст промокода
        const promocodeElement = document.querySelector('.promocode .tn-atom');
        if (promocodeElement) {
            promocodeElement.textContent = "..........";
        }
        
        // 3. Очищаем input[name="sector_prize"]
        const sectorPrizeInput = document.querySelector('input[name="sector_prize"]');
        if (sectorPrizeInput) {
            sectorPrizeInput.value = "";
        }
        
        // 4. Очищаем input[name="wheel-code"]
        const wheelCodeInput = document.querySelector('input[name="wheel-code"]');
        if (wheelCodeInput) {
            wheelCodeInput.value = "";
        }
        
        // 5. Скрываем .wheel-screen_2 и .wheel-screen_3
        const screen2 = document.querySelector('.wheel-screen_2');
        const screen3 = document.querySelector('.wheel-screen_3');
        
        if (screen2) screen2.style.display = 'none';
        if (screen3) screen3.style.display = 'none';
        
        // 6. Показываем .wheel-screen_1
        const screen1 = document.querySelector('.wheel-screen_1');
        if (screen1) screen1.style.display = 'block';
        
        // 7. Очистка данных
        deleteLsItem();
        
        //8.0 Восстанавливаем обороты колеса
        spinWheel(0);
        
        // 8. Удаялем класс stop-animation у .wheel_wrp
        const wheelWrapper = document.querySelector('.wheel_wrp');
        if (wheelWrapper) {
            wheelWrapper.classList.remove('stop-animation');
        }
        
        //9. Убираем анимацию с кнопки
        document.querySelector('.check-code').classList.remove('clicked-button');
        
        
    }
});

    
}, 350);


});
</script>   


<style>

/*Общий Контейнер*/
.wheel_wrp {
    width: inherit;
    height: inherit;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
    border-radius: 50%;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
}

/*Ось колеса в центре*/
.wheel_wrp:after {
    content: "";
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background-color: #fff;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    opacity: 1;
    border: 10px solid #A53A37;
    z-index: 99;
    box-shadow: 0 0 5px 0 rgb(0 0 0 / 25%);
}

/*Оформление сектора*/
.wheel_sector{
    width: 0px;
    height: 0px;
    border-style: solid;
    position: absolute;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

/*Оформление разделительных линий*/
.wheel_line {
    background-color: #dedede; /*Цвет линии*/
    transform: rotate(0deg);
    height: 2px;
    position: absolute;
    z-index: 99;
}

/*Оформление текста*/
.wheel_textcont {
    position: absolute;
    top: 0;
    z-index: 99999;
    display: flex;
    flex-direction: column-reverse;
    justify-content: flex-end;
    align-items: center;
    font-weight: 400;
    color: #FEFFF4;
    font-size: 18px;
    line-height: 1;
    text-align: center;
}

.wheel_textcont div {
    transform: rotate(-90deg);
    margin-top: 80px;
    width: 130px;
}

.wheel_textcont div b {
    font-size: 20px;
}

.uc-wheel-content,
.uc-prize-product


{
    /*display: none;*/
}

.form_noactive .t-form {
    /*display: none;*/
    opacity: 0.3;
    pointer-events: none !important;
}

.wheel_form  .js-successbox.t-form__successbox {
    /*display: none !important;*/
}


/*Анимация постоянного вращения колеса*/
.wheel_wrp.stop-animation{
    animation: none;
}
.wheel_wrp {
    animation: idle-rotation linear 60s infinite;
}
@keyframes idle-rotation{
    0% {
        transform: rotate(0);
    }
    
    100% {
        transform: rotate(360deg);
    }
}

.spin_wheel , 
.open-wheel , 
.close-wheel ,
.wheel-start-btn
{
    cursor:pointer
}
    
.spin_wheel {  
    transition: all 0.2s linear
}

.spin_wheel:hover {
    filter: sepia(1)
}

.wheel_form , .form_noactive  {
    color: #fff;
}


.tn-atom.prize-text-show {
    background: none !important;
    text-align: left;
}.tn-atom.prize-text-show {}

.uc-wheel-popup .t-popup__container.t-popup__container-static{
    margin: 0;
}

.title_noactive
{
    opacity: 0.3;
    pointer-events: none !important;
}

.spin_wheel {
    opacity: 0;
    pointer-events: none;
}
.spin_wheel.show-btn {
    opacity: 1;
    pointer-events: auto;
}

/*Скрыть окно успешной отправки*/
div#tildaformsuccesspopup {
    /*display: none !important;*/
}

.form_noactive a {
    background-color: #1F61EB;
    color: #fff !important;
    padding: 15px 20px;
    display: inline-block;
    border-radius: 5px;
}




.uc-wheel-popup label.t-checkbox__control.t-checkbox__control_flex {
    justify-content: center;
}

.uc-wheel-popup  .t-checkbox__indicator {
    border-radius: 50%;
}


.wheel-start {
    pointer-events: none !important;
    filter: grayscale(1);
}

.wheel-start.wheel-start-active {
    pointer-events: auto !important;
    filter: none;
    cursor: pointer;
}

.copy-icon{
    cursor: pointer;
}

.copy-mode {
    border-radius: 6px !important;
    box-shadow: 0 0 0 2px #335b29;
    filter: hue-rotate(260deg);
}



.uc-wheel-popup .t-form__successbox {
    background: #2a9488;
}


input[name="wheel-code"] {
    text-align: center;
}

.wheel_sector:nth-child(odd) {
    border-color: rgb(165, 58, 55) transparent !important;
}

.wheel_sector:nth-child(even) {
    border-color: #FEFFF4  transparent !important;
}


.wheelfortune .tn-atom:after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: inherit;
    border: 12px #A53A37 solid;
    box-sizing: border-box;
    box-shadow: 0 0 10px 0 rgb(0 0 0 / 50%), inset 0 0 10px 0 rgb(0 0 0 / 25%);
}

#allrecords .t-rec .wheelfortune .tn-atom {
    box-shadow: none;
    background-color: #FEFFF4;
    height: inherit;
}

.wheel_textcont:nth-child(even) {
    color: #a53a37;
}


.wheelfortune .tn-atom:before {
    content: "";
    background-image: url(https://static.tildacdn.com/tild3439-3362-4264-b963-323365303630/Polygon_3.svg);
    width: 60px;
    height: 60px;
    position: absolute;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    right: -29px;
    top: 50%;
    z-index: 99;
    transform: translateY(-50%);
}


.check-code,
.spin-wheel,
.restart-wheel

{
    cursor: pointer;
    user-select: none;
}

.promocode .tn-atom {
    text-decoration: underline;
    cursor: pointer;
}


#allrecords .t-rec .wheel-screen_2,
#allrecords .t-rec .wheel-screen_3

{
    display:none;
}

@media screen and (max-width: 479px) {
.uc-wheel-popup .t396__artboard,
.uc-wheel-popup .t396__carrier,
.uc-wheel-popup .t396__filter
{
    min-height: 100svh !important;
    overflow-y: auto;
}
}



.clicked-button .tn-atom {
    filter: blur(4px);
    opacity: 0.5;
}

.clicked-button {
    background-image: url(https://tilda.ru/tpl/img/ajax-loader.gif);
    background-size: 35px;
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
}

</style>


Made on
Tilda