/* ===================================================
   HAPPY BIRTHDAY MY LOVE ❤️
=================================================== */

:root{

    --primary:#ff4d8d;
    --secondary:#ff7eb3;
    --accent:#ffd166;
    --dark:#1d1024;
    --glass:rgba(255,255,255,.12);
    --white:#ffffff;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

/*=====================================
LUXURY AURORA BACKGROUND
======================================*/

#aurora{

    position:fixed;

    inset:0;

    overflow:hidden;

    pointer-events:none;

    z-index:-3;

}

.aurora{

    position:absolute;

    width:650px;

    height:650px;

    border-radius:50%;

    filter:blur(120px);

    opacity:.28;

    mix-blend-mode:screen;

}

.one{

    background:#ff4d8d;

    top:-200px;

    left:-120px;

    animation:auroraOne 22s ease-in-out infinite alternate;

}

.two{

    background:#8b5cf6;

    right:-180px;

    top:10%;

    animation:auroraTwo 26s ease-in-out infinite alternate;

}

.three{

    background:#3b82f6;

    bottom:-180px;

    left:25%;

    animation:auroraThree 24s ease-in-out infinite alternate;

}

.four{

    background:#ffd166;

    right:15%;

    bottom:-200px;

    animation:auroraFour 28s ease-in-out infinite alternate;

}

@keyframes auroraOne{

    from{

        transform:
        translate(0,0)
        scale(1);

    }

    to{

        transform:
        translate(220px,180px)
        scale(1.35);

    }

}

@keyframes auroraTwo{

    from{

        transform:
        translate(0,0)
        scale(1);

    }

    to{

        transform:
        translate(-180px,240px)
        scale(1.2);

    }

}

@keyframes auroraThree{

    from{

        transform:
        translate(0,0)
        scale(1);

    }

    to{

        transform:
        translate(180px,-220px)
        scale(1.4);

    }

}

@keyframes auroraFour{

    from{

        transform:
        translate(0,0)
        scale(1);

    }

    to{

        transform:
        translate(-220px,-180px)
        scale(1.3);

    }

}

body{

    background:

    radial-gradient(

        circle at top,

        #2a1039,

        #12071f,

        #07030d

    );

    overflow-x:hidden;

}

/* Animated Background */

@keyframes bgMove{

    0%{
        background-position:0% 50%;
    }

    50%{
        background-position:100% 50%;
    }

    100%{
        background-position:0% 50%;
    }

}

/* Scrollbar */

::-webkit-scrollbar{

    width:8px;

}

::-webkit-scrollbar-thumb{

    background:var(--primary);
    border-radius:50px;

}

::-webkit-scrollbar-track{

    background:#24152f;

}

/* Links */

a{

    text-decoration:none;
    color:inherit;

}

ul{

    list-style:none;

}

/* ===============================
        FLOATING LAYERS
================================ */

#hearts,
#stars,
#sparkles,
#petals{

    position:fixed;
    inset:0;
    pointer-events:none;
    overflow:hidden;
    z-index:1;

}

/* Website stays above effects */

main,
header,
section,
footer{

    position:relative;
    z-index:2;

}

/* ===============================
        INTRO SCREEN
================================ */

#intro{

    position:fixed;
    inset:0;

    display:flex;
    justify-content:center;
    align-items:center;

    padding:20px;

    background:
    radial-gradient(circle at top,#ff5b9f,#45154f);

    z-index:99999;

    transition:1.2s;

    overflow:hidden;

}

.intro-box{

    width:min(90%,700px);

    max-width:700px;

    padding:50px;

    text-align:center;

    background:rgba(255,255,255,.10);

    backdrop-filter:blur(25px);

    border:1px solid rgba(255,255,255,.2);

    border-radius:30px;

    box-shadow:0 25px 60px rgba(0,0,0,.25);

    animation:floatCard 4s infinite ease-in-out;

}

.heart{

    font-size:4rem;

    display:block;

    margin-bottom:20px;

    animation:heartbeat 1.5s infinite;

}

.intro-box h1{

    font-family:'Great Vibes',cursive;

    font-size:4rem;

    margin-bottom:15px;

}

.intro-box h2{

    font-size:1.6rem;

    margin-bottom:25px;

    font-weight:400;

}

