:root{
--sage:#8FAF9A;
--soft-sage:#AFC3B4;
--pale-sage:#DDE7E1;
--deep-sage:#5F7D6B;
--ivory:#F7F5F0;
--warm-ivory:#EFEAE2;
--cream:#E8E1D7;
--charcoal:#2F2A26;
--soft-brown:#5A4A3F;
--dusty-rose:#CFA7A3;
--soft-blush:#E6CFCB;
--lavender-gray:#B7B3C8;
}

*{
box-sizing:border-box;
margin:0;
padding:0;
}

html{
scroll-behavior:smooth;
}

body{
font-family:'Cormorant',serif;
color:var(--charcoal);
line-height:1.9;
overflow-x:hidden;
background:var(--ivory);
letter-spacing:0.01em;
}

/* ================= LANGUAGE CONTENT ================= */

.lang-content{
display:none;
}

.lang-content.active{
display:block;
}

.lang-content.active.inline{
display:inline;
}

/* ================= NAV ================= */

.nav{
position:fixed;
top:0;
left:0;
right:0;
z-index:1000;
display:flex;
justify-content:space-between;
align-items:center;
padding:clamp(16px,3vw,24px) clamp(24px,5vw,48px);
background:rgba(247,245,240,0.92);
color:var(--charcoal);
backdrop-filter:blur(16px) saturate(180%);
font-family:'Montserrat',sans-serif;
transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
border-bottom:1px solid rgba(143,175,154,0.12);
box-shadow:0 1px 12px rgba(47,42,38,0.04);
}

.nav.light{
background:rgba(247,245,240,0.95);
border-bottom-color:rgba(143,175,154,0.18);
}

.nav-logo{
font-family:'Cinzel',serif;
font-size:clamp(1.05rem,2.5vw,1.2rem);
letter-spacing:0.28em;
font-weight:500;
color:var(--deep-sage);
text-decoration:none;
transition:color 0.3s ease;
}

.nav-logo:hover{
color:var(--sage);
}

.nav-right{
display:flex;
gap:clamp(16px,2.5vw,36px);
align-items:center;
}

.nav-link{
font-family:'Montserrat',sans-serif;
font-size:0.72rem;
font-weight:400;
letter-spacing:0.18em;
text-transform:uppercase;
color:var(--soft-brown);
text-decoration:none;
transition:color 0.3s ease,transform 0.3s ease;
position:relative;
}

.nav-link:hover{
color:var(--sage);
transform:translateY(-1px);
}

.nav-rsvp{
border:1.5px solid var(--sage);
padding:11px 28px;
border-radius:28px;
color:var(--sage);
background:transparent;
transition:all 0.3s cubic-bezier(0.4,0,0.2,1);
}

.nav-rsvp:hover{
background:var(--sage);
color:var(--ivory);
border-color:var(--sage);
transform:translateY(-2px);
box-shadow:0 4px 16px rgba(143,175,154,0.25);
}

.lang-toggle{
display:flex;
gap:10px;
align-items:center;
}

.lang-separator{
color:var(--soft-sage);
font-weight:300;
}

.lang-btn{
background:none;
border:none;
color:var(--soft-brown);
font-family:'Montserrat',sans-serif;
font-size:0.68rem;
font-weight:400;
cursor:pointer;
transition:all 0.3s ease;
letter-spacing:0.08em;
padding:0;
opacity:0.65;
}

.lang-btn:hover{
opacity:1;
color:var(--sage);
}

.lang-btn.active{
font-weight:500;
opacity:1;
color:var(--deep-sage);
}

/* ================= HERO ================= */

/* ================= HERO ================= */

.hero{
min-height:100vh;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
text-align:center;
padding:140px 30px 100px;
color:var(--ivory);
background:url("images/hero.png") center/cover;
position:relative;
}

.hero::before{
content:"";
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(95,125,107,0.72) 0%,rgba(90,74,63,0.68) 100%);
z-index:1;
}

.hero::after{
content:"";
position:absolute;
inset:0;
background:radial-gradient(ellipse at center,transparent 30%,rgba(47,42,38,0.25) 100%);
z-index:2;
pointer-events:none;
}

.hero > *{
position:relative;
z-index:3;
}

