*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Arial, sans-serif;
}

body{
overflow:hidden;
}

/* BACKGROUND FOTO */

.cover{
height:100vh;
width:100%;
background:url('./bg.jpg') center/cover no-repeat;
display:flex;
justify-content:center;
align-items:center;
position:relative;
}

.overlay{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.4);
}

/* AMPlop */

.envelope{
position:relative;
width:320px;
height:220px;
background:#696168;
border-radius:6px;
z-index:2;
box-shadow:0 10px 25px rgba(0,0,0,0.3);
}

/* tutup amplop */

.flap{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:#384777;
clip-path:polygon(0 0, 50% 50%, 100% 0);
transform-origin:top;
transition:0.7s;
}

/* isi surat */

/* corak love di kotak putih */

.letter{
position:absolute;
width:90%;
height:80%;
background:white;
top:10%;
left:5%;
border-radius:5px;
padding:20px;
text-align:center;
transition:0.7s;
overflow:hidden;
}

/* pattern love */

.letter::before{
content:"❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤";
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
font-size:20px;
line-height:35px;
color:#ff72e5;
opacity:0.25;
pointer-events:none;
word-wrap:break-word;
padding:10px;
}


h1{
font-size:20px;
margin-bottom:10px;
}

.tamu{
font-size:18px;
font-weight:bold;
color:#c59d3f;
margin:10px 0;
}

/* tombol */

.btn{
margin-top:15px;
padding:10px 25px;
border:none;
background:#c59d3f;
color:white;
border-radius:20px;
cursor:pointer;
}

/* animasi buka */

.open .flap{
transform:rotateX(180deg);
}

.open .letter{
transform:translateY(-60px);
}

/* halaman isi */

.main{
display:none;
height:100vh;
background:#f5f5f5;
justify-content:center;
align-items:center;
flex-direction:column;
text-align:center;
}

.main{
display:none;
width:100%;
scroll-behavior:smooth;
}

.page{
min-height:100vh;
padding:60px 20px;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
text-align:center;
animation:fadeUp 1s ease;
}

@keyframes fadeUp{
from{
opacity:0;
transform:translateY(50px);
}
to{
opacity:1;
transform:translateY(0);
}
}

/* HERO */

.hero{
min-height:100vh;
background:url("./awal.jpg") center/cover no-repeat;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
text-align:center;
color:white;
position:relative;
}

.hero::before{
content:"";
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.45);
z-index:1;
}

.hero *{
position:relative;
z-index:2;
}


.happy{
font-size:24px;
color:#c59d3f;
}

.hero-foto{
display:none;
}


.nama{
font-size:40px;
}

#countdown{
font-size:28px;
color:#c59d3f;
margin-top:15px;
}

/* pasangan */

.grid-pasangan{
display:flex;
gap:60px;
justify-content:center;
flex-wrap:wrap;
}


.card{
background:rgba(255,255,255,0.85);
backdrop-filter:blur(10px);

padding:30px;
width:260px;

border-radius:20px;

box-shadow:
0 15px 35px rgba(240, 80, 163, 0.1);

transition:0.4s;
}

.card h3{
font-size:22px;
margin-bottom:10px;
}



.card img{
width:150px;
height:150px;
border-radius:50%;
object-fit:cover;

border:6px solid #c59d3f;

box-shadow:0 10px 25px rgba(0,0,0,0.15);
margin-bottom:15px;
}


.card:hover{
transform:translateY(-10px);
box-shadow:0 20px 40px rgba(0,0,0,0.15);
}


.sosmed{
margin-top:15px;
}

.sosmed a{
margin:0 8px;
font-size:20px;
color:#c59d3f;
transition:0.3s;
}

.sosmed a:hover{
color:#000;
transform:scale(1.2);
}


/* acara */

.jadwal{
display:flex;
gap:30px;
margin:20px;
}

