body{
    cursor:none;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{

    font-family:Poppins,sans-serif;

    color:#5d3550;

    background:
        radial-gradient(circle at top left, rgba(255,93,145,0.18) 0%, transparent 30%),
        radial-gradient(circle at bottom right, rgba(240,184,75,0.16) 0%, transparent 24%),
        linear-gradient(135deg, #fff8fc 0%, #f7e9f1 55%, #f1dfe8 100%);

    min-height:100vh;

    min-height:100dvh;

    opacity:0;
    transform:translateY(10px);
    transition:opacity .7s ease, transform .7s ease;

}

body.loaded{
    opacity:1;
    transform:none;
}

body.page-transitioning{
    opacity:0;
    transform:translateY(12px);
}

#stars{

    position:fixed;

    width:100%;

    height:100%;

    top:0;

    left:0;

    z-index:-2;
}

.overlay{

    position:fixed;

    inset:0;

    background:

    radial-gradient(circle at top, rgba(255,93,145,0.16) 0%, transparent 50%),

    linear-gradient(135deg, rgba(255,248,252,0.95), rgba(247,233,241,0.95));

    opacity:.9;

    z-index:-1;
}

main{

    min-height:100vh;

    min-height:100dvh;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    padding:20px;
    animation:fadeUpIn .9s ease both;
}

@keyframes fadeUpIn{
    from{opacity:0; transform:translateY(16px);} 
    to{opacity:1; transform:none;}
}

.celebrationText{
    min-height:24px;
    margin:0 0 22px;
    font-size:15px;
    font-weight:600;
    letter-spacing:.03em;
    color:#8e5b72;
    opacity:0;
    transform:translateY(6px);
    transition:.35s ease;
}

.celebrationText.show{
    opacity:1;
    transform:translateY(0);
}

.smallTitle{

    letter-spacing:4px;

    font-size:15px;

    opacity:.8;
}

.title{

    font-family:'Dancing Script',cursive;

    font-size:80px;

    margin:20px 0;

    background:linear-gradient(135deg, #ff5d91 0%, #f0b84b 50%, #ff5d91 100%);

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

    background-clip:text;

    filter:drop-shadow(0 0 18px rgba(255,93,145,.18));
}

.subtitle{

    max-width:650px;

    line-height:1.8;

    opacity:.9;

    margin-bottom:50px;
}

.countdown{

    display:flex;

    gap:25px;

    margin-bottom:60px;
}

.countdown div{

    width:100px;

    height:100px;

    backdrop-filter:blur(20px);

    border-radius:20px;

    background:rgba(255,255,255,.75);

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    border:1px solid rgba(255,93,145,.12);
    box-shadow:0 10px 24px rgba(93,53,80,.08);
}

.countdown span{

    font-size:34px;

    font-weight:bold;
}

.countdown small{

    margin-top:5px;

    opacity:.8;
}

#beginBtn{

    padding:18px 40px;

    border:none;

    border-radius:50px;

    cursor:pointer;

    font-size:18px;

    background:linear-gradient(135deg,#ff5d91,#f0b84b);

    color:white;

    transition:.35s;

    box-shadow:0 10px 24px rgba(255,93,145,.18);
}

#beginBtn:hover{

    transform:scale(1.08);

    box-shadow:0 15px 32px rgba(255,93,145,.24);
}

#beginBtn.is-ready{
    animation:pulseGlow 1.5s ease-in-out infinite;
}

@keyframes pulseGlow{
    0%,100%{box-shadow:0 10px 24px rgba(255,93,145,.18); transform:translateY(0);} 
    50%{box-shadow:0 16px 36px rgba(240,184,75,.28); transform:translateY(-3px);} 
}

#musicBtn{

    position:fixed;

    top:20px;

    right:20px;

    width:55px;

    height:55px;

    border-radius:50%;

    border:none;

    cursor:pointer;

    background:rgba(255,255,255,.78);

    color:#5d3550;

    font-size:22px;

    backdrop-filter:blur(10px);

    z-index:99999;
}