.intro-box p{

    line-height:2;

    margin-bottom:35px;

    opacity:.95;

}

#openWebsite{

    padding:18px 45px;

    border:none;

    border-radius:50px;

    background:#fff;

    color:#ff2f75;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    transition:.4s;

    box-shadow:0 15px 35px rgba(0,0,0,.25);

}

#openWebsite:hover{

    transform:translateY(-5px);

    background:var(--primary);

    color:#fff;

}

/* Hide Website Initially */

#website{

    opacity:0;

    visibility:hidden;

    transition:1.5s;

}


/*=====================================
        MOBILE RESPONSIVE
=====================================*/

@media (max-width:768px){

    #intro{

        padding:20px;

    }

    .intro-box{

        width:100%;

        max-width:100%;

        padding:35px 25px;

        border-radius:25px;

    }

    .heart{

        font-size:3rem;

        margin-bottom:15px;

    }

    .intro-box h1{

        font-size:2.7rem;

        line-height:1.2;

    }

    .intro-box h2{

        font-size:1.2rem;

        line-height:1.5;

        margin-bottom:18px;

    }

    .intro-box p{

        font-size:15px;

        line-height:1.8;

        margin-bottom:28px;

    }

    #openWebsite{

        width:100%;

        max-width:280px;

        padding:16px 20px;

        font-size:16px;

    }

}

@media (max-width:480px){

    .intro-box{

        padding:28px 18px;

    }

    .intro-box h1{

        font-size:2.3rem;

    }

    .intro-box h2{

        font-size:1.05rem;

    }

    .intro-box p{

        font-size:14px;

    }

    .heart{

        font-size:2.6rem;

    }

}

/* ===============================
        NAVIGATION
================================ */

header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    padding:20px 8%;

    backdrop-filter:blur(20px);

   background:rgba(255,255,255,.10);

    border-bottom:1px solid rgba(255,255,255,.08);

    z-index:999;

}

nav{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

nav h2{

    font-family:'Great Vibes',cursive;

    font-size:2.2rem;

}

nav ul{

    display:flex;

    gap:30px;

}

nav a{

    transition:.35s;

    font-weight:500;

}

nav a:hover{

    color:#ffd166;

}

/* ===============================
            HERO
================================ */

#hero{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    padding:120px 25px;

}

.hero-content{

    max-width:850px;

}

.hero-content h1{

    font-family:'Great Vibes',cursive;

    font-size:6rem;

    margin-bottom:20px;

    animation:floatText 4s infinite;

}

.hero-content h2{

    font-size:2rem;

    margin-bottom:25px;

}

#typing{

    min-height:80px;

    font-size:1.2rem;

    line-height:2;

    max-width:700px;

    margin:auto;

}

.main-btn{

    display:inline-block;

    margin-top:40px;

    padding:18px 45px;

    border-radius:60px;

    background:var(--primary);

    color:#fff;

    font-weight:600;

    transition:.4s;

    box-shadow:0 15px 35px rgba(255,77,141,.35);

}

.main-btn:hover{

    transform:translateY(-5px);

    background:#ff2b75;

}

/* Scroll Indicator */

.scroll{

    position:absolute;

    bottom:30px;

    left:50%;

    transform:translateX(-50%);

    font-size:2rem;

    animation:bounce 2s infinite;

}

/* ===============================
        COMMON SECTION
================================ */

section{

    width:min(1100px,90%);

    margin:auto;

    padding:100px 0;

}

/* ===============================
        ANIMATIONS
================================ */

@keyframes heartbeat{

    0%,100%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.12);

    }

}

@keyframes floatCard{

    0%,100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-10px);

    }

}

@keyframes floatText{

    0%,100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-8px);

    }

}

@keyframes bounce{

    0%,100%{

        transform:translate(-50%,0);

    }

    50%{

        transform:translate(-50%,-12px);

    }

}

/* ===============================
        MOBILE
================================ */

@media(max-width:900px){

    nav{

        flex-direction:column;

        gap:20px;

    }

    nav ul{

        flex-wrap:wrap;

        justify-content:center;

        gap:15px;

    }

    .hero-content h1{

        font-size:4rem;

    }

    .hero-content h2{

        font-size:1.5rem;

    }

    .intro-box{

        padding:35px;

    }

    .intro-box h1{

        font-size:3rem;

    }

}