.box{
background:white;
padding:20px;
border-radius:10px;
box-shadow:0 5px 15px rgba(0,0,0,0.1);
}

.map{
width:80%;
height:300px;
border:none;
margin-top:20px;
border-radius:10px;
}

/* galeri */

.grid-galeri{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:15px;
width:80%;
}

.grid-galeri img{
width:100%;
border-radius:10px;
}

/* rsvp */

form{
display:flex;
flex-direction:column;
width:300px;
gap:10px;
}

input,select,textarea{
padding:10px;
border-radius:5px;
border:1px solid #ccc;
}

button{
background:#c59d3f;
color:white;
border:none;
padding:12px;
border-radius:20px;
cursor:pointer;
}

.pasangan{
min-height:100vh;
padding:80px 20px;
text-align:center;

background:
radial-gradient(circle at top,#252423,#393735),
url("");

background-size:cover;
}

.pasangan h2{
font-size:36px;
margin-bottom:40px;
color:#c59d3f;
letter-spacing:2px;
}


/* LOVE BALLOON BACKGROUND */

.love-container{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
overflow:hidden;
z-index:0;
pointer-events:none;
}

.love{
position:absolute;
bottom:-50px;
font-size:25px;
animation:floatUp linear infinite;
opacity:0.7;
}

/* animasi naik */

@keyframes floatUp{

0%{
transform:translateY(0) scale(1);
opacity:0;
}

20%{
opacity:0.9;
}

100%{
transform:translateY(-120vh) scale(1.5);
opacity:0;
}

}

/* animasi warna */

@keyframes loveColor{

0%{color:#ff4d6d;}
25%{color:#ff8fa3;}
50%{color:#c59d3f;}
75%{color:#ff99c8;}
100%{color:#ff4d6d;}

}

.love{
animation:floatUp linear infinite, loveColor 5s linear infinite;
}

/* SECTION ACARA */

/* SECTION ACARA */

.acara{

position:relative;
padding:100px 20px;
text-align:center;

background:
linear-gradient(rgba(9, 9, 9, 0.95), rgba(95, 93, 93, 0.95)),
url("https://www.transparenttextures.com/patterns/flowers.png");

background-size:cover;

}

/* judul */

.judul-acara{

font-size:40px;
color:#c59d3f;
margin-bottom:10px;
letter-spacing:2px;

animation:fadeDown 1s ease;

}

.subjudul{

max-width:600px;
margin:auto;
margin-bottom:60px;
color:#ffffff;
font-style:italic;

animation:fadeUp 1.2s ease;

}


/* Jadwal */

.jadwal{

display:flex;
justify-content:center;
gap:50px;
flex-wrap:wrap;

}


/* CARD */

.box{

background:rgb(255, 255, 255);

padding:35px;
width:280px;

border-radius:20px;

box-shadow:
0 15px 35px rgba(254, 88, 213, 0.15);

transition:0.4s;

opacity:0;
transform:translateY(60px);

}

/* efek hover */

.box:hover{

transform:translateY(-10px) scale(1.03);

box-shadow:
0 25px 50px rgba(0,0,0,0.2);

}

.box h3{

color:#c59d3f;
font-size:24px;
margin-bottom:10px;

}

.tanggal{

font-weight:bold;
margin-bottom:5px;

}

.jam{

color:#343333;
margin-bottom:10px;

}

.lokasi{

font-size:14px;
margin-bottom:20px;
color:#404040;

}


/* tanggal */

.tanggal{
color:#404040;
font-weight:bold;
margin-bottom:5px;

}

/* jam */

.jam{

color:#505050;
margin-bottom:10px;

}

/* lokasi */

.lokasi{

font-size:14px;
margin-bottom:15px;
color:#444444;

}

.btn-lokasi{

display:inline-block;

padding:10px 20px;

background:linear-gradient(45deg,#c59d3f,#e6c36a);

color:rgb(42, 42, 42);

border-radius:25px;

text-decoration:none;

font-size:14px;

transition:0.3s;

box-shadow:0 5px 15px rgba(0,0,0,0.2);

}

/* hover */

.btn-lokasi:hover{

transform:scale(1.1);

box-shadow:0 10px 25px rgba(0,0,0,0.3);

}

/* map */

.map{

width:80%;
height:300px;

margin-top:40px;

border:none;
border-radius:15px;

box-shadow:0 10px 30px rgba(0,0,0,0.2);

}

.show{

opacity:1;
transform:translateY(0);

transition:1s;

}

/* SECTION GALERI */

.galeri{

position:relative;
padding:100px 20px;

background:linear-gradient(rgba(9, 9, 9, 0.95), rgba(95, 93, 93, 0.95));

text-align:center;
overflow:hidden;

}

.judul-galeri{

font-size:38px;
color:#c59d3f;
margin-bottom:50px;
letter-spacing:2px;

}

/* GRID GALERI */

.grid-galeri{

columns:3 250px;
column-gap:15px;
max-width:1000px;
margin:auto;

}

/* FOTO */

.grid-galeri img{

width:100%;
margin-bottom:15px;

border-radius:15px;

box-shadow:0 10px 25px rgba(240, 67, 249, 0.15);

transition:0.4s;

}

/* hover efek */

.grid-galeri img:hover{

transform:scale(1.05);

box-shadow:0 20px 40px rgba(0,0,0,0.25);

}

/* CONTAINER BUNGA */

.rose-container{

position:absolute;
top:0;
left:0;

width:100%;
height:100%;

pointer-events:none;

overflow:hidden;

}

/* bunga */

.rose{

position:absolute;
top:-50px;

font-size:24px;

animation:roseFall linear infinite;

opacity:0.8;

}

/* animasi jatuh */

@keyframes roseFall{

0%{

transform:translateY(-10vh) rotate(0deg);
opacity:0;

}

20%{
opacity:1;
}

100%{

transform:translateY(110vh) rotate(360deg);
opacity:0;

}

}

/* SECTION RSVP */

.rsvp{

position:relative;
padding:100px 20px;
text-align:center;
background:linear-gradient(rgba(9, 9, 9, 0.95), rgba(95, 93, 93, 0.95));
overflow:hidden;

}

.rsvp h2{
color:white;
}


/* FORM */

.rsvp form{

display:flex;
flex-direction:column;
width:320px;
margin:auto;
gap:12px;

}

.rsvp input,
.rsvp select,
.rsvp textarea{

padding:12px;
border-radius:8px;
border:1px solid #ccc;

}

/* tombol */

.rsvp button{

background:#c59d3f;
color:white;
border:none;
padding:12px;
border-radius:25px;
cursor:pointer;
transition:0.3s;

}

.rsvp button:hover{

transform:scale(1.05);

}

/* CONTAINER PESAWAT */

.plane-container{

position:absolute;
top:0;
left:0;
width:100%;
height:100%;
pointer-events:none;
overflow:hidden;

}

/* PESAWAT */

.plane{

position:absolute;
font-size:24px;

animation:planeFly linear infinite;

opacity:0.8;

}

/* ANIMASI TERBANG */

@keyframes planeFly{

0%{

transform:translateX(-10vw) translateY(80vh) rotate(10deg);
opacity:0;

}

20%{
opacity:1;
}

100%{

transform:translateX(110vw) translateY(-20vh) rotate(25deg);
opacity:0;

}

}

#daftarUcapan{

margin-top:40px;
max-width:400px;
margin-left:auto;
margin-right:auto;

}

.ucapan-card{

background:rgb(78, 78, 78);
padding:15px;

border-radius:10px;

margin-bottom:10px;

box-shadow:0 5px 15px rgba(244, 68, 203, 0.1);

text-align:left;

}

.ucapan-card h4{
color:#c59d3f;
margin-bottom:5px;
}



