*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  --bg:#fbf9f4;--paper:#fff;--ink:#2b2924;--muted:#7b766b;--accent:#a8894f;--line:rgba(168,137,79,.35);
  --f-name:'Cormorant Garamond',Georgia,serif;--f-head:'Cormorant Garamond',Georgia,serif;--f-body:'Jost',system-ui,sans-serif;
  background:var(--bg);color:var(--ink);font-family:var(--f-body);font-weight:300;line-height:1.6;
  min-height:100vh;overflow-x:hidden;
}
body:not(.opened){overflow:hidden;height:100vh}

/* ---------- Kapak ---------- */
.cover{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:28px;text-align:center;
  background:var(--bg);transition:transform 1s cubic-bezier(.7,0,.2,1),opacity 1s}
.opened .cover{transform:translateY(-100%);opacity:.6}
.instant .cover{transition:none}
.cover-in{max-width:420px;width:100%;animation:rise 1.2s ease both}
.kicker{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--accent);font-weight:400}
.orn{color:var(--accent);width:180px;max-width:70%;margin:18px auto}
.orn svg{display:block;width:100%;height:auto}
.names{font-family:var(--f-name);font-weight:400;font-size:clamp(3rem,15vw,4.6rem);line-height:1;display:flex;flex-direction:column;align-items:center;gap:.08em}
.names i{font-style:italic;font-size:.5em;color:var(--accent)}
.names.sm{font-size:clamp(2.4rem,11vw,3.4rem);margin-top:10px}
.cover-date{margin-top:22px;letter-spacing:.18em;text-transform:uppercase;font-size:.85rem;color:var(--muted)}
.open-btn{margin-top:34px;font:inherit;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);
  background:none;border:1px solid var(--line);padding:14px 30px;border-radius:999px;cursor:pointer;transition:.3s;animation:pulse 2.6s ease-in-out infinite}
.cover-custom{padding:0;display:block;overflow:hidden}
.names.one{gap:0}
.open-btn:hover{background:var(--accent);color:var(--paper);border-color:var(--accent)}