/* ===================================================
   BATCH 2B
   PREMIUM SECTION STYLES & EFFECTS
===================================================*/

/* Glass Card */

.glass{

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.12);

    border-radius:30px;

    padding:50px;

    box-shadow:0 20px 60px rgba(0,0,0,.25);

}

/* Every Main Section */

#letter,
#special,
#timeline,
#reasons,
#promise,
#cake,
#prayer,
#ending{

    margin-top:100px;

    margin-bottom:100px;

}

/* Section Titles */

.section-title{

    font-family:'Great Vibes',cursive;

    font-size:4rem;

    text-align:center;

    margin-bottom:25px;

}

.section-subtitle{

    text-align:center;

    opacity:.85;

    margin-bottom:50px;

}

/* Paragraph */

.section-text{

    font-size:18px;

    line-height:2;

    text-align:center;

    max-width:900px;

    margin:auto;

}

/* Beautiful Cards */

.cards{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

    gap:25px;

    margin-top:50px;

}

.card{

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(15px);

    border-radius:25px;

    padding:35px;

    border:1px solid rgba(255,255,255,.12);

    transition:.4s;

}

.card:hover{

    transform:translateY(-10px);

    box-shadow:0 15px 35px rgba(255,77,141,.35);

}

.card h3{

    margin-bottom:15px;

    color:#ffd166;

}

.card p{

    line-height:1.9;

}

/* Timeline */

.timeline{

    position:relative;

    max-width:800px;

    margin:60px auto;

}

.timeline::before{

    content:"";

    position:absolute;

    left:50%;

    top:0;

    width:4px;

    height:100%;

    background:rgba(255,255,255,.2);

    transform:translateX(-50%);

}

.timeline-item{

    position:relative;

    width:50%;

    padding:25px;

}

.timeline-item:nth-child(odd){

    left:0;

    text-align:right;

}

.timeline-item:nth-child(even){

    left:50%;

}

.timeline-dot{

    width:18px;

    height:18px;

    background:#ff4d8d;

    border-radius:50%;

    position:absolute;

    top:30px;

    right:-9px;

}

.timeline-item:nth-child(even) .timeline-dot{

    left:-9px;

}

/* Reasons */

.reason-box{

    max-width:700px;

    margin:auto;

    text-align:center;

    padding:50px;

}

.reason-number{

    font-size:4rem;

    color:#ffd166;

    margin-bottom:20px;

}

.reason-text{

    font-size:22px;

    line-height:1.8;

}

/* Next Button */

.next-btn{

    margin-top:40px;

    padding:15px 40px;

    border:none;

    border-radius:50px;

    background:#ff4d8d;

    color:white;

    cursor:pointer;

    transition:.4s;

    font-size:17px;

}

.next-btn:hover{

    transform:scale(1.08);

}

/* Promise Cards */

.promise-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:25px;

}

/* Cake */

.cake-box{

    text-align:center;

    padding:50px;

}

/* Prayer */

.prayer{

    max-width:900px;

    margin:auto;

    text-align:center;

    line-height:2;

    font-size:18px;

}

/* Ending */

.ending{

    text-align:center;

}

.ending h1{

    font-family:'Great Vibes',cursive;

    font-size:5rem;

    margin-bottom:20px;

}

.ending p{

    line-height:2;

    max-width:700px;

    margin:auto;

}

/* Call Button */

.call-btn{

    display:inline-block;

    margin-top:40px;

    padding:18px 45px;

    border-radius:50px;

    background:#25D366;

    color:white;

    font-weight:bold;

    transition:.4s;

}

.call-btn:hover{

    transform:translateY(-6px);

}

/* Music Button */

#musicBtn{

    position:fixed;

    right:25px;

    bottom:25px;

    width:65px;

    height:65px;

    border:none;

    border-radius:50%;

    background:#ff4d8d;

    color:white;

    font-size:26px;

    cursor:pointer;

    box-shadow:0 15px 35px rgba(0,0,0,.35);

    transition:.4s;

    z-index:9999;

}

#musicBtn:hover{

    transform:scale(1.1);

}

/* Footer */

footer{

    text-align:center;

    padding:40px;

    opacity:.8;

}

/* Responsive */

