/* DavetStore ortak davetiye stilleri — önizleme ve yayın aynı dosyayı kullanır.
   Tüm yazı ölçüleri em'dir; motor (invite-engine.js) her sahnenin taban punto değerini yazı alanına sığacak şekilde hesaplar. */
.ds-invite{--ease:cubic-bezier(.22,1,.36,1);--ease-door:cubic-bezier(.62,.02,.26,1);--acilis:2000ms;--paper:#efe6d6;--ink:#3f3529;--foil:#b99251;position:relative;width:100%;height:100%;overflow:hidden;background:#15110d;color:var(--ink);isolation:isolate;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:pan-y;outline:none;font-family:var(--f-govde,Jost,sans-serif)}
.ds-invite[data-mode=full]{touch-action:none}
.ds-invite *{box-sizing:border-box}
.ds-stage{position:absolute;overflow:hidden}
.ds-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform-origin:50% 55%;transition:transform 1.6s var(--ease),filter 1.2s var(--ease);will-change:transform}
.ds-invite[data-contain=true]::before{content:"";position:absolute;inset:-40px;background:inherit;background-image:var(--bgimg,none);filter:blur(30px) brightness(.55);z-index:-1}
.ds-invite[data-open=false] .ds-bg{transform:scale(1.08);filter:blur(7px) brightness(.78)}
.ds-invite[data-acilis=kapi][data-open=false] .ds-bg{filter:brightness(.9)}
.ds-invite[data-open=opening] .ds-bg{transform:scale(1.035);filter:none;transition-duration:var(--acilis)}
.ds-invite[data-open=true] .ds-bg{transform:scale(1.035) translateY(calc(var(--derinlik,0) * -.32%));filter:none}

