/* ===========================
   RESET
=========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}

body{
    background:#080808;
    color:#fff;
    overflow:hidden;
}

/* ===========================
   BACKGROUND
=========================== */

.background{
    position:fixed;
    inset:0;
    overflow:hidden;
    z-index:-1;
    background:radial-gradient(circle at top,#401525,#080808 70%);
}

.heart-bg{
    position:absolute;
    color:#ff6b95;
    opacity:.45;
    animation:float linear infinite;
    user-select:none;
}

@keyframes float{

0%{
transform:translateY(110vh) rotate(0deg);
}

100%{
transform:translateY(-20vh) rotate(360deg);
}

}

/* ===========================
   PAGES
=========================== */

.page{

display:none;

width:100%;
height:100vh;

padding:30px;

justify-content:center;
align-items:center;
flex-direction:column;

text-align:center;

overflow-y:auto;

animation:show .8s ease;

}

.page.active{

display:flex;

}

@keyframes show{

from{

opacity:0;
transform:scale(.9);

}

to{

opacity:1;
transform:scale(1);

}

}

/* ===========================
   TEXT
=========================== */

h1{

font-size:55px;

color:#ff7da0;

text-shadow:0 0 20px #ff4d7d;

margin-bottom:20px;

}

h2{

font-size:34px;

color:#ffd0dc;

margin-top:10px;

}

p{

margin-top:20px;

font-size:20px;

line-height:1.8;

color:#ddd;

}

/* ===========================
   BUTTON
=========================== */

button{

margin-top:35px;

padding:15px 45px;

border:none;

border-radius:50px;

background:#ff4d7d;

color:#fff;

font-size:18px;

cursor:pointer;

transition:.4s;

box-shadow:0 0 25px #ff4d7d;

}

button:hover{

transform:scale(1.08);

}

/* ===========================
   INTRO
=========================== */

.intro-content{

animation:up 1s;

}

@keyframes up{

from{

opacity:0;
transform:translateY(40px);

}

to{

opacity:1;
transform:translateY(0);

}

}

/* ===========================
   LOADING
=========================== */

.big-heart{

font-size:110px;

color:#ff4d7d;

animation:beat 1s infinite;

}

@keyframes beat{

50%{

transform:scale(1.2);

}

}

.loading-bar{

width:320px;

height:15px;

background:#222;

border-radius:30px;

overflow:hidden;

margin-top:30px;

}

.progress,
.kiss-progress{

width:0;

height:100%;

background:#ff4d7d;

}

/* ===========================
   PASSWORD
=========================== */

.box{

background:rgba(255,255,255,.08);

padding:40px;

border-radius:25px;

backdrop-filter:blur(15px);

}

input{

width:280px;

padding:15px;

margin-top:25px;

border:none;

outline:none;

border-radius:30px;

font-size:17px;

text-align:center;

}

#error{

color:#ff8db0;

margin-top:15px;

}

/* ===========================
   AGE
=========================== */

.age-box{

display:flex;

flex-wrap:wrap;

justify-content:center;

gap:20px;

margin-top:35px;

}

.age-box div{

background:rgba(255,255,255,.08);

padding:25px;

border-radius:20px;

min-width:120px;

}

.age-box h2{

font-size:42px;

}

/* ===========================
   CAKE
=========================== */

.cake{

font-size:150px;

cursor:pointer;

transition:.6s;

animation:cakeFloat 2s infinite;

}

@keyframes cakeFloat{

50%{

transform:translateY(-15px);

}

}

.cake.open{

transform:scale(1.25) rotate(10deg);

}

.cake-hint{

color:#ffd0dc;

font-size:22px;

}

.cake-message{

display:none;

margin-top:35px;

max-width:700px;

animation:showCake .8s;

}

.cake-message img{

width:360px;

max-width:90%;

border-radius:25px;

box-shadow:0 0 30px #ff4d7d;

}

@keyframes showCake{

from{

opacity:0;
transform:translateY(40px);

}

to{

opacity:1;
transform:translateY(0);

}

}

/* ===========================
   LOVE
=========================== */

#love{

justify-content:flex-start;

padding-top:40px;

overflow-y:auto;

}

#love h1{

margin-bottom:25px;

}

.love-container{

width:90%;

max-width:1100px;

display:grid;

grid-template-columns:repeat(auto-fit,minmax(230px,1fr));

gap:25px;

padding-bottom:50px;

}