/* ---------- İçerik ---------- */
.content{max-width:520px;margin:0 auto;padding:40px 22px 30px;text-align:center;position:relative;z-index:1}
.blk{padding:56px 6px;border-bottom:1px solid var(--line)}
.blk:last-of-type{border-bottom:0}
.message{font-family:var(--f-head);font-size:1.3rem;font-style:italic;line-height:1.55;max-width:400px;margin:0 auto}
.families{margin-top:28px;display:grid;gap:4px;font-size:.92rem;color:var(--muted)}
.date-row{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:20px}
.dr-day{font-family:var(--f-name);font-size:5.4rem;line-height:1;padding:0 18px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.dr-side{width:90px;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.time{margin-top:14px;font-family:var(--f-head);font-size:1.4rem}
.count{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:30px auto 26px;max-width:360px}
.count div{border:1px solid var(--line);border-radius:10px;padding:12px 0;background:var(--paper)}
.count b{display:block;font-family:var(--f-name);font-size:1.9rem;font-weight:500;line-height:1.1}
.count small{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.count .done{grid-column:1/-1;font-family:var(--f-head);font-size:1.3rem;font-style:italic}
h3{font-family:var(--f-head);font-weight:500;font-size:2rem;line-height:1.2;margin-top:12px}
.venue h3{margin-top:0}
.addr{color:var(--muted);margin:10px auto 26px;max-width:320px}
.muted{color:var(--muted);margin:8px auto 24px;max-width:340px}
.btn{display:inline-block;font:inherit;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
  color:var(--paper);background:var(--accent);border:1px solid var(--accent);padding:14px 28px;border-radius:999px;cursor:pointer;transition:.25s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
form{display:grid;gap:10px;max-width:360px;margin:0 auto;text-align:left}
input,select,textarea{font:inherit;font-weight:400;font-size:16px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:13px 14px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice input{position:absolute;opacity:0;width:1px;height:1px}
.choice span{display:block;text-align:center;padding:12px 6px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:var(--paper);font-size:.92rem;transition:.2s}
.choice input:checked+span{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
form .btn{margin-top:6px;width:100%}
.sign{padding:50px 0 20px}
.sig{font-family:var(--f-name);font-size:2.2rem;font-style:italic}
.credit{display:inline-block;margin-top:40px;font-size:.72rem;letter-spacing:.06em;color:var(--muted);text-decoration:none;opacity:.8}
.credit:hover{opacity:1;text-decoration:underline}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);width:min(92vw,380px);background:var(--ink);color:var(--bg);
  padding:14px 18px;border-radius:12px;font-size:.9rem;text-align:center;opacity:0;pointer-events:none;transition:.35s;z-index:40}
.toast.show{opacity:1;transform:translate(-50%,0)}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
.jump .reveal{transition:none}
.blk{scroll-margin-top:10px}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 var(--line)}50%{box-shadow:0 0 0 8px transparent}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ================= TEMA: Klasik Beyaz ================= */
.t-klasik .cover::before{content:"";position:absolute;inset:16px;border:1px solid var(--line);pointer-events:none}
.t-klasik .cover::after{content:"";position:absolute;inset:22px;border:1px solid var(--line);pointer-events:none}

/* ================= TEMA: Gece Mavisi ================= */
.t-gece{--bg:#0f1a2e;--paper:rgba(255,255,255,.05);--ink:#f2ead8;--muted:#aab3c5;--accent:#d8b36a;--line:rgba(216,179,106,.3);
  --f-name:'Playfair Display',Georgia,serif;--f-head:'Playfair Display',Georgia,serif;
  background:radial-gradient(120% 80% at 50% 0%,#1d2c4b 0%,#0f1a2e 60%) fixed,#0f1a2e}
.t-gece .cover{background:radial-gradient(90% 70% at 50% 30%,#1f3157 0%,#0f1a2e 70%)}
.t-gece .btn{color:#0f1a2e}
.t-gece .choice input:checked+span{color:#0f1a2e}
.t-gece input,.t-gece select,.t-gece textarea{background:rgba(255,255,255,.06)}
.t-gece select option{color:#111}
.t-gece .names span{background:linear-gradient(180deg,#fff3d6,#d8b36a);-webkit-background-clip:text;background-clip:text;color:transparent}
.t-gece .blk{border-bottom:0;margin:18px 0;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03);backdrop-filter:blur(2px)}
.sky{position:fixed;inset:0;z-index:25;pointer-events:none}
.opened .sky{z-index:0}
.sky i{position:absolute;background:#fff6dd;border-radius:50%;opacity:.25;animation:tw 4s ease-in-out infinite}
@keyframes tw{50%{opacity:.95}}

/* ================= TEMA: Bahar (nişan) ================= */
.t-bahar{--bg:#fbf1ee;--paper:#fffaf8;--ink:#4a3733;--muted:#957a74;--accent:#c98b86;--line:rgba(201,139,134,.35);
  --f-name:'Great Vibes',cursive;--f-head:'Lora',Georgia,serif}
.t-bahar .cover{background:radial-gradient(60% 40% at 15% 15%,#f7d9d3 0%,transparent 70%),radial-gradient(55% 40% at 90% 85%,#f3e2cf 0%,transparent 70%),var(--bg)}
.t-bahar .names{font-size:clamp(3.6rem,18vw,5.4rem);gap:0}
.t-bahar .names.sm{font-size:clamp(3rem,14vw,4.2rem)}
.t-bahar .names i{font-family:'Lora',serif;font-size:.36em;margin:.2em 0}
.t-bahar .dr-day{font-family:'Lora',serif;font-weight:400}
.t-bahar .count b{font-family:'Lora',serif}
.t-bahar .sig{font-size:2.8rem;font-style:normal}
.t-bahar .blk{border-bottom:0;background:var(--paper);border-radius:28px;margin:16px 0;box-shadow:0 10px 30px -18px rgba(150,90,80,.35)}

/* ================= TEMA: Kına Gecesi ================= */
.t-kina{--bg:#4a1420;--paper:rgba(255,255,255,.06);--ink:#f6e7d0;--muted:#d6b9a4;--accent:#d9ae5f;--line:rgba(217,174,95,.38);
  --f-name:'Marcellus',Georgia,serif;--f-head:'Marcellus',Georgia,serif;
  background:repeating-conic-gradient(from 45deg,rgba(217,174,95,.045) 0 25%,transparent 0 50%) 0 0/34px 34px,linear-gradient(#4a1420,#5c1a28)}
.t-kina .cover{background:repeating-conic-gradient(from 45deg,rgba(217,174,95,.06) 0 25%,transparent 0 50%) 0 0/34px 34px,radial-gradient(80% 60% at 50% 40%,#6e2232,#3f101a)}
.t-kina .cover-in{border:1px solid var(--line);border-radius:200px 200px 18px 18px;padding:70px 24px 44px;background:rgba(63,16,26,.55)}
.t-kina .names{font-size:clamp(2.8rem,13vw,4rem)}
.t-kina .names i{font-style:normal}
.t-kina .btn,.t-kina .choice input:checked+span{color:#3f101a}
.t-kina .open-btn,.t-kina .btn.ghost,.t-gece .btn.ghost{color:var(--ink)}
.t-kina select option{color:#111}
.t-kina .blk{border:1px solid var(--line);border-radius:160px 160px 16px 16px;margin:20px 0;padding-top:70px;background:rgba(63,16,26,.45)}
.t-kina .blk.rsvp,.t-kina .blk.date{border-radius:16px;padding-top:50px}

/* Tasarıma özel iç sayfa kabı */
.content-custom{max-width:none;padding:0;text-align:center}
.content-custom .reveal{transition-duration:1s}