/* ---------- Açılış katmanı ---------- */
.ds-cover{position:absolute;inset:0;z-index:5;pointer-events:none}
.ds-invite[data-open=false] .ds-cover{pointer-events:auto}
.ds-invite[data-open=true] .ds-cover{visibility:hidden}
.ds-cstage{position:absolute;perspective:1600px;perspective-origin:50% 50%;overflow:hidden}
.ds-open{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;padding:0;cursor:pointer;display:grid;place-items:center;color:inherit;font:inherit}
.ds-open:focus-visible{outline:none}.ds-open:focus-visible .ds-seal,.ds-open:focus-visible .ds-open-hint{outline:2px solid #fff;outline-offset:3px}
.ds-open-hint{position:absolute;left:50%;bottom:13%;transform:translateX(-50%);white-space:nowrap;font:500 calc(var(--sw,360px)*.032)/1 var(--f-govde);letter-spacing:.16em;text-transform:uppercase;color:#fffaf0;background:rgba(20,16,12,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.28);border-radius:100px;padding:.9em 1.4em;animation:ds-breathe 2.6s ease-in-out infinite}
.ds-invite[data-open=opening] .ds-open-hint{opacity:0;animation:none;transition:opacity .3s}
/* Mum mühür: CSS ile, tema vurgu renginde; baş harfler müşteri verisinden gelir */
.ds-seal{position:relative;width:calc(var(--sw,360px)*.2);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--foil) 55%,#fff) 0 8%,var(--foil) 34%,color-mix(in srgb,var(--foil) 62%,#2a1c0c) 78%,color-mix(in srgb,var(--foil) 40%,#1a1006) 100%);box-shadow:0 .6em 1.4em rgba(0,0,0,.35),inset 0 0 0 calc(var(--sw,360px)*.012) color-mix(in srgb,var(--foil) 75%,#000),inset 0 0 calc(var(--sw,360px)*.03) rgba(0,0,0,.35);transition:transform .5s var(--ease),opacity .45s ease,filter .45s;z-index:2}
.ds-seal::before{content:"";position:absolute;inset:14%;border-radius:50%;border:1px dashed color-mix(in srgb,var(--foil) 40%,#fff);opacity:.55}
.ds-seal b{font:400 calc(var(--sw,360px)*.075)/1 var(--f-isim);color:color-mix(in srgb,var(--foil) 30%,#fff8e6);text-shadow:0 1px 0 rgba(0,0,0,.35)}
.ds-invite[data-open=false] .ds-seal{animation:ds-pulse 2.6s ease-in-out infinite}
.ds-invite[data-open=opening] .ds-seal{transform:scale(1.18) rotate(-8deg);opacity:0;filter:blur(3px);transition-duration:calc(var(--acilis)*.22)}
/* Kapı: kapalı görsel ortadan ikiye bölünür, menteşeden döner */
.ds-door{position:absolute;top:0;height:100%;width:50%;background-size:200% 100%;backface-visibility:hidden;transition:transform var(--acilis) var(--ease-door),opacity calc(var(--acilis)*.4) linear calc(var(--acilis)*.55);will-change:transform}
.ds-door-l{left:0;background-position:left center;transform-origin:left center;box-shadow:inset -1px 0 0 rgba(0,0,0,.18)}
.ds-door-r{right:0;background-position:right center;transform-origin:right center;box-shadow:inset 1px 0 0 rgba(0,0,0,.18)}
.ds-invite[data-open=opening] .ds-door-l{transform:rotateY(-104deg);opacity:0}
.ds-invite[data-open=opening] .ds-door-r{transform:rotateY(104deg);opacity:0}
/* Zarf: üstten açılan kapak, içinden kart yükselir */
.ds-env{position:absolute;left:14%;width:72%;top:24%;height:42%;transform-style:preserve-3d;transition:transform calc(var(--acilis)*.35) var(--ease) calc(var(--acilis)*.65),opacity calc(var(--acilis)*.3) linear calc(var(--acilis)*.7);filter:drop-shadow(0 calc(var(--sw,360px)*.04) calc(var(--sw,360px)*.05) rgba(0,0,0,.35))}
.ds-env>div{position:absolute;inset:0}
.ds-env-back{background:linear-gradient(160deg,color-mix(in srgb,var(--paper) 82%,#7a6a55),color-mix(in srgb,var(--paper) 90%,#000));border-radius:3px}
.ds-env-card{inset:5% 6% 8%!important;background:linear-gradient(170deg,#fffdf8,var(--paper));border:1px solid color-mix(in srgb,var(--foil) 55%,transparent);box-shadow:inset 0 0 0 calc(var(--sw,360px)*.012) #fffdf8,inset 0 0 0 calc(var(--sw,360px)*.014) color-mix(in srgb,var(--foil) 60%,transparent);transition:transform calc(var(--acilis)*.4) var(--ease) calc(var(--acilis)*.4)}
.ds-env-pocket{background:linear-gradient(175deg,color-mix(in srgb,var(--paper) 96%,#fff),color-mix(in srgb,var(--paper) 88%,#6b5b46));clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);border-radius:3px;box-shadow:inset 0 0 calc(var(--sw,360px)*.08) rgba(90,70,40,.12)}
.ds-env-flap{height:62%!important;bottom:auto!important;background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 92%,#fff),color-mix(in srgb,var(--paper) 84%,#5b4a36));clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transition:transform calc(var(--acilis)*.36) var(--ease) calc(var(--acilis)*.14),z-index 0s linear calc(var(--acilis)*.32);z-index:3}
.ds-cover[data-tur=zarf] .ds-seal{width:calc(var(--sw,360px)*.16)}
.ds-invite[data-open=opening] .ds-env-flap{transform:rotateX(178deg);z-index:0}
.ds-invite[data-open=opening] .ds-env-card{transform:translateY(-38%)}
.ds-invite[data-open=opening] .ds-env{transform:translateY(6%) scale(1.12);opacity:0}
/* Gatefold: iki kanat dış kenarlardan açılır */
.ds-wing{position:absolute;top:0;height:100%;width:50.2%;background:linear-gradient(100deg,color-mix(in srgb,var(--paper) 94%,#fff),color-mix(in srgb,var(--paper) 86%,#5d5546));transition:transform var(--acilis) var(--ease-door),opacity calc(var(--acilis)*.3) linear calc(var(--acilis)*.68);backface-visibility:hidden;overflow:hidden}
.ds-wing i{position:absolute;inset:6%;border:1px solid color-mix(in srgb,var(--foil) 70%,transparent);box-shadow:inset 0 0 0 calc(var(--sw,360px)*.012) transparent,inset 0 0 0 calc(var(--sw,360px)*.014) color-mix(in srgb,var(--foil) 35%,transparent);background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--foil) 18%,transparent) 0 1px,transparent 1.5px) 0 0/calc(var(--sw,360px)*.06) calc(var(--sw,360px)*.06)}
.ds-wing-l{left:0;transform-origin:left center;box-shadow:inset -6px 0 14px -8px rgba(0,0,0,.35)}
.ds-wing-r{right:0;transform-origin:right center;background:linear-gradient(260deg,color-mix(in srgb,var(--paper) 94%,#fff),color-mix(in srgb,var(--paper) 86%,#5d5546));box-shadow:inset 6px 0 14px -8px rgba(0,0,0,.35)}
.ds-wing-l i{right:0}.ds-wing-r i{left:0}
.ds-invite[data-open=opening] .ds-wing-l{transform:rotateY(-112deg);opacity:0}
.ds-invite[data-open=opening] .ds-wing-r{transform:rotateY(112deg);opacity:0}
/* Perde: kumaş katlı iki panel yanlara toplanır */
.ds-curtain{position:absolute;top:0;height:100%;width:51%;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--paper) 70%,#000) 0 4%,color-mix(in srgb,var(--paper) 96%,#fff) 7%,color-mix(in srgb,var(--paper) 78%,#000) 11%);transition:transform var(--acilis) var(--ease),opacity calc(var(--acilis)*.3) linear calc(var(--acilis)*.7);box-shadow:0 0 30px rgba(0,0,0,.4)}
.ds-curtain-l{left:0;transform-origin:left top}.ds-curtain-r{right:0;transform-origin:right top}
.ds-valance{position:absolute;left:0;right:0;top:0;height:7%;background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 70%,#000),var(--paper));border-bottom:2px solid var(--foil);transition:transform calc(var(--acilis)*.5) var(--ease) calc(var(--acilis)*.5)}
.ds-invite[data-open=opening] .ds-curtain-l{transform:translateX(-82%) scaleX(.55) skewY(-2deg);opacity:0}
.ds-invite[data-open=opening] .ds-curtain-r{transform:translateX(82%) scaleX(.55) skewY(2deg);opacity:0}
.ds-invite[data-open=opening] .ds-valance{transform:translateY(-100%)}
/* Çözülme ve video */
.ds-veil{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(10px) brightness(.8);transform:scale(1.1);transition:opacity var(--acilis) ease,transform var(--acilis) var(--ease),filter var(--acilis)}
.ds-invite[data-open=opening] .ds-veil{opacity:0;transform:scale(1);filter:none}
.ds-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ds-cover[data-tur=video] .ds-seal{display:none}

/* ---------- Sahneler ---------- */
.ds-scenes{position:absolute;inset:0;z-index:2}
.ds-scene{position:absolute;inset:0;visibility:hidden;pointer-events:none}
.ds-scene.is-active{visibility:visible;pointer-events:none}
.ds-scene.is-leaving{visibility:visible;opacity:0;filter:blur(6px);transform:translateY(-1.5%);transition:opacity .38s ease,filter .38s ease,transform .38s ease}
.ds-box{position:absolute;display:flex;flex-direction:column;justify-content:center;pointer-events:auto}
.ds-invite[data-dikey=ust] .ds-box{justify-content:flex-start}.ds-invite[data-dikey=alt] .ds-box{justify-content:flex-end}
.ds-copy{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.32em;width:100%;line-height:1.2}
.ds-invite[data-hizalama=sol] .ds-copy{align-items:flex-start;text-align:left}.ds-invite[data-hizalama=sag] .ds-copy{align-items:flex-end;text-align:right}
.ds-copy>*{margin:0;max-width:100%;flex:none;overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}
.ds-scene[data-duzen=panel] .ds-box{background:color-mix(in srgb,var(--paper) 93%,transparent);backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--foil) 55%,transparent);box-shadow:0 1.4em 3em rgba(30,22,10,.28),inset 0 0 0 .35em color-mix(in srgb,var(--paper) 93%,transparent),inset 0 0 0 calc(.35em + 1px) color-mix(in srgb,var(--foil) 40%,transparent);border-radius:4px;padding:7% 8%}
.ds-scene[data-duzen=panel].is-active .ds-box{animation:ds-card-in .8s var(--ease) both}
.ds-t{color:var(--ink)}
.ds-t[data-rol=etiket]{font:600 .5em/1.35 var(--f-govde);letter-spacing:.24em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 82%,var(--foil))}
.ds-t[data-rol=isim]{font:400 2.05em/1.08 var(--f-isim);letter-spacing:0;white-space:normal}
.ds-invite[data-isim-tur=el-yazisi] .ds-t[data-rol=isim]{font-size:2.45em;line-height:1.12}
.ds-invite[data-isim-tur=baslik] .ds-t[data-rol=isim]{font-size:1.55em;letter-spacing:.06em}
.ds-t[data-rol=ve]{font:italic 400 .95em/1 var(--f-baslik);color:var(--foil)}
.ds-rule{display:block;width:24%;height:1px;margin:.45em 0;background:linear-gradient(90deg,transparent,var(--foil),transparent)}
.ds-t[data-rol=satir]{font:500 .9em/1.25 var(--f-baslik);letter-spacing:.05em}
.ds-t[data-rol=mekanAdi]{font:italic 500 .92em/1.25 var(--f-baslik)}
.ds-t[data-rol=baslik]{font:600 .56em/1.3 var(--f-baslik);letter-spacing:.3em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 70%,var(--foil));padding-bottom:.55em;margin-bottom:.35em;background:linear-gradient(90deg,transparent,var(--foil),transparent) 50% 100%/38% 1px no-repeat}
.ds-t[data-rol=hitap]{font:400 1.35em/1.15 var(--f-isim)}
.ds-t[data-rol=govde]{font:500 1em/1.38 var(--f-baslik)}
.ds-t[data-rol=kucuk]{font:400 .6em/1.45 var(--f-govde);letter-spacing:.02em}
.ds-t[data-rol=imza]{font:400 1.2em/1.2 var(--f-isim);color:color-mix(in srgb,var(--ink) 85%,var(--foil));margin-top:.2em}
.ds-t[data-rol=gunAdi]{font:600 .52em/1 var(--f-govde);letter-spacing:.3em;text-transform:uppercase}
.ds-t[data-rol=gunBuyuk]{font:400 3.3em/.95 var(--f-baslik);letter-spacing:-.01em;color:var(--ink)}
.ds-t[data-rol=ay]{font:italic 500 1.1em/1.1 var(--f-baslik)}
.ds-t[data-rol=saat]{font:500 .58em/1.3 var(--f-govde);letter-spacing:.2em;text-transform:uppercase}
.ds-t[data-rol=adres]{font:400 .62em/1.45 var(--f-govde)}
.ds-t[data-rol=isimKucuk]{font:400 1.45em/1.15 var(--f-isim)}
.ds-brand-mark{position:absolute;z-index:4;top:var(--brand-top-px,77%);right:calc(var(--brand-right-px,12px) + env(safe-area-inset-right,0px));width:var(--brand-width-px,min(16%,82px));height:auto;max-height:32px;object-fit:contain;object-position:right center;opacity:.9;filter:drop-shadow(0 1px 2px rgba(35,27,17,.2));pointer-events:none;transition:opacity .35s ease}
.ds-invite:not([data-open=true]) .ds-brand-mark{visibility:hidden;opacity:0}
.ds-t.is-sample,.ds-row.is-sample{opacity:.88}
.ds-row{display:grid;grid-template-columns:auto 1fr;gap:.6em;align-items:baseline;width:100%;font:500 .82em/1.3 var(--f-baslik);text-align:left;padding:.28em 0;border-bottom:1px dotted color-mix(in srgb,var(--foil) 60%,transparent)}
.ds-row:not(:has(time)){grid-template-columns:1fr;text-align:center}
.ds-row time{font:600 .78em/1.3 var(--f-govde);letter-spacing:.08em;color:color-mix(in srgb,var(--ink) 75%,var(--foil))}
.ds-countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:.35em;width:100%;margin:.35em 0}
.ds-cd{display:flex;flex-direction:column;align-items:center;padding:.35em 0;border-top:1px solid color-mix(in srgb,var(--foil) 55%,transparent);border-bottom:1px solid color-mix(in srgb,var(--foil) 55%,transparent)}
.ds-cd b{font:500 1.15em/1 var(--f-baslik);font-variant-numeric:tabular-nums lining-nums}.ds-cd small{font:600 .36em/1.6 var(--f-govde);letter-spacing:.2em;text-transform:uppercase}
.ds-countdown[data-bitti=true]{display:none}
.ds-action{display:inline-flex;align-items:center;justify-content:center;gap:.4em;font:600 .5em/1 var(--f-govde);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:color-mix(in srgb,var(--paper) 70%,transparent);border:1px solid var(--foil);border-radius:100px;padding:1.1em 1.8em;cursor:pointer;text-decoration:none;margin-top:.35em;transition:background .25s,transform .25s}
.ds-action:hover{background:color-mix(in srgb,var(--paper) 95%,transparent);transform:translateY(-1px)}
.ds-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ds-ghost{border-color:transparent;background:none}
.ds-invite[data-mode=full] .ds-action{min-height:44px}
/* Katılım formu */
.ds-rsvp{display:flex;flex-direction:column;gap:.5em;width:100%;font-size:max(14px,.7em);user-select:text;-webkit-user-select:text}
.ds-rsvp input:not([type=radio]){width:100%;font:400 max(16px,1em)/1.2 var(--f-govde);color:var(--ink);background:rgba(255,255,255,.55);border:1px solid color-mix(in srgb,var(--foil) 60%,transparent);border-radius:3px;padding:.65em .8em}
.ds-invite[data-mode=embed] .ds-rsvp input:not([type=radio]){font-size:max(16px,1em)}
.ds-choice{display:grid;grid-template-columns:1fr 1fr;gap:.4em}
.ds-choice label{position:relative;display:block;cursor:pointer}.ds-choice input{position:absolute;opacity:0;inset:0}
.ds-choice span{display:block;text-align:center;padding:.75em .3em;border:1px solid color-mix(in srgb,var(--foil) 60%,transparent);border-radius:3px;font:500 max(14px,.85em)/1.1 var(--f-govde)}
.ds-choice input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}.ds-choice input:focus-visible+span{outline:2px solid var(--foil);outline-offset:2px}
.ds-inline{display:flex;align-items:center;justify-content:space-between;gap:.6em;font:500 max(14px,.85em)/1.2 var(--f-govde)}.ds-inline input{max-width:5.5em;font-size:max(16px,1em)}
.ds-rsvp .ds-action{font-size:max(14px,.72em);align-self:center}
.ds-msg{min-height:1.2em;font:400 max(14px,.8em)/1.35 var(--f-govde);text-align:center;margin:0}
.ds-fine{font:400 max(14px,.7em)/1.35 var(--f-govde);color:inherit;opacity:.75;text-align:center}
.ds-sheet{position:absolute;left:8%;right:8%;bottom:12%;z-index:9;display:flex;flex-direction:column;gap:.5em;padding:1em;background:color-mix(in srgb,var(--paper) 96%,transparent);border:1px solid var(--foil);border-radius:8px;box-shadow:0 1em 3em rgba(0,0,0,.35);font-size:calc(var(--sw,360px)*.06);animation:ds-card-in .5s var(--ease) both}
.ds-sheet .ds-action{margin:0;width:100%}

/* Metin animasyon aileleri (tema: metinAnimasyonu) */
.ds-scene.is-active .ds-copy>*{animation:ds-yuksel 1s var(--ease) calc(var(--i,0) * 110ms + 120ms) both}
.ds-invite[data-anim=netles] .ds-scene.is-active .ds-copy>*{animation-name:ds-netles;animation-duration:1.1s}
.ds-invite[data-anim=maske] .ds-scene.is-active .ds-copy>*{animation-name:ds-maske;animation-duration:1s}
.ds-invite[data-anim=harf] .ds-scene.is-active .ds-t[data-rol=isim]{animation:none}
.ds-invite[data-anim=harf] .ds-scene.is-active .ds-ch{display:inline-block;white-space:pre;animation:ds-harf .7s var(--ease) calc(var(--i,0) * 110ms + var(--k,0) * 45ms + 150ms) both}
.ds-scene.no-anim .ds-copy>*,.ds-scene.no-anim .ds-ch,.ds-scene.no-anim .ds-box{animation:none!important}
.ds-invite[data-open=true] .ds-scene[data-scene=kapak].is-active .ds-rule{animation-name:ds-cizgi}

/* Dekoratif katman (kısa süreli, tekrarlanmaz) */
.ds-fx{position:absolute;inset:0;pointer-events:none;z-index:1;transition:opacity 1.5s}.ds-fx.is-done{opacity:0}
.ds-p{position:absolute;top:-6%;left:var(--x);width:calc(var(--sw,360px)*.028*var(--s));aspect-ratio:1.6/1;border-radius:60% 0 60% 0;background:linear-gradient(135deg,#fff 0%,color-mix(in srgb,var(--paper) 70%,#f2b8b8) 100%);opacity:0;animation:ds-yaprak var(--t) linear var(--d) 1 forwards}
.ds-p-isilti{top:calc(var(--x) * .9);width:calc(var(--sw,360px)*.014*var(--s));aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fffbe8 0 30%,color-mix(in srgb,var(--foil) 60%,transparent) 60%,transparent 70%);animation:ds-isilti 2.4s ease-in-out var(--d) 3 both}

/* ---------- Arayüz ---------- */
.ds-ui{position:absolute;inset:0;z-index:6;pointer-events:none;font-family:var(--f-govde)}
.ds-ui>*{pointer-events:auto}
.ds-nav{position:absolute;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:4px;border-radius:100px;background:rgba(20,16,12,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);transition:opacity .4s}
.ds-invite[data-open=false] .ds-nav,.ds-invite[data-open=opening] .ds-nav,.ds-invite[data-open=false] .ds-replay,.ds-invite[data-open=opening] .ds-replay{opacity:0;pointer-events:none}
.ds-nav button{border:0;background:transparent;color:#fff;cursor:pointer}
.ds-prev,.ds-next{width:40px;height:40px;border-radius:50%;font-size:24px;line-height:1;display:grid;place-items:center}
.ds-prev:disabled,.ds-next:disabled{opacity:.3;cursor:default}
.ds-dots{display:flex}.ds-dots button{width:22px;height:40px;position:relative;padding:0}
.ds-dots button::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;background:rgba(255,255,255,.5);transition:transform .3s,background .3s}
.ds-dots button[aria-current]::after{background:#fff;transform:scale(1.5)}
.ds-count{position:absolute;left:12px;top:calc(10px + env(safe-area-inset-top));font:600 11px/1 var(--f-govde);letter-spacing:.14em;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none}
.ds-replay{position:absolute;right:8px;top:calc(4px + env(safe-area-inset-top));width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(20,16,12,.35);color:#fff;font-size:18px;cursor:pointer;transition:opacity .4s}
.ds-hint{position:absolute;left:50%;bottom:calc(60px + env(safe-area-inset-bottom));transform:translateX(-50%);font:600 10px/1 var(--f-govde);letter-spacing:.22em;text-transform:uppercase;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none;animation:ds-hint 2.2s ease-in-out 3 both}
.ds-invite:not([data-open=true]) .ds-hint{display:none}
.ds-badge{position:absolute;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:7;font:600 10px/1 Jost,sans-serif;letter-spacing:.24em;color:#fff;background:rgba(20,16,12,.45);padding:6px 10px;border-radius:100px;pointer-events:none}
.ds-invite[data-mode=embed] .ds-badge{display:none}
.ds-invite[data-mode=embed] .ds-nav{bottom:6px;gap:0;padding:2px}.ds-invite[data-mode=embed] .ds-prev,.ds-invite[data-mode=embed] .ds-next{width:34px;height:34px;font-size:20px}.ds-invite[data-mode=embed] .ds-dots button{width:16px;height:34px}
.ds-invite[data-mode=embed] .ds-hint{bottom:46px;font-size:8px}.ds-invite[data-mode=embed] .ds-replay{width:32px;height:32px;font-size:14px;right:6px;top:6px}.ds-invite[data-mode=embed] .ds-count{font-size:9px;left:10px;top:12px}

@keyframes ds-yuksel{from{opacity:0;transform:translateY(1.1em) scale(.97);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes ds-netles{from{opacity:0;transform:scale(1.05);filter:blur(16px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes ds-maske{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(.4em)}to{opacity:1;clip-path:inset(0 0 -20% 0);transform:none}}
@keyframes ds-harf{from{opacity:0;transform:translateY(.35em);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes ds-cizgi{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes ds-card-in{from{opacity:0;transform:translateY(4%) scale(.96)}to{opacity:1;transform:none}}
@keyframes ds-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes ds-breathe{0%,100%{opacity:.85}50%{opacity:1}}
@keyframes ds-glow{0%{inset:0 48%;opacity:0}35%{opacity:1}100%{inset:0 -20%;opacity:0}}
@keyframes ds-hint{0%,100%{opacity:0;transform:translate(-50%,0)}40%,60%{opacity:.9;transform:translate(-50%,-6px)}}
@keyframes ds-yaprak{0%{opacity:0;transform:translate(0,0) rotate(0)}10%{opacity:.9}100%{opacity:0;transform:translate(calc(var(--s)*40px),118vh) rotate(calc(var(--s)*540deg))}}
@keyframes ds-isilti{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:.95;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.ds-invite,.ds-invite *,.ds-invite *::before,.ds-invite *::after{animation:none!important;transition:none!important}.ds-invite[data-open=false] .ds-bg{transform:none}}

.ds-invite.is-measuring .ds-copy,.ds-invite.is-measuring .ds-copy>*,.ds-invite.is-measuring .ds-ch,.ds-invite.is-measuring .ds-box,.ds-invite.is-measuring .ds-scene{animation:none!important;transform:none!important;transition:none!important}
.ds-count{background:rgba(20,16,12,.38);padding:5px 8px;border-radius:100px;text-shadow:none}

/* All scenes stay on the artwork safe area. Long scenes scroll inside that
   same area instead of creating a second opaque card. */
.ds-scene{background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--paper)}
.ds-scene[data-duzen=kagit] .ds-box{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.ds-scene[data-duzen=panel] .ds-box{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.ds-box.is-scrollable{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;justify-content:flex-start;padding-block:4%;scrollbar-width:thin}
.ds-box.is-scrollable .ds-copy{padding-bottom:4%}
.ds-invite[data-open=true] .ds-bg,.ds-invite[data-open=true] .ds-bg2{filter:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.ds-invite[data-open=true] .ds-bg{will-change:auto}
.ds-hint{display:none;bottom:calc(var(--ds-nav-height,56px) + 14px + env(safe-area-inset-bottom));z-index:5}
.ds-invite.has-scrollable-scene[data-open=true] .ds-hint{display:block}
.ds-invite[data-navigated=true] .ds-hint{display:none!important}
.ds-row{grid-template-columns:minmax(4.2em,auto) 1fr}
.ds-row:not(:has(time)){grid-template-columns:minmax(4.2em,auto) 1fr}
.ds-row .ds-time-empty{display:block;min-width:4.2em}
.ds-scene[data-scene=katilim] .ds-rsvp{gap:.28em;font-size:max(14px,.68em)}
.ds-scene[data-scene=katilim] .ds-rsvp input:not([type=radio]){padding:.42em .65em}
.ds-scene[data-scene=katilim] .ds-choice span{padding:.55em .35em}
.ds-invite[data-mode=full][data-open=true].has-scrollable-scene .ds-hint{bottom:calc(24px + var(--ds-nav-height) + env(safe-area-inset-bottom))}
.ds-invite[data-mode=embed][data-open=true].has-scrollable-scene .ds-hint{bottom:calc(20px + var(--ds-nav-height))}
.ds-invite[data-mode=embed] .ds-nav{max-width:98%}
.ds-invite[data-tema=marble-gate] .ds-t[data-rol=govde],
.ds-invite[data-tema=sage-vellum-whisper] .ds-t[data-rol=govde]{text-wrap:pretty;line-height:1.38}
.ds-invite[data-tema=aurelia] .ds-copy .ds-t[data-rol=mekanAdi],
.ds-invite[data-tema=ivory-rose-letter] .ds-copy .ds-t[data-rol=mekanAdi]{text-transform:none;letter-spacing:normal;font-weight:600}

/* Sahneye özel arka plan (tema.sahneArkaplanlari) ve şeffaf dekoratif katmanlar (tema.katmanlar) */
.ds-bg2{opacity:0;transition:opacity .9s var(--ease),transform 1.6s var(--ease)}.ds-bg2.is-on{opacity:1}
.ds-invite[data-open=false] .ds-bg2{opacity:0}
.ds-layers{position:absolute;inset:0;pointer-events:none;z-index:1}
.ds-layer{position:absolute;height:auto;transition:opacity .8s var(--ease);will-change:transform}.ds-layer.is-off{opacity:0}
.ds-invite[data-open=false] .ds-layer{opacity:0}
.ds-invite[data-open=true] .ds-layer[data-anim=suzul]{animation:ds-suzul 7s ease-in-out infinite alternate}
.ds-invite[data-open=true] .ds-layer[data-anim=nefes]{animation:ds-nefes 5s ease-in-out infinite alternate}
.ds-invite[data-open=true] .ds-layer[data-anim=kelebek]{animation:ds-kelebek 9s ease-in-out 1 both}
@keyframes ds-suzul{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-2.5%) rotate(1.5deg)}}
@keyframes ds-nefes{from{transform:scale(1);opacity:.85}to{transform:scale(1.03);opacity:1}}
@keyframes ds-kelebek{0%{transform:translate(-40%,30%) rotate(-12deg) scale(.7);opacity:0}15%{opacity:1}50%{transform:translate(10%,-10%) rotate(6deg) scale(1)}100%{transform:translate(0,0) rotate(0) scale(1);opacity:1}}

/* Misafirin telefonunda tarih, adres ve davet bilgileri için alt sınır. */
.ds-invite[data-mode=full] .ds-t:is([data-rol=adres],[data-rol=kucuk],[data-rol=saat],[data-rol=satir],[data-rol=mekanAdi]){font-size:max(14px,.88em)}
.ds-invite[data-mode=full] .ds-t[data-rol=govde]{font-size:max(16px,1em)}
.ds-invite[data-mode=full] .ds-t:is([data-rol=etiket],[data-rol=baslik],[data-rol=gunAdi]){font-size:max(11px,.56em)}
.ds-invite[data-mode=full] .ds-row{font-size:max(14px,.85em)}
.ds-invite .ds-box.is-scrollable{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;justify-content:flex-start}
.ds-box.is-scrollable .ds-copy{flex:none}
.ds-box.is-scrollable .ds-copy>*{overflow-wrap:normal;word-break:normal;hyphens:none}


/* Role-based type scale: expressive names keep their script face while body copy
   remains readable and uses ordinary sentence casing. */
.ds-t[data-rol=govde]{font-family:var(--f-govde);font-size:1em;font-weight:400;line-height:1.42;letter-spacing:0;text-transform:none;text-wrap:pretty}
.ds-t[data-rol=kucuk]{font-size:.78em;line-height:1.42;letter-spacing:0;text-transform:none}
.ds-t[data-rol=isimKucuk]{font-size:1.55em;line-height:1.28;letter-spacing:.015em}
.ds-t[data-rol=isimKucuk]+.ds-t[data-rol=ve]{margin-block:.2em}
.ds-t[data-rol=isim]{line-height:1.22;letter-spacing:.012em;text-wrap:pretty}
.ds-t[data-rol=mekanAdi]{line-height:1.36;letter-spacing:.025em;text-wrap:pretty}
.ds-scene[data-scene=davet] .ds-box{padding:5% 7%}
.ds-scene[data-scene=davet] .ds-copy{gap:.48em}
.ds-scene[data-scene=kapanis] .ds-copy{gap:.22em}
.ds-scene[data-scene=program] .ds-row{padding:.2em 0;line-height:1.25}
.ds-scene[data-scene=katilim] .ds-box{padding:5% 7%}
.ds-scene[data-scene=katilim] .ds-rsvp{gap:.42em;font-size:max(14px,.68em)}
.ds-t[data-rol=isimKucuk]{overflow:visible;max-width:100%}

/* Theme-specific panel treatments preserve the illustrated safe area. */
.ds-invite[data-tema=aurelia] .ds-scene[data-duzen=panel] .ds-box{background:linear-gradient(145deg,rgba(247,239,222,.92),rgba(238,224,198,.82));border:1px solid rgba(185,146,81,.62);box-shadow:0 .9em 2em rgba(48,35,18,.2),inset 0 0 0 .25em rgba(255,249,235,.62);border-radius:2px;padding:5.5% 7%}
.ds-invite[data-tema=marble-gate] .ds-scene[data-duzen=panel] .ds-box{background:linear-gradient(180deg,rgba(250,246,237,.94),rgba(240,231,213,.88));border:1px solid rgba(163,129,75,.56);box-shadow:0 .8em 2em rgba(42,31,18,.22),inset 0 0 0 .25em rgba(255,252,245,.72);border-radius:0;padding:5% 7%}
.ds-invite[data-tema=marble-gate] .ds-t[data-rol=baslik]{font-family:var(--f-govde);font-size:.68em;letter-spacing:.12em;text-transform:none}
.ds-invite[data-tema=marble-gate] .ds-t[data-rol=govde],.ds-invite[data-tema=marble-gate] .ds-t[data-rol=adres]{font-family:var(--f-govde);letter-spacing:0;text-transform:none}
.ds-invite[data-tema=aurelia] .ds-t[data-rol=govde],.ds-invite[data-tema=aurelia] .ds-t[data-rol=adres]{font-family:var(--f-govde);letter-spacing:0;text-transform:none}
.ds-t[data-rol=isimKucuk]{text-wrap:pretty;white-space:normal}
.ds-t[data-rol=adres],.ds-t[data-rol=kucuk],.ds-t[data-rol=satir]{overflow-wrap:break-word;word-break:normal;hyphens:none}
.ds-box .ds-copy{flex:none;min-width:0}
.ds-copy>*{min-width:0;max-width:100%}
.ds-copy .ds-action{white-space:normal;letter-spacing:.045em;line-height:1.25}
.ds-invite .ds-rsvp .ds-action{font-size:max(14px,.9em);line-height:1.25;max-width:100%;padding:.45em .35em;text-transform:none;letter-spacing:normal}
.ds-invite .ds-rsvp .ds-msg,.ds-invite .ds-scene[data-scene=katilim] [data-rol=kucuk]{font-size:max(14px,.8em)}
.ds-invite[data-mode=embed] .ds-scene[data-scene=program] .ds-box{container-type:inline-size}
@container (max-width:170px){
 .ds-invite .ds-copy .ds-row,.ds-invite .ds-copy .ds-row:not(:has(time)){grid-template-columns:1fr;gap:.12em;text-align:start}
 .ds-invite .ds-copy .ds-time-empty{display:none}
}
.ds-invite[data-mode=full] .ds-copy .ds-action{font-size:max(14px,.75em);padding:.55em .8em}
.ds-rsvp .ds-choice{grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5em),1fr))}
.ds-rsvp .ds-inline{flex-wrap:wrap}
.ds-inline input{min-width:0}
.ds-copy .ds-row,.ds-copy .ds-row:not(:has(time)){grid-template-columns:3.4em minmax(0,1fr);text-align:left}
.ds-copy .ds-row .ds-time-empty{min-width:0}
.ds-copy [data-rol=isim],.ds-copy [data-rol=isimKucuk]{text-wrap:balance;letter-spacing:normal}

/* Shared artwork-first layout: no opaque card is introduced over a scene image. */
.ds-scene{background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--paper)}
.ds-scene[data-duzen=kagit] .ds-box,.ds-scene[data-duzen=panel] .ds-box{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.ds-box.is-scrollable{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;justify-content:flex-start;padding-block:4%;scrollbar-width:thin}
.ds-box.is-scrollable .ds-copy{padding-bottom:4%}
.ds-invite[data-open=true] .ds-bg,.ds-invite[data-open=true] .ds-bg2{filter:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.ds-invite[data-open=true] .ds-bg{will-change:auto}
.ds-hint{display:none;bottom:calc(var(--ds-nav-height,56px) + 14px + env(safe-area-inset-bottom));z-index:5}
.ds-invite[data-mode=embed] .ds-hint{bottom:calc(var(--ds-nav-height,46px) + 14px + env(safe-area-inset-bottom))}
.ds-invite.has-scrollable-scene[data-open=true] .ds-hint{display:block}
.ds-invite[data-navigated=true] .ds-hint{display:none!important}
.ds-row{grid-template-columns:minmax(4.2em,auto) 1fr}
.ds-row:not(:has(time)){grid-template-columns:minmax(4.2em,auto) 1fr}
.ds-row .ds-time-empty{display:block;min-width:4.2em}
.ds-scene[data-scene=katilim] .ds-rsvp{gap:.28em;font-size:max(14px,.68em)}
.ds-scene[data-scene=katilim] .ds-rsvp input:not([type=radio]){padding:.42em .65em}
.ds-scene[data-scene=katilim] .ds-choice span{padding:.55em .35em}

/* Artwork-first compositions: the existing vellum, floral paper and stone stay
   visible. RSVP fields are small controls inside each theme's safe area, never
   an opaque full-scene card or an internally scrolling panel. */
.ds-invite[data-tema=sage-vellum-whisper] .ds-scene[data-scene=davet] .ds-copy{gap:.58em}
.ds-invite[data-tema=sage-vellum-whisper] .ds-scene[data-scene=davet] .ds-t[data-rol=govde]{line-height:1.5}
.ds-invite[data-tema=aurelia] .ds-scene[data-scene=davet] .ds-copy{gap:.58em}
.ds-invite[data-tema=marble-gate] .ds-scene[data-scene=kapanis] .ds-copy{gap:.34em}
.ds-invite[data-tema=marble-gate] .ds-scene[data-scene=kapanis] .ds-t[data-rol=isimKucuk]{line-height:1.18}
.ds-invite[data-tema=ivory-rose-letter] .ds-scene[data-scene=kapak] .ds-copy,
.ds-invite[data-tema=ivory-rose-letter] .ds-scene[data-scene=kapanis] .ds-copy{gap:.34em}

.ds-scene[data-scene=katilim] .ds-box,
.ds-scene[data-scene=katilim] .ds-scene[data-duzen=panel] .ds-box{
  background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.ds-scene[data-scene=katilim] .ds-copy{gap:.2em}
.ds-scene[data-scene=katilim] .ds-copy>[data-rol=baslik]{font-size:max(14px,.72em);padding-bottom:.34em;margin-bottom:.12em;letter-spacing:.16em}
.ds-rsvp{
  --rsvp-line:color-mix(in srgb,var(--foil) 68%,transparent);
  display:flex;flex-direction:column;align-items:stretch;
  gap:0;width:100%;min-width:0;font-size:14px;line-height:1.2;user-select:text;-webkit-user-select:text;
}
.ds-rsvp-step{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;min-width:0}
.ds-rsvp-step[hidden]{display:none!important}
.ds-rsvp-step .ds-choice,.ds-rsvp-step .ds-inline,.ds-rsvp-step .ds-rsvp-prompt,.ds-rsvp-step .ds-rsvp-review,
.ds-rsvp-step .ds-primary,.ds-rsvp-step .ds-msg,.ds-rsvp-step .ds-fine{flex:none}
.ds-rsvp input:not([type=radio]){
  width:100%;min-width:0;min-height:44px;padding:7px 9px;
  font:400 16px/1.2 var(--f-govde);color:var(--ink);
  background:rgba(255,253,247,.76);border:1px solid var(--rsvp-line);border-radius:4px;
}
.ds-rsvp input::placeholder,.ds-rsvp textarea::placeholder{color:color-mix(in srgb,var(--ink) 64%,#fff);opacity:1}
.ds-choice{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;width:100%}
.ds-choice label{position:relative;min-width:0;min-height:44px;display:flex}
.ds-choice input{position:absolute;opacity:0;inset:0}
.ds-choice span{
  width:100%;min-height:44px;display:grid;place-items:center;text-align:center;
  padding:5px 6px;border:1px solid var(--rsvp-line);border-radius:4px;
  background:rgba(255,253,247,.42);font:500 14px/1.12 var(--f-govde);
  overflow-wrap:normal;word-break:normal;hyphens:none;
}
.ds-choice input:checked+span{background:color-mix(in srgb,var(--paper) 80%,var(--foil));color:var(--ink);border-color:var(--foil)}
.ds-choice input:focus-visible+span{outline:2px solid var(--foil);outline-offset:2px}
.ds-rsvp .ds-inline{
  display:grid;grid-template-columns:minmax(0,1fr) 4.2em;gap:8px;
  align-items:center;min-height:44px;font:500 14px/1.2 var(--f-govde);
}
.ds-rsvp .ds-inline input{max-width:none;min-height:44px;text-align:center}
.ds-rsvp-prompt{margin:0;text-align:center;font:400 14px/1.35 var(--f-govde)}
.ds-rsvp-review{margin:0;padding:6px 8px;border-block:1px solid var(--rsvp-line);text-align:center;font:500 14px/1.3 var(--f-govde);overflow-wrap:break-word;word-break:normal;hyphens:none;text-wrap:pretty}
.ds-rsvp .ds-primary{
  align-self:stretch;justify-self:stretch;min-height:44px;margin:0;padding:7px 10px;
  border-radius:100px;font:600 14px/1.2 var(--f-govde);letter-spacing:.015em;
}
.ds-rsvp .ds-msg{min-height:0;margin:0;text-align:center;font:400 14px/1.2 var(--f-govde)}
.ds-rsvp .ds-fine{align-self:center;display:inline-flex;align-items:center;justify-content:center;min-height:44px;font:400 14px/1.2 var(--f-govde);text-underline-offset:2px}
.ds-rsvp .ds-rsvp-next,.ds-rsvp .ds-rsvp-back{min-height:44px;padding:8px 14px;font-size:14px;letter-spacing:.02em;text-transform:none}
.ds-rsvp .ds-rsvp-back{align-self:center;border-color:transparent;background:transparent}
.ds-rsvp .ds-rsvp-validation{min-height:0;margin:0;text-align:center;font:400 14px/1.25 var(--f-govde)}
.ds-rsvp .ds-primary:disabled{opacity:.58;cursor:not-allowed;filter:saturate(.65);transform:none}
.ds-map-frame{
  container-type:inline-size;width:100%;max-width:390px;aspect-ratio:16/9;flex:none;
  position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--foil) 70%,transparent);
  border-radius:5px;background:color-mix(in srgb,var(--paper) 92%,#fff);
  box-shadow:0 6px 20px rgba(35,27,17,.12);touch-action:pan-x pan-y;
}
.ds-map-iframe{display:block;width:100%;height:100%;border:0;touch-action:pan-x pan-y}
.ds-map-fallback{
  position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:10px;
  text-align:center;color:var(--ink);font:400 14px/1.35 var(--f-govde);
  background:color-mix(in srgb,var(--paper) 82%,transparent);
}
.ds-map-iframe:not([hidden])~.ds-map-fallback{inset:auto 0 0;min-height:20px;padding:2px 6px;background:rgba(255,253,247,.84);font-size:12px}
.ds-invite[data-mode=full] .ds-scene[data-scene=mekan] .ds-map-fallback{font-size:14px}
.ds-invite[data-tema=sage-vellum-whisper] .ds-map-frame{border-radius:2px}
.ds-invite[data-tema=marble-gate] .ds-map-frame{border-radius:0;box-shadow:0 5px 16px rgba(36,29,20,.16)}
/* Harita yedek mesajı çerçeveyi kırpmaz; içeriğe göre büyür. */
.ds-map-frame:is([data-map-state=unconfigured],[data-map-state=timeout],[data-map-state=error]){aspect-ratio:auto;min-height:0}
.ds-map-frame:is([data-map-state=unconfigured],[data-map-state=timeout],[data-map-state=error]) .ds-map-fallback{position:relative;inset:auto;display:block;padding:10px;min-height:0}
/* Saati olmayan program sayfasında boş saat sütunu ayrılmaz. */
.ds-copy:not(:has(time)) .ds-row{grid-template-columns:1fr}
.ds-copy:not(:has(time)) .ds-row .ds-time-empty{display:none}
/* Kapanış: kapanış sözü ile isim grubu arasında nefes payı; isimler dengeli satır aralığıyla (tüm temalar). */
.ds-scene[data-scene=kapanis] .ds-copy{gap:.3em}
.ds-scene[data-scene=kapanis] .ds-t[data-rol=govde]{margin-bottom:.95em}
.ds-scene[data-scene=kapanis] .ds-t[data-rol=govde]::after{content:"";display:block;width:2.4em;height:1px;margin:.75em auto 0;background:color-mix(in srgb,var(--foil) 70%,transparent)}
.ds-scene[data-scene=kapanis] .ds-t[data-rol=isimKucuk]{line-height:1.3;padding-inline:.15em}
.ds-scene[data-scene=kapanis] .ds-t[data-rol=isimKucuk]+.ds-t[data-rol=ve]{margin-block:.12em}
/* Harita anahtarı yokken: hata kutusu değil, sade bir yönlendirme satırı. */
.ds-map-frame[data-map-state=unconfigured]{background:none;border:0;box-shadow:none}
.ds-map-frame[data-map-state=unconfigured] .ds-map-fallback{background:none;padding:2px 0;font-size:max(14px,.72em);line-height:1.3;opacity:.82}
/* RSVP: kısa seçenekler yan yana sığabildiğinde yan yana; dar kartlarda alt alta. */
.ds-rsvp .ds-choice{grid-template-columns:repeat(auto-fit,minmax(min(100%,6.4em),1fr));gap:6px}
.ds-rsvp .ds-choice span{padding:.7em .25em;min-height:44px;display:flex;align-items:center;justify-content:center}
/* RSVP adım satırları: Geri/İleri ve Düzenle/Kişisel veriler yan yana; dar kartta alt alta. */
.ds-rsvp-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;width:100%}
.ds-rsvp-row>*{flex:1 1 auto;min-width:0}
.ds-rsvp-row .ds-rsvp-back{flex:0 1 auto}
.ds-rsvp .ds-inline{flex-wrap:wrap;justify-content:center;gap:8px}
.ds-rsvp .ds-inline input{width:3.8em;flex:none;max-width:100%}
.ds-rsvp .ds-inline[hidden]{display:none!important}
/* RSVP form kartı (yalnızca kart çerçevesine sığmayan küçük ekranlarda): temanın kâğıt rengi, ince yaldız kenar. */
.ds-invite .ds-scene[data-scene=katilim][data-form-karti="1"] .ds-box{background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 96%,#fff),color-mix(in srgb,var(--paper) 90%,transparent));border:1px solid color-mix(in srgb,var(--foil) 60%,transparent);box-shadow:0 14px 34px rgba(30,22,10,.26),inset 0 0 0 4px color-mix(in srgb,var(--paper) 92%,#fff),inset 0 0 0 5px color-mix(in srgb,var(--foil) 38%,transparent);border-radius:6px;padding:16px 16px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
/* Çok sayfalı davetiyede gezinme ekrana sığar: noktalar sıkışır, gerekirse yatay kayar; etkin nokta ortalanır. */
.ds-nav{max-width:calc(100% - 20px)}
.ds-dots{min-width:0;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.ds-dots::-webkit-scrollbar{display:none}
.ds-dots button{flex:none}
.ds-dots[data-cok=true] button{width:16px}
/* Eşik: görselde boş panel yok; yazılar açık bahçe üstünde okunsun diye her sahnede çizilmiş kâğıt kart. Kart yazı bloğunu (.ds-copy) box-shadow ile sarar (ölçümü etkilemez); içerik kısaysa kart da kısa kalır. */
.ds-invite[data-tema=esik] .ds-scene .ds-copy{border-radius:.4em;background:color-mix(in srgb,var(--paper) 92%,transparent);box-shadow:0 0 0 .85em color-mix(in srgb,var(--paper) 92%,transparent),0 0 0 calc(.85em + 1px) color-mix(in srgb,var(--foil) 55%,transparent),0 1.2em 2.6em .85em rgba(40,30,12,.22)}

.ds-music{position:absolute;right:54px;top:calc(4px + env(safe-area-inset-top));width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(20,16,12,.35);color:#fff;font-size:18px;cursor:pointer;transition:opacity .4s,background .25s}
.ds-music[hidden]{display:none}
.ds-music[data-on=false]{opacity:.75;text-decoration:line-through}
.ds-music[data-on=true]{background:rgba(194,160,98,.55)}
.ds-invite[data-open=false] .ds-music,.ds-invite[data-open=opening] .ds-music{opacity:0;pointer-events:none}
.ds-invite[data-mode=embed] .ds-music{display:none}

/* Başlık plakası (tema.baslikPlaka) — Aurelia V3: sahne başlığı gerçek metin olarak plakanın içinde. */
.ds-invite[data-tema=aurelia-v3] .ds-t[data-rol=baslik],.ds-invite[data-tema=winter-gala] .ds-t[data-rol=baslik]{display:none}
.ds-plaka{display:none}
.ds-invite[data-tema=aurelia-v3] .ds-plaka{display:flex;position:absolute;z-index:6;pointer-events:none;left:calc(var(--sx,0px) + var(--sw,100%)*.17);top:calc(var(--sy,0px) + var(--sh,100%)*.15);width:calc(var(--sw,100%)*.66);aspect-ratio:283/138;background:url('stage/aurelia-v3-baslik.webp') center/100% 100% no-repeat;align-items:center;justify-content:center;filter:drop-shadow(0 4px 4px rgba(67,43,15,.14))}
.ds-invite[data-tema=aurelia-v3] .ds-plaka>span{font:italic 500 clamp(15px,calc(var(--sw,360px)*.056),30px)/1.05 'Cormorant Garamond',Georgia,serif;letter-spacing:-.02em;color:#3f3529;text-align:center;max-width:68%;overflow-wrap:normal;word-break:keep-all}
.ds-invite[data-tema=aurelia-v3] .ds-scene.is-active .ds-plaka{animation:ds-plaka-in .5s var(--ease,cubic-bezier(.22,1,.36,1)) both}
@keyframes ds-plaka-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.ds-invite[data-tema=aurelia-v3] .ds-scene.is-active .ds-plaka{animation:none}}

.ds-aileler{display:grid;grid-template-columns:1fr 1fr;gap:.6em 1em;width:100%;margin:.5em 0;align-items:start}.ds-aile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1em;min-width:0}.ds-aile-ad{font-size:.92em;line-height:1.25;overflow-wrap:anywhere}.ds-aile-soyad{font-size:.92em;font-weight:600;line-height:1.25;overflow-wrap:anywhere}

.ds-scene .ds-box{translate:0 var(--kayma,0)}.ds-plaka span{white-space:nowrap}
