* {
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 {
height: 162px;
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;
}