@media(max-width:768px){

    .timeline::before{

        left:25px;

    }

    .timeline-item{

        width:100%;

        left:0 !important;

        text-align:left !important;

        padding-left:60px;

    }

    .timeline-dot{

        left:16px !important;

        right:auto;

    }

    .section-title{

        font-size:3rem;

    }

    .glass{

        padding:30px;

    }

}

/* ===============================
   CINEMATIC STORY
=============================== */

#storyOverlay{

    position:fixed;

    inset:0;

    background:#000;

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:999999;

    transition:1.5s;

}

#storyText{

    width:90%;

    max-width:700px;

    text-align:center;

    font-size:2rem;

    color:white;

    line-height:2;

    font-family:'Great Vibes',cursive;

    animation:fadeStory 1.5s;

}

@keyframes fadeStory{

    from{

        opacity:0;
        transform:translateY(20px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

/*=====================================
FLOATING HEARTS
======================================*/

.floating-heart{

    position:fixed;

    bottom:-50px;

    color:#ff5a9f;

    animation:floatHeart linear forwards;

    pointer-events:none;

    z-index:0;

    opacity:.8;

}

@keyframes floatHeart{

    from{

        transform:translateY(0) rotate(0deg);

        opacity:1;

    }

    to{

        transform:translateY(-120vh) rotate(360deg);

        opacity:0;

    }

}

/*=====================================
SPARKLES
======================================*/

.sparkle{

    position:fixed;

    background:white;

    border-radius:50%;

    animation:twinkle 3s infinite;

    z-index:0;

}

@keyframes twinkle{

    0%{

        opacity:.2;

        transform:scale(.4);

    }

    50%{

        opacity:1;

        transform:scale(1);

    }

    100%{

        opacity:.2;

        transform:scale(.4);

    }

}

/*=====================================
STARS
======================================*/

.star{

    position:fixed;

    color:white;

    animation:starBlink 4s infinite;

    pointer-events:none;

    z-index:0;

}

@keyframes starBlink{

    0%{

        opacity:.2;

    }

    50%{

        opacity:1;

    }

    100%{

        opacity:.2;

    }

}

/*=====================================
ROSE PETALS
======================================*/

.petal{

    position:fixed;

    top:-50px;

    color:#ff7ea8;

    pointer-events:none;

    animation:petalFall linear forwards;

    z-index:0;

}

@keyframes petalFall{

    from{

        transform:translateY(-30px) rotate(0deg);

        opacity:1;

    }

    to{

        transform:translateY(120vh) rotate(720deg);

        opacity:0;

    }

}

/*======================================
LOVE LETTER
=======================================*/

.envelope-area{

    display:flex;

    justify-content:center;

    margin-top:60px;

}

.envelope{

    width:360px;

    height:240px;

    position:relative;

    cursor:pointer;

    perspective:1200px;

}

.envelope-back{

    position:absolute;

    inset:0;

    background:#f6bfd1;

    border-radius:12px;

    box-shadow:0 20px 50px rgba(0,0,0,.25);

}

.envelope-flap{

    position:absolute;

    width:100%;

    height:120px;

    background:#f4a8c2;

    clip-path:polygon(0 0,100% 0,50% 100%);

    transform-origin:top;

    transition:1s;

    z-index:6;

}

.seal{

    position:absolute;

    left:50%;

    top:82px;

    transform:translateX(-50%);

    width:70px;

    height:70px;

    border-radius:50%;

    background:#ff2d75;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:30px;

    z-index:8;

    transition:.8s;

}

.letter-paper{

    position:absolute;

    left:20px;

    right:20px;

    top:20px;

    height:190px;

    background:white;

    border-radius:10px;

    overflow:auto;

    transform:translateY(25px);

    transition:1.2s;

    padding:30px;

    z-index:3;

}

.letter-content{

    color:#444;

    line-height:2;

}

.letter-content h2{

    color:#ff2d75;

    text-align:center;

    margin-bottom:25px;

}

.letter-content h3{

    margin-top:40px;

    text-align:right;

    color:#ff2d75;

}

.envelope.open .envelope-flap{

    transform:rotateX(180deg);

}

.envelope.open .letter-paper{

    transform:translateY(-220px);

}

.envelope.open .seal{

    opacity:0;

    transform:translateX(-50%) scale(0);

}

/*=====================================
PREMIUM MUSIC PLAYER
======================================*/

#musicBtn{

    position:fixed;

    right:25px;

    bottom:25px;

    width:70px;

    height:70px;

    border:none;

    border-radius:50%;

    background:linear-gradient(135deg,#ff4d8d,#ff8db8);

    color:#fff;

    font-size:28px;

    cursor:pointer;

    z-index:99999;

    box-shadow:0 15px 40px rgba(0,0,0,.3);

    transition:.4s;

}

#musicBtn:hover{

    transform:scale(1.1);

}

.musicPlaying{

    animation:musicPulse 1.5s infinite;

}

@keyframes musicPulse{

    0%{

        box-shadow:0 0 0 0 rgba(255,77,141,.6);

    }

    70%{

        box-shadow:0 0 0 20px rgba(255,77,141,0);

    }

    100%{

        box-shadow:0 0 0 0 rgba(255,77,141,0);

    }

}

/*=====================================
CONFETTI
======================================*/

#confettiContainer{

    position:fixed;

    inset:0;

    pointer-events:none;

    overflow:hidden;

    z-index:9998;

}

.confetti{

    position:absolute;

    width:12px;

    height:18px;

    top:-30px;

    opacity:1;

    animation:confettiFall linear forwards;

}

@keyframes confettiFall{

    0%{

        transform:
        translateY(0)
        rotate(0deg);

        opacity:1;

    }

    100%{

        transform:
        translateY(110vh)
        rotate(1080deg);

        opacity:0;

    }

}

/*=====================================
10 REASONS
======================================*/

.reason-wrapper{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:35px;

    margin-top:50px;

}

.reason-card{

    width:min(700px,95%);

    padding:50px;

    text-align:center;

    border-radius:30px;

    background:rgba(255,255,255,.10);

    backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.15);

    transition:.7s;

    box-shadow:0 20px 50px rgba(0,0,0,.25);

}

