/* ═══════ RESET & VARS ═══════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
:root{
  --gold:#c9a96e;--gold-l:#e8d5a3;--gold-d:#a07840;
  --rose:#b8866a;--cream:#faf6f1;--cream2:#f5ede0;
  --dark:#2a1f1a;--text:#3d2f25;--muted:#8b7355;
  --card:#fffdf9;
  --shadow:0 8px 40px rgba(42,31,26,.12);
  --r:20px;
  --fs:'Great Vibes',cursive;
  --ff:'Cormorant Garamond',serif;
  --fd:'Cinzel',serif;
  --fb:'Lato',sans-serif;
}
body{font-family:var(--fb);background:var(--cream);color:var(--text);overflow-x:hidden}

/* ═══════ ENVELOPE SCREEN ═══════ */
#envelope-screen{
  position:fixed;inset:0;z-index:9000;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.env-bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 45%,#3a2510 0%,#160d04 65%,#0a0602 100%);
}
#env-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.env-spark{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,#e8d5a3,transparent 70%);
  animation:spkFloat linear infinite;pointer-events:none;
}
@keyframes spkFloat{
  0%{transform:translateY(0) scale(1);opacity:.7}
  100%{transform:translateY(-110vh) scale(.15);opacity:0}
}

.env-stage{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:0;
}
.env-pre-label{
  font-family:var(--fd);font-size:.65rem;letter-spacing:5px;text-transform:uppercase;
  color:rgba(232,213,163,.45);text-align:center;margin-bottom:24px;
  animation:fdUp .8s ease .3s both;
}
@keyframes fdUp{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}

/* ═══ ENVELOPE BOX ═══ */
.envelope{
  position:relative;
  width:480px;
  height:300px;
  cursor:pointer;
  animation:envHover 4s ease-in-out infinite;
  /* perspective burada — flap 3D'si için */
  perspective:900px;
}
.envelope:hover{ opacity:.95; }
@keyframes envHover{
  0%,100%{transform:translateY(0) drop-shadow(0 28px 55px rgba(0,0,0,.75))}
  50%{transform:translateY(-10px)}
}

/* SVG zarf gövdesi */
.env-svg-body{
  position:absolute;
  top:0;left:0;width:100%;height:100%;
  pointer-events:none;
  filter:drop-shadow(0 24px 48px rgba(0,0,0,.7));
}

/* Çiçek SVG'leri */
.env-flower{position:absolute;pointer-events:none}
.env-flower-tl{width:120px;height:120px;top:-12px;left:-12px}
.env-flower-br{
  width:100px;height:100px;
  bottom:-8px;right:-8px;
  transform:rotate(180deg);
}

/* Zarf ön içerik: mühür + isim */
.env-front-content{
  position:absolute;
  inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;
  /* üst yarıdan aşağıda — kapaağın altında kalan bölge */
  padding-top:80px;
  z-index:2;
  pointer-events:none;
}

/* Mühür */
.env-seal{
  position:relative;width:72px;height:72px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:4px;
}
.seal-svg{
  position:absolute;inset:0;
  animation:sealSpin 12s linear infinite;
}
@keyframes sealSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.seal-mono{
  display:flex;align-items:center;gap:2px;
  font-family:var(--fd);font-size:.88rem;font-weight:600;
  color:var(--gold-d);
  background:linear-gradient(135deg,#f8efd8,#eddbb8);
  width:54px;height:54px;border-radius:50%;justify-content:center;
  box-shadow:0 0 0 2px var(--gold),0 3px 10px rgba(160,120,64,.25);
}
.s-amp{font-family:var(--ff);font-size:.72rem;color:var(--rose)}
.env-front-names{
  font-family:var(--fs);font-size:1.65rem;color:var(--gold-d);
  text-shadow:0 1px 3px rgba(255,255,255,.7);
}
.env-front-date{
  font-family:var(--fd);font-size:.56rem;letter-spacing:3px;
  text-transform:uppercase;color:var(--muted);
}

/* ═══ FLAP (ÜST KAPAK) ═══
   SVG'yi bir div sarıcıya aldık.
   perspective() transform içinde — tüm tarayıcılarda çalışır.
   Kapalı: ▽ (aşağı bakan üçgen = normal zarf)
   Açık:   geriye katlanır (rotateX -180deg, pivot üst kenar)
*/
.env-flap-outer{
  position:absolute;
  top:0;left:0;right:0;
  height:158px;
  z-index:10;
  overflow:visible;
}
/* div sarıcı: 3D transform burada */
.env-flap{
  position:absolute;
  top:0;left:0;
  width:100%;
  height:158px;
  transform-origin:top center;
  transform:perspective(700px) rotateX(0deg);
  transition:transform .95s cubic-bezier(.38,0,.18,1);
  will-change:transform;
}
/* SVG element: tam kap */
.env-flap svg.flap-svg,
svg.env-flap{
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  display:block;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.3));
}
/* ✦ gem */
.flap-gem{
  position:absolute;
  top:22%;left:50%;
  transform:translateX(-50%);
  font-size:1rem;
  color:rgba(255,255,255,.7);
  text-shadow:0 0 10px rgba(255,255,255,.4);
  pointer-events:none;
  user-select:none;
}
/* AÇIK: kapak geriye kıvrılır */
.envelope.opened .env-flap{
  transform:perspective(700px) rotateX(-180deg);
}

