/*==================================================
 RESET
==================================================*/

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
width:100%;
height:100%;
overflow:hidden;
scroll-behavior:smooth;
}

body{

width:100%;
height:100vh;
overflow:hidden;

font-family:'Poppins',sans-serif;

background:
radial-gradient(circle at top,#2c1b00 0%,transparent 35%),
radial-gradient(circle at bottom,#320015 0%,transparent 40%),
linear-gradient(180deg,#020202,#090909,#000);

color:#fff;

position:relative;

}

/*==================================================
BACKGROUND
==================================================*/

body::before{

content:"";

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

background:

radial-gradient(circle,
rgba(255,215,0,.08) 1px,
transparent 1px);

background-size:80px 80px;

animation:bgMove 30s linear infinite;

opacity:.4;

pointer-events:none;

}

@keyframes bgMove{

0%{
transform:translateY(0);
}

100%{
transform:translateY(-120px);
}

}

/*==================================================
LOADER
==================================================*/

.loader{

position:fixed;

top:0;
left:0;

width:100%;
height:100%;

display:flex;

justify-content:center;
align-items:center;

background:#000;

z-index:99999;

transition:.6s;

}

.loader-box{

width:90%;

max-width:420px;

padding:35px;

text-align:center;

border-radius:25px;

background:
rgba(255,255,255,.05);

backdrop-filter:blur(18px);

border:
1px solid rgba(255,215,0,.2);

box-shadow:
0 0 30px rgba(255,215,0,.18);

animation:loaderGlow 2s infinite alternate;

}

.loader-box h1{

font-family:'Cinzel',serif;

font-size:34px;

color:#FFD54F;

margin-bottom:15px;

}

.loader-box p{

font-size:16px;

line-height:1.8;

color:#ddd;

margin-bottom:25px;

}

.loader-box button{

padding:14px 35px;

border:none;

border-radius:40px;

background:
linear-gradient(45deg,#FFD54F,#FFB300);

font-size:16px;

font-weight:600;

cursor:pointer;

transition:.35s;

}

.loader-box button:hover{

transform:scale(1.05);

box-shadow:
0 0 20px gold;

}

@keyframes loaderGlow{

from{

box-shadow:
0 0 15px rgba(255,215,0,.2);

}

to{

box-shadow:
0 0 45px rgba(255,215,0,.45);

}

}
/*==================================================
PAGES
==================================================*/

.pages{

position:relative;

width:100%;
height:100vh;

overflow:hidden;

}

.page{

position:absolute;

top:0;
left:0;

width:100%;
height:100vh;

display:flex;

justify-content:center;
align-items:center;

padding:20px;

opacity:0;

visibility:hidden;

transform:scale(.96);

transition:all .6s ease;

}

.page.active{

opacity:1;

visibility:visible;

transform:scale(1);

}

/*==================================================
CARD
==================================================*/

.card{

width:92%;

max-width:850px;

padding:45px 35px;

text-align:center;

border-radius:30px;

background:rgba(255,255,255,.05);

backdrop-filter:blur(20px);

border:1px solid rgba(255,215,0,.15);

box-shadow:

0 15px 45px rgba(0,0,0,.6),

0 0 20px rgba(255,215,0,.08);

animation:cardFloat 5s ease-in-out infinite;

}

@keyframes cardFloat{

0%{

transform:translateY(0);

}

50%{

transform:translateY(-10px);

}

100%{

transform:translateY(0);

}

}

.page-no{

display:inline-block;

padding:8px 18px;

border-radius:30px;

background:rgba(255,215,0,.12);

color:#FFD54F;

font-size:14px;

margin-bottom:18px;

letter-spacing:2px;

}

.card h1{

font-family:'Cinzel',serif;

font-size:42px;

color:#FFD54F;

margin-bottom:18px;

text-shadow:0 0 15px rgba(255,215,0,.35);

}

.line{

width:90px;

height:2px;

background:#FFD54F;

margin:20px auto;

border-radius:10px;

}

.card p{

font-size:20px;

line-height:2;

font-weight:300;

color:#f2f2f2;

}

.final-card{

animation:goldGlow 2.5s infinite alternate;

}

@keyframes goldGlow{

from{

box-shadow:0 0 20px rgba(255,215,0,.18);

}

to{

box-shadow:0 0 45px rgba(255,215,0,.45);

}

}
/*==================================================
BUTTONS
==================================================*/

.buttons{

display:flex;

justify-content:center;

align-items:center;

gap:18px;

margin-top:35px;

flex-wrap:wrap;

}

button{

padding:14px 35px;

border:none;

outline:none;

border-radius:50px;

background:linear-gradient(45deg,#FFD54F,#FFB300);

color:#111;

font-size:16px;

font-weight:600;

cursor:pointer;

transition:.35s;

box-shadow:
0 8px 25px rgba(255,193,7,.25);

}

button:hover{

transform:translateY(-5px);

box-shadow:
0 0 25px rgba(255,215,0,.55);

}

button:active{

transform:scale(.97);

}

.next{

background:linear-gradient(45deg,#FFD54F,#FF9800);

}

.prev{

background:rgba(255,255,255,.08);

color:#fff;

border:1px solid rgba(255,255,255,.15);

}

.prev:hover{

background:rgba(255,255,255,.15);

}

#restart{

background:linear-gradient(45deg,#ff4d6d,#ff758f);

color:#fff;

animation:pulse 2s infinite;

}

@keyframes pulse{

0%{

transform:scale(1);

}

50%{

transform:scale(1.05);

}

100%{

transform:scale(1);

}

}

/*==================================================
TEXT EFFECT
==================================================*/

.card p{

animation:textFade .8s ease;

}

@keyframes textFade{

from{

opacity:0;

transform:translateY(25px);

}

to{

opacity:1;

transform:translateY(0);

}

}
/*==================================================
BACKGROUND STARS
==================================================*/

.stars{

position:fixed;

top:0;
left:0;

width:100%;
height:100%;

overflow:hidden;

pointer-events:none;

z-index:-3;

}

.star{

position:absolute;

color:#fff;

font-size:8px;

opacity:.8;

animation:twinkle 3s linear infinite;

}

@keyframes twinkle{

0%,100%{

opacity:.2;
transform:scale(.6);

}

50%{

opacity:1;
transform:scale(1.2);

}

}

/*==================================================
FLOATING HEARTS
==================================================*/

.hearts{

position:fixed;

top:0;
left:0;

width:100%;
height:100%;

overflow:hidden;

pointer-events:none;

z-index:-2;

}

.heart{

position:fixed;

bottom:-60px;

opacity:.55;

pointer-events:none;

filter:drop-shadow(0 0 12px rgba(255,0,90,.45));

animation:heartFloat linear forwards;

}

@keyframes heartFloat{

0%{

transform:translateY(0) rotate(0deg);

opacity:0;

}

20%{

opacity:1;

}

100%{

transform:translateY(-120vh) rotate(360deg);

opacity:0;

}

}

/*==================================================
ROSE PETALS
==================================================*/

.petals{

position:fixed;

top:0;
left:0;

width:100%;
height:100%;

overflow:hidden;

pointer-events:none;

z-index:-1;

}

.petal{

position:fixed;

top:-50px;

pointer-events:none;

animation:petalFall linear forwards;

}

@keyframes petalFall{

0%{

transform:translateY(0) rotate(0deg);

opacity:1;

}

50%{

transform:translateY(60vh) translateX(30px) rotate(300deg);

}

100%{

transform:translateY(120vh) translateX(-30px) rotate(720deg);

opacity:0;

}

}

/*==================================================
MOBILE RESPONSIVE
==================================================*/

@media(max-width:768px){

.card{

width:100%;

padding:28px 18px;

border-radius:22px;

}

.card h1{

font-size:28px;

line-height:1.4;

}

.card p{

font-size:16px;

line-height:1.8;

}

.page-no{

font-size:12px;

}

.buttons{

flex-direction:column;

gap:12px;

}

button{

width:100%;

padding:14px;

font-size:15px;

}

.loader-box{

width:94%;

padding:28px 20px;

}

.loader-box h1{

font-size:26px;

}

.loader-box p{

font-size:15px;

}

}

@media(max-width:420px){

.card{

padding:22px 15px;

}

.card h1{

font-size:23px;

}

.card p{

font-size:14px;

line-height:1.7;

}

button{

font-size:14px;

}

}

/*==================================================
NO SCROLL
==================================================*/

html,
body{

overflow:hidden;

touch-action:none;

}

::-webkit-scrollbar{

display:none;

}

html{

scrollbar-width:none;

}

/*==================================================
TEXT SELECTION
==================================================*/

::selection{

background:#FFD54F;

color:#111;

}