.reason-card.flip{

    transform:rotateY(180deg);

}

.reason-number{

    display:block;

    color:#ffd166;

    font-size:20px;

    margin-bottom:20px;

    font-weight:bold;

}

.reason-card h3{

    font-size:34px;

    margin-bottom:25px;

}

.reason-card p{

    font-size:19px;

    line-height:2;

}

#nextReason{

    min-width:240px;

}

/*=====================================
BIRTHDAY CAKE
======================================*/

.cake-wrapper{

    text-align:center;

    margin-top:60px;

}

.cake{

    position:relative;

    width:260px;

    margin:40px auto;

    transition:.5s;

}

.cake:hover{

    transform:translateY(-8px);

}

.cake-top{

    width:220px;

    height:45px;

    margin:auto;

    background:#ffb6c1;

    border-radius:20px;

}

.cake-middle{

    width:240px;

    height:70px;

    margin:auto;

    background:#ff8fab;

}

.cake-bottom{

    width:260px;

    height:90px;

    margin:auto;

    background:#ff6b9d;

    border-radius:0 0 20px 20px;

}

.candles{

    display:flex;

    justify-content:center;

    gap:25px;

    margin-bottom:-5px;

}

.candle{

    width:12px;

    height:55px;

    background:white;

    position:relative;

}

.flame{

    position:absolute;

    width:16px;

    height:22px;

    background:gold;

    border-radius:50% 50% 50% 50%;

    left:-2px;

    top:-18px;

    animation:flicker .4s infinite alternate;

}

@keyframes flicker{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(.8);

    }

}

.flame.off{

    display:none;

}

#wishMessage{

    margin-top:35px;

    font-size:34px;

    font-family:'Great Vibes',cursive;

    opacity:0;

    transition:1s;

    color:#ffd166;

}

#wishMessage.show{

    opacity:1;

}

.cakeGlow{

    filter:drop-shadow(0 0 35px #ffd166);

}

/*=====================================
SCROLL REVEAL
======================================*/

.reveal{

    opacity:0;

    transform:translateY(80px);

    transition:all 1s ease;

}

.reveal.active{

    opacity:1;

    transform:translateY(0);

}

/*=====================================
GLASS HOVER
======================================*/

.glass{

    transition:all .4s ease;

}

.glass:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 60px rgba(255,77,141,.25);

}

/*=====================================
CURSOR GLOW
======================================*/

