/* Davetko "film" davetiye motoru (30 Ekim 2026, TASARIM-KARARI-30EKIM.md).
   Akış: tam ekran 9:16 açılış videosu → isimler belirir → son kare kapak olur → kaydırınca davetiye sayfası.
   Fontlar: Fraunces (isim, başlık) + Manrope (bilgi, düğme). Renkler kategori paletinden (.p-*). */

:root {
  --f-isim: 'Fraunces', 'Times New Roman', serif;
  --f-metin: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --kolon: 460px;
  /* varsayılan: fildişi + zeytin */
  --zemin: #f7f2e8; --zemin2: #efe8da; --yazi: #26261c; --soluk: #5b5a4a; --vurgu: #5b5f36; --vurgu-yazi: #fbf8f0;
  --cizgi: rgba(38, 38, 28, .14); --yan: rgba(247, 242, 232, .62);
}
/* Kategori paletleri */
.p-kina     { --zemin: #3d1219; --zemin2: #4a1820; --yazi: #f6ead6; --soluk: #dcc7ab; --vurgu: #cfa95e; --vurgu-yazi: #2a0c11; --cizgi: rgba(246, 234, 214, .16); --yan: rgba(61, 18, 25, .66); }
.p-pudra    { --zemin: #f8eeea; --zemin2: #f1e2dc; --yazi: #3a2a26; --soluk: #6b544d; --vurgu: #8f6450; --vurgu-yazi: #fff9f6; --cizgi: rgba(58, 42, 38, .13); --yan: rgba(248, 238, 234, .6); }
.p-sedef    { --zemin: #f3f2ec; --zemin2: #e7e9e0; --yazi: #232a24; --soluk: #535d4d; --vurgu: #586f5b; --vurgu-yazi: #f8f8f3; --cizgi: rgba(35, 42, 36, .13); --yan: rgba(243, 242, 236, .6); }
.p-vanilya  { --zemin: #fcf5e6; --zemin2: #f6ead2; --yazi: #33261f; --soluk: #67554a; --vurgu: #b0452f; --vurgu-yazi: #fffaf0; --cizgi: rgba(51, 38, 31, .13); --yan: rgba(252, 245, 230, .6); }
.p-antrasit { --zemin: #232427; --zemin2: #2c2d31; --yazi: #efe9dd; --soluk: #bfb7a8; --vurgu: #d8c49c; --vurgu-yazi: #1d1d20; --cizgi: rgba(239, 233, 221, .14); --yan: rgba(35, 36, 39, .7); }
.p-lacivert { --zemin: #16213a; --zemin2: #1d2a47; --yazi: #f2ead8; --soluk: #c5bda8; --vurgu: #cfa95e; --vurgu-yazi: #141c30; --cizgi: rgba(242, 234, 216, .15); --yan: rgba(22, 33, 58, .7); }
.p-gece     { --zemin: #21182f; --zemin2: #2a1f3b; --yazi: #f1e8dc; --soluk: #c8bccb; --vurgu: #e2cc9f; --vurgu-yazi: #1d1529; --cizgi: rgba(241, 232, 220, .15); --yan: rgba(33, 24, 47, .7); }
.p-mezun    { --zemin: #1a2440; --zemin2: #212d4d; --yazi: #f5eedf; --soluk: #c9c3b1; --vurgu: #efe3c4; --vurgu-yazi: #1a2440; --cizgi: rgba(245, 238, 223, .15); --yan: rgba(26, 36, 64, .7); }
.p-komur    { --zemin: #1c1b1a; --zemin2: #252321; --yazi: #f1ebe0; --soluk: #beb5a7; --vurgu: #cba660; --vurgu-yazi: #1c1b1a; --cizgi: rgba(241, 235, 224, .14); --yan: rgba(28, 27, 26, .72); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--zemin); color: var(--yazi); font: 400 16px/1.6 var(--f-metin); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 3px; }
.gorunmez { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Masaüstü (Halid 31 Ekim, di.davetiye örneği): ortadaki 9:16 davetiyenin arkası koyu, zengin, yumuşak ışıklı sahne.
   Yalnız CSS gradyanı: üstten süzülen ışık + koyu zümrüt/kömür; çizim, ızgara, desen yok. */
.fl-yan { display: none; }
@media (min-width: 700px) {
  body { background: #0b1411; }
  .fl-yan { display: block; position: fixed; inset: 0; z-index: 0; overflow: hidden;
    background:
      radial-gradient(ellipse 80% 70% at 50% -12%, rgba(255, 236, 200, .24), rgba(255, 236, 200, .08) 50%, transparent 78%),
      radial-gradient(ellipse 70% 60% at 50% 40%, rgba(32, 74, 58, .55), transparent 70%),
      linear-gradient(180deg, #13261f 0%, #0c1814 55%, #070b0a 100%); }
  .fl-yan img { display: none; }
  .fl-yan::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 90% 80% at 50% 50%, transparent 55%, rgba(0, 0, 0, .45) 100%); }
  .fl-kolon { box-shadow: 0 0 0 1px rgba(255, 240, 210, .06), 0 40px 120px -20px rgba(0, 0, 0, .75), 0 -30px 120px -40px rgba(255, 236, 200, .18); }
}
.fl-kolon { position: relative; z-index: 1; width: 100%; max-width: var(--kolon); margin: 0 auto; background: #0d0c0b; min-height: 100vh; }
/* Videonun son karesi sayfanın arkasında sabit, bulanık ve hafif karartılmış durur: sayfa videonun devamı gibi akar */
.fl-arka { position: fixed; top: 0; bottom: 0; left: 50%; width: min(100%, var(--kolon)); transform: translateX(-50%); z-index: 0; overflow: hidden; pointer-events: none; }
.fl-arka img { position: absolute; inset: -8%; width: 116%; height: 116%; max-width: none; object-fit: cover; filter: blur(22px) saturate(.95); }
.fl-arka::after { content: ""; position: absolute; inset: 0; background: rgba(14, 12, 10, .4); }
/* film.zemin = "net": son kare bulanmaz, yalnız hafif gölgelenir (bahçe/perde sahnesi sayfanın arkasında olduğu gibi durur; kartlar üstünde akar) */
.fl-net .fl-arka img { filter: none; inset: 0; width: 100%; height: 100%; }
.fl-net .fl-arka::after { background: rgba(14, 12, 10, .16); }
/* film.zemin = "devam" (Halid 2 Kasım, G3): videonun son karesindeki kâğıt sayfa boyunca aynen devam eder; kart, kutu, başka zemin yok.
   Yazılar doğrudan kâğıdın üstünde; bölümler ince çizgiyle ayrılır. */
.fl-devam .fl-arka img { filter: none; inset: 0; width: 100%; height: 100%; }
.fl-devam .fl-arka::after { display: none; }
.fl-devam .fl-kolon { background: var(--zemin); }
.fl-devam .fl-icerik { gap: 0; padding: 0 22px calc(28px + env(safe-area-inset-bottom)); }
.fl-devam .fl-b { background: transparent; box-shadow: none; border-radius: 0; padding: 38px 0 34px; }
.fl-devam .fl-b + .fl-b { border-top: 1px solid var(--kagit-cizgi, rgba(40, 30, 20, .18)); }
.fl-devam .fl-form input[type="text"], .fl-devam .fl-form textarea, .fl-devam .fl-secim, .fl-devam .fl-kisi { background: rgba(255, 255, 255, .34); border-color: var(--kagit-cizgi, rgba(40, 30, 20, .22)); }
.fl-devam .fl-secim input:checked + span, .fl-devam .fl-kisi button { background: rgba(255, 255, 255, .7); }
.fl-devam .fl-dugme.ikincil { border-color: var(--kagit-cizgi, rgba(40, 30, 20, .3)); }
.fl-devam .fl-davetko { padding-top: 18px; }
.fl-devam .fl-davetko a { color: var(--soluk); }
.fl-devam .fl-metin, .fl-devam .fl-kapanis-metin, .fl-devam .fl-gun .tam, .fl-devam .fl-baslik, .fl-devam .fl-imza, .fl-devam .fl-mekan-ad, .fl-devam .fl-sayac b { color: var(--yz-sayfa, var(--yazi)); }

/* ---------- Kapak: video ---------- */
.fl-kapak { position: relative; z-index: 2; height: 100vh; height: 100svh; min-height: 520px; overflow: hidden; background: #0d0c0b; container-type: size; }
/* 9:16 kutu, sahneyi object-fit: cover gibi doldurur; yazılar bu kutuda videonun yüzdeleriyle konumlanır */
.fl-kare { position: absolute; left: 50%; top: 50%; width: 100%; height: 100%; transform: translate(-50%, -50%); }
@supports (width: 1cqw) {
  .fl-kare { width: max(100cqw, 56.25cqh); height: max(100cqh, 177.78cqw); }
}
.fl-son, .fl-poster, .fl-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fl-son { opacity: 0; }
.fl-durgun .fl-son, .fl-bitti .fl-son { opacity: 1; }
.fl-durgun .fl-video { visibility: hidden; }

/* İsimler: videonun hareketi bitince belirir (0,45 sn, en çok 6 px yükselme). Harf harf, parlama, ölçek yok. */
/* Geniş/kısa ekranda video üstten kırpılır (fl-kare 100cqh'den uzun); yazı bloğu görünür alanın üstüne taşmasın diye
   merkez en az "kırpılan üst pay + 13cqh" aşağıda tutulur (Halid 2 Kasım, V8 masa altı: üstte kesilen yazı). */
.fl-yazi { position: absolute; left: var(--x, 50%); top: max(var(--y, 30%), calc(max(0px, 88.89cqw - 50cqh) + 13cqh)); transform: translate(-50%, -50%) rotate(var(--don, 0deg));
  width: max-content; max-width: min(var(--gen, 84%), 90cqw); text-align: center; color: var(--yz, #23211c); z-index: 2; isolation: isolate; }
.fl-yazi > * { opacity: 0; transform: translateY(6px); transition: opacity .45s ease, transform .45s ease; }
.fl-isim .fl-yazi > * { opacity: 1; transform: none; }
.fl-isim .fl-yazi > :nth-child(2) { transition-delay: .08s; }
.fl-isim .fl-yazi > :nth-child(n+3) { transition-delay: .2s; }
/* yumuşak okunurluk zemini yalnız yazının arkasında */
.fl-yazi::before { content: ""; position: absolute; inset: -46% -26%; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .6s ease;
  background: radial-gradient(closest-side, rgba(var(--perde, 0, 0, 0), var(--kar, 0)) 0%, rgba(var(--perde, 0, 0, 0), calc(var(--kar, 0) * .55)) 55%, rgba(var(--perde, 0, 0, 0), 0) 100%); }
.fl-isim .fl-yazi::before { opacity: 1; }
.yazi-acik .fl-yazi { --yz: #fffaf2; --perde: 12, 10, 8; text-shadow: 0 1px 14px rgba(0, 0, 0, .18); }
.yazi-koyu .fl-yazi { --yz: #24221b; --perde: 255, 251, 243; }
.fl-ust { margin: 0 0 .55em; font: 400 var(--ust-boy, 16px)/1.35 var(--f-metin); letter-spacing: .01em; }
.fl-ad { margin: 0; font: 400 var(--ad-boy, clamp(34px, 11cqw, 46px))/1.12 var(--f-isim); font-variation-settings: 'opsz' 96, 'SOFT' 50; letter-spacing: -.01em; text-wrap: balance; }
.fl-ad .ve { font-style: italic; font-weight: 300; padding: 0 .06em; }
.dizi-yigin .fl-ad > span { display: block; }
.dizi-yigin .fl-ad .ve { font-size: .62em; line-height: 1.3; }
.fl-adalt { margin: .45em 0 0; font: 500 17px/1.35 var(--f-metin); letter-spacing: .01em; }
.fl-adalt + .fl-tarih { margin-top: .25em; }
.fl-tarih { margin: .7em 0 0; font: 500 16px/1.4 var(--f-metin); letter-spacing: .02em; }

/* Gazete düzeni (film.gazete; Halid 2 Kasım V7 düğün postası): tarih satırı, gazete adı, "Son dakika" + manşet, iki sütun haber.
   Fontlar: Bodoni Moda (gazete adı), Old Standard TT (manşet ve sütunlar) — sayfa bunları Google Fonts'tan yükler. */
.fl-gazete .fl-yazi { --f-gz: 'Old Standard TT', 'Times New Roman', serif; --f-gz-logo: 'Bodoni Moda', 'Old Standard TT', serif; color: var(--yz, #2a2016); width: 100%; }
.fl-gazete .fl-yazi::before { display: none; }
.fl-gz-ust { display: flex; justify-content: space-between; gap: 10px; margin: 0; padding-bottom: 4px; border-bottom: 1px solid currentColor;
  font: italic 400 clamp(11px, 3.1cqw, 13px)/1.4 var(--f-gz); font-variant-numeric: lining-nums; }
.fl-gz-logo { margin: 0; padding: 6px 0 4px; border-bottom: 3px double currentColor; font: 800 clamp(30px, 10cqw, 42px)/1.15 var(--f-gz-logo); letter-spacing: .005em; }
.fl-gazete .fl-ust { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 12px 0 6px; font: 400 clamp(12px, 3.4cqw, 14px)/1.4 var(--f-gz); }
.fl-gazete .fl-ust b { display: inline-block; padding: 2px 8px 1px; background: #8f1d22; color: #f6efe2; font: 700 clamp(11px, 3cqw, 13px)/1.5 var(--f-gz); letter-spacing: .06em; }
.fl-gazete .fl-ad { font: 700 clamp(30px, 9.4cqw, 40px)/1.12 var(--f-gz); letter-spacing: -.015em; font-variation-settings: normal; padding-bottom: 10px; border-bottom: 1px solid currentColor; }
.fl-gazete .fl-ad .ve { font-style: normal; font-weight: 700; }
.fl-gz-spot { margin: 10px 0 0; column-count: 2; column-gap: 14px; column-rule: 1px solid rgba(42, 32, 22, .35); text-align: justify; hyphens: auto;
  font: 400 clamp(10.5px, 2.9cqw, 12.5px)/1.45 var(--f-gz); }
.fl-gz-spot::first-letter { float: left; font: 700 2.6em/.9 var(--f-gz); margin: 2px 4px 0 0; }
.fl-gazete .fl-tarih { margin: 10px 0 0; padding-top: 6px; border-top: 1px solid currentColor; font: 700 clamp(12px, 3.4cqw, 14px)/1.4 var(--f-gz); letter-spacing: 0; }

/* Yol yazısı (film.yolYazi; Halid 2 Kasım V5 gelin arabası): yol üstünde 90° dönük beyaz el yazısı, araba geçtikçe arabanın ARKASINDA
   kalan yolda açılır. --kapali = videodaki arabanın arka kenarından aşağısı (film.js her karede ölçüm tablosundan hesaplar). */
.fl-yol { position: absolute; inset: 0; z-index: 1; pointer-events: none; clip-path: inset(0 0 var(--kapali, 100%) 0); }
.fl-yol-yazi { position: absolute; left: var(--yol-x, 50%); top: calc((var(--yol-bas, 20%) + var(--yol-son, 84%)) / 2); transform: translate(-50%, -50%) rotate(90deg);
  white-space: nowrap; font: 400 var(--yol-boy, 22cqw)/1 'Pinyon Script', 'Brush Script MT', cursive; color: #fff; letter-spacing: .01em;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .45), 0 0 2px rgba(0, 0, 0, .25); }
.fl-durgun .fl-yol { --kapali: 0%; }

/* Harf harf el yazısı açılışı (F.yazim): her harf soldan sağa kalemle yazılır gibi açılır */
.fl-yazim .fl-yazi > .fl-ust, .fl-yazim .fl-yazi > .fl-ad { opacity: 1; transform: none; transition: none; }
.fl-el .fl-ad { font-style: italic; font-weight: 400; }
.fl-kelime { display: inline-block; white-space: nowrap; }
.fl-harf { display: inline-block; clip-path: inset(-25% 100% -25% -5%); opacity: .3; transition: clip-path .32s ease-out, opacity .32s ease-out; }
.fl-isim .fl-harf { clip-path: inset(-25% -25% -25% -5%); opacity: 1; }

/* Kapak alt düğmeleri */
.fl-alt { position: absolute; left: 0; right: 0; bottom: calc(44px + env(safe-area-inset-bottom)); z-index: 3; display: flex; justify-content: center; align-items: center; gap: 10px; padding: 0 16px;
  opacity: 0; transform: translateY(6px); transition: opacity .45s ease, transform .45s ease; pointer-events: none; }
.fl-hazir .fl-alt { opacity: 1; transform: none; pointer-events: auto; }
.fl-detay { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 0; text-decoration: none; cursor: pointer;
  font: 500 15.5px/1.2 var(--f-metin); background: rgba(24, 22, 18, .78); color: #fffaf1; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.fl-yuvarlak { width: 48px; height: 48px; flex: none; display: grid; place-items: center; border-radius: 50%; border: 0; cursor: pointer; background: rgba(24, 22, 18, .55); color: #fffaf1;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.alt-acik .fl-detay { background: rgba(255, 251, 244, .9); color: #1f1d18; }
.alt-acik .fl-yuvarlak { background: rgba(255, 251, 244, .62); color: #1f1d18; }
.fl-detay svg, .fl-yuvarlak svg { width: 20px; height: 20px; }

/* Otomatik oynamazsa: poster + küçük oynat düğmesi */
.fl-oynat { position: absolute; left: 50%; bottom: calc(44px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 4; display: none; align-items: center; gap: 8px;
  min-height: 48px; padding: 0 20px 0 16px; border: 0; border-radius: 999px; background: rgba(24, 22, 18, .78); color: #fffaf1; font: 500 15.5px/1 var(--f-metin); cursor: pointer;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.fl-bekle .fl-oynat { display: inline-flex; }
.fl-bekle .fl-alt { display: none; }

/* Müzik: küçük düğme, otomatik ses yok */
.fl-muzik { position: fixed; top: calc(14px + env(safe-area-inset-top)); right: max(14px, calc(50vw - var(--kolon) / 2 + 14px)); z-index: 20; width: 44px; height: 44px; display: grid; place-items: center;
  border-radius: 50%; border: 0; cursor: pointer; background: rgba(24, 22, 18, .5); color: #fffaf1; opacity: 0; pointer-events: none; transition: opacity .4s ease;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.fl-hazir .fl-muzik { opacity: 1; pointer-events: auto; }
.fl-muzik svg { width: 19px; height: 19px; }
.fl-muzik[aria-pressed="true"] .kapali { display: none; }
.kapak-modu .fl-muzik { display: none; }

/* ---------- Davetiye sayfası ---------- */
.fl-icerik { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px 14px calc(24px + env(safe-area-inset-bottom)); }
.fl-b { min-width: 0; padding: 40px 20px; text-align: center; border-radius: 24px; background: var(--zemin); background: color-mix(in srgb, var(--zemin) 90%, transparent);
  box-shadow: 0 18px 40px -26px rgba(0, 0, 0, .6); }
.fl-baslik { margin: 0 0 22px; font: 400 28px/1.18 var(--f-isim); font-variation-settings: 'opsz' 48; letter-spacing: -.005em; }
.fl-metin { margin: 0 auto; max-width: 32ch; font: 350 21px/1.5 var(--f-isim); font-variation-settings: 'opsz' 24, 'SOFT' 50; }
.fl-aile { margin: 18px auto 0; max-width: 34ch; color: var(--soluk); font-size: 15.5px; }

.fl-gun { margin-top: 34px; }
.fl-gun .hg { display: block; color: var(--soluk); font-size: 16px; }
.fl-gun .tam { display: block; margin: 4px 0 6px; font: 400 38px/1.16 var(--f-isim); font-variation-settings: 'opsz' 72; letter-spacing: -.01em; }
.fl-gun .saat { display: block; font-weight: 500; font-size: 17px; }
.fl-gun .yer { display: block; margin-top: 14px; color: var(--soluk); font-size: 16px; }

.fl-sayac { display: flex; justify-content: center; gap: clamp(6px, 3.5vw, 24px); margin: 0; padding: 0; list-style: none; font-variant-numeric: tabular-nums lining-nums; }
.fl-sayac li { flex: 0 1 72px; min-width: 0; }
.fl-sayac b { display: block; font: 400 clamp(34px, 11vw, 44px)/1.12 var(--f-isim); font-variation-settings: 'opsz' 96; color: var(--yazi); }
.fl-sayac span { display: block; margin-top: 4px; color: var(--soluk); font-size: 15px; }
.fl-sayac-bitti { margin: 0; font: 400 26px/1.3 var(--f-isim); }

.fl-program { list-style: none; margin: 0 auto; padding: 0; max-width: 360px; text-align: left; }
.fl-program li { display: grid; grid-template-columns: 70px 1fr; gap: 14px; padding: 14px 0; }
.fl-program li + li { border-top: 1px solid var(--cizgi); }
.fl-program time { font: 400 22px/1.3 var(--f-isim); font-variant-numeric: lining-nums tabular-nums; color: var(--vurgu); }
.p-kina .fl-program time, .p-antrasit .fl-program time, .p-lacivert .fl-program time, .p-gece .fl-program time, .p-mezun .fl-program time, .p-komur .fl-program time { color: var(--vurgu); }
.fl-program strong { display: block; font-weight: 600; font-size: 16.5px; line-height: 1.4; padding-top: 3px; }
.fl-program span { display: block; color: var(--soluk); font-size: 15px; line-height: 1.5; margin-top: 2px; }

.fl-mekan-ad { margin: 0; font: 400 26px/1.25 var(--f-isim); font-variation-settings: 'opsz' 48; }
.fl-adres { margin: 8px auto 0; max-width: 30ch; color: var(--soluk); }
.fl-dugmeler { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 24px; }
.fl-dugme { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--vurgu);
  background: var(--vurgu); color: var(--vurgu-yazi); font-weight: 600; font-size: 15.5px; text-decoration: none; cursor: pointer; }
.fl-dugme.ikincil { background: transparent; color: var(--yazi); border-color: var(--cizgi); }
.fl-dugme svg { width: 18px; height: 18px; flex: none; }
.fl-dugme.tam { width: 100%; }

/* LCV */
.fl-lcv-not { margin: -8px 0 22px; color: var(--soluk); font-size: 15.5px; }
.fl-form { display: grid; gap: 16px; max-width: 360px; margin: 0 auto; text-align: left; }
.fl-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.fl-secim { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 4px; border-radius: 999px; background: var(--zemin2); }
.fl-secim label { position: relative; }
.fl-secim input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.fl-secim span { display: flex; align-items: center; justify-content: center; min-height: 46px; border-radius: 999px; font-weight: 600; font-size: 15.5px; color: var(--soluk); transition: background .2s, color .2s; }
.fl-secim input:checked + span { background: var(--zemin); color: var(--yazi); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.fl-secim input:focus-visible + span { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.fl-form label.etk, .fl-kisi-etk { display: block; margin-bottom: 6px; font-weight: 500; font-size: 15px; color: var(--soluk); }
.fl-form input[type="text"], .fl-form textarea { width: 100%; min-height: 50px; padding: 12px 16px; border-radius: 14px; border: 1px solid var(--cizgi); background: var(--zemin2); font-size: 16px; }
.fl-form textarea { min-height: 88px; resize: vertical; }
.fl-form input[aria-invalid="true"] { border-color: #b3261e; }
.fl-hata { margin: 6px 0 0; color: #b3261e; font-size: 15px; }
.p-kina .fl-hata, .p-antrasit .fl-hata, .p-lacivert .fl-hata, .p-gece .fl-hata, .p-mezun .fl-hata, .p-komur .fl-hata { color: #ffb4a8; }
.fl-kisi { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px; border-radius: 999px; background: var(--zemin2); }
.fl-kisi button { width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--zemin); color: var(--yazi); font-size: 22px; line-height: 1; cursor: pointer; box-shadow: 0 1px 3px rgba(0, 0, 0, .1); }
.fl-kisi output { font: 400 24px/1.2 var(--f-isim); font-variant-numeric: lining-nums; }
.fl-tamam { max-width: 360px; margin: 0 auto; }
.fl-tamam .tes { margin: 0 0 6px; font: 400 26px/1.3 var(--f-isim); }
.fl-tamam p { margin: 0 0 18px; color: var(--soluk); }

/* Kapanış */
.fl-kapanis-metin { margin: 0 auto; max-width: 30ch; font: 350 22px/1.5 var(--f-isim); font-variation-settings: 'opsz' 24, 'SOFT' 50; }
.fl-imza { margin: 18px 0 0; font: 400 30px/1.2 var(--f-isim); font-variation-settings: 'opsz' 72; }
.fl-paylas { margin-top: 26px; display: flex; justify-content: center; }
.fl-davetko { padding: 26px 0 6px; text-align: center; }
.fl-davetko a { color: rgba(255, 250, 240, .85); font-size: 14.5px; text-decoration: none; }
.fl-davetko a:hover { text-decoration: underline; }

/* Görünce belir: yalnız opacity + 6 px */
.fl-belir { opacity: 0; transform: translateY(6px); transition: opacity .5s ease, transform .5s ease; }
.fl-belir.gorundu { opacity: 1; transform: none; }

@media (max-width: 359px) {
  .fl-icerik { padding-left: 10px; padding-right: 10px; } .fl-b { padding-left: 16px; padding-right: 16px; }
  .fl-sayac { gap: 10px; } .fl-sayac li { min-width: 52px; } .fl-sayac b { font-size: 36px; }
  .fl-gun .tam { font-size: 32px; }
  .fl-detay { padding: 0 16px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fl-yazi > *, .fl-alt, .fl-belir, .fl-yazi::before, .fl-harf { transition: none !important; }
  .fl-belir { opacity: 1; transform: none; }
}

/* ---------- 2 Kasım-d: yeni davetiyeler (bilek güreşi, halay, takı yağmuru/kuyruğu, kına mumları) ----------
   Düz (eğik olmayan) isim fontları: film.font = playfair | cormorant | bodoni | sans. & işareti de düz. */
.fl-f-playfair { --f-isim: 'Playfair Display', Georgia, 'Times New Roman', serif; }
.fl-f-cormorant { --f-isim: 'Cormorant Garamond', Georgia, 'Times New Roman', serif; }
.fl-f-bodoni { --f-isim: 'Bodoni Moda', Georgia, 'Times New Roman', serif; }
.fl-f-sans { --f-isim: 'Manrope', system-ui, sans-serif; }
[class*="fl-f-"] .fl-ad, [class*="fl-f-"] .fl-baslik, [class*="fl-f-"] .fl-imza, [class*="fl-f-"] .fl-gun .tam, [class*="fl-f-"] .fl-mekan-ad, [class*="fl-f-"] .fl-sayac b { font-variation-settings: normal; font-weight: 600; letter-spacing: 0; }
[class*="fl-f-"] .fl-metin, [class*="fl-f-"] .fl-kapanis-metin { font-variation-settings: normal; font-weight: 500; }
[class*="fl-f-"] .fl-ad .ve { font-style: normal; font-weight: inherit; }
.fl-f-bodoni .fl-ad { font-weight: 700; }
.fl-f-cormorant .fl-ad { font-size: var(--ad-boy, clamp(38px, 12.4cqw, 52px)); line-height: 1.1; }
.fl-f-cormorant .fl-metin, .fl-f-cormorant .fl-kapanis-metin { font-size: 23px; }
.fl-f-sans .fl-ad { font-weight: 800; letter-spacing: -.02em; }
/* "Save The Date" başlığı: kalın, düz; altında tarih, sonra isimler */
.fl-manset { margin: 0; font: 800 clamp(40px, 13.2cqw, 58px)/1.08 var(--f-isim); letter-spacing: -.01em; }
.fl-nokta { margin: .32em 0 .5em; font: 600 clamp(20px, 6.4cqw, 27px)/1.2 var(--f-metin); letter-spacing: .12em; font-variant-numeric: lining-nums tabular-nums; }
.fl-mansetli .fl-ad { font-size: var(--ad-boy, clamp(26px, 8.6cqw, 36px)); font-weight: 500; }
.fl-ust-alt { margin: .5em 0 0; }
/* Şaka satırı: kalın sans, isimlerin üstünde */
.fl-espri { margin: 0 0 .5em; font: 800 clamp(19px, 6cqw, 26px)/1.22 var(--f-metin); letter-spacing: -.005em; text-wrap: balance; }
.fl-esprili .fl-tarih { margin-top: .35em; }
/* "devam" zemininde son kare biraz bulanık + karartılmış (koyu sahne, açık yazı): film.arka = { bul, kar } */
body.fl-arka-ayar .fl-arka img { filter: blur(var(--arka-bul, 0px)); inset: -6%; width: 112%; height: 112%; }
body.fl-arka-ayar .fl-arka::after { display: block; background: rgba(10, 8, 8, var(--arka-kar, 0)); }
/* Açık yazılı "devam" sayfası: form kutuları koyu zemin üstünde yarı saydam */
.fl-devam.yazi-acik .fl-form input[type="text"], .fl-devam.yazi-acik .fl-form textarea, .fl-devam.yazi-acik .fl-secim, .fl-devam.yazi-acik .fl-kisi { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .26); }
.fl-devam.yazi-acik .fl-secim input:checked + span, .fl-devam.yazi-acik .fl-kisi button { background: rgba(255, 255, 255, .24); color: var(--yazi); box-shadow: none; }
.fl-devam.yazi-acik .fl-dugme.ikincil { border-color: rgba(255, 255, 255, .4); }
.fl-devam.yazi-acik .fl-b + .fl-b { border-top-color: rgba(255, 255, 255, .22); }
.fl-devam.yazi-acik .fl-icerik { text-shadow: 0 1px 10px rgba(0, 0, 0, .25); }