.hero-names{
font-family:'Imperial Script',cursive;
font-size:clamp(4.5rem,12vw,9rem);
font-weight:400;
letter-spacing:0.04em;
margin:28px 0 40px;
line-height:1.15;
text-shadow:0 3px 24px rgba(47,42,38,0.35);
}

.hero-date{
font-family:'Montserrat',sans-serif;
font-size:clamp(0.95rem,2.5vw,1.15rem);
font-weight:300;
letter-spacing:0.45em;
margin-bottom:6px;
text-shadow:0 1px 12px rgba(47,42,38,0.25);
text-transform:uppercase;
opacity:0.95;
}

.hero-location{
font-family:'Cormorant',serif;
font-size:clamp(1.8rem,4.5vw,2.6rem);
font-weight:400;
font-style:italic;
letter-spacing:0.08em;
margin-top:28px;
text-shadow:0 2px 16px rgba(47,42,38,0.3);
opacity:0.92;
}

/* ================= SECTIONS ================= */

section{
padding:clamp(80px,14vh,140px) clamp(30px,6vw,60px);
position:relative;
background-size:cover;
background-position:center;
background-repeat:no-repeat;
}

.section-light{
background-color:var(--pale-sage);
background-image:url('images/section-light-bg.png');
color:var(--charcoal);
}

.section-light::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(221,231,225,0.85) 0%,rgba(221,231,225,0.9) 100%);
z-index:0;
pointer-events:none;
}

.section-light > *{
position:relative;
z-index:1;
}

.section-dark{
background-color:var(--deep-sage);
background-image:url('images/section-dark-bg.jpg');
color:var(--ivory);
}

.section-dark::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(95,125,107,0.92) 0%,rgba(90,74,63,0.88) 100%);
z-index:0;
pointer-events:none;
}

.section-dark > *{
position:relative;
z-index:1;
}

.section-white{
background-color:var(--ivory);
background-image:url('images/section-white-bg.jpg');
color:var(--charcoal);
}

.section-white::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(247,245,240,0.88) 0%,rgba(247,245,240,0.92) 100%);
z-index:0;
pointer-events:none;
}

.section-white > *{
position:relative;
z-index:1;
}

.container{
max-width:1200px;
margin:0 auto;
}

.section-intro{
text-align:center;
max-width:860px;
margin:0 auto clamp(70px,10vh,100px);
}

.section-heading{
font-family:'Cinzel',serif;
font-size:clamp(2rem,5.5vw,3.2rem);
font-weight:400;
font-style:normal;
line-height:1.55;
margin-bottom:clamp(40px,6vh,56px);
letter-spacing:0.04em;
color:var(--soft-brown);
}

.section-text{
font-family:'Cormorant',serif;
font-size:1.15rem;
line-height:2;
color:inherit;
opacity:0.92;
letter-spacing:0.01em;
}

.section-title{
font-family:'Allura',cursive;
font-size:clamp(2.4rem,6.5vw,4rem);
font-weight:400;
text-align:center;
margin-bottom:clamp(40px,7vh,70px);
color:var(--sage);
}

/* ================= TWO COLUMN LAYOUT ================= */

.two-column{
display:grid;
grid-template-columns:1fr 1fr;
gap:clamp(50px,8vw,80px);
align-items:center;
margin-bottom:clamp(70px,10vh,100px);
}

.content-box h3{
font-family:'Allura',cursive;
font-size:clamp(2.4rem,5.5vw,3.5rem);
font-weight:400;
margin-bottom:16px;
color:var(--sage);
}

.content-box h4{
font-family:'Cinzel',serif;
font-size:1.4rem;
font-weight:500;
letter-spacing:0.18em;
text-transform:uppercase;
margin-bottom:clamp(32px,5vh,42px);
color:var(--deep-sage);
}

.content-box p{
font-family:'Cormorant',serif;
font-size:1.1rem;
line-height:2;
margin-bottom:clamp(22px,4vh,28px);
color:var(--soft-brown);
letter-spacing:0.01em;
}

.image-box{
width:100%;
height:clamp(480px,60vh,650px);
background:var(--soft-sage);
border-radius:6px;
overflow:hidden;
position:relative;
box-shadow:0 8px 32px rgba(95,125,107,0.18),0 2px 8px rgba(47,42,38,0.08);
transition:transform 0.4s cubic-bezier(0.4,0,0.2,1),box-shadow 0.4s ease;
}

