/* =========================================
   OUR LITTLE WORLD ❤️
   Final Version - Part 1
========================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Segoe UI',sans-serif;
}

html{
    scroll-behavior:smooth;
}

body{

    background:linear-gradient(135deg,#ff6fa5,#ffb3d1,#ffe8f1);

    min-height:100vh;

    overflow-x:hidden;

    color:#fff;

}

/* Loading */

#loading-screen{

position:fixed;

top:0;

left:0;

width:100%;

height:100%;

background:linear-gradient(135deg,#ff4f8b,#ff8db6);

display:flex;

flex-direction:column;

justify-content:center;

align-items:center;

z-index:9999;

}

.loader{

font-size:80px;

animation:heartbeat 1s infinite;

}

#loading-screen h1{

margin-top:20px;

font-size:36px;

}

#loading-screen p{

margin-top:15px;

font-size:18px;

opacity:.9;

}

/* Animation */

@keyframes heartbeat{

0%{transform:scale(1);}
50%{transform:scale(1.2);}
100%{transform:scale(1);}

}

/* Main */

#main-content{

display:none;

padding:40px;

}

/* Hero */

.hero{

display:flex;

justify-content:center;

align-items:center;

min-height:100vh;

}

.glass-card{

width:750px;

max-width:95%;

padding:45px;

border-radius:25px;

background:rgba(255,255,255,.18);

backdrop-filter:blur(20px);

box-shadow:0 10px 40px rgba(0,0,0,.25);

text-align:center;

}

.glass-card h1{

font-size:48px;

margin-bottom:15px;

}

.glass-card h2{

font-size:34px;

margin-bottom:20px;

}

.glass-card p{

font-size:22px;

line-height:1.7;

margin-bottom:30px;

}

button{

padding:16px 38px;

font-size:20px;

border:none;

border-radius:50px;

cursor:pointer;

background:#ff3d81;

color:#fff;

transition:.3s;

}

button:hover{

transform:scale(1.08);

box-shadow:0 10px 25px rgba(255,61,129,.45);

}

.hidden{

display:none;

}/* =========================================
   MEMORY GALLERY
========================================= */

.gallery-box{

    width:900px;

    max-width:95%;

    margin:50px auto;

    padding:30px;

    border-radius:25px;

    background:rgba(255,255,255,.18);

    backdrop-filter:blur(20px);

    box-shadow:0 10px 35px rgba(0,0,0,.25);

    text-align:center;

}

.gallery-box h2{

    font-size:36px;

    margin-bottom:20px;

}

.progress-container{

    width:100%;

    height:10px;

    background:rgba(255,255,255,.25);

    border-radius:30px;

    overflow:hidden;

    margin:20px 0;

}

#progressBar{

    width:6.66%;

    height:100%;

    background:#ff3d81;

    transition:.5s;

}

#photoCounter{

    font-size:18px;

    margin-bottom:20px;

}

#memoryImage{

    width:100%;

    max-height:600px;

    object-fit:contain;

    border-radius:20px;

    box-shadow:0 15px 40px rgba(0,0,0,.3);

    transition:.5s;

}

#memoryImage:hover{

    transform:scale(1.02);

}

#memoryCaption{

    font-size:24px;

    margin:25px 0;

    line-height:1.8;

}

.gallery-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}

/* =========================================
   MUSIC PLAYER
========================================= */

#musicPlayer{

    position:fixed;

    right:20px;

    bottom:20px;

    z-index:999;

}

#playMusic{

    background:#ff3d81;

    color:white;

    border:none;

    border-radius:50px;

    padding:15px 28px;

    cursor:pointer;

    font-size:18px;

}/* =========================================
   LOVE LETTER
========================================= */

#loveLetter{

    padding:60px 20px;

}

#letterText{

    font-size:22px;

    line-height:2;

    text-align:left;

    white-space:pre-line;

}

/* =========================================
   FINAL SCREEN
========================================= */

#finalSection{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:40px;

}

#finalSection h1{

    font-size:52px;

    margin-bottom:20px;

}

#finalSection h2{

    font-size:36px;

    margin-bottom:25px;

}

#finalSection h3{

    margin-top:35px;

    font-size:28px;

    color:#fff8d6;

}

/* =========================================
   FADE ANIMATION
========================================= */

.fade{

    animation:fadeIn .8s ease;

}

@keyframes fadeIn{

    from{

        opacity:0;

        transform:translateY(25px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* =========================================
   MOBILE RESPONSIVE
========================================= */

@media(max-width:768px){

.glass-card{

padding:25px;

}

.glass-card h1{

font-size:34px;

}

.glass-card h2{

font-size:26px;

}

.glass-card p{

font-size:18px;

}

.gallery-box{

padding:20px;

}

.gallery-box h2{

font-size:28px;

}

#memoryCaption{

font-size:18px;

}

button{

font-size:17px;

padding:14px 24px;

}

#finalSection h1{

font-size:38px;

}

#finalSection h2{

font-size:28px;

}

#finalSection h3{

font-size:22px;

}

}/* ===========================
   Floating Hearts
=========================== */

#hearts-container{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    pointer-events:none;
    overflow:hidden;
    z-index:1;
}

.heart{

    position:absolute;

    color:#ff4d88;

    font-size:22px;

    animation:floatHeart linear forwards;

}

@keyframes floatHeart{

0%{

transform:translateY(0) scale(.8);

opacity:0;

}

20%{

opacity:1;

}

100%{

transform:translateY(-120vh) scale(1.6);

opacity:0;

}

}/* ===========================
   Twinkling Stars
=========================== */

