/*
 * Yeni nesil deneyim (0.9.0; Gece Yarisi, Kristal Safak, Gul Kurusu).
 * 1) LCV: sabit alt dugme, mobilde alttan kayan cam pencere (bottom sheet),
 *    genis ekranda ortada cam pencere; 3 adim (buyuk niyet dugmeleri,
 *    bilgiler, son sorular), yumusak kayma gecisleri; varak muhurlu
 *    tesekkur ekrani. Klasik form betik yoksa sayfada aynen kalir.
 * 2) Zaman akisi: solda ince cizgi ve ikonlu noktalar, sagda iri saat;
 *    kaydirdikca cizgi dolar, gecilen saat belirginlesir.
 * Renkler temadan (`--lcv-*`, `--akis-*`). Harici kaynak yok.
 */

body.rsvp{
  --lcv-cam:color-mix(in srgb,var(--yuzey) 82%,transparent);
  --lcv-kenar:rgba(255,255,255,.6);
  --lcv-secenek:color-mix(in srgb,var(--yuzey) 72%,transparent);
  --lcv-varak-1:#F3E2BC; --lcv-varak-2:#C9A565; --lcv-varak-3:#FFF3D6;
  --akis-iz:var(--cizgi-koyu);
  --akis-dolgu:linear-gradient(180deg,var(--vurgu),var(--vurgu-koyu));
  --akis-nokta-zemin:var(--yuzey);
  --akis-ikon:var(--vurgu-koyu);
  --akis-hale:color-mix(in srgb,var(--vurgu) 16%,transparent);
}

/* --- Sabit alt dugme ---------------------------------------------------- */
.lcv-cta{position:fixed;inset-inline:0;bottom:0;z-index:35;display:flex;justify-content:center;pointer-events:none;
  padding:14px 16px calc(14px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--zemin) 88%,transparent) 45%)}
.lcv-cta[hidden]{display:none}
.lcv-cta .rsvp-btn{pointer-events:auto;width:100%;max-width:480px;margin:0;box-shadow:0 10px 28px rgba(0,0,0,.22);animation:lcv-cta-gel .5s cubic-bezier(.2,.8,.2,1)}
body:has(.lcv-cta:not([hidden])) .rsvp-wrap{padding-bottom:104px}
@keyframes lcv-cta-gel{from{transform:translateY(24px);opacity:0}}

/* Kart pencereyi acan bir dugmeye donusur. */
.lcv-kart--hazir summary{justify-content:space-between;gap:12px}
.lcv-kart--hazir summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;
  background:var(--vurgu) no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
[dir="rtl"] .lcv-kart--hazir summary::after{transform:scaleX(-1)}

/* --- Pencere ------------------------------------------------------------ */
.lcv{box-sizing:border-box;width:100%;max-width:540px;max-height:min(92dvh,780px);margin:auto auto 0;padding:0;border:0;
  border-radius:26px 26px 0 0;background:transparent;color:var(--ink-900);overflow:visible}
.lcv::backdrop{background:rgba(12,10,20,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lcv[open]{animation:lcv-yukari .42s cubic-bezier(.2,.8,.2,1)}
.lcv[open]::backdrop{animation:lcv-perde .3s ease}
.lcv__kap{position:relative;box-sizing:border-box;display:flex;flex-direction:column;max-height:min(92dvh,780px);overflow:auto;overscroll-behavior:contain;
  padding:22px 20px calc(18px + env(safe-area-inset-bottom));border-radius:inherit;
  background:var(--lcv-cam);-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  border:1px solid var(--lcv-kenar);border-bottom:0;box-shadow:0 -14px 44px rgba(0,0,0,.2)}
.lcv__tutamac{position:absolute;top:8px;left:50%;width:42px;height:5px;margin-left:-21px;border-radius:5px;background:var(--ink-300);opacity:.8}
.lcv__ust{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:4px 0 12px}
.lcv__baslik{margin:0;font-family:var(--baslik-font);font-size:clamp(20px,5.4vw,24px);line-height:1.2}
.lcv__kapat{grid-column:2;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--lcv-kenar);border-radius:50%;
  background:var(--lcv-secenek);color:var(--ink-800);cursor:pointer}
.lcv__kapat svg{width:20px;height:20px}
.lcv__kapat:focus-visible{outline:3px solid var(--vurgu);outline-offset:2px}
.lcv__ilerleme{display:flex;gap:6px;margin-bottom:6px}
.lcv__ilerleme span{flex:1;height:4px;border-radius:4px;background:var(--cizgi);transition:background .35s ease}
.lcv__ilerleme span.lcv--dolu{background:var(--vurgu)}
.lcv__adim-yazi{margin:0 0 10px;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--ink-600)}
.lcv__uyari{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--hata-yumusak,#FDECEA);color:var(--hata-metin,#8A1F17);font-size:15px}
.lcv__uyari[hidden]{display:none}
.lcv .lcv-adim__baslik{margin:2px 0 16px;font-family:var(--baslik-font);font-weight:600;font-size:clamp(24px,6.6vw,30px);line-height:1.15}
.lcv .lcv-adim--aktif{animation:lcv-kay .36s cubic-bezier(.2,.8,.2,1)}
.lcv .lcv-adim--geri{animation-name:lcv-kay-geri}
.lcv .rsvp-field input,.lcv .rsvp-field select,.lcv .rsvp-field textarea{background:color-mix(in srgb,var(--yuzey) 86%,transparent)}

/* Adim 1: buyuk niyet dugmeleri (Katiliyorum, Belki, Katilamayacagim). */
.lcv [data-lcv-adim="1"] legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lcv .rsvp-segment{display:flex;flex-direction:column;gap:12px;padding:0;background:none;border:0}
.lcv .rsvp-segment label{order:1;flex-direction:row;justify-content:flex-start;gap:16px;min-height:68px;padding:0 20px;border-radius:20px;
  border:1px solid var(--lcv-kenar);background:var(--lcv-secenek);font-size:19px;font-weight:600;color:var(--ink-900);text-align:start;
  box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}
.lcv .rsvp-segment label:has(input[value="maybe"]){order:2}
.lcv .rsvp-segment label:has(input[value="no"]){order:3}
.lcv .rsvp-segment label:hover{transform:translateY(-1px)}
.lcv .rsvp-segment__im{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--vurgu-yumusak);color:var(--vurgu-koyu);font-size:17px}
.lcv .rsvp-segment label:has(input:checked){border-color:var(--vurgu);background:var(--vurgu-yumusak);box-shadow:0 0 0 2px var(--vurgu),0 10px 24px rgba(0,0,0,.08);transform:scale(1.01)}
.lcv .rsvp-segment label:has(input:checked) .rsvp-segment__im{background:var(--vurgu);color:var(--vurgu-ustu)}