/* ═══ CTA BUTON ═══ */
.env-cta-wrap{
  position:relative;margin-top:32px;
  display:flex;align-items:center;justify-content:center;
}
.env-cta-pulse{
  position:absolute;width:100%;height:100%;border-radius:50px;
  background:rgba(201,169,110,.12);
  animation:ctaPulse 2.2s ease-in-out infinite;
}
@keyframes ctaPulse{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.1);opacity:0}
}
.env-cta{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:11px;
  border:1px solid rgba(201,169,110,.45);
  background:rgba(22,13,4,.65);
  backdrop-filter:blur(12px);
  color:var(--gold-l);
  font-family:var(--fd);font-size:.68rem;letter-spacing:3px;text-transform:uppercase;
  padding:14px 38px;border-radius:50px;cursor:pointer;
  transition:all .3s;
}
.env-cta:hover{
  background:rgba(201,169,110,.18);
  transform:translateY(-2px);
}
.env-cta.gone{
  opacity:0;pointer-events:none;
  transform:translateY(6px);
  transition:all .3s;
}
#envelope-screen.bye{
  animation:screenBye .8s ease forwards;
  pointer-events:none;
}
@keyframes screenBye{0%{opacity:1}100%{opacity:0;visibility:hidden}}

/* ═══════ MAIN SITE ═══════ */
#main-site{opacity:0;visibility:hidden;transition:opacity .6s ease}
#main-site.visible{opacity:1;visibility:visible}
canvas#petals{position:fixed;inset:0;pointer-events:none;z-index:0}

