*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Poppins,sans-serif;
}

body{

background:
linear-gradient(180deg,#06080d 0%,#0c1018 100%);

overflow-x:hidden;

color:#fff;

min-height:100vh;

position:relative;

}

.container{

width:100%;
max-width:420px;

margin:auto;

padding:14px;

position:relative;

z-index:2;

}

/* ---------------- Logo ---------------- */

.logo{

text-align:center;

margin:12px 0 18px;

}

.logo img{

width:170px;

}

/* ---------------- Background ---------------- */

.bg1{

position:fixed;

top:-180px;
left:-120px;

width:350px;
height:350px;

background:#ff9900;

opacity:.12;

filter:blur(130px);

z-index:0;

}

.bg2{

position:fixed;

bottom:-180px;
right:-120px;

width:320px;
height:320px;

background:#ff9900;

opacity:.09;

filter:blur(120px);

z-index:0;

}

/* ---------------- Card ---------------- */

.card{

background:

linear-gradient(
180deg,
rgba(30,38,53,.98),
rgba(18,24,37,.98)
);

border-radius:30px;

overflow:hidden;

border:1px solid rgba(255,190,70,.15);

backdrop-filter:blur(18px);

box-shadow:

0 25px 60px rgba(0,0,0,.45),

0 0 35px rgba(255,170,0,.12);

}

/* ---------------- Hero ---------------- */

.hero{

display:block;

width:100%;

border-bottom:

1px solid rgba(255,180,0,.12);

}

/* ---------------- Heading ---------------- */

.card h2{

font-size:31px;

font-weight:800;

text-align:center;

margin-top:18px;

line-height:1.25;

letter-spacing:.3px;

}

.card span{

color:#ffb000;

text-shadow:

0 0 18px rgba(255,176,0,.35);

}

/* ---------------- Pointer ---------------- */

.pointer{

width:0;
height:0;

margin:auto;

margin-top:20px;

border-left:18px solid transparent;

border-right:18px solid transparent;

border-top:34px solid #ffb000;

filter:

drop-shadow(0 0 12px rgba(255,176,0,.55));

animation:pointerPulse 1.4s infinite;

}

@keyframes pointerPulse{

50%{

transform:scale(1.12);

}

}

/* ---------------- Wheel ---------------- */

.wheelWrap{

width:340px;
height:340px;

margin:15px auto 10px;

position:relative;

display:flex;
align-items:center;
justify-content:center;

}

.wheelWrap::before{

content:"";

position:absolute;

width:340px;
height:340px;

border-radius:50%;

background:

radial-gradient(circle,#ffd866 0%,#ffb300 60%,#d77a00 100%);

padding:8px;

box-shadow:

0 0 40px rgba(255,170,0,.35);

-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);

-webkit-mask-composite:xor;

mask-composite:exclude;

}

#wheel{

width:320px;
height:320px;

border-radius:50%;

box-shadow:

0 10px 30px rgba(0,0,0,.45);

position:relative;

z-index:2;

}

/* ---------------- Button ---------------- */

#spinBtn{

width:90%;

height:68px;

margin:12px auto 18px;

display:block;

border:none;

border-radius:18px;

font-size:21px;

font-weight:800;

letter-spacing:.5px;

color:#111;

cursor:pointer;

position:relative;

overflow:hidden;

background:

linear-gradient(
180deg,
#ffe58c,
#ffc531 35%,
#ffae00 70%,
#ef9100
);

box-shadow:

0 12px 28px rgba(255,170,0,.4),

inset 0 2px 0 rgba(255,255,255,.7),

inset 0 -3px 0 rgba(170,95,0,.35);

}

#spinBtn:disabled{

opacity:.9;

cursor:not-allowed;

transform:scale(.98);

}

#spinBtn::before{

content:"";

position:absolute;

top:0;

left:-120%;

width:60%;

height:100%;

background:

linear-gradient(
90deg,
transparent,
rgba(255,255,255,.7),
transparent
);

transform:skewX(-20deg);

animation:shine 3s infinite;

}

@keyframes shine{

100%{

left:170%;

}

}

/* ---------------- Info ---------------- */

