/* ============================================================
   DAVETİYE SAYFASI — invitation.css  (v2, premium letterpress)
   İmza öğe: altın mühür-monogram + ince hairline çerçeveler.
   6 tema: beyaz-gold, pudra-romantik, siyah-sik,
           yesil-doga, kir-bahcesi, modern-minimal
   ============================================================ */

:root{
  --inv-bg:#faf5ea; --inv-panel:#fffdf8; --inv-ink:#2a2018;
  --inv-soft:#7a6c59; --inv-accent:#b8911f; --inv-accent2:#e4c97e;
  --inv-line:rgba(42,32,24,.14);
  --inv-frame:rgba(184,145,31,.45);
  --inv-serif:"Cormorant Garamond",Georgia,serif;
  --inv-script:"Great Vibes",cursive;
  --inv-sans:"Jost",system-ui,sans-serif;
}

/* ---- Temalar ---- */
.theme-beyaz-gold{--inv-bg:#faf5ea;--inv-panel:#fffdf8;--inv-ink:#2a2018;
  --inv-soft:#7a6c59;--inv-accent:#b8911f;--inv-accent2:#e4c97e;--inv-frame:rgba(184,145,31,.45)}
.theme-pudra-romantik{--inv-bg:#fbeeec;--inv-panel:#fff8f6;--inv-ink:#5a3a3a;
  --inv-soft:#9a7676;--inv-accent:#c97f73;--inv-accent2:#eac3bc;--inv-frame:rgba(201,127,115,.45)}
.theme-siyah-sik{--inv-bg:#14100c;--inv-panel:#1d1812;--inv-ink:#f3ecde;
  --inv-soft:#b9ab95;--inv-accent:#d4af37;--inv-accent2:#e8d191;
  --inv-line:rgba(243,236,222,.16);--inv-frame:rgba(212,175,55,.5)}
.theme-yesil-doga{--inv-bg:#eaf1e7;--inv-panel:#fbfdfa;--inv-ink:#21372a;
  --inv-soft:#52705d;--inv-accent:#3a7d52;--inv-accent2:#9ec5a6;--inv-frame:rgba(58,125,82,.4)}
.theme-kir-bahcesi{--inv-bg:#f5efe0;--inv-panel:#fffdf6;--inv-ink:#46402c;
  --inv-soft:#7a6f4f;--inv-accent:#a8842f;--inv-accent2:#d8c489;--inv-frame:rgba(168,132,47,.42)}
.theme-modern-minimal{--inv-bg:#f3f3f1;--inv-panel:#fff;--inv-ink:#1a1a1a;
  --inv-soft:#6a6a6a;--inv-accent:#1a1a1a;--inv-accent2:#c4c4c4;
  --inv-frame:rgba(26,26,26,.32);--inv-script:"Cormorant Garamond",serif}

*{box-sizing:border-box}
body.inv{margin:0;background:var(--inv-bg);color:var(--inv-ink);
  font-family:var(--inv-sans);line-height:1.7;overflow-x:hidden;
  -webkit-font-smoothing:antialiased}

/* Sayfa zemini: çok hafif ışık halesi (stationery hissi) */
body.inv::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(120% 60% at 50% -10%,rgba(255,255,255,.5),transparent 60%)}

.inv-shell{max-width:580px;margin:0 auto;background:var(--inv-bg);position:relative;z-index:1;
  min-height:100vh;box-shadow:0 0 1px var(--inv-frame),0 30px 90px rgba(0,0,0,.14)}

.inv .script{font-family:var(--inv-script);font-weight:400}
.inv-section{padding:64px 34px;position:relative}
.inv h1,.inv h2,.inv h3{font-family:var(--inv-serif);margin:0;font-weight:600;line-height:1.12}

/* reveal */
.r{opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.8,.2,1)}
.r.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.r{opacity:1;transform:none}
  *{animation:none!important;transition:none!important}}

/* ============ KAPAK ============ */
.inv-cover{height:100svh;min-height:640px;position:relative;display:flex;
  flex-direction:column;align-items:center;justify-content:center;text-align:center;
  color:#fff;padding:54px 40px;overflow:hidden}
.inv-cover .bg{position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.08);animation:slowZoom 18s ease-in-out infinite alternate}
@keyframes slowZoom{to{transform:scale(1.18)}}
.inv-cover .bg::after{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 100% at 50% 30%,rgba(0,0,0,.15),rgba(0,0,0,.6)),
             linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.25) 40%,rgba(0,0,0,.55))}
