*{
box-sizing:border-box;
}

html,body{
margin:0;
padding:0;
width:100%;
max-width:100%;
overflow-x:hidden;
font-family:Arial,Helvetica,sans-serif;
background:#05000b;
color:white;
}

a{
color:white;
}

.intro-page{
min-height:100svh;
display:flex;
align-items:center;
justify-content:center;
padding:16px;
background:#05000b;
}

.intro-bg{
position:fixed;
inset:0;
background:
radial-gradient(circle at top left,rgba(255,0,212,.34),transparent 38%),
radial-gradient(circle at bottom right,rgba(255,138,0,.25),transparent 38%),
linear-gradient(180deg,#06000f,#020004);
}

.video-box{
position:relative;
z-index:2;
width:min(100%,980px);
border:2px solid #ff4ddb;
border-radius:28px;
padding:10px;
background:linear-gradient(135deg,rgba(255,0,212,.22),rgba(255,174,0,.12));
box-shadow:0 0 30px rgba(255,0,212,.8),0 0 60px rgba(255,174,0,.28);
}

.video-frame{
position:relative;
width:100%;
aspect-ratio:16/9;
border-radius:20px;
overflow:hidden;
background:black;
}

.video-frame video{
width:100%;
height:100%;
object-fit:contain;
background:black;
display:block;
}

.video-overlay{
position:absolute;
inset:0;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
padding:18px;
background:radial-gradient(circle,rgba(255,0,212,.25),rgba(0,0,0,.88));
}

.video-overlay.hidden{
display:none;
}

.small-ticket{
border:2px solid #ffe600;
border-radius:14px;
padding:9px 15px;
color:#ffe600;
font-weight:900;
letter-spacing:1px;
box-shadow:0 0 16px #ffe600;
}

.video-overlay h1{
font-size:clamp(2.2rem,8vw,5.5rem);
line-height:.9;
margin:20px 0 10px;
color:#ff4ddb;
text-shadow:0 0 20px #ff00d4,0 0 50px #ff00d4;
}

.video-overlay h1 span{
color:#ffe600;
}

.video-overlay p{
max-width:420px;
color:#ffd6fb;
}

#startBtn{
border:0;
border-radius:18px;
padding:17px 34px;
margin:16px 0;
background:linear-gradient(90deg,#ff7a00,#ff00d4,#ffe600);
color:white;
font-weight:900;
font-size:1.25rem;
letter-spacing:1px;
box-shadow:0 0 25px #ff00d4;
cursor:pointer;
}

.site{
width:100%;
max-width:1180px;
margin:0 auto;
padding:16px;
}

.home{
background:
radial-gradient(circle at top left,rgba(255,0,212,.25),transparent 35%),
radial-gradient(circle at top right,rgba(255,133,0,.2),transparent 30%),
linear-gradient(180deg,#05000b,#080012 60%,#05000b);
}

.hero-card{
position:relative;
min-height:760px;
border:2px solid rgba(255,77,219,.7);
border-radius:30px;
overflow:hidden;
background:rgba(0,0,0,.35);
box-shadow:0 0 28px rgba(255,0,212,.45);
}

.hero-card:before{
content:"";
position:absolute;
inset:0;
background:
linear-gradient(90deg,rgba(255,0,212,.045) 1px,transparent 1px),
linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px);
background-size:42px 42px;
z-index:2;
pointer-events:none;
}

.hero-video-bg{
position:absolute;
top:0;
left:0;
width:100%;
height:58%;
overflow:hidden;
z-index:1;
background:#000;
}

.hero-video-bg video{
width:100%;
height:100%;
object-fit:cover;
display:block;
pointer-events:none;
}
.hero-video-overlay{
position:absolute;
top:0;
left:0;
width:100%;
height:58%;
z-index:2;
background:
linear-gradient(180deg,rgba(5,0,11,.08),rgba(5,0,11,.70)),
radial-gradient(circle at 50% 35%,rgba(255,0,212,.18),transparent 45%);
box-shadow:inset 0 -40px 45px rgba(5,0,11,.95);
pointer-events:none;
}

.hero-content{
position:relative;
z-index:3;
min-height:760px;
display:grid;
grid-template-columns:1fr 1.05fr 1fr;
align-items:center;
gap:24px;
padding:40px 28px 20px;
}

.text-block h1{
font-size:clamp(3rem,7vw,5.6rem);
font-weight:300;
line-height:.9;
margin:8px 0 18px;
color:#ff4ddb;
text-shadow:0 0 20px #ff00d4;
}

.text-block p{
font-size:1.05rem;
line-height:1.55;
color:white;
}

.mini{
color:#ffe600;
font-weight:900;
letter-spacing:1px;
}

.couple{
position:relative;
text-align:center;
align-self:end;
z-index:4;
}

.couple:after{
content:"";
position:absolute;
inset:18% 5% 8%;
background:#ff00d4;
filter:blur(75px);
z-index:-1;
opacity:.7;
}

.couple img{
max-width:100%;
max-height:660px;
object-fit:contain;
display:block;
margin:0 auto;
}

.date-box{
border:2px solid #ff4ddb;
border-radius:22px;
padding:28px 18px;
text-align:center;
background:rgba(8,0,18,.72);
box-shadow:0 0 25px #ff00d4;
}

.save{
color:#ffe600;
font-weight:900;
}

.date{
font-size:clamp(2.5rem,5vw,4.3rem);
font-weight:300;
color:#ff5ce2;
text-shadow:0 0 18px #ff00d4;
margin:12px 0;
}

.time{
color:#fff0b0;
font-size:1.2rem;
}

.countdown-box,
.form-section{
margin-top:24px;
border:2px solid rgba(255,77,219,.7);
border-radius:28px;
background:rgba(8,0,18,.72);
box-shadow:0 0 25px rgba(255,0,212,.42);
padding:22px;
}

.wait{
text-align:center;
color:#ffe600;
font-weight:900;
letter-spacing:1px;
margin-bottom:16px;
}

.countdown{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:12px;
text-align:center;
}

.countdown div{
border:1px solid rgba(255,230,0,.45);
border-radius:16px;
padding:14px 8px;
background:rgba(0,0,0,.3);
}

.countdown strong{
display:block;
font-size:clamp(2rem,6vw,3.4rem);
color:#ff5ce2;
font-weight:300;
text-shadow:0 0 18px #ff00d4;
}

.countdown span{
font-size:.8rem;
color:#ffe600;
font-weight:900;
}

.form-section{
display:grid;
grid-template-columns:.8fr 1.2fr;
gap:24px;
align-items:center;
}

.ticket-card{
border:2px solid #ffe600;
border-radius:20px;
padding:28px;
text-align:center;
background:rgba(30,12,0,.5);
box-shadow:0 0 24px rgba(255,230,0,.55);
transform:rotate(-4deg);
}

.ticket-title{
font-size:clamp(2.3rem,5vw,3.5rem);
font-weight:300;
color:#ffe600;
text-shadow:0 0 16px #ffe600;
}

.barcode{
height:68px;
margin-top:18px;
background:repeating-linear-gradient(90deg,#ffe600 0 3px,transparent 3px 8px,#ffe600 8px 11px,transparent 11px 16px);
}

.rsvp h2{
margin:0 0 18px;
font-size:clamp(2rem,6vw,3.2rem);
font-weight:300;
text-align:center;
color:#ff5ce2;
text-shadow:0 0 18px #ff00d4;
}

input,select{
width:100%;
padding:16px;
margin-bottom:14px;
border-radius:12px;
border:1px solid rgba(255,255,255,.28);
background:#080010;
color:white;
font-size:1rem;
}

.essen-label{
display:block;
color:#ffe600;
font-weight:900;
margin:4px 0 8px;
}

.rsvp button{
width:100%;
padding:18px;
border:0;
border-radius:14px;
background:linear-gradient(90deg,#ff7a00,#ff00d4,#ffe600);
color:white;
font-size:1.15rem;
font-weight:900;
box-shadow:0 0 24px #ff00d4;
cursor:pointer;
}

.music-btn{
position:fixed;
right:14px;
bottom:14px;
z-index:50;
border:2px solid #ffe600;
border-radius:999px;
background:rgba(0,0,0,.78);
color:white;
padding:12px 16px;
box-shadow:0 0 18px #ffe600;
}

footer{
text-align:center;
padding:28px 10px;
color:#ffd6fb;
}

@media(max-width:820px){

.site{
padding:10px;
}

.video-box{
border-radius:22px;
padding:7px;
}

.video-frame{
aspect-ratio:9/16;
max-height:92svh;
}

.hero-card{
min-height:auto;
border-radius:24px;
}

.hero-video-bg,
.hero-video-overlay{
height:330px;
}

.hero-video-bg video{
object-fit:cover;
}

.hero-content{
min-height:auto;
display:flex;
flex-direction:column;
gap:12px;
padding:285px 16px 20px;
text-align:center;
}

.text-block{
order:1;
}

.text-block h1{
font-size:3.3rem;
}

.text-block p{
max-width:360px;
margin:0 auto;
}

.couple{
order:2;
width:100%;
}

.couple img{
max-height:430px;
width:auto;
max-width:100%;
}

.date-box{
order:3;
width:100%;
padding:22px 14px;
}

.countdown{
grid-template-columns:repeat(2,1fr);
}

.form-section{
grid-template-columns:1fr;
padding:18px;
}

.ticket-card{
transform:none;
}

.music-btn{
font-size:.9rem;
padding:10px 13px;
}

}

@media(max-width:420px){

.hero-video-bg,
.hero-video-overlay{
height:300px;
}

.hero-content{
padding-top:260px;
}

.text-block h1{
font-size:2.9rem;
}

.couple img{
max-height:390px;
}

.countdown strong{
font-size:2.15rem;
}

}


.sound-unlock{
position:absolute;
right:22px;
top:22px;
z-index:9999;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
-webkit-transform:translateZ(0);
transform:translateZ(0);
border:2px solid #ffe600;
border-radius:18px;
padding:12px 18px;
background:rgba(0,0,0,.72);
color:#ffe600;
font-weight:900;
font-size:1.25rem;
line-height:1;
text-align:center;
text-shadow:0 0 12px #ffe600,0 0 22px #ff7a00;
box-shadow:0 0 18px #ffe600,0 0 35px rgba(255,122,0,.45);
cursor:pointer;
animation:pulseGlow 1.6s ease-in-out infinite;
}

.sound-unlock span{
font-size:.75rem;
color:#ff4ddb;
text-shadow:0 0 12px #ff00d4;
}

.sound-unlock.active{
color:#00ff99;
border-color:#00ff99;
box-shadow:0 0 20px #00ff99;
animation:none;
}

@keyframes pulseGlow{
0%,100%{transform:scale(1);filter:brightness(1)}
50%{transform:scale(1.05);filter:brightness(1.25)}
}

@media(max-width:820px){
.sound-unlock{
right:12px;
top:12px;
font-size:1rem;
padding:10px 13px;
border-radius:14px;
}
}