.image-box:hover{
transform:translateY(-4px);
box-shadow:0 12px 42px rgba(95,125,107,0.24),0 4px 12px rgba(47,42,38,0.12);
}

.image-box::before{
content:'';
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
background:linear-gradient(135deg,rgba(143,175,154,0.15) 0%,rgba(95,125,107,0.22) 100%);
z-index:1;
pointer-events:none;
mix-blend-mode:multiply;
}

.image-box img{
width:100%;
height:100%;
object-fit:cover;
display:block;
position:relative;
z-index:0;
transition:transform 0.6s cubic-bezier(0.4,0,0.2,1);
}

.image-box:hover img{
transform:scale(1.05);
}

/* ================= MOLDOVA SECTION ================= */

.moldova-section{
text-align:center;
}

.moldova-highlight{
font-family:'Allura',cursive;
font-size:clamp(2.4rem,5.5vw,3.5rem);
font-weight:400;
margin-bottom:20px;
color:var(--sage);
}

.moldova-title{
font-family:'Cinzel',serif;
font-size:clamp(2rem,4.5vw,2.8rem);
font-weight:500;
letter-spacing:0.14em;
text-transform:uppercase;
margin-bottom:clamp(45px,7vh,60px);
color:var(--deep-sage);
}

/* ================= TRAVEL SECTION ================= */

.travel-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:clamp(35px,5vw,48px);
margin-top:clamp(50px,8vh,70px);
}

.travel-card{
text-align:center;
padding:clamp(42px,6vh,52px) clamp(32px,5vw,42px);
border:1.5px solid var(--soft-sage);
background:var(--cream);
border-radius:8px;
transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
box-shadow:0 4px 20px rgba(143,175,154,0.12);
position:relative;
overflow:hidden;
}

.travel-card::before{
content:'';
position:absolute;
top:0;
left:0;
right:0;
height:3px;
background:linear-gradient(90deg,var(--sage),var(--soft-sage));
transform:scaleX(0);
transform-origin:left;
transition:transform 0.5s cubic-bezier(0.4,0,0.2,1);
}

.travel-card:hover{
transform:translateY(-6px);
box-shadow:0 12px 36px rgba(143,175,154,0.22);
border-color:var(--sage);
}

.travel-card:hover::before{
transform:scaleX(1);
}

.travel-card-icon{
font-size:3.2rem;
margin-bottom:clamp(22px,4vh,28px);
filter:grayscale(0.2);
}

.travel-card h3{
font-family:'Montserrat',sans-serif;
font-size:0.72rem;
font-weight:500;
letter-spacing:0.28em;
text-transform:uppercase;
margin-bottom:clamp(24px,4vh,30px);
color:var(--deep-sage);
}

.travel-card p{
font-family:'Cormorant',serif;
font-size:1.08rem;
line-height:1.95;
color:var(--soft-brown);
margin-bottom:16px;
}

.travel-card a{
color:var(--sage);
text-decoration:none;
font-weight:500;
border-bottom:1px solid transparent;
transition:all 0.3s ease;
}

.travel-card a:hover{
border-bottom-color:var(--sage);
color:var(--deep-sage);
}

/* ================= BUTTONS ================= */

.btn{
display:inline-block;
font-family:'Montserrat',sans-serif;
font-size:0.72rem;
font-weight:500;
letter-spacing:0.28em;
text-transform:uppercase;
padding:17px 46px;
border:2px solid var(--sage);
border-radius:32px;
text-decoration:none;
transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
margin-top:clamp(24px,4vh,32px);
position:relative;
overflow:hidden;
}

.btn::before{
content:'';
position:absolute;
top:50%;
left:50%;
width:0;
height:0;
border-radius:50%;
background:var(--sage);
transform:translate(-50%,-50%);
transition:width 0.5s ease,height 0.5s ease;
z-index:-1;
}

.btn:hover::before{
width:300%;
height:300%;
}

.btn-light{
color:var(--ivory);
border-color:var(--ivory);
background:transparent;
}

.btn-light:hover{
color:var(--deep-sage);
border-color:var(--ivory);
transform:translateY(-3px);
box-shadow:0 8px 24px rgba(247,245,240,0.3);
}

.btn-dark{
color:var(--sage);
border-color:var(--sage);
background:transparent;
}