/* İnce altın iç çerçeve — letterpress kart hissi */
.inv-cover::before{content:"";position:absolute;inset:18px;z-index:2;pointer-events:none;
  border:1px solid rgba(255,255,255,.4);
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.06)}
.inv-cover .inner{position:relative;z-index:3;text-shadow:0 2px 30px rgba(0,0,0,.5)}
.inv-cover .ek{letter-spacing:.5em;text-transform:uppercase;font-size:.72rem;opacity:.95;
  margin-bottom:1.6rem;padding-left:.5em;animation:fadeUp 1s .1s both}
.inv-cover .names{font-family:var(--inv-script);font-size:clamp(3.6rem,16vw,6rem);
  line-height:.9;animation:fadeUp 1.1s .35s both}
.inv-cover .amp{display:block;font-size:.42em;margin:.06em 0;opacity:.85;
  font-family:var(--inv-serif);font-style:italic}
/* Mühür-monogram: imza öğesi */
.inv-cover .ornament{display:inline-grid;place-items:center;width:66px;height:66px;
  margin:1.5rem auto .2rem;border-radius:50%;font-size:1.5rem;color:#fff;
  border:1px solid rgba(255,255,255,.55);
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.1);
  animation:fadeUp 1.1s .6s both,sealFloat 5s 1.6s ease-in-out infinite}
@keyframes sealFloat{50%{transform:translateY(-5px)}}
.inv-cover .date{margin-top:1.3rem;font-family:var(--inv-serif);font-size:1.4rem;
  letter-spacing:.12em;font-style:italic;animation:fadeUp 1.1s .85s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.scroll-cue{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:3;
  color:#fff;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;opacity:.8;
  display:flex;flex-direction:column;align-items:center;gap:.5rem}
.scroll-cue::after{content:"";width:1px;height:34px;
  background:linear-gradient(rgba(255,255,255,.9),transparent);animation:cueLine 2s infinite}
@keyframes cueLine{0%,100%{opacity:.3;height:24px}50%{opacity:1;height:38px}}

/* ============ ORTAK BAŞLIK ============ */
.inv-title{text-align:center;margin-bottom:2.2rem}
.inv-title .ek{display:inline-flex;align-items:center;gap:.85rem;letter-spacing:.34em;
  text-transform:uppercase;font-size:.68rem;color:var(--inv-accent);margin-bottom:.7rem;
  padding-left:.34em}
.inv-title .ek::before,.inv-title .ek::after{content:"";width:26px;height:1px;
  background:var(--inv-accent);opacity:.55}
.inv-title h2{font-size:2.3rem;letter-spacing:.01em}
.inv-divider{width:120px;height:14px;margin:14px auto 0;position:relative}
.inv-divider::before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--inv-accent) 30%,var(--inv-accent) 70%,transparent)}
.inv-divider::after{content:"❦";position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);background:var(--inv-bg);padding:0 12px;
  color:var(--inv-accent);font-size:1rem}

/* ============ GERİ SAYIM ============ */
.countdown{display:flex;justify-content:center;gap:10px;margin:6px 0 4px}
.cd-box{position:relative;background:var(--inv-panel);border:1px solid var(--inv-line);
  border-radius:4px;padding:18px 8px 14px;min-width:74px;
  box-shadow:0 10px 30px rgba(0,0,0,.05)}
.cd-box::before{content:"";position:absolute;top:0;left:14px;right:14px;height:2px;
  background:var(--inv-accent);opacity:.7}