#cursorGlow{

    position:fixed;

    width:220px;

    height:220px;

    border-radius:50%;

    background:radial-gradient(

        rgba(255,120,170,.18),

        transparent 70%

    );

    pointer-events:none;

    transform:translate(-50%,-50%);

    z-index:0;

    transition:

        left .08s linear,

        top .08s linear;

}

/*=====================================
PREMIUM LETTER
======================================*/

.letter-content{

    color:#444;

    line-height:2.2;

    font-size:18px;

    font-family:'Poppins',sans-serif;

}

.letter-content p{

    margin-bottom:22px;

    text-align:justify;

}

.letter-content h2{

    text-align:center;

    color:#d63384;

    margin-bottom:40px;

    font-family:'Great Vibes',cursive;

    font-size:3rem;

}

.letter-signature{

    margin-top:60px;

    text-align:right;

}

.letter-signature h3{

    color:#d63384;

    font-family:'Great Vibes',cursive;

    font-size:2.5rem;

}

/*=====================================
WHY YOU'RE SPECIAL
======================================*/

.special-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:30px;

    margin-top:60px;

}

.special-card{

    padding:35px;

    border-radius:25px;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.15);

    transition:.45s ease;

    text-align:center;

    overflow:hidden;

    position:relative;

}

.special-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        135deg,

        rgba(255,255,255,.08),

        transparent

    );

    opacity:0;

    transition:.4s;

}

.special-card:hover{

    transform:translateY(-12px);

    box-shadow:0 25px 60px rgba(255,77,141,.25);

}

.special-card:hover::before{

    opacity:1;

}

.special-card span{

    font-size:42px;

    display:block;

    margin-bottom:18px;

}

.special-card h3{

    margin-bottom:18px;

    color:#ffd166;

    font-size:24px;

}

.special-card p{

    line-height:1.9;

    font-size:16px;

}

/*=====================================
OUR STORY
======================================*/

.story-line{

max-width:1100px;

margin:80px auto;

position:relative;

}

.story-line::before{

content:"";

position:absolute;

left:50%;

top:0;

bottom:0;

width:4px;

background:rgba(255,255,255,.15);

transform:translateX(-50%);

}

.story-card{

width:44%;

padding:35px;

margin-bottom:70px;

background:rgba(255,255,255,.08);

backdrop-filter:blur(18px);

border-radius:25px;

position:relative;

transition:.5s;

}

.story-card:hover{

transform:translateY(-10px);

box-shadow:0 25px 50px rgba(255,77,141,.25);

}

.story-card.left{

margin-right:auto;

}

.story-card.right{

margin-left:auto;

}

.story-date{

display:inline-block;

padding:8px 20px;

border-radius:40px;

background:#ff4d8d;

margin-bottom:20px;

font-weight:bold;

}

.story-card h3{

margin-bottom:18px;

color:#ffd166;

}

.story-card p{

line-height:2;

}

.ending-story{

margin:auto;

text-align:center;

width:75%;

}

.ending-story h2{

font-size:4rem;

margin-bottom:15px;

}

@media(max-width:900px){

.story-line::before{

left:20px;

}

.story-card{

width:100%;

margin-left:50px!important;

}

}

/*=====================================
MY PROMISES
======================================*/

.promise-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:30px;

    margin-top:60px;

}

.promise-card{

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(20px);

    border:1px solid rgba(255,255,255,.12);

    border-radius:25px;

    padding:35px;

    text-align:center;

    transition:.45s ease;

    position:relative;

    overflow:hidden;

}

.promise-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        135deg,

        rgba(255,255,255,.08),

        transparent

    );

    opacity:0;

    transition:.4s;

}

.promise-card:hover{

    transform:translateY(-12px) scale(1.02);

    box-shadow:0 25px 60px rgba(255,77,141,.25);

}

.promise-card:hover::before{

    opacity:1;

}

.promise-card span{

    display:block;

    font-size:42px;

    margin-bottom:20px;

}

.promise-card h3{

    color:#ffd166;

    margin-bottom:18px;

    font-size:24px;

}

.promise-card p{

    line-height:1.9;

    font-size:16px;

}

.promise-card{

    opacity:1;

    transform:translateY(0);

}

/*=====================================
PRAYER SECTION
======================================*/