.info{

text-align:center;

font-size:15px;

padding:0 20px 28px;

color:#d2d8df;

}

/* ---------------- Features ---------------- */

.features{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:14px;

margin-top:18px;

}

.feature{

background:#151b27;

border-radius:20px;

padding:18px;

text-align:center;

border:1px solid rgba(255,153,0,.12);

}

.icon{

font-size:34px;

margin-bottom:10px;

}

.feature h3{

font-size:17px;

margin-bottom:8px;

}

.feature p{

font-size:13px;

color:#bcc5d0;

line-height:1.5;

}

.stars{

position:fixed;

inset:0;

pointer-events:none;

background-image:

radial-gradient(#ffcb4d 1px,transparent 1px),
radial-gradient(#ffffff 1px,transparent 1px);

background-size:90px 90px,130px 130px;

background-position:0 0,45px 45px;

opacity:.18;

animation:starsMove 35s linear infinite;

}

@keyframes starsMove{

from{

transform:translateY(0);

}

to{

transform:translateY(-90px);

}

}

.trust{

display:grid;

gap:12px;

margin-top:18px;

}

.trustItem{

background:#151b27;

border-radius:16px;

padding:15px;

text-align:center;

font-size:15px;

font-weight:600;

border:1px solid rgba(255,180,0,.12);

}

.popup{

position:fixed;

inset:0;

background:rgba(0,0,0,.82);

display:none;

align-items:center;

justify-content:center;

z-index:999;

}

.popup.show{

display:flex;

animation:fade .35s;

}

@keyframes fade{

from{

opacity:0;

}

to{

opacity:1;

}

}

.popupBox{

width:90%;
max-width:340px;

background:#171d2b;

padding:28px;

border-radius:24px;

text-align:center;

border:1px solid rgba(255,170,0,.25);

box-shadow:
0 0 45px rgba(255,170,0,.35);

transform:scale(.75);

opacity:0;

transition:.35s;

position:relative;
overflow:hidden;

}

.popup.show .popupBox{

transform:scale(1);

opacity:1;

}

.popupBox b{

color:#ffd54d;

font-size:23px;

text-shadow:
0 0 18px rgba(255,210,70,.8);

display:block;

margin-top:8px;

}

.popupBox h2{

font-size:28px;

margin-bottom:14px;

}

.popupBox p{

font-size:17px;

color:#d6dce5;

margin-bottom:24px;

line-height:1.5;

}

#continueBtn{

width:100%;

height:58px;

border:none;

border-radius:16px;

background:linear-gradient(#ffd65c,#ff9900);

font-size:20px;

font-weight:700;

cursor:pointer;

}

@keyframes wheelGlow{

0%,100%{

filter:
drop-shadow(0 0 12px rgba(255,180,0,.35));

}

50%{

filter:
drop-shadow(0 0 35px rgba(255,210,80,.9));

}

}

.wheelSpin{

animation:wheelGlow .6s linear infinite;

}

#confetti{

position:absolute;

inset:0;

overflow:hidden;

pointer-events:none;

}

.confetti{

position:absolute;

width:8px;

height:16px;

border-radius:2px;

animation:fall 2.5s linear forwards;

}

@keyframes fall{

0%{

transform:translateY(-40px) rotate(0deg);

opacity:1;

}

100%{

transform:translateY(420px) rotate(720deg);

opacity:0;

}

}

.countdown{

text-align:center;

margin-bottom:22px;

font-size:16px;

font-weight:600;

color:#fff;

}

.countdown span{

color:#ffb000;

font-weight:800;

font-size:21px;

text-shadow:

0 0 15px rgba(255,180,0,.55);

}

#liveWinner{

position:fixed;

left:15px;

bottom:18px;

max-width:290px;

background:#161d2a;

border-radius:18px;

padding:14px 18px;

font-size:14px;

line-height:1.5;

border:1px solid rgba(255,180,0,.18);

box-shadow:

0 10px 30px rgba(0,0,0,.35);

transform:translateY(140px);

transition:.6s;

z-index:9999;

}

#liveWinner.show{

transform:translateY(0);

}

#liveWinner b{

color:#ffb000;

}