.cd-box b{display:block;font-family:var(--inv-serif);font-size:2.3rem;color:var(--inv-ink);
  line-height:1;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.cd-box span{display:block;margin-top:.4rem;font-size:.6rem;text-transform:uppercase;
  letter-spacing:.18em;color:var(--inv-soft)}
.passed-msg{text-align:center;font-family:var(--inv-script);font-size:2rem;
  color:var(--inv-accent);padding:14px 0}

/* ============ DAVETİYE METNİ ============ */
.inv-text{text-align:center;max-width:34rem;margin:0 auto}
.inv-text .romantic{font-family:var(--inv-script);font-size:2.4rem;color:var(--inv-accent);
  margin-bottom:1.2rem;line-height:1.2}
.inv-text .main{font-family:var(--inv-serif);font-size:1.5rem;line-height:1.65;font-weight:500}
.inv-text .note{margin-top:1.4rem;color:var(--inv-soft);font-style:italic;font-size:1.02rem}

/* ============ BİLGİ KARTLARI ============ */
.inv-info{display:grid;gap:14px;max-width:30rem;margin:0 auto}
.info-card{background:var(--inv-panel);border:1px solid var(--inv-line);border-radius:6px;
  padding:22px 24px;display:flex;gap:18px;align-items:center;position:relative;overflow:hidden}
.info-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--inv-accent)}
.info-card .ic{width:48px;height:48px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-size:1.3rem;border:1px solid var(--inv-frame);color:var(--inv-accent)}
.info-card .tx b{display:block;font-family:var(--inv-serif);font-size:1.3rem;font-weight:600}
.info-card .tx span{font-size:.92rem;color:var(--inv-soft)}

/* ============ BUTONLAR ============ */
.inv-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}
.inv-btn{position:relative;display:inline-flex;align-items:center;gap:.5rem;
  padding:.92rem 1.5rem;border-radius:999px;font-family:var(--inv-sans);font-weight:600;
  font-size:.9rem;letter-spacing:.01em;cursor:pointer;overflow:hidden;
  background:var(--inv-accent);color:#fff;border:1px solid var(--inv-accent);
  transition:transform .25s,box-shadow .25s;box-shadow:0 10px 26px rgba(0,0,0,.14)}