/* NAV */
#navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:18px 40px;display:flex;align-items:center;justify-content:space-between;
  transition:background .4s,box-shadow .4s;
}
#navbar.scrolled{background:rgba(250,246,241,.96);backdrop-filter:blur(14px);box-shadow:0 2px 24px rgba(42,31,26,.08)}
.nav-logo{font-family:var(--fs);font-size:1.6rem;color:var(--gold-d)}
.nav-amp{color:var(--rose)}
.nav-links{display:flex;gap:28px}
.nav-links a{font-family:var(--fd);font-size:.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--dark);text-decoration:none;opacity:.65;transition:opacity .2s,color .2s}
.nav-links a:hover{opacity:1;color:var(--gold-d)}
.nav-menu-btn{display:none;font-size:1.4rem;cursor:pointer;color:#fff}
#navbar.scrolled .nav-menu-btn{color:var(--dark)}
#mobile-menu{display:none;position:fixed;inset:0;background:var(--dark);z-index:999;padding:22px 30px 40px;flex-direction:column;gap:0}
#mobile-menu.open{display:flex}
.mob-close{background:none;border:none;color:var(--gold-l);font-size:1.5rem;align-self:flex-end;cursor:pointer;margin-bottom:22px}
#mobile-menu a{font-family:var(--fd);font-size:.88rem;letter-spacing:3px;text-transform:uppercase;color:rgba(232,213,163,.8);text-decoration:none;padding:17px 0;border-bottom:1px solid rgba(201,169,110,.1)}

/* HERO */
#hero{position:relative;height:100vh;min-height:680px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center top;animation:hzoom 20s ease-in-out infinite alternate}
@keyframes hzoom{from{transform:scale(1)}to{transform:scale(1.07)}}
.hero-no-photo{width:100%;height:100%;background:linear-gradient(135deg,#2a1f1a,#5a3d2b);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.nophoto-icon{font-size:3.5rem;opacity:.3}
.nophoto-txt{color:rgba(255,255,255,.3);font-size:.82rem}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(42,31,26,.2) 0%,rgba(42,31,26,.55) 50%,rgba(42,31,26,.88) 100%)}
.hero-content{position:relative;z-index:2;text-align:center;color:#fff;padding:0 20px}
.hero-eyebrow{font-family:var(--fd);font-size:.68rem;letter-spacing:6px;color:var(--gold-l);margin-bottom:16px;opacity:.9}
.hero-names{font-family:var(--fs);font-size:clamp(4rem,12vw,9rem);line-height:1;margin-bottom:14px;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.name-bride,.name-groom{color:var(--gold-l)}
.name-amp{font-family:var(--ff);font-size:.45em;color:var(--rose);display:inline-block;vertical-align:middle;padding:0 8px}
.hero-families{font-family:var(--fd);font-size:.7rem;letter-spacing:3px;color:rgba(255,255,255,.7);margin-bottom:12px}
.hero-date{font-family:var(--ff);font-size:1.5rem;font-style:italic;color:var(--gold-l);margin-bottom:6px}
.hero-venue{font-family:var(--fd);font-size:.67rem;letter-spacing:2px;color:rgba(255,255,255,.55);margin-bottom:30px}
.hero-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--gold);color:var(--gold-l);font-family:var(--fd);font-size:.65rem;letter-spacing:3px;text-transform:uppercase;text-decoration:none;padding:13px 28px;border-radius:50px;backdrop-filter:blur(8px);background:rgba(201,169,110,.1);transition:all .3s}
.hero-btn:hover{background:var(--gold);color:var(--dark);transform:translateY(-2px)}
.hero-scroll-hint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.4);font-size:.58rem;letter-spacing:2px;text-transform:uppercase;font-family:var(--fd);animation:sbounce 2s infinite;z-index:2}
.scroll-line{width:1px;height:34px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.4))}
@keyframes sbounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}