.btn-dark:hover{
color:var(--ivory);
border-color:var(--deep-sage);
background:var(--sage);
transform:translateY(-3px) scale(1.02);
box-shadow:0 8px 28px rgba(143,175,154,0.35);
}

/* ================= COUNTDOWN ================= */

.countdown-section{
text-align:center;
padding:clamp(70px,12vh,100px) clamp(30px,6vw,50px);
background-color:var(--deep-sage);
background-image:url('images/countdown-bg.jpg');
background-size:cover;
background-position:center;
background-repeat:no-repeat;
position:relative;
}

.countdown-section::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(95,125,107,0.95) 0%,rgba(90,74,63,0.92) 100%);
z-index:0;
pointer-events:none;
}

.countdown-section::after{
content:'';
position:absolute;
inset:0;
background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><circle cx="50" cy="50" r="1" fill="rgba(247,245,240,0.08)"/></svg>');
opacity:0.4;
pointer-events:none;
z-index:1;
}

.countdown-section > *{
position:relative;
z-index:2;
}

.countdown-title{
font-family:'Allura',cursive;
font-size:clamp(2.4rem,5.5vw,3.5rem);
font-weight:400;
margin-bottom:clamp(50px,8vh,70px);
color:var(--pale-sage);
position:relative;
}

.countdown{
display:flex;
justify-content:center;
gap:clamp(35px,6vw,60px);
flex-wrap:wrap;
max-width:900px;
margin:0 auto;
position:relative;
}

.countdown-item{
display:flex;
flex-direction:column;
align-items:center;
background:rgba(247,245,240,0.08);
padding:clamp(28px,5vh,38px) clamp(24px,4vw,34px);
border-radius:12px;
border:1.5px solid rgba(247,245,240,0.15);
min-width:clamp(110px,15vw,140px);
transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
backdrop-filter:blur(8px);
}

.countdown-item:hover{
transform:translateY(-6px);
background:rgba(247,245,240,0.14);
border-color:rgba(247,245,240,0.3);
box-shadow:0 12px 32px rgba(47,42,38,0.25);
}

.countdown-number{
font-family:'Cinzel',serif;
font-size:clamp(3.8rem,9vw,5.5rem);
font-weight:400;
line-height:1;
color:var(--ivory);
margin-bottom:clamp(12px,2vh,16px);
letter-spacing:0.02em;
}

.countdown-label{
font-family:'Montserrat',sans-serif;
font-size:0.7rem;
font-weight:400;
letter-spacing:0.24em;
text-transform:uppercase;
color:var(--soft-sage);
}

/* ================= RSVP SECTION ================= */

.rsvp-section{
background-color:var(--warm-ivory);
background-image:url('images/rsvp-bg.jpg');
background-size:cover;
background-position:center;
background-repeat:no-repeat;
padding:clamp(90px,16vh,140px) clamp(30px,6vw,50px);
position:relative;
}

.rsvp-section::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(239,234,226,0.9) 0%,rgba(239,234,226,0.92) 100%);
z-index:0;
pointer-events:none;
}

.rsvp-section > *{
position:relative;
z-index:1;
}

.rsvp-form{
max-width:660px;
margin:0 auto;
padding:clamp(48px,9vh,68px) clamp(38px,6vw,58px);
border:2px solid var(--soft-sage);
background:var(--cream);
border-radius:8px;
box-shadow:0 8px 40px rgba(143,175,154,0.16);
position:relative;
}

.rsvp-form::before{
content:'';
position:absolute;
top:-1px;
left:50%;
transform:translateX(-50%);
width:80px;
height:3px;
background:linear-gradient(90deg,transparent,var(--sage),transparent);
}

.form-group{
margin-bottom:clamp(28px,5vh,36px);
}

.form-label{
display:block;
font-family:'Montserrat',sans-serif;
font-size:0.68rem;
font-weight:500;
letter-spacing:0.24em;
text-transform:uppercase;
margin-bottom:12px;
color:var(--deep-sage);
}

.form-input,
.form-select{
width:100%;
padding:16px 18px;
border:1.5px solid var(--soft-sage);
background:var(--ivory);
font-family:'Cormorant',serif;
font-size:1.05rem;
color:var(--charcoal);
transition:all 0.3s ease;
border-radius:6px;
}