.love-card{

height:190px;

background:rgba(255,255,255,.08);

border-radius:30px;

display:flex;

justify-content:center;
align-items:center;

padding:20px;

cursor:pointer;

transition:.4s;

}

.love-card:hover{

transform:translateY(-8px);

box-shadow:0 0 25px #ff4d7d;

}

.heart{

font-size:70px;

color:#ff4d7d;

}

.message{

display:none;

}

.message h3{

color:#ff95b1;

margin-bottom:12px;

}

.message p{

font-size:15px;

line-height:1.7;

margin:0;

}

.love-card.open .heart{

display:none;

}

.love-card.open .message{

display:block;

}

/* ===========================
   HIS PHOTOS
=========================== */

#hisPhotos{

justify-content:flex-start;

padding-top:40px;

overflow-y:auto;

}

#hisPhotos h1{

margin-bottom:15px;

font-size:50px;

}

.gallery{

width:90%;

max-width:1200px;

display:grid;

grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

gap:30px;

justify-items:center;

margin-top:30px;

padding-bottom:60px;

}

.gallery figure{

margin:0;

text-align:center;

transition:.4s;

}

.gallery figure:hover{

transform:translateY(-8px);

}

.gallery img{

width:260px;

height:360px;

object-fit:contain;

background:#111;

padding:10px;

border-radius:20px;

border:3px solid rgba(255,255,255,.08);

box-shadow:0 0 20px rgba(255,77,125,.35);

transition:.4s;

}

.gallery img:hover{

transform:scale(1.05);

box-shadow:0 0 35px #ff4d7d;

}

.gallery figcaption{

margin-top:15px;

padding:10px;

font-size:18px;

font-weight:500;

line-height:1.6;

color:#ffd7e3;

max-width:250px;

}

.gallery-text{

font-size:20px;

color:#ffd7e3;

margin-bottom:15px;

}

/* ===========================
   VIDEOS
=========================== */

#videos{

justify-content:flex-start;

padding-top:40px;

overflow-y:auto;

}

.video-gallery{

display:flex;

justify-content:center;

flex-wrap:wrap;

gap:25px;

margin-top:35px;

padding-bottom:40px;

}

.video-gallery video{

width:260px;

height:450px;

object-fit:cover;

border-radius:22px;

box-shadow:0 0 25px #ff4d7d;

transition:.4s;

}

.video-gallery video:hover{

transform:scale(1.03);

}

/* ===========================
   KISS PAGE
=========================== */

#kiss{

justify-content:center;

}

.kiss-buttons{

display:flex;

gap:25px;

margin-top:35px;

flex-wrap:wrap;

justify-content:center;

}

.kiss-buttons button{

min-width:170px;

}

#kissMessage{

margin-top:25px;

font-size:22px;

color:#ffd7e3;

min-height:35px;

}

#uploadSection{

display:none;

margin-top:35px;

width:350px;

max-width:90%;

}

#kissVideo{

display:none;

margin-top:35px;

animation:show .8s;

}

#kissVideo video{

width:330px;

max-width:95%;

border-radius:25px;

box-shadow:0 0 30px #ff4d7d;

}

#finishButton{

display:none;

}

/* ===========================
   FINAL
=========================== */

.final-message{

max-width:760px;

font-size:22px;

line-height:2;

}

/* ===========================
   SCROLLBAR
=========================== */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#111;

}

::-webkit-scrollbar-thumb{

background:#ff4d7d;

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:#ff6f98;

}

/* ===========================
   MOBILE
=========================== */

@media(max-width:768px){

body{

overflow:auto;

}

h1{

font-size:36px;

}

h2{

font-size:28px;

}

p{

font-size:17px;

}

button{

padding:14px 35px;

font-size:16px;

}

.age-box{

gap:12px;

}

.age-box div{

min-width:95px;

padding:18px;

}

.gallery{

grid-template-columns:1fr;

width:95%;

}

.gallery img{

width:100%;

height:auto;

}

.gallery figcaption{

font-size:16px;

}

.video-gallery{

flex-direction:column;

align-items:center;

}

.video-gallery video{

width:95%;

height:auto;

}

.love-container{

grid-template-columns:1fr;

}

.kiss-buttons{

flex-direction:column;

align-items:center;

}

#kissVideo video{

width:95%;

}

}