.prayer-box{

    position:relative;

    max-width:900px;

    margin:80px auto;

    padding:70px 50px;

    border-radius:35px;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(25px);

    border:1px solid rgba(255,255,255,.12);

    overflow:hidden;

}

.prayer-glow{

    position:absolute;

    width:350px;

    height:350px;

    background:radial-gradient(

        rgba(255,210,120,.35),

        transparent 70%

    );

    top:-120px;

    left:50%;

    transform:translateX(-50%);

    filter:blur(30px);

}

.prayer-icon{

    display:block;

    text-align:center;

    font-size:60px;

    margin-bottom:25px;

}

.prayer-content{

    position:relative;

    z-index:2;

}

.prayer-content p{

    margin-bottom:25px;

    line-height:2.1;

    text-align:center;

    font-size:18px;

}

.prayer-content p:first-child{

    font-size:28px;

    color:#ffd166;

    font-family:'Great Vibes',cursive;

}

.prayer-content p:last-child{

    font-size:30px;

    color:#ffd166;

    font-family:'Great Vibes',cursive;

}

/*=====================================
GRAND FINALE
======================================*/

#finale{

    padding:140px 20px;

    text-align:center;

}

.finale-card{

    max-width:900px;

    margin:auto;

    padding:70px;

    border-radius:35px;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(25px);

    border:1px solid rgba(255,255,255,.12);

}

.heartbeat{

    font-size:90px;

    animation:heartBeat 1.3s infinite;

}

@keyframes heartBeat{

    0%,100%{

        transform:scale(1);

    }

    30%{

        transform:scale(1.25);

    }

    60%{

        transform:scale(.9);

    }

}

.finale-card h2{

    margin:25px 0;

    font-size:3rem;

    font-family:'Great Vibes',cursive;

    color:#ffd166;

}

.finale-card h3{

    margin-top:50px;

    font-size:2.8rem;

    color:#ff8fab;

    font-family:'Great Vibes',cursive;

}

.finale-card p{

    line-height:2.1;

    margin:22px 0;

    font-size:18px;

}

.forever{

    margin-top:70px;

    font-size:4rem;

    color:#ffd166;

    font-family:'Great Vibes',cursive;

}

.always{

    margin-top:20px;

    font-size:22px;

    line-height:2;

}

.ending-line{

    margin-top:70px;

    font-size:32px;

    font-family:'Great Vibes',cursive;

    color:#ffb3d1;

}

body.ending-mode{

    transition:2s;

    background:

    radial-gradient(circle at top,

    #402040,

    #120915,

    #050305);

}

/*=====================================
LOADER
======================================*/

#loader{

    position:fixed;

    inset:0;

    background:#07020d;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:20px;

    z-index:999999;

    transition:1s;

    overflow:hidden;

}

.loader-content{

    width:100%;

    max-width:500px;

    text-align:center;

}

.loader-heart{

    font-size:80px;

    animation:loaderBeat 1s infinite;

}

@keyframes loaderBeat{

    0%,100%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.25);

    }

}

.loader-content h1{

    margin:25px 0;

    color:#fff;

    font-size:2.3rem;

    line-height:1.3;

}

.loader-content p{

    color:#ffb3d1;

    margin-bottom:40px;

    font-size:1rem;

}

.loading-bar{

    width:100%;

    max-width:320px;

    height:8px;

    margin:auto;

    background:rgba(255,255,255,.1);

    border-radius:20px;

    overflow:hidden;

}

#loadingProgress{

    display:block;

    width:0;

    height:100%;

    background:linear-gradient(

        90deg,

        #ff4d8d,

        #ffd166

    );

}


/*=====================================
MOBILE RESPONSIVE
======================================*/

@media (max-width:768px){

    #loader{

        padding:20px;

    }

    .loader-heart{

        font-size:65px;

    }

    .loader-content h1{

        font-size:2rem;

        line-height:1.3;

    }

    .loader-content p{

        font-size:15px;

        margin-bottom:30px;

    }

    .loading-bar{

        width:90%;

        max-width:280px;

    }

}

@media (max-width:480px){

    .loader-heart{

        font-size:55px;

    }

    .loader-content h1{

        font-size:1.6rem;

    }

    .loader-content p{

        font-size:14px;

    }

    .loading-bar{

        max-width:240px;

        height:7px;

    }

}
  body{

    user-select:none;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;

}