#stars-container{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
pointer-events:none;
z-index:0;
}

.star{
position:absolute;
width:3px;
height:3px;
background:white;
border-radius:50%;
animation:twinkle 2s infinite ease-in-out;
}

@keyframes twinkle{

0%,100%{
opacity:.2;
transform:scale(.8);
}

50%{
opacity:1;
transform:scale(1.8);
}

}/* ===========================
   Smooth Image Fade
=========================== */

.fade-image{
    animation:fadeImage .6s ease;
}

@keyframes fadeImage{

0%{
opacity:0;
transform:scale(.97);
}

100%{
opacity:1;
transform:scale(1);
}

}/* ===========================
   Glowing Romantic Text
=========================== */

.glow-title{

animation:glow 2s infinite alternate;

}

@keyframes glow{

from{

text-shadow:
0 0 10px #ffffff,
0 0 20px #ff7aa8,
0 0 30px #ff4d88;

}

to{

text-shadow:
0 0 20px #ffffff,
0 0 40px #ff4d88,
0 0 60px #ff4d88;

}

}/* ===========================
   Gift Button Animation
=========================== */

.gift-animation{

animation:giftPop .7s ease;

}

@keyframes giftPop{

0%{

transform:scale(1);

}

25%{

transform:scale(.9) rotate(-6deg);

}

50%{

transform:scale(1.15) rotate(6deg);

}

75%{

transform:scale(.95);

}

100%{

transform:scale(1);

}

}/* ===========================
   Fireworks
=========================== */

.firework{
    position:fixed;
    width:8px;
    height:8px;
    border-radius:50%;
    pointer-events:none;
    z-index:999;
}/* ===========================
   Animated Tulip Bouquet
=========================== */

#jsTulipBouquet{

position:fixed;

left:50%;

bottom:40px;

transform:translateX(-50%) scale(0);

font-size:55px;

text-align:center;

z-index:9999;

opacity:0;

transition:all 1.2s ease;

pointer-events:none;

}

#jsTulipBouquet.show{

opacity:1;

transform:translateX(-50%) scale(1);

animation:bouquetFloat 3s ease-in-out infinite;

}

#jsTulipBouquet .message{

margin-top:15px;

font-size:24px;

color:#fff;

text-shadow:0 0 10px rgba(255,255,255,.8);

font-weight:bold;

}

@keyframes bouquetFloat{

0%,100%{

transform:translateX(-50%) translateY(0) scale(1);

}

50%{

transform:translateX(-50%) translateY(-10px) scale(1.03);

}

}/* ========================================
   Version 3.0 Smooth Animations
======================================== */

section{
    opacity:0;
    transform:translateY(35px);
    transition:
    opacity .8s ease,
    transform .8s ease;
}

section.show{
    opacity:1;
    transform:translateY(0);
}

button{
    transition:
    transform .3s ease,
    box-shadow .3s ease,
    background .3s ease;
}

button:hover{

    transform:
    translateY(-3px)
    scale(1.05);

}

.glass-card{

    transition:
    transform .4s ease,
    box-shadow .4s ease;

}

.glass-card:hover{

    transform:translateY(-5px);

    box-shadow:
    0 18px 45px
    rgba(0,0,0,.28);

}

#memoryImage{

    transition:
    opacity .5s ease,
    transform .5s ease;

}/* ========================================
   Do You Love Me Popup
======================================== */

#lovePopup{

position:fixed;

top:50%;

left:50%;

transform:translate(-50%,-50%) scale(.8);

width:380px;

max-width:90%;

padding:30px;

border-radius:25px;

background:rgba(255,255,255,.18);

backdrop-filter:blur(20px);

box-shadow:0 15px 40px rgba(0,0,0,.35);

text-align:center;

z-index:99999;

opacity:0;

transition:.5s;

}

#lovePopup.show{

opacity:1;

transform:translate(-50%,-50%) scale(1);

}

#lovePopup h2{

margin-bottom:25px;

font-size:34px;

}

.popupButtons{

display:flex;

justify-content:center;

gap:20px;

margin-top:20px;

position:relative;

height:70px;

}

.popupButtons button{

min-width:110px;

}

#yesBtn{

background:#ff4d88;

}

#noBtn{

position:absolute;

right:0;

background:#666;

transition:.25s;
}/* ===========================
   Premium Glass Glow
=========================== */

.glass-card{

transition:
transform .4s ease,
box-shadow .4s ease,
border .4s ease;

border:1px solid rgba(255,255,255,.18);

}

.glass-card:hover{

box-shadow:
0 0 25px rgba(255,255,255,.18),
0 0 45px rgba(255,105,180,.30),
0 20px 50px rgba(0,0,0,.25);

border:1px solid rgba(255,255,255,.35);

}/* =====================================
   Do You Love Me Card
===================================== */

#loveQuestion{

position:fixed;

top:50%;

left:50%;

transform:translate(-50%,-50%);

background:rgba(255,255,255,.18);

backdrop-filter:blur(20px);

padding:30px;

border-radius:25px;

text-align:center;

width:420px;

max-width:90%;

box-shadow:0 15px 40px rgba(0,0,0,.3);

z-index:999999;

animation:fadeIn .6s ease;

}

#loveQuestion h2{

margin-bottom:20px;

font-size:34px;

}

#loveButtons{

position:relative;

height:80px;

margin-top:25px;

}

#loveButtons button{

width:120px;

position:absolute;

}

#yesLove{

left:20px;

background:#ff4d88;

}

#noLove{

right:20px;

background:#777;

}