.inv-btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.2)}
.inv-btn.ghost{background:transparent;color:var(--inv-accent);box-shadow:none}
.inv-btn.ghost:hover{background:var(--inv-accent);color:#fff}
.inv-btn.wa{background:#1eb95a;border-color:#1eb95a}
.inv-btn.wa:hover{background:#19a04e}
.theme-siyah-sik .inv-btn:not(.ghost):not(.wa){color:#14100c}
.theme-modern-minimal .inv-btn:not(.ghost):not(.wa){color:#fff}

/* ============ GALERİ ============ */
.inv-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.inv-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;cursor:pointer;
  filter:saturate(.96);transition:transform .45s ease,filter .45s,box-shadow .45s}
.inv-gallery img:hover{transform:scale(1.04);filter:saturate(1.08);
  box-shadow:0 14px 30px rgba(0,0,0,.22);position:relative;z-index:2}
.lightbox{position:fixed;inset:0;background:rgba(10,8,6,.94);z-index:200;
  display:none;align-items:center;justify-content:center;padding:24px;
  backdrop-filter:blur(4px)}
.lightbox.open{display:flex;animation:lbIn .3s ease}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lightbox img{max-width:92vw;max-height:84vh;border-radius:4px;
  box-shadow:0 30px 90px rgba(0,0,0,.6);outline:1px solid rgba(255,255,255,.15);
  outline-offset:8px}
.lightbox .x{position:absolute;top:20px;right:24px;color:#fff;font-size:1.8rem;cursor:pointer;
  background:none;border:0;opacity:.8;transition:.2s}
.lightbox .x:hover{opacity:1;transform:rotate(90deg)}
.lightbox .nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:2.2rem;
  cursor:pointer;background:none;border:0;padding:0 20px;opacity:.7;transition:.2s}
.lightbox .nav:hover{opacity:1}
.lightbox .prev{left:0}.lightbox .next{right:0}

/* ============ AİLE ============ */
.inv-family{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:center}
.fam-col{background:var(--inv-panel);border:1px solid var(--inv-line);border-radius:6px;
  padding:26px 20px;position:relative}
.fam-col::before{content:"❦";position:absolute;top:14px;left:50%;transform:translateX(-50%);
  color:var(--inv-accent);opacity:.4;font-size:.85rem}
.fam-col .who{font-family:var(--inv-script);font-size:1.9rem;color:var(--inv-accent);
  margin:.6rem 0 .7rem}
.fam-col p{margin:.25rem 0;font-size:1.05rem;font-family:var(--inv-serif)}
.fam-col small{color:var(--inv-soft)}
@media(max-width:430px){.inv-family{grid-template-columns:1fr}}

/* ============ PROGRAM AKIŞI ============ */
.timeline{position:relative;padding-left:38px;max-width:30rem;margin:0 auto}
.timeline::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:1px;
  background:linear-gradient(var(--inv-accent),var(--inv-accent2))}
.tl-item{position:relative;padding-bottom:30px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:-32px;top:5px;width:14px;height:14px;
  border-radius:50%;background:var(--inv-bg);border:2px solid var(--inv-accent);
  box-shadow:0 0 0 4px var(--inv-bg)}
.tl-item h3{font-size:1.4rem}
.tl-item .meta{color:var(--inv-soft);font-size:.94rem;margin:.25rem 0}
.tl-item a{color:var(--inv-accent);font-size:.88rem;font-weight:600;text-decoration:none}
.tl-item a:hover{text-decoration:underline}

/* ============ RSVP ============ */
.rsvp-card{background:var(--inv-panel);border:1px solid var(--inv-line);border-radius:8px;
  padding:32px;max-width:30rem;margin:0 auto;position:relative;
  box-shadow:0 16px 44px rgba(0,0,0,.07)}
.rsvp-card::before{content:"";position:absolute;inset:7px;border:1px solid var(--inv-frame);
  border-radius:4px;pointer-events:none;opacity:.5}
.rsvp-card .f{margin-bottom:1.1rem;position:relative}
.rsvp-card label{display:block;font-weight:600;font-size:.82rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--inv-soft);margin:0 0 .4rem}
.rsvp-card input,.rsvp-card select,.rsvp-card textarea{width:100%;padding:.85rem .95rem;
  border:1px solid var(--inv-line);border-radius:6px;font-family:var(--inv-sans);font-size:1rem;
  background:var(--inv-bg);color:var(--inv-ink);transition:border-color .2s,box-shadow .2s}
.rsvp-card input:focus,.rsvp-card select:focus,.rsvp-card textarea:focus{outline:none;
  border-color:var(--inv-accent);box-shadow:0 0 0 3px var(--inv-frame)}
.rsvp-radio{display:flex;gap:12px}
.rsvp-radio label{flex:1;text-align:center;padding:.85rem;border:1px solid var(--inv-line);
  border-radius:6px;cursor:pointer;font-weight:600;transition:.2s;margin:0;
  text-transform:none;letter-spacing:0;color:var(--inv-ink)}
.rsvp-radio input{display:none}
.rsvp-radio label:has(input:checked){border-color:var(--inv-accent);
  background:var(--inv-accent);color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.theme-siyah-sik .rsvp-radio label:has(input:checked),
.theme-modern-minimal .rsvp-radio label:has(input:checked){color:#fff}

/* ============ MÜZİK ============ */
.music-toggle{position:fixed;bottom:22px;right:22px;z-index:120;width:54px;height:54px;
  border-radius:50%;background:var(--inv-accent);color:#fff;border:0;cursor:pointer;
  display:grid;place-items:center;font-size:1.3rem;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.music-toggle::after{content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1px solid var(--inv-accent);opacity:0}
.music-toggle.playing{animation:spin 5s linear infinite}
.music-toggle.playing::after{opacity:.5;animation:pulse 2s infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.5);opacity:0}}
.theme-siyah-sik .music-toggle,.theme-modern-minimal .music-toggle{color:#fff}

/* ============ FOOTER ============ */
.inv-footer{text-align:center;padding:54px 30px 70px;color:var(--inv-soft);font-size:.86rem;
  position:relative}
.inv-footer::before{content:"";display:block;width:50px;height:1px;background:var(--inv-accent);
  margin:0 auto 1.6rem;opacity:.5}
.inv-footer .heart{color:var(--inv-accent);font-size:1.5rem;margin-bottom:.5rem}
.inv-footer p{margin:.3rem 0}
.inv-footer p:nth-of-type(1){font-family:var(--inv-script);font-size:1.7rem;color:var(--inv-ink)}
.inv-footer a{color:var(--inv-accent);font-weight:600;text-decoration:none}

/* ============ DEMO ŞERİDİ ============ */
.demo-ribbon{position:fixed;top:16px;left:16px;z-index:130;background:var(--inv-ink);
  color:var(--inv-bg);font-size:.7rem;font-weight:700;letter-spacing:.08em;
  padding:.45rem .9rem;border-radius:999px;box-shadow:0 8px 22px rgba(0,0,0,.25)}

/* ============ TOAST ============ */
.toast{position:fixed;bottom:88px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--inv-ink);color:var(--inv-bg);padding:.85rem 1.5rem;border-radius:999px;
  font-size:.9rem;z-index:140;opacity:0;transition:.35s;pointer-events:none;
  box-shadow:0 12px 30px rgba(0,0,0,.3)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ============================================================
   IŞILTILI AÇILIŞ / MEKTUP — intro
   ============================================================ */
body.intro-locked{overflow:hidden;height:100vh}

.inv-intro{position:fixed;inset:0;z-index:300;display:flex;align-items:center;
  justify-content:center;padding:32px;text-align:center;overflow:hidden;
  background:
    radial-gradient(130% 90% at 50% 18%,color-mix(in srgb,var(--inv-panel) 75%,#fff),var(--inv-bg) 70%),
    var(--inv-bg);
  transition:opacity .8s ease,transform .8s ease}
/* color-mix desteklemeyen tarayıcılarda düz panel rengi */
@supports not (background:color-mix(in srgb,#fff 50%,#000)){
  .inv-intro{background:radial-gradient(130% 90% at 50% 18%,var(--inv-panel),var(--inv-bg) 70%)}
}
.inv-intro::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 50% at 50% 45%,rgba(255,255,255,.35),transparent 70%);
  mix-blend-mode:screen}
.inv-intro.opening{animation:introFlash .5s ease both}
.inv-intro.done{opacity:0;transform:scale(1.06);pointer-events:none}
@keyframes introFlash{40%{filter:brightness(1.5)}100%{filter:none}}

/* Işıltılar */
.intro-sparkles{position:absolute;inset:0;pointer-events:none}
.intro-sparkles i{position:absolute;width:8px;height:8px;border-radius:50%;
  background:radial-gradient(circle,#fff,var(--inv-accent2) 45%,transparent 70%);
  opacity:0;animation:twinkle 3.4s ease-in-out infinite;
  filter:drop-shadow(0 0 6px var(--inv-accent2))}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.4)}
  50%{opacity:.95;transform:scale(1.15)}}
.inv-intro.opening .intro-sparkles i{animation:burst .9s ease-out both}
@keyframes burst{0%{opacity:1}100%{opacity:0;transform:translateY(-30px) scale(1.6)}}

/* Açılış kartı */
.intro-card{position:relative;z-index:2;max-width:380px;
  animation:cardIn 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes cardIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.inv-intro.opening .intro-card{animation:cardOut .9s ease forwards}
@keyframes cardOut{to{opacity:0;transform:translateY(-18px) scale(.96)}}
.intro-ek{letter-spacing:.42em;text-transform:uppercase;font-size:.68rem;
  color:var(--inv-accent);margin-bottom:1.1rem;padding-left:.42em}
.intro-names{font-family:var(--inv-script);font-size:clamp(2.8rem,12vw,4.2rem);
  line-height:1.04;color:var(--inv-ink)}
.intro-names span{color:var(--inv-accent);font-size:.6em;font-style:italic;
  font-family:var(--inv-serif);display:inline-block;margin:0 .1em}
/* Mühür */
.intro-seal{width:92px;height:92px;margin:1.5rem auto;border-radius:50%;
  display:grid;place-items:center;position:relative;
  background:radial-gradient(circle at 35% 30%,var(--inv-accent2),var(--inv-accent));
  box-shadow:0 14px 34px rgba(0,0,0,.22),inset 0 2px 6px rgba(255,255,255,.5),
    inset 0 -6px 12px rgba(0,0,0,.18)}
.intro-seal span{font-size:2.2rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.intro-seal::after{content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1px dashed var(--inv-accent);opacity:.55}
.inv-intro:not(.opening) .intro-seal{animation:sealPulse 2.6s ease-in-out infinite}
@keyframes sealPulse{50%{transform:scale(1.05)}}
.inv-intro.opening .intro-seal{animation:sealPop .7s ease forwards}
@keyframes sealPop{40%{transform:scale(1.25)}100%{transform:scale(3);opacity:0}}
.intro-sub{color:var(--inv-soft);font-family:var(--inv-serif);font-size:1.15rem;
  font-style:italic;margin:0 0 1.8rem}

/* Aç butonu — ışıltılı */
.intro-open{position:relative;border:0;cursor:pointer;overflow:hidden;
  padding:1rem 2.4rem;border-radius:999px;font-family:var(--inv-sans);font-weight:600;
  font-size:1rem;letter-spacing:.03em;color:#fff;
  background:linear-gradient(120deg,var(--inv-accent),var(--inv-accent2),var(--inv-accent));
  background-size:220% 100%;box-shadow:0 14px 34px rgba(0,0,0,.2);
  animation:shimmerBtn 3.5s linear infinite}
.theme-siyah-sik .intro-open,.theme-modern-minimal .intro-open{color:#14100c}
@keyframes shimmerBtn{to{background-position:220% 0}}
.intro-open::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-18deg);animation:sweep 3.2s ease-in-out infinite}
@keyframes sweep{0%{left:-60%}55%,100%{left:130%}}
.intro-open:hover{transform:translateY(-2px)}
.intro-hint{margin-top:1rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--inv-soft);opacity:.8;animation:hintBlink 2.4s ease-in-out infinite}
@keyframes hintBlink{50%{opacity:.35}}

@media(prefers-reduced-motion:reduce){
  .intro-sparkles i,.intro-seal,.intro-open,.intro-open::after,.intro-hint{animation:none!important}
  .inv-intro.done{transition:none}
}

/* YouTube gizli oynatıcı — display:none DEĞİL (ses çalsın diye) */
.yt-hidden{position:fixed;width:1px;height:1px;left:-9999px;top:auto;
  overflow:hidden;opacity:0;pointer-events:none}
.yt-hidden iframe{width:320px;height:180px;border:0}

/* ============================================================
   GELİN & DAMAT — fotoğraflar animasyonla yan yana
   ============================================================ */
.couple-meet{display:flex;align-items:center;justify-content:center;gap:8px;
  max-width:460px;margin:0 auto}
.cm-side{margin:0;text-align:center;flex:1 1 0;min-width:0;max-width:185px}
.cm-photo{position:relative;width:100%;aspect-ratio:3/4;
  border-radius:120px 120px 12px 12px;overflow:hidden;
  border:1px solid var(--inv-frame);background:var(--inv-panel);
  box-shadow:0 18px 44px rgba(0,0,0,.2)}
.cm-photo::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.55)}
.cm-photo img{width:100%;height:100%;object-fit:cover}
.cm-ph{display:grid;place-items:center;height:100%;font-size:3.2rem;color:var(--inv-soft)}
.cm-side figcaption{margin-top:.85rem;font-family:var(--inv-script);font-size:1.85rem;
  color:var(--inv-accent);line-height:1}
.cm-amp{flex:0 0 auto;position:relative;display:grid;place-items:center;width:48px}
.cm-amp span{font-family:var(--inv-serif);font-style:italic;font-size:2.1rem;color:var(--inv-ink)}
.cm-heart{position:absolute;top:-24px;color:var(--inv-accent);font-size:1.05rem;opacity:0;font-style:normal}

/* Başlangıç: uzakta & gizli */
.cm-bride .cm-photo{opacity:0;transform:translateX(-54px) rotate(-5deg)}
.cm-groom .cm-photo{opacity:0;transform:translateX(54px) rotate(5deg)}
.cm-side figcaption{opacity:0;transform:translateY(12px)}
.cm-amp{opacity:0;transform:scale(.3)}
.couple-meet .cm-photo,.couple-meet figcaption,.couple-meet .cm-amp{
  transition:opacity .9s ease,transform 1.15s cubic-bezier(.22,.8,.2,1)}

/* Görünür olunca buluş */
.couple-sec.in .cm-bride .cm-photo,
.couple-sec.in .cm-groom .cm-photo{opacity:1;transform:none}
.couple-sec.in .cm-side figcaption{opacity:1;transform:none;transition-delay:.65s}
.couple-sec.in .cm-amp{opacity:1;transform:scale(1);transition-delay:.95s}
.couple-sec.in .cm-heart{animation:cmHeart 1.8s 1.2s ease-in-out infinite}
@keyframes cmHeart{0%,100%{opacity:.85;transform:translateY(0) scale(1)}
  50%{opacity:1;transform:translateY(-5px) scale(1.25)}}

@media(max-width:380px){
  .cm-side figcaption{font-size:1.4rem}
  .cm-amp span{font-size:1.6rem}
}