.form-input:focus,
.form-select:focus{
outline:none;
border-color:var(--sage);
background:var(--warm-ivory);
box-shadow:0 0 0 3px rgba(143,175,154,0.1);
}

.radio-group{
display:flex;
gap:clamp(28px,5vw,38px);
}

.radio-label{
display:flex;
align-items:center;
font-family:'Cormorant',serif;
font-size:1.05rem;
font-weight:400;
text-transform:none;
letter-spacing:0.01em;
cursor:pointer;
color:var(--soft-brown);
transition:color 0.3s ease;
}

.radio-label:hover{
color:var(--sage);
}

.radio-label input[type="radio"]{
margin-right:10px;
accent-color:var(--sage);
width:18px;
height:18px;
cursor:pointer;
}

.form-submit{
width:100%;
padding:19px;
background:var(--sage);
color:var(--ivory);
border:none;
font-family:'Montserrat',sans-serif;
font-size:0.72rem;
font-weight:500;
letter-spacing:0.28em;
text-transform:uppercase;
cursor:pointer;
transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
margin-top:clamp(24px,4vh,32px);
border-radius:32px;
position:relative;
overflow:hidden;
}

.form-submit::before{
content:'';
position:absolute;
top:50%;
left:50%;
width:0;
height:0;
background:var(--deep-sage);
border-radius:50%;
transform:translate(-50%,-50%);
transition:width 0.5s ease,height 0.5s ease;
z-index:0;
}

.form-submit:hover{
transform:translateY(-3px);
box-shadow:0 8px 28px rgba(143,175,154,0.4);
}

.form-submit:hover::before{
width:300%;
height:300%;
}

.form-submit span{
position:relative;
z-index:1;
}

/* ================= CONTACT CARD ================= */

.contact-card{
max-width:660px;
margin:clamp(60px,10vh,80px) auto 0;
padding:clamp(46px,9vh,58px);
background:var(--pale-sage);
text-align:center;
border-radius:8px;
border:1.5px solid var(--soft-sage);
box-shadow:0 6px 28px rgba(143,175,154,0.14);
}

.contact-card h3{
font-family:'Allura',cursive;
font-size:clamp(2.2rem,5vw,2.8rem);
font-weight:400;
margin-bottom:clamp(22px,4vh,28px);
color:var(--sage);
}

.contact-card p{
font-family:'Cormorant',serif;
font-size:1.1rem;
line-height:1.95;
margin-bottom:14px;
color:var(--soft-brown);
}

.contact-card a{
color:var(--sage);
text-decoration:none;
font-weight:500;
border-bottom:1.5px solid transparent;
transition:border-color 0.3s ease;
}

.contact-card a:hover{
border-bottom-color:var(--sage);
}

/* ================= DIVIDER ================= */

.divider{
width:clamp(90px,15vw,120px);
height:2px;
background:linear-gradient(90deg,transparent,currentColor,transparent);
margin:clamp(40px,6vh,52px) auto;
opacity:0.25;
}

/* ================= VIDEO OVERLAY ================= */

#videoOverlay{
position:fixed;
inset:0;
/* background:#000; */
display:flex;
justify-content:center;
align-items:center;
z-index:9999;
transition:opacity 1.2s cubic-bezier(0.4,0,0.2,1);
width:100vw;
height:100vh;
overflow:hidden;
}

#introVideo{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
min-width:100%;
min-height:100%;
width:100vw;
height:100vh;
object-fit:cover;
z-index:1;
}

/* Fade-out effect for cinematic transition */
#videoOverlay.fade-out{
opacity:0;
}

/* Remove click button styles - no longer needed */

/* ================= ENVELOPE OVERLAY (COMMENTED OUT) ================= */