/* Gezinti: Geri / Devam; son adimda formun gonder dugmesi. */
.lcv__gezinti{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom));display:flex;gap:10px;margin:14px -20px calc(-18px - env(safe-area-inset-bottom));
  padding:12px 20px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--lcv-cam) 28%)}
.lcv__gezinti[hidden],.lcv__gezinti [hidden]{display:none}
.lcv__gezinti .rsvp-btn{flex:1;margin:0}

/* --- Tesekkur ekrani: varak muhur ve parilti ----------------------------- */
.lcv__tesekkur{position:relative;display:grid;justify-items:center;gap:10px;padding:18px 4px 6px;text-align:center;outline:none}
.lcv__tesekkur[hidden]{display:none}
.lcv__muhur{width:104px;height:104px;filter:drop-shadow(0 6px 16px rgba(160,120,40,.28))}
.lcv__muhur stop:nth-child(1){stop-color:var(--lcv-varak-1)}
.lcv__muhur stop:nth-child(2){stop-color:var(--lcv-varak-2)}
.lcv__muhur stop:nth-child(3){stop-color:var(--lcv-varak-3)}
.lcv__muhur-halka{stroke-dasharray:264;stroke-dashoffset:264;animation:lcv-ciz .9s cubic-bezier(.6,0,.2,1) .1s forwards}
.lcv__muhur-tik{stroke-dasharray:60;stroke-dashoffset:60;animation:lcv-ciz .5s cubic-bezier(.6,0,.2,1) .75s forwards}
.lcv__tesekkur-baslik{margin:4px 0 0;font-family:var(--baslik-font);font-weight:700;font-size:clamp(32px,9vw,42px);line-height:1.1;
  background:linear-gradient(100deg,var(--vurgu-koyu) 35%,var(--lcv-varak-2) 46%,var(--lcv-varak-3) 50%,var(--lcv-varak-2) 54%,var(--vurgu-koyu) 65%);
  background-size:300% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:lcv-parilti 1.8s ease .9s 1 forwards}
.lcv__mesaj{margin:0;max-width:34ch;color:var(--ink-700)}
.lcv__takvim{justify-content:center;margin:6px 0 4px}
.lcv__takvim[hidden]{display:none}
.lcv__tesekkur>.rsvp-btn{width:100%;margin-top:6px}
.lcv--tesekkur .lcv__tesekkur::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:
    radial-gradient(3px 3px at 20% 30%,var(--lcv-varak-2),transparent 70%),radial-gradient(2px 2px at 80% 26%,var(--lcv-varak-3),transparent 70%),
    radial-gradient(3px 3px at 72% 62%,var(--lcv-varak-2),transparent 70%),radial-gradient(2px 2px at 28% 70%,var(--lcv-varak-1),transparent 70%),
    radial-gradient(2px 2px at 50% 14%,var(--lcv-varak-3),transparent 70%),radial-gradient(3px 3px at 90% 48%,var(--lcv-varak-1),transparent 70%);
  opacity:0;animation:lcv-toz 1.8s ease .8s 1}

