* { box-sizing: border-box; } html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; vertical-align: baseline; } article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { display: flex; flex-direction: column; height: 100%; } ol, ul { list-style: none; } blockquote, q { quotes: none; } table { border-collapse: collapse; border-spacing: 0; } body { max-width: 450px; margin: 0 auto; position: relative; font-family: "Gilroy", sans-serif; height: 85vh; overflow: hidden; user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } body { /* visibility: hidden; opacity: 0; */ transition: opacity 0.5s ease-in-out; } html, body { touch-action: none; /*overflow-x: hidden;*/ user-select: none; } body.images-loaded { visibility: visible; opacity: 1; } .bg__img { position: absolute; top: 0; user-select: none; pointer-events: none; max-width: 450px; height: 100vh; width: 100vw; z-index: -1; } .wrapper { min-height: 100vh; height: 100%; display: flex; flex-direction: column; } .logo { z-index: 3; margin: 14px auto 14px; user-select: none; } .logo__img { width: 193px; /* height: 65px; */ pointer-events: none; } .counter__wrapper { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 10px; z-index: 1; } .counter__gold { width: 48px; height: 48px; pointer-events: none; } .modal__text--congBig { font-family: "Gilroy", sans-serif; font-size: 79.37px; font-weight: 700; line-height: 81.77px; text-align: center; color: #b01200; } .counter { font-weight: 600; font-size: 40px; line-height: 103%; text-align: center; color: #fff; text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); } .stone { width: 100%; margin: 0 auto auto; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; } @keyframes finger_scale { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(1); } } .combo { width: 150px; height: 166px; object-fit: contain; position: absolute; top: -100px; right: 25%; z-index: 2; pointer-events: none; opacity: 0; } .combo__style { animation: combo__style 0.7s ease-out forwards; } @keyframes combo__style { 0% { transform: scale(1); opacity: 0; } 50% { transform: scale(1.3); opacity: 1; } 100% { opacity: 0; transform: scale(1); } } .finger-hand { position: absolute; width: 75px; height: 75px; left: 33%; top: 34%; animation: finger_scale 1.5s infinite linear; z-index: 1; pointer-events: none; user-select: none; } .lottie2 { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 100; } .lottie3 { position: absolute; top: -130px; left: 0; width: 100vw; height: 50vh; pointer-events: none; } .stone__img__container { position: relative; user-select: none; border-radius: 50%; width: 100%; height: 100%; display: flex; justify-content: center; } .stone__img { /* max-width: 320px; */ width: 100%; /* min-height: 285px; */ /* max-height: 285px; */ object-fit: contain; transition: transform 0.09s ease-out; position: relative; z-index: 1; pointer-events: none; } .light { border-radius: 100%; background: #00ffc3; filter: blur(25px); position: absolute; top: 43px; width: 75%; height: 75%; } .modal__prize--coin { background: #fcbc27; border-radius: 53px; padding: 12px 25px; } .last__hit { display: none; margin-top: 8px; align-items: center; justify-content: center; gap: 28px; transition: transform 0.3s ease; box-shadow: 0 4px 0 0 #ec5718, 0 8px 12px 0 rgba(255, 142, 32, 0.4); background: linear-gradient(45deg, #ffdb20 0%, #ff4820 100%); border: 3px solid #ffce64; border-radius: 72px; width: 389px; height: 80px; font-weight: 600; font-size: 20px; text-transform: uppercase; text-align: center; color: #fff; } .shkala { padding: 0 27px; margin-bottom: 10px; } .text__wrapper { position: relative; border: 1px solid #fff; border-radius: 48px; padding: 8px 20px; backdrop-filter: blur(37px); /* background: rgba(13, 35, 69, 0.4); */ } .blur { position: absolute; width: 100%; height: 100px; background: linear-gradient( 90deg, rgba(129, 32, 11, 0) 0%, rgba(129, 32, 11, 0.3) 50%, rgba(129, 32, 11, 0) 100% ); z-index: 1; } /* .text__wrapper::after { position: absolute; content: ""; top: -51px; left: 9%; width: 100%; height: 100px; max-width: 318px; background: url("../assets/Light.png"); } */ .shkala__text { font-family: "Gilroy", sans-serif; font-weight: 600; font-size: 15px; line-height: 98%; color: #fff; text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.25); text-align: center; } .shkala__container { display: flex; align-items: center; margin: 7px auto; width: 100%; } .shkala__wrapper { width: 100%; display: flex; align-items: center; justify-content: center; } .mini__gold { width: 22px; height: 22px; object-fit: contain; } .inside__scale { height: 100%; margin-top: auto; background: linear-gradient(90deg, #ffd600 0%, #ff1f00 100%); width: 0%; transition: width 0.3s ease; border-radius: 37px; position: relative; overflow: hidden; } .progress-svg { position: absolute; top: 50%; left: 0; transform: translateY(-50%); width: 351px; pointer-events: none; transition: opacity 0.3s ease; } .backdrop { top: 0; left: 0; right: 0; bottom: 0; background-color: #00000070; position: fixed; z-index: 2; } @keyframes bookAppearing { 0% { right: -985px; } 100% { right: -56px; } } .modal__book { position: absolute; top: 14%; right: -56px; animation: bookAppearing 2s ease-out forwards; } .modal__wrapper { position: relative; } .scale { display: flex; height: 20px; width: 95%; border: 1px solid #fff; border-radius: 37px; overflow: hidden; position: relative; background: #100200; margin: 0 10px; } .hand { display: flex; align-items: center; justify-content: center; gap: 8px; } .hand__img { width: 20px; height: 20px; pointer-events: none; } .hand__text { font-weight: 600; font-size: 13px; color: #fff; } .bottom { margin-top: -115px; user-select: none; } .bottom__img { max-width: 450px; width: 100%; height: auto; bottom: 0; position: fixed; pointer-events: none; } @keyframes rotate2 { 0% { transform: scale(1); } 50% { transform: scale(0.9); } 100% { transform: scale(1); } } @keyframes rotate { 0% { transform: scale(1.05) rotate(-3deg); } 50% { transform: scale(1.05) rotate(-3deg); } 100% { transform: scale(1.05) rotate(-3deg); } } .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); justify-content: center; align-items: center; z-index: 1; } .modal-content__wrapper { border-radius: 30px; background: linear-gradient(180deg, #aa8f00 0%, #360101 100%); padding: 1px; border: none; width: 98%; max-width: 405px; transition: all 0.5s ease; animation: fadein 0.5s ease; position: relative; } .modal-content { border-radius: 30px; padding: 20px; text-align: center; box-shadow: inset 0 0 138px 0 #000e26; background: linear-gradient(180deg, #5e1c00 0%, #351900 100%); position: relative; z-index: 1; width: 100%; height: 308px; } @keyframes fadein { from { top: -70%; } to { top: 0; } } .character { position: absolute; background: url("../assets/Chracter.png") center center no-repeat; background-size: contain; top: 90px; right: -90px; width: 315px; height: 206px; } .modal__gold { position: absolute; width: 100%; height: 188px; top: -44%; right: -1%; object-fit: contain; } .modal_text1 { margin-top: 70px; font-weight: 500; font-size: 21px; background: linear-gradient(180deg, #fff 0%, #f8d0b9 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-align: left; } .modal_text2 { font-weight: 700; font-size: 37px; line-height: 103%; background: linear-gradient(180deg, #fee100 0%, #f9a400 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-align: left; } .svg { display: flex; position: relative; left: -27px; } .button { font-family: "Gilroy", sans-serif; border-radius: 22px; width: 100%; height: 87px; border: none; box-shadow: inset 0 -4px 11px 0 rgba(255, 255, 255, 0.25), 0 11px 35px 0 rgba(245, 39, 51, 0.5); background: linear-gradient(135deg, #ffd706 0%, #ff0f3b 100%); font-weight: 700; font-size: 21px; color: #fff; display: flex; align-items: center; justify-content: center; gap: 8px; margin: 16% auto; position: relative; z-index: 2; } #closeModal { padding: 5px 10px; cursor: pointer; } @keyframes jump { 0% { transform: translateY(0); } 50% { transform: translateY(-50px); } 100% { transform: translateY(0); } } /*/ POPUP */ .prepopup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); justify-content: center; align-items: center; z-index: 1; } .popup-content__wrapper { border-radius: 30px; background: linear-gradient(180deg, #aa8f00 0%, #360101 100%); padding: 1px; border: none; width: 98%; max-width: 405px; transition: all 0.5s ease; animation: fadein 0.5s ease; position: relative; } .popup-content { border-radius: 30px; border: 1px solid #935828; padding: 20px; text-align: center; width: 100%; height: 285px; box-shadow: inset 0 0 138px 0 #000e26; background: linear-gradient(180deg, #5e1c00 0%, #351900 100%); position: relative; } .counter__wrapper2 { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 10px; position: absolute; top: -60%; right: 38%; } .counter__gold2 { width: 40px; height: 39px; } .counter3 { font-weight: 600; font-size: 40px; line-height: 103%; text-align: center; color: #fff; } .modal__counter--wrapper { display: flex; justify-content: center; align-items: center; gap: 15px; } .modal__text--try { font-size: 34.43px; font-weight: 600; line-height: 35.47px; text-align: center; color: #81200b; margin-top: 30px; } .modal__text--counter { display: flex; justify-content: center; align-items: center; gap: 4px; font-size: 21px; font-weight: 600; line-height: 21.63px; text-align: center; color: #81200b; margin-top: 10px; } .modal__text--cong { color: #b01200; font-family: "Gilroy", sans-serif; font-size: 22px; font-weight: 700; line-height: 22.67px; text-align: center; margin-bottom: 20px; } .modal__text--100fs { font-family: "Gilroy", sans-serif; font-size: 40px; font-weight: 700; line-height: 41.21px; text-align: center; color: #b01200; } .modal__prize--wrapper { display: flex; align-items: center; gap: 6px; margin-bottom: 20px; box-shadow: 0px 4px 6px 0px #00000040; } @keyframes appearing { 0% { opacity: 0; } 100% { opacity: 1; } } .modal__thumb { animation: appearing 0.3s ease-in forwards; display: flex; flex-direction: column; align-items: center; max-width: 350px; width: 100%; position: absolute; top: 26%; left: 50%; transform: translateX(-50%); z-index: 2; } .modal__thumb--win { top: 64%; transform: translate(-50%, -50%); } .box { position: absolute; width: 100%; height: 240px; top: -37%; right: -1%; object-fit: contain; user-select: none; } .box__open { position: absolute; width: 100%; height: 240px; top: -37%; right: -1%; object-fit: contain; user-select: none; display: none; } .roll__open { pointer-events: none; overflow: hidden; position: relative; margin: 8px 0; } .transformLeft { transform: translateX(-320px); } .modal__button { display: flex; justify-content: center; align-items: center; gap: 10px; max-width: 320px; width: 100%; margin-top: 12px; padding: 17px 0; font-size: 19px; font-weight: 700; line-height: 19.56px; text-align: center; text-shadow: 0px 4px 4px #00000040; color: #ffffff; background: linear-gradient(92.44deg, #e4270b 1.13%, #801405 98.87%); box-shadow: 0px 8px 14px 0px #fc000040; border: 2.54px solid #c54c3a; border-radius: 18px; } .roll__open::after { content: ""; position: absolute; top: 0; right: 50%; height: 100%; width: 3px; background: #ffd700; box-shadow: 0 4px 4px 0 #000; } .popup__text1 { margin-top: 100px; font-weight: 500; font-size: 21px; line-height: 103%; background: linear-gradient(180deg, #fff 0%, #f8d0b9 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .popup__text2 { font-weight: 600; font-size: 50px; line-height: 103%; background: linear-gradient(180deg, #fff 0%, #f8d0b9 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .popup__text3 { font-weight: 500; font-size: 21px; line-height: 103%; background: linear-gradient(180deg, #fff 0%, #f8d0b9 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .popup__button { box-shadow: inset 0 -4px 11px 0 rgba(255, 255, 255, 0.25), 0 11px 35px 0 rgba(245, 39, 51, 0.5); background: linear-gradient(135deg, #ffd706 0%, #ff0f3b 100%); border: none; border-radius: 22px; width: 100%; height: 87px; display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 16px; } .counter2 { font-weight: 700; font-size: 28px; line-height: 103%; text-align: center; color: #fff; text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); } .img__btn { width: 40px; height: 39px; pointer-events: none; } @media (max-height: 650px) { .logo { margin: 15px auto; } .counter__gold { width: auto; height: 25px; object-fit: contain; } .counter { font-size: 30px; } .text__wrapper { padding: 8px 18px; } .shkala__text { font-size: 15px; } .bottom__img { height: 90%; top: 26px; } } .rules { font-size: 22px; font-weight: 600; line-height: 28.6px; text-align: center; text-underline-position: from-font; text-decoration-skip-ink: none; color: #644309; background: linear-gradient( 90deg, rgba(204, 183, 138, 0) 0%, rgba(255, 194, 51, 0.5) 27%, rgba(255, 194, 51, 0.5) 73%, rgba(226, 195, 127, 0) 100% ); } @media (max-height: 540px) { .bottom__img { display: none; } } /*////////////// ///// Carousel /////////////*/ .carousel-container { /* position: absolute; opacity: 0; */ overflow: hidden; width: 92%; height: 100px; /* background: linear-gradient( 270deg, rgba(255, 255, 255, 0) 0%, #ffffff 11.5%, #ffffff 84.5%, rgba(255, 255, 255, 0) 100% ); */ } .modal__space { margin: 8px 0; width: 100%; height: 100px; overflow: hidden; background: linear-gradient( 90deg, rgba(186, 151, 87, 0) 0%, #d0a85f 50%, rgba(186, 151, 87, 0) 100% ); } #clickableDiv { position: relative; } @keyframes topping { 0% { } 50% { opacity: 1; } 90% { transform: translateY(-80px); /* opacity: 1; */ } 100% { opacity: 0; } } .coin { position: absolute; width: 25px; height: 25px; pointer-events: none; user-select: none; z-index: 5; animation: topping 1s ease-in forwards; } .modal__space::after { content: ""; position: absolute; top: 57%; transform: translateY(-50%); right: 50%; height: 100px; width: 3px; background: #ffd700; box-shadow: 0 4px 4px 0 #000; } .carousel { display: flex; transition: transform 0.3s ease-out; } .carousel img { width: 100px; height: 100px; margin-right: 10px; } .image-wrapper { position: relative; } /* Дві накладені картинки */ .image-wrapper .image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; } /* Переднє зображення - те, що бачимо першим */ .image-front { z-index: 2; transition: opacity 0.3s ease-in-out; /* На всякий випадок */ } /* Заднє зображення */ .image-back { z-index: 1; } /* Перший псевдоелемент (::before) - «золотий спалах». Він розширюється з центру до країв контейнера. */ .image-wrapper::before { content: ""; position: absolute; z-index: 3; /* Вище за обидва зображення */ top: 50%; left: 50%; transform: translate(-50%, -50%); width: 95%; height: 95%; border-radius: 35%; /* Золотий градієнт: - Яскравіший у центрі (#FFD700), - трохи темніший з відтінком (#FFC400) ближче до краю, - та прозорий далі, щоб створити «ауру». */ background: radial-gradient( circle at center, #fff 0%, #fff 40%, transparent 80% ); /* Спочатку коло дуже маленьке (0%) і «зажате» в центрі (50% 50%). opacity: 0 - щоб не бачили, поки анімація не почнеться. */ clip-path: circle(0% at 50% 50%); opacity: 0; pointer-events: none; /* Не блокуємо взаємодію з контентом */ } /* Другий псевдоелемент (::after) - «іскри». Тут можемо «розкинути» кілька радіальних градієнтів (золотих точок/блискіток) у різних кутах. */ .image-wrapper::after { content: ""; position: absolute; z-index: 4; /* Навіть вище за золотий градієнт */ top: 0; left: 0; width: 100%; height: 100%; /* Кілька радіальних градієнтів різних розмірів, розташованих у різних місцях (background-position). - Можна додати/змінити кількість градієнтів і їхні позиції для більшого різноманіття. - Підібрати кольори #ffe066, #ffecb3 тощо. */ background: radial-gradient( circle, rgba(255, 255, 255, 0.8) 0%, transparent 70% ) 20% 20% / 8% 8% no-repeat, radial-gradient(circle, rgba(255, 255, 255, 0.8) 0%, transparent 70%) 80% 30% / 10% 10% no-repeat, radial-gradient(circle, rgba(255, 255, 255, 0.8) 0%, transparent 70%) 50% 80% / 7% 7% no-repeat, radial-gradient(circle, rgba(255, 255, 255, 0.8) 0%, transparent 60%) 60% 50% / 5% 5% no-repeat; /* Спочатку іскри непомітні (opacity: 0). */ opacity: 0; pointer-events: none; } /* Ключові кадри для «золотого спалаху». Можемо зробити 2 етапи: - 0% -> 50%: розширюємо коло - 50% -> 100%: лишаємося великими й зникаємо по прозорості */ @keyframes goldFlash { 0% { clip-path: circle(0% at 50% 50%); opacity: 1; } 50% { clip-path: circle(120% at 50% 50%); opacity: 1; } 100% { clip-path: circle(120% at 50% 50%); opacity: 0; /* Повністю прозоре наприкінці */ } } /* Анімація для «іскор»: - Спочатку вони непомітні (0%) - На 30-70% часу: «іскри» видимі - Потім зникають */ @keyframes sparks { 0% { opacity: 0; transform: scale(0.8); } 30% { opacity: 1; transform: scale(1); } 70% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(1.3); } } /* Ключові кадри для зникнення переднього зображення - на ~50% опускаємо до 0 (щоб у момент повного «золотого» покриття ми вже не бачили першу картинку) */ @keyframes frontFadeOut { 0%, 49% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 0; } } /* При наведенні (hover) запускаємо анімації: 1) Плавний спалах (goldFlash) 2) Іскри (sparks) 3) Зникнення переднього зображення (frontFadeOut) */ .image-wrapper:hover::before { animation: goldFlash 0.4s forwards ease-in-out; opacity: 1; /* На початку анімації зробимо псевдоелемент видимим */ } .image-wrapper:hover::after { animation: sparks 0.4s forwards ease-in-out; } .image-wrapper:hover .image-front { animation: frontFadeOut 0.4s forwards ease-in-out; } .modal__list--wrapper { max-width: 256px; width: 100%; justify-content: flex-start; display: flex; gap: 6px; background: linear-gradient( 90deg, rgba(204, 183, 138, 0) 0%, rgba(255, 194, 51, 0.5) 27%, rgba(255, 194, 51, 0.5) 73%, rgba(226, 195, 127, 0) 100% ); margin-bottom: 8px; } .modal__list--text { font-family: "Gilroy", sans-serif; font-size: 20px; font-weight: 600; line-height: 28.6px; text-align: center; color: #b01200; } .modal__list--circle { display: flex; justify-content: center; align-items: center; background-color: #b81f09; border-radius: 50%; width: 26px; height: 26px; font-family: "Gilroy", sans-serif; font-size: 15.86px; font-weight: 600; line-height: 20.62px; letter-spacing: -0.01em; text-align: center; color: #ffffff; }