/* COUNTDOWN */
#countdown-section{padding:54px 20px;text-align:center;background:var(--dark);position:relative;z-index:1}
.orn{color:var(--gold);letter-spacing:12px;margin:12px 0;opacity:.6;font-size:.82rem}
.cd-label{font-family:var(--fd);font-size:.65rem;letter-spacing:4px;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.countdown-wrap{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.cd-item{text-align:center}
.cd-num{display:block;font-family:var(--ff);font-size:clamp(2.6rem,6.5vw,5rem);color:var(--gold-l);font-weight:300;line-height:1;min-width:88px}
.cd-lbl{display:block;font-family:var(--fd);font-size:.55rem;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-top:4px}
.cd-sep{font-size:2.4rem;color:var(--gold);opacity:.5;margin-bottom:20px;font-family:var(--ff)}

/* CONTAINERS */
.container{max-width:1100px;margin:0 auto;padding:0 24px}
.narrow{max-width:800px;margin:0 auto;padding:0 24px}
section{padding:78px 0;position:relative;z-index:1}
.sec-head{text-align:center;margin-bottom:50px}
.sec-eye{font-family:var(--fd);font-size:.65rem;letter-spacing:5px;text-transform:uppercase;color:var(--gold-d);margin-bottom:10px}
.sec-title{font-family:var(--fs);font-size:clamp(2.1rem,5vw,3.3rem);color:var(--dark);margin-bottom:10px}
.sec-sub{font-size:.9rem;color:var(--muted);line-height:1.6}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}

/* INTRO */
#intro{background:var(--cream2)}
.intro-quote{font-family:var(--ff);font-size:1.3rem;font-style:italic;color:var(--text);line-height:1.8;text-align:center;margin-bottom:42px;border-left:3px solid var(--gold);padding-left:22px}
.intro-families{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap}
.fam-block{text-align:center}
.fam-lbl{font-family:var(--fd);font-size:.6rem;letter-spacing:3px;text-transform:uppercase;color:var(--gold-d);margin-bottom:5px}
.fam-name{font-family:var(--fs);font-size:1.85rem;color:var(--dark)}
.fam-sub{font-family:var(--ff);font-size:.86rem;color:var(--muted);font-style:italic}
.fam-heart{font-size:1.7rem;color:var(--rose);animation:hb 1.5s ease-in-out infinite}
@keyframes hb{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

/* EVENTS */
#etkinlikler{background:var(--cream)}
.events-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.event-card{background:var(--card);border-radius:var(--r);padding:38px 26px;text-align:center;box-shadow:var(--shadow);border:1px solid rgba(201,169,110,.12);position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s}
.event-card:hover{transform:translateY(-5px);box-shadow:0 16px 60px rgba(42,31,26,.16)}
.event-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.ev-kina::before{background:linear-gradient(90deg,#b8866a,#e8c49a)}
.ev-dugun::before{background:linear-gradient(90deg,var(--gold-d),var(--gold-l))}
.ev-ribbon{font-family:var(--fd);font-size:.6rem;letter-spacing:4px;text-transform:uppercase;color:var(--gold-d);margin-bottom:16px}
.ev-icon{font-size:2.2rem;margin-bottom:8px}
.ev-date{font-family:var(--ff);font-size:5.2rem;color:var(--dark);line-height:1;font-weight:300}
.ev-month{font-family:var(--fd);font-size:.68rem;letter-spacing:2px;color:var(--muted);margin-bottom:13px}
.ev-div{color:var(--gold);margin:11px 0;letter-spacing:8px;font-size:.7rem}
.ev-time{font-family:var(--ff);font-size:.98rem;color:var(--text);margin-bottom:5px}
.ev-venue{font-family:var(--fd);font-size:.88rem;font-weight:600;color:var(--dark);margin-bottom:3px}
.ev-city{color:var(--muted);font-size:.8rem;margin-bottom:12px}
.ev-desc{font-size:.83rem;line-height:1.7;color:var(--muted);margin-bottom:16px}
.ev-btn{display:inline-block;padding:9px 20px;border-radius:50px;font-family:var(--fd);font-size:.58rem;letter-spacing:2px;text-transform:uppercase;text-decoration:none;background:var(--dark);color:var(--gold-l);transition:all .3s}
.ev-btn:hover{background:var(--gold-d);color:#fff}

/* TIMELINE */
#akis{background:var(--cream2)}
.timeline{position:relative;max-width:760px;margin:0 auto}
.timeline::before{content:'';position:absolute;left:130px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--gold-l),var(--gold-d),var(--gold-l))}
.tl-item{display:flex;align-items:flex-start;margin-bottom:34px;position:relative}
.tl-time{width:106px;flex-shrink:0;font-family:var(--ff);font-size:.92rem;color:var(--gold-d);padding-top:9px;text-align:right;padding-right:13px}
.tl-dot{width:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.tl-dot span{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--cream);border:2px solid var(--gold);border-radius:50%;font-size:1.1rem;box-shadow:0 4px 14px rgba(201,169,110,.25)}
.tl-body{padding-top:9px;flex:1;padding-left:16px}
.tl-title{font-family:var(--fd);font-size:.88rem;font-weight:600;color:var(--dark);margin-bottom:4px}
.tl-desc{font-size:.82rem;color:var(--muted);line-height:1.68}

/* GALLERY */
#galeri{background:var(--cream)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gal-item{position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;cursor:pointer;background:var(--cream2);box-shadow:0 4px 20px rgba(42,31,26,.1);border:1px solid rgba(201,169,110,.14);transition:transform .3s,box-shadow .3s}
.gal-item:hover{transform:scale(1.03);box-shadow:0 12px 40px rgba(42,31,26,.18)}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.gal-item:hover img{transform:scale(1.06)}
.gal-hover{position:absolute;inset:0;background:rgba(42,31,26,.42);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;font-size:1.8rem}
.gal-item:hover .gal-hover{opacity:1}
.gal-empty{cursor:default}
.gal-empty:hover{transform:none;box-shadow:0 4px 20px rgba(42,31,26,.1)}
.gal-empty-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:.8rem;font-family:var(--fd);letter-spacing:1px}
.gal-empty-icon{font-size:1.9rem;opacity:.45}
.gal-empty-sub{font-size:.65rem;opacity:.55;text-align:center;padding:0 12px}
#lightbox{position:fixed;inset:0;z-index:8000;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;cursor:pointer}
#lightbox.open{display:flex}
#lb-img{max-width:90vw;max-height:90vh;border-radius:8px;box-shadow:0 20px 80px rgba(0,0,0,.8)}
.lb-x{position:absolute;top:22px;right:30px;color:#fff;font-size:1.8rem;cursor:pointer;opacity:.65;transition:opacity .2s}
.lb-x:hover{opacity:1}

/* FAMILIES */
#aileler{background:var(--dark)}
#aileler .sec-eye{color:var(--gold)}
#aileler .sec-title{color:var(--gold-l)}
.families-wrap{display:grid;grid-template-columns:1fr auto 1fr;gap:26px;align-items:center}
.fam-card{background:rgba(255,255,255,.04);border:1px solid rgba(201,169,110,.18);border-radius:var(--r);padding:34px 26px;text-align:center}
.fam-crest{font-size:2.2rem;margin-bottom:12px}
.fam-card-title{font-family:var(--fd);font-size:.95rem;color:var(--gold-l);margin-bottom:6px}
.fam-card-name{font-family:var(--fs);font-size:1.65rem;color:var(--gold);margin-bottom:10px}
.fam-card-desc{font-size:.83rem;color:rgba(255,255,255,.5);line-height:1.8}
.fam-ring-div{text-align:center}
.ring-o{width:70px;height:70px;border-radius:50%;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;animation:rotspin 8s linear infinite}
.ring-i{font-size:1.7rem}
@keyframes rotspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* VENUE */
#mekan{background:var(--cream2)}
.venue-cards{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.venue-card{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);background:var(--card);border:1px solid rgba(201,169,110,.12)}
.vc-head{padding:14px 20px;display:flex;align-items:center;justify-content:space-between;color:#fff;font-family:var(--fd);font-size:.68rem;letter-spacing:2px;text-transform:uppercase}
.kina-h{background:linear-gradient(135deg,#8b5a3a,#c9896a)}
.dugun-h{background:linear-gradient(135deg,var(--gold-d),var(--gold))}
.vc-tag{background:rgba(255,255,255,.2);padding:3px 10px;border-radius:20px;font-size:.58rem}
.vc-body{padding:20px}
.vc-body h3{font-family:var(--fd);font-size:1.05rem;color:var(--dark);margin-bottom:5px}
.vc-city{color:var(--muted);font-size:.86rem;margin-bottom:3px}
.vc-time{color:var(--gold-d);font-family:var(--ff);font-size:.92rem;margin-bottom:13px}
.leaflet-map{height:200px;border-radius:12px;margin-bottom:13px;z-index:1}
.vc-btns{display:flex;gap:8px;flex-wrap:wrap}
.vc-btn{display:inline-block;padding:9px 16px;border-radius:50px;font-family:var(--fd);font-size:.58rem;letter-spacing:2px;text-transform:uppercase;text-decoration:none;background:var(--dark);color:var(--gold-l);transition:all .3s}
.vc-btn:hover{background:var(--gold-d);color:#fff}
.vc-btn-sec{background:transparent;border:1px solid rgba(42,31,26,.22);color:var(--dark)}
.vc-btn-sec:hover{background:var(--dark);color:var(--gold-l)}

/* TRANSPORT */
#ulasim{background:var(--cream)}
.transport-wrap{display:flex;flex-direction:column;gap:34px}
.tr-block{background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:0 4px 20px rgba(42,31,26,.08);border:1px solid rgba(201,169,110,.12)}
.tr-head{padding:17px 24px;background:var(--dark);display:flex;align-items:center;gap:13px}
.tr-head>span{font-size:1.7rem}
.tr-title{font-family:var(--fd);font-size:.88rem;color:var(--gold-l);font-weight:600}
.tr-sub{font-size:.76rem;color:var(--muted);margin-top:2px}
.tr-opts{display:grid;grid-template-columns:1fr 1fr}
.tr-opt{padding:18px 22px;display:flex;gap:13px;border-right:1px solid rgba(201,169,110,.08);border-bottom:1px solid rgba(201,169,110,.08);transition:background .2s}
.tr-opt:hover{background:rgba(201,169,110,.04)}
.tr-ico{font-size:1.5rem;flex-shrink:0}
.tr-opt-title{font-family:var(--fd);font-size:.77rem;color:var(--dark);margin-bottom:4px}
.tr-opt-desc{font-size:.78rem;color:var(--muted);line-height:1.64}

/* RSVP */
#rsvp{background:var(--dark)}
#rsvp .sec-eye{color:var(--gold)}
#rsvp .sec-title{color:var(--gold-l)}
#rsvp .sec-sub{color:rgba(255,255,255,.48)}
#rsvp .sec-sub strong{color:var(--gold-l)}
.rsvp-wrap{background:var(--card);border-radius:var(--r);padding:42px;box-shadow:var(--shadow)}
.rsvp-form{display:flex;flex-direction:column;gap:17px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.f-grp{display:flex;flex-direction:column;gap:5px}
.f-grp label{font-family:var(--fd);font-size:.6rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.f-grp input,.f-grp select,.f-grp textarea{padding:12px 15px;border:1px solid rgba(201,169,110,.24);border-radius:10px;background:var(--cream);font-family:var(--fb);font-size:.88rem;color:var(--dark);outline:none;transition:border-color .2s,box-shadow .2s}
.f-grp input:focus,.f-grp select:focus,.f-grp textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,169,110,.1)}
.check-grp{display:flex;flex-direction:column;gap:8px}
.check-item{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--text);cursor:pointer}
.check-item input[type=checkbox]{width:17px;height:17px;accent-color:var(--gold-d);padding:0}
.rsvp-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 34px;background:linear-gradient(135deg,var(--gold-d),var(--gold));color:#fff;border:none;border-radius:50px;font-family:var(--fd);font-size:.7rem;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:all .3s;margin-top:6px}
.rsvp-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(201,169,110,.42)}
.rsvp-btn:disabled{opacity:.6;transform:none}
.rsvp-ok{flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 20px;gap:12px}
.rsvp-ok h3{font-family:var(--fs);font-size:2.3rem;color:var(--dark)}
.rsvp-ok p{color:var(--muted)}

/* FOOTER */
#footer{background:#1a1208;padding:54px 20px;text-align:center;position:relative;z-index:1}
.footer-names{font-family:var(--fs);font-size:3rem;color:var(--gold-l);margin:14px 0 5px}
.footer-date{font-family:var(--fd);font-size:.67rem;letter-spacing:4px;color:var(--muted);margin-bottom:5px}
.footer-fam{font-family:var(--ff);font-size:.88rem;color:rgba(255,255,255,.28);margin-bottom:18px}
.footer-quote{font-family:var(--ff);font-style:italic;color:rgba(255,255,255,.2);font-size:.86rem;margin-bottom:26px}
.footer-bot{border-top:1px solid rgba(201,169,110,.1);padding-top:20px}
.admin-lnk{font-family:var(--fd);font-size:.58rem;letter-spacing:2px;color:rgba(201,169,110,.26);text-decoration:none;text-transform:uppercase;transition:color .2s}
.admin-lnk:hover{color:var(--gold)}

/* RESPONSIVE */
@media(max-width:768px){
  #navbar{padding:14px 20px}
  .nav-links{display:none}
  .nav-menu-btn{display:block}
  .envelope{width:320px;height:200px}
  .env-flap-outer{height:108px}
  .env-flower-tl{width:80px;height:80px}
  .env-flower-br{width:70px;height:70px}
  .env-front-content{padding-top:54px}
  .env-side-l{border-bottom-width:200px;border-right-width:145px}
  .env-side-r{border-bottom-width:200px;border-left-width:145px}
  .env-bot{border-left-width:145px;border-right-width:145px;border-bottom-width:110px}
  .env-flap-wrap{height:110px}
  .events-grid,.venue-cards{grid-template-columns:1fr}
  .families-wrap{grid-template-columns:1fr;text-align:center}
  .fam-ring-div{margin:0 auto}
  .tr-opts{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr}
  .rsvp-wrap{padding:26px 16px}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .timeline::before{left:18px}
  .tl-item{padding-left:52px;flex-direction:column;gap:3px}
  .tl-time{width:auto;text-align:left;padding-right:0}
  .tl-dot{position:absolute;left:0;top:0;width:36px}
  .tl-body{padding-left:0}
}
@media(max-width:480px){
  .hero-names{font-size:3rem}
  .gallery-grid{grid-template-columns:1fr}
  section{padding:60px 0}
  .envelope{width:300px;height:188px}
  .env-flap-outer{height:100px}
  .env-front-content{padding-top:52px}
  .env-flower-tl{width:72px;height:72px}
  .env-flower-br{width:60px;height:60px}
}

/* ═══ UNLIMITED GALLERY ═══ */
.gallery-grid-unlimited{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(3,1fr);
}
.gallery-grid-unlimited[data-count="1"]{ grid-template-columns:1fr; max-width:500px; margin:0 auto; }
.gallery-grid-unlimited[data-count="2"]{ grid-template-columns:1fr 1fr; }
.gallery-grid-unlimited[data-count="4"]{ grid-template-columns:1fr 1fr; }
.gallery-grid-unlimited[data-count="5"]{ grid-template-columns:repeat(3,1fr); }
.gallery-grid-unlimited[data-count="6"]{ grid-template-columns:repeat(3,1fr); }
.gallery-empty-state{
  text-align:center;padding:60px 20px;
  color:var(--muted);font-family:var(--fd);font-size:.75rem;letter-spacing:1px;
}

/* Lightbox navigation */
.lb-nav{
  position:absolute;
  top:50%;left:0;right:0;
  transform:translateY(-50%);
  display:flex;justify-content:space-between;
  padding:0 12px;pointer-events:none;
}
.lb-prev,.lb-next{
  pointer-events:all;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;font-size:2rem;
  width:48px;height:48px;border-radius:50%;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(8px);transition:background .2s;
}
.lb-prev:hover,.lb-next:hover{ background:rgba(255,255,255,.25); }

/* ═══ LOVE STORY / HIKAYE ═══ */
#hikaye,#our-story{ background:var(--cream2); }

.story-timeline{
  position:relative;
  max-width:900px;margin:0 auto;
  padding:20px 0;
}
.story-line{
  position:absolute;left:50%;top:0;bottom:0;
  width:2px;
  background:linear-gradient(to bottom,transparent,var(--gold),var(--gold-d),var(--gold),transparent);
  transform:translateX(-50%);
  z-index:0;
}
.story-item{
  display:flex;align-items:flex-start;
  margin-bottom:48px;
  position:relative;z-index:1;
}
.story-left{ flex-direction:row; }
.story-right{ flex-direction:row-reverse; }

.story-dot{
  flex-shrink:0;
  width:60px;height:60px;
  border-radius:50%;
  background:var(--cream);
  border:2px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;
  box-shadow:0 4px 20px rgba(201,169,110,.3);
  position:absolute;left:50%;transform:translateX(-50%);
  top:0;
}

.story-card{
  width:calc(50% - 60px);
  background:var(--card);
  border-radius:16px;
  padding:24px 28px;
  box-shadow:0 4px 24px rgba(42,31,26,.08);
  border:1px solid rgba(201,169,110,.12);
  transition:transform .3s,box-shadow .3s;
}
.story-left .story-card{ margin-right:auto; }
.story-right .story-card{ margin-left:auto; }
.story-card:hover{ transform:translateY(-4px); box-shadow:0 12px 40px rgba(42,31,26,.14); }
.story-year{
  font-family:var(--fd);font-size:.65rem;letter-spacing:3px;
  color:var(--gold-d);text-transform:uppercase;margin-bottom:6px;
}
.story-title{
  font-family:var(--fd);font-size:1rem;font-weight:600;
  color:var(--dark);margin-bottom:8px;
}
.story-desc{ font-size:.86rem;color:var(--muted);line-height:1.75; }

@media(max-width:700px){
  .story-line{ left:28px; }
  .story-item,.story-left,.story-right{ flex-direction:column !important; padding-left:68px; }
  .story-dot{ left:0;transform:none; top:0; }
  .story-card{ width:100%; margin:0 !important; }
  .gallery-grid-unlimited{ grid-template-columns:1fr 1fr !important; }
}
@media(max-width:400px){
  .gallery-grid-unlimited{ grid-template-columns:1fr !important; }
}