@media (min-width:720px){
  .lcv{margin:auto;border-radius:28px}
  .lcv__kap{padding:26px 30px 26px;border-bottom:1px solid var(--lcv-kenar);box-shadow:0 24px 70px rgba(0,0,0,.28)}
  .lcv[open]{animation-name:lcv-belir}
  .lcv__tutamac{display:none}
  .lcv__gezinti{bottom:-26px;margin:16px -30px -26px;padding:14px 30px 26px}
}

@keyframes lcv-yukari{from{transform:translateY(100%)}}
@keyframes lcv-belir{from{transform:translateY(18px) scale(.97);opacity:0}}
@keyframes lcv-perde{from{opacity:0}}
@keyframes lcv-kay{from{transform:translateX(34px);opacity:0}}
@keyframes lcv-kay-geri{from{transform:translateX(-34px);opacity:0}}
@keyframes lcv-ciz{to{stroke-dashoffset:0}}
@keyframes lcv-parilti{to{background-position:0 0}}
@keyframes lcv-toz{30%{opacity:1}100%{opacity:0;transform:translateY(-14px)}}

/* --- Zaman akisi -------------------------------------------------------- */
.rsvp-akis{--akis-dolu:1;position:relative;display:grid;gap:26px;margin:4px 0 0;padding:0;list-style:none}
.rsvp-akis::before,.rsvp-akis::after{content:"";position:absolute;inset-inline-start:19px;top:22px;bottom:22px;width:2px;border-radius:2px}
.rsvp-akis::before{background:var(--akis-iz)}
.rsvp-akis::after{background:var(--akis-dolgu);transform-origin:top;transform:scaleY(var(--akis-dolu));transition:transform .12s linear}
.rsvp-akis__madde{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px;align-items:start}
.rsvp-akis__nokta{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:var(--akis-nokta-zemin);color:var(--akis-ikon);box-shadow:0 0 0 1px var(--akis-iz),0 0 0 5px var(--akis-hale);
  transition:box-shadow .45s ease,opacity .45s ease,transform .45s ease}
.rsvp-akis__nokta svg{width:20px;height:20px}
.rsvp-akis__icerik{padding-top:1px}
.rsvp-akis__saat{display:block;width:max-content;font-family:var(--baslik-font);font-weight:700;font-size:27px;line-height:1.05;color:var(--ink-900);
  font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1;transform-origin:left center;transition:opacity .45s ease,transform .45s ease}
[dir="rtl"] .rsvp-akis__saat{transform-origin:right center}
.rsvp-akis__baslik{display:block;margin-top:3px;font-size:17px;font-weight:600}
.rsvp-akis__aciklama{display:block;margin-top:2px;color:var(--ink-600);font-size:15px}
.rsvp-akis--canli .rsvp-akis__saat{opacity:.5}
.rsvp-akis--canli .rsvp-akis__nokta{opacity:.75;box-shadow:0 0 0 1px var(--akis-iz),0 0 0 0 transparent}
.rsvp-akis--canli .rsvp-akis__madde--gecti .rsvp-akis__saat{opacity:1;transform:scale(1.07)}
.rsvp-akis--canli .rsvp-akis__madde--gecti .rsvp-akis__nokta{opacity:1;transform:scale(1.04);box-shadow:0 0 0 1px var(--akis-iz),0 0 0 6px var(--akis-hale),0 6px 18px var(--akis-hale)}

@media (prefers-reduced-motion:reduce){
  .lcv[open],.lcv[open]::backdrop,.lcv .lcv-adim--aktif,.lcv-cta .rsvp-btn{animation:none}
  .lcv__muhur-halka,.lcv__muhur-tik{animation:none;stroke-dashoffset:0}
  .lcv__tesekkur-baslik{animation:none;background:none;color:var(--vurgu-koyu)}
  .lcv--tesekkur .lcv__tesekkur::before{display:none}
  .rsvp-akis::after,.rsvp-akis__saat,.rsvp-akis__nokta{transition:none}
}

/* --- 3B susler (0.10.0) --------------------------------------------------
   Yuvalar yalnizca yer tutar; nesneler sabit, saydam tek tuvale yuvanin
   dikdortgeninde cizilir (dekor-3d.js). Tuval tiklamayi engellemez. */
.dekor3d-kap{position:absolute;inset:0;overflow:hidden;z-index:3;pointer-events:none}.dekor3d-tuval{position:absolute;top:0;left:0;will-change:transform}
.dekor3d{pointer-events:none}
.dekor3d-kapak-yuva{position:relative;height:0;z-index:4}
.dekor3d--kapak{position:absolute;inset-inline-end:10px;bottom:-26px;width:clamp(120px,34vw,190px);aspect-ratio:1}
.rsvp-card:has(> .dekor3d--program){position:relative}
.dekor3d--program{position:absolute;inset-inline-end:-6px;top:-54px;width:clamp(110px,30vw,170px);aspect-ratio:1}
.dekor3d--akis-sonu{width:clamp(150px,46vw,220px);aspect-ratio:1;margin:14px auto -6px}
.dekor3d--son{width:clamp(160px,48vw,240px);aspect-ratio:1;margin:20px auto 0}
