*{
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('./Foto/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:#454545;
border-radius:6px;
z-index:2;
box-shadow:0 10px 25px rgba(255, 255, 255, 0.3);
}

/* tutup amplop */

.flap{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:#363639;
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:rgb(255, 255, 255);
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("./Foto/awal.jpg") center/cover no-repeat;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
text-align:center;
position:relative;
}

/* IMPORT FONT ELEGAN */
@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:wght@400;600&family=Poppins:wght@300&display=swap');

.hero{
  position: relative;
  height: 100vh;
  overflow: hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  color:#fff;
}

/* FOTO BACKGROUND */
.hero-foto{
  position:absolute;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
}

/* OVERLAY GELAP */
.hero::before{
  content:'';
  position:absolute;
  width:100%;
  height:100%;
  background:rgba(131, 131, 131, 0.4);
  z-index:-1;
}

/* HAPPY WEDDING */
.happy{
  font-family:'Poppins', sans-serif;
  letter-spacing:3px;
  font-size:14px;
  margin-bottom:10px;
  opacity:0.9;
}

/* NAMA PENGANTIN (EFEK ELEGAN) */
.nama{
  font-family:'Great Vibes', cursive;
  font-size:60px;
  color:#fff;
  text-shadow:0 0 10px rgba(255,215,0,0.6);
  margin:10px 0;
}

/* SAVE THE DATE */
.tanggal{
  font-family:'Playfair Display', serif;
  font-size:18px;
  letter-spacing:2px;
  margin-bottom:20px;
}

/* COUNTDOWN */
#countdown{
  font-size:20px;
  font-family:'Poppins', sans-serif;
  margin-bottom:20px;
}

/* SCROLL */
.scroll{
  font-size:14px;
  opacity:0.8;
  animation:fadeDown 1.5s infinite;
}

/* ANIMASI */
@keyframes fadeDown{
  0%{transform:translateY(0); opacity:0.5;}
  50%{transform:translateY(10px); opacity:1;}
  100%{transform:translateY(0); opacity:0.5;}
}


.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:linear-gradient(135deg,#1a1919,#11242d),
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(135deg,#1a1919,#11242d),
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(135deg,#1a1919,#11242d);

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;

}

}


/* LOVE STORY */

.lovestory{
height:100vh;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
text-align:center;
padding:40px;
color:white;
position:relative;
overflow:hidden;
background:linear-gradient(to top,#020111,#191621,#000);
}

.judul-story{
font-size:40px;
margin-bottom:30px;
letter-spacing:3px;
}

.story-box{
max-width:700px;
line-height:1.8;
font-size:18px;
background:rgba(255,255,255,0.08);
padding:30px;
border-radius:15px;
backdrop-filter:blur(5px);
}

/* Bintang */
.stars{
position:absolute;
width:100%;
height:100%;
top:0;
left:0;
background:url("https://www.transparenttextures.com/patterns/stardust.png");
animation:twinkle 3s infinite alternate;
opacity:0.8;
}

/* Animasi kedip */
@keyframes twinkle{
0%{opacity:0.4}
100%{opacity:1}
}

.ayat{
  margin:20px auto 30px;
  max-width:600px;
  text-align:center;
  font-family:'Playfair Display', serif;
  color:#fff;
}

.isi-ayat{
  font-size:16px;
  font-style:italic;
  line-height:1.8;
  margin-bottom:10px;
  text-shadow:0 0 8px rgba(0,0,0,0.5);
}

.sumber-ayat{
  font-size:14px;
  letter-spacing:1px;
  opacity:0.8;
}

.music-control{
    position: fixed;
    bottom: 25px;
    right: 25px;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: linear-gradient(135deg,#ff758c,#ff7eb3);
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    box-shadow: 0 8px 25px rgba(0,0,0,0.2);
    z-index: 999;
    transition: all 0.3s ease;
}

/* Hover efek */
.music-control:hover{
    transform: scale(1.1) rotate(5deg);
}

/* Saat musik aktif */
.music-control.active{
    background: linear-gradient(135deg,#43cea2,#185a9d);
    animation: glow 1.5s infinite;
}

/* efek glow */
@keyframes glow{
    0%{ box-shadow:0 0 0 0 rgba(67,206,162,0.6); }
    70%{ box-shadow:0 0 0 15px rgba(67,206,162,0); }
    100%{ box-shadow:0 0 0 0 rgba(67,206,162,0); }
}

/* ikon mute */
.music-control.muted{
    opacity: 0.6;
}