/*
#envelopeOverlay{
position:fixed;
inset:0;
background:linear-gradient(135deg,#F2EFE9 0%,#E8E5DC 100%);
display:flex;
justify-content:center;
align-items:center;
z-index:9999;
transition:opacity 0.9s cubic-bezier(0.4,0,0.2,1);
padding:0;
overflow:hidden;
width:100vw;
height:100vh;
}

#envelopeOverlay::before{
content:'';
position:absolute;
inset:0;
background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200"><path d="M100 20 Q120 40 100 60 Q80 40 100 20" fill="rgba(143,175,154,0.04)"/><path d="M150 80 Q160 95 150 110 Q140 95 150 80" fill="rgba(143,175,154,0.03)"/><path d="M50 120 Q60 135 50 150 Q40 135 50 120" fill="rgba(143,175,154,0.04)"/></svg>');
opacity:0.6;
animation:float-leaves 40s linear infinite;
}

@keyframes float-leaves{
0%{
transform:translateY(0) translateX(0);
}
100%{
transform:translateY(-200px) translateX(20px);
}
}

.env-wrap{
position:relative;
width:100%;
height:100%;
max-width:min(95vh,90vw);
max-height:min(95vh,90vw);
cursor:pointer;
perspective:2000px;
animation:envelope-float 4s ease-in-out infinite;
filter:drop-shadow(0 20px 60px rgba(95,125,107,0.25));
transition:transform 0.4s ease;
display:flex;
align-items:center;
justify-content:center;
}

.env-wrap:hover{
transform:scale(1.02);
animation-play-state:paused;
}

@keyframes envelope-float{
0%,100%{
transform:translateY(0);
}
50%{
transform:translateY(-12px);
}
}

.env-wrap.open{
animation:none;
}

.env-base{
width:100%;
height:100%;
max-width:100%;
max-height:100%;
object-fit:contain;
display:block;
position:relative;
}

.env-base::after{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(143,175,154,0.08) 0%,rgba(95,125,107,0.12) 100%);
mix-blend-mode:multiply;
pointer-events:none;
}

.env-flap-img{
position:absolute;
top:0;
left:50%;
transform:translateX(-50%);
width:100%;
height:100%;
max-width:100%;
max-height:100%;
object-fit:contain;
transform-origin:top center;
transition:transform 1.4s cubic-bezier(0.19,1,0.22,1);
pointer-events:none;
filter:drop-shadow(0 4px 16px rgba(95,125,107,0.2));
opacity:1;
}

.env-wrap.open .env-flap-img{
transform:translateX(-50%) rotateX(180deg);
}

.env-click{
text-align:center;
position:absolute;
bottom:-60px;
left:50%;
transform:translateX(-50%);
width:100%;
font-family:'Montserrat',sans-serif;
letter-spacing:0.32em;
font-size:clamp(0.7rem,1.8vw,0.88rem);
color:var(--sage);
text-transform:uppercase;
opacity:0.8;
transition:all 0.4s ease;
font-weight:400;
animation:pulse-text 2s ease-in-out infinite;
white-space:nowrap;
}

@keyframes pulse-text{
0%,100%{
opacity:0.8;
}
50%{
opacity:1;
}
}

.env-wrap:hover .env-click{
opacity:1;
color:var(--deep-sage);
transform:translateX(-50%) translateY(-4px);
animation:none;
}
*/

/* ================= SCRATCH REVEAL ================= */

.scratch-box{
position:relative;
max-width:560px;
margin:0 auto;
box-shadow:0 12px 42px rgba(143,175,154,0.22),0 4px 12px rgba(95,125,107,0.12);
border-radius:8px;
overflow:hidden;
border:2px solid var(--soft-sage);
transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
}

.scratch-box:hover{
transform:translateY(-6px);
box-shadow:0 16px 52px rgba(143,175,154,0.28),0 6px 16px rgba(95,125,107,0.16);
}

.photo{
width:100%;
display:block;
}

#scratchCanvas{
position:absolute;
inset:0;
cursor:crosshair;
touch-action:none;
background:var(--pale-sage);
}

.scratch-date{
position:absolute;
bottom:clamp(24px,5vh,36px);
left:clamp(24px,5vw,36px);
color:var(--ivory);
font-size:clamp(1.3rem,3.5vw,2rem);
font-family:'Cinzel',serif;
letter-spacing:0.15em;
text-shadow:0 3px 12px rgba(47,42,38,0.5),0 1px 4px rgba(47,42,38,0.3);
font-weight:500;
pointer-events:none;
}

/* ================= FOOTER ================= */

.footer{
text-align:center;
padding:clamp(50px,9vh,70px) clamp(24px,4vw,32px);
background:linear-gradient(135deg,var(--deep-sage) 0%,var(--soft-brown) 100%);
color:var(--soft-sage);
position:relative;
overflow:hidden;
}

.footer::before{
content:'';
position:absolute;
inset:0;
background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" viewBox="0 0 120 120"><path d="M60 10 Q75 25 60 40 Q45 25 60 10 M60 80 Q70 90 60 100 Q50 90 60 80 M20 60 Q30 70 20 80 Q10 70 20 60 M100 40 Q110 50 100 60 Q90 50 100 40" fill="rgba(247,245,240,0.06)"/></svg>');
opacity:0.5;
}

.footer-text{
font-family:'Montserrat',sans-serif;
font-size:0.68rem;
font-weight:400;
letter-spacing:0.24em;
text-transform:uppercase;
margin-bottom:clamp(12px,2vh,16px);
position:relative;
}

.footer-link{
color:var(--soft-sage);
text-decoration:none;
transition:all 0.3s ease;
border-bottom:1px solid transparent;
}

.footer-link:hover{
color:var(--ivory);
border-bottom-color:var(--ivory);
}

/* ================= MOBILE RESPONSIVE ================= */

/* Scroll Animation Classes */
.fade-in-up{
opacity:0;
transform:translateY(40px);
transition:opacity 0.8s cubic-bezier(0.4,0,0.2,1),transform 0.8s cubic-bezier(0.4,0,0.2,1);
}

.fade-in-up.visible{
opacity:1;
transform:translateY(0);
}

.fade-in-left{
opacity:0;
transform:translateX(-40px);
transition:opacity 0.8s cubic-bezier(0.4,0,0.2,1),transform 0.8s cubic-bezier(0.4,0,0.2,1);
}

.fade-in-left.visible{
opacity:1;
transform:translateX(0);
}

.fade-in-right{
opacity:0;
transform:translateX(40px);
transition:opacity 0.8s cubic-bezier(0.4,0,0.2,1),transform 0.8s cubic-bezier(0.4,0,0.2,1);
}

.fade-in-right.visible{
opacity:1;
transform:translateX(0);
}

.fade-in{
opacity:0;
transition:opacity 1s cubic-bezier(0.4,0,0.2,1);
}

.fade-in.visible{
opacity:1;
}

.scale-in{
opacity:0;
transform:scale(0.9);
transition:opacity 0.8s cubic-bezier(0.4,0,0.2,1),transform 0.8s cubic-bezier(0.4,0,0.2,1);
}

.scale-in.visible{
opacity:1;
transform:scale(1);
}

/* Staggered animation delays */
.delay-1{
transition-delay:0.1s;
}

.delay-2{
transition-delay:0.2s;
}

.delay-3{
transition-delay:0.3s;
}

.delay-4{
transition-delay:0.4s;
}

@media(max-width:968px){
.nav-right{
gap:12px;
}

.nav-link{
font-size:0.65rem;
}

.two-column{
grid-template-columns:1fr;
gap:clamp(40px,7vh,55px);
}

.image-box{
height:clamp(380px,50vh,480px);
}

.travel-grid{
grid-template-columns:1fr;
}

section{
padding:clamp(50px,9vh,70px) clamp(24px,4vw,32px);
}

.countdown-item{
min-width:clamp(95px,18vw,120px);
padding:clamp(22px,4vh,30px) clamp(18px,3vw,26px);
}
}

@media(max-width:700px){
.env-wrap{
width:min(75vh,92vw);
}

.env-click{
font-size:0.64rem;
margin-top:18px;
letter-spacing:0.26em;
}

.countdown{
gap:clamp(18px,4vw,28px);
}

.countdown-number{
font-size:clamp(3rem,7vw,3.8rem);
}

.rsvp-form{
padding:clamp(34px,6vh,44px) clamp(28px,5vw,38px);
}

.contact-card{
padding:clamp(34px,6vh,44px) clamp(24px,4vw,34px);
}

.hero-names{
font-size:clamp(2.2rem,7vw,2.8rem);
}

.section-heading{
font-size:clamp(1.6rem,4.5vw,2rem);
}
}

@media(max-width:600px){
.nav-link:not(.nav-rsvp){
display:none;
}

.lang-toggle{
gap:6px;
}

.lang-btn{
font-size:0.62rem;
}

.nav-rsvp{
padding:9px 22px;
font-size:0.68rem;
}
}

@media(orientation:landscape) and (max-height:600px){
.env-wrap{
width:70vh;
}

.hero{
min-height:120vh;
}
}
