/* ============================================================
   LarKaePar — invitation card styles (driven by template vars)
   ============================================================ */
.lk-card{
  background:var(--c-bg);color:var(--c-text);font-family:var(--f-body);
  border-radius:14px;overflow:hidden;position:relative;
  box-shadow:0 12px 40px rgba(0,0,0,.18);
}
.lk-card .lk-inner{
  background:var(--c-panel);margin:14px;border-radius:10px;
  padding:34px 26px;text-align:center;
  border:1px solid color-mix(in srgb,var(--c-accent) 35%,transparent);
}
.lk-motif{display:block;margin:0 auto;height:26px;width:auto;max-width:80%}
.lk-greet{font-size:14px;color:var(--c-soft);margin-bottom:10px;font-style:italic}
.lk-title{font-family:var(--f-head);color:var(--c-primary);font-size:20px;
  letter-spacing:.5px;margin:8px 0}
.lk-couple{font-family:var(--f-head);color:var(--c-primary);margin:6px 0}
.lk-couple span{display:block;font-size:30px;line-height:1.15}
.lk-couple em{display:block;color:var(--c-accent);font-size:20px;font-style:normal;margin:2px 0}
.lk-honoree{font-family:var(--f-head);color:var(--c-primary);font-size:32px;margin:6px 0}
.lk-date{font-weight:600;color:var(--c-text);margin:6px 0 4px;letter-spacing:.3px}
.lk-venue{color:var(--c-text);font-size:15px;line-height:1.4}
.lk-venue span{color:var(--c-soft);font-size:13px}
.lk-note{color:var(--c-soft);font-style:italic;max-width:34ch;margin:14px auto 6px;font-size:14px}
.lk-top,.lk-mid,.lk-bottom{margin:14px 0}

/* ===== STYLE ENGINE shared layers ===== */
.lk-card{position:relative}
.lk-bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.lk-bg svg{width:100%;height:100%;display:block}
.lk-card .lk-inner{position:relative;z-index:1}
.lk-orn{display:block;margin:0 auto;height:22px;width:auto;max-width:70%}
.lk-orn-lg{height:54px}
.lk-rule{height:3px;max-width:60%}
.lk-dv{display:block;margin:0 auto;height:12px;width:auto;max-width:60%;opacity:.85}

/* default inner panel (most frames soften it so the bg pattern shows) */
.lk-inner{background:color-mix(in srgb,var(--c-panel) 88%,transparent)}

/* ====== FRAME dimension (outer border / shape) ====== */
.lk-fr-none .lk-inner{border:none;background:color-mix(in srgb,var(--c-panel) 72%,transparent)}
.lk-fr-hair .lk-inner{border:1px solid color-mix(in srgb,var(--c-accent) 45%,transparent)}
.lk-fr-double .lk-inner{border:1px solid var(--c-accent);outline:1px solid color-mix(in srgb,var(--c-accent) 50%,transparent);outline-offset:3px}
.lk-fr-rules .lk-inner{border:none;border-top:3px solid var(--c-accent);border-bottom:3px solid var(--c-accent);border-radius:0;background:transparent}
.lk-fr-arch .lk-inner{border:1px solid color-mix(in srgb,var(--c-accent) 35%,transparent);border-radius:120px 120px 12px 12px;padding-top:46px}
.lk-fr-ticket{border:2px dashed var(--c-accent)}
.lk-fr-ticket .lk-inner{border:none;background:transparent}
.lk-fr-sidebar .lk-inner{border:none;border-left:6px solid var(--c-primary);border-radius:0 10px 10px 0}
.lk-fr-inset .lk-inner{border:1px solid var(--c-accent);outline:3px solid var(--c-panel);outline-offset:-7px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-accent) 40%,transparent);border-radius:2px}
.lk-fr-band .lk-inner{border:none;border-bottom:7px solid var(--c-primary);border-radius:10px 10px 0 0}
.lk-fr-topbar .lk-inner{border:none;border-top:7px solid var(--c-primary);border-radius:0 0 10px 10px}
.lk-fr-pill .lk-inner{border:none;border-radius:26px;background:color-mix(in srgb,var(--c-panel) 84%,transparent)}
.lk-fr-sharp .lk-inner{border:1px solid var(--c-text);border-radius:0;background:transparent}
.lk-fr-corner .lk-inner{border:none;background:transparent}

/* ====== ALIGN dimension ====== */
.lk-lay-left .lk-inner{text-align:left}
.lk-lay-left .lk-orn,.lk-lay-left .lk-dv{margin:0}
.lk-lay-left .lk-couple em{margin-left:0}
.lk-lay-split .lk-title{display:block;background:var(--c-primary);color:var(--c-bg);
  margin:-6px -10px 10px;padding:8px 4px;letter-spacing:3px;text-transform:uppercase;font-size:12px}

/* ====== TYPE dimension (name typography) ====== */
.lk-ty-serif .lk-title{letter-spacing:.5px}
.lk-ty-upserif .lk-title{text-transform:uppercase;letter-spacing:3px;font-size:13px}
.lk-ty-upserif .lk-couple span,.lk-ty-upserif .lk-honoree{letter-spacing:1px}
.lk-ty-script .lk-couple span{font-size:34px;line-height:1.1}
.lk-ty-script .lk-honoree{font-size:38px;line-height:1.05}
.lk-ty-script .lk-title{font-style:italic;letter-spacing:1px}
.lk-ty-upsans .lk-title{text-transform:uppercase;letter-spacing:4px;font-size:12px;color:var(--c-soft)}
.lk-ty-upsans .lk-couple span,.lk-ty-upsans .lk-honoree{text-transform:uppercase;letter-spacing:2px;font-size:24px}
.lk-ty-bold .lk-couple span,.lk-ty-bold .lk-honoree{text-transform:uppercase;font-weight:700;letter-spacing:-.5px}
.lk-ty-bold .lk-title{text-transform:uppercase;font-weight:700;letter-spacing:2px;font-size:13px;
  background:var(--c-primary);color:var(--c-bg);display:inline-block;padding:5px 14px;border-radius:2px}
.lk-ty-bold .lk-date{text-transform:uppercase;letter-spacing:3px;font-size:12px}
.lk-ty-cond .lk-title{text-transform:uppercase;letter-spacing:5px;font-size:12px}
.lk-ty-cond .lk-couple span,.lk-ty-cond .lk-honoree{text-transform:uppercase;letter-spacing:1px;font-size:23px}
.lk-ty-editorial .lk-inner{padding:42px 22px}
.lk-ty-editorial .lk-title{text-transform:uppercase;letter-spacing:6px;font-size:11px;color:var(--c-soft)}
.lk-ty-editorial .lk-couple span{font-size:38px;line-height:1.04}
.lk-ty-editorial .lk-honoree{font-size:40px;line-height:1.02}
.lk-ty-editorial .lk-couple em{font-size:16px}
.lk-ty-editorial .lk-date{letter-spacing:2px;font-weight:500}

/* gradient/blur readability helper */
.lk-fr-none.lk-ty-script .lk-inner,.lk-fr-pill .lk-inner{backdrop-filter:saturate(1.05)}

/* thumbnail scaling inside gallery */
.thumb .lk-card{box-shadow:none;border-radius:0;height:100%}
.thumb .lk-inner{margin:8px;padding:18px 12px}
.thumb .lk-couple span{font-size:18px}
.thumb .lk-honoree{font-size:20px}
.thumb .lk-title{font-size:12px}
.thumb .lk-note{display:none}
.thumb .lk-date{font-size:11px}
.thumb .lk-venue{font-size:11px}
.thumb .lk-ty-editorial .lk-couple span,.thumb .lk-ty-script .lk-couple span{font-size:22px}
.thumb .lk-ty-editorial .lk-honoree,.thumb .lk-ty-script .lk-honoree{font-size:24px}
.thumb .lk-ty-upsans .lk-couple span,.thumb .lk-ty-upsans .lk-honoree,
.thumb .lk-ty-cond .lk-couple span,.thumb .lk-ty-cond .lk-honoree{font-size:17px}
.thumb .lk-fr-arch .lk-inner{padding-top:30px}
.thumb .lk-orn-lg{height:40px}

/* full invitation page wrapper */
.invite-stage{max-width:480px;margin:30px auto;padding:0 14px}
.countdown{display:flex;gap:12px;justify-content:center;margin:24px 0}
.countdown .cd{background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:12px 14px;min-width:64px;text-align:center}
.countdown .cd b{display:block;font-size:26px;font-family:var(--serif);color:var(--plum)}
.countdown .cd span{font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:1px}
.invite-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:20px 0}
.rsvp-box{background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:24px;margin:24px auto;max-width:480px;box-shadow:var(--shadow)}
.rsvp-choices{display:flex;gap:10px;justify-content:center;margin:14px 0;flex-wrap:wrap}
.rsvp-choices label{border:1.5px solid var(--line);border-radius:999px;padding:9px 18px;
  cursor:pointer;font-weight:600}
.rsvp-choices input{display:none}
.rsvp-choices input:checked+span{color:var(--plum)}
.rsvp-choices label:has(input:checked){border-color:var(--plum);background:rgba(122,31,61,.06)}
.qr-wrap{text-align:center;margin:20px 0}
.qr-wrap >div{display:inline-block;padding:10px;background:#fff;border:1px solid var(--line);border-radius:12px}
.map-embed{border-radius:14px;overflow:hidden;border:1px solid var(--line);margin:20px 0}
.map-embed iframe{width:100%;height:240px;border:0;display:block}
.gallery-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:16px 0}
.gallery-strip img{aspect-ratio:1;object-fit:cover;border-radius:10px}

/* ===== Host dashboard: guest cards + message modal ===== */
.guest-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.guest-card{border:1px solid var(--line);border-radius:14px;padding:14px 15px;background:#fff;
  display:flex;flex-direction:column;gap:10px}
.guest-card .gc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.guest-card .gc-name{font-family:var(--serif);color:var(--plum);font-size:17px;font-weight:600;line-height:1.2}
.guest-card .gc-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink)}
.guest-card .gc-msgbtn{border:1px solid var(--line);background:var(--cream);color:var(--plum);
  font-weight:600;font-size:12px;padding:5px 11px;border-radius:999px;cursor:pointer}
.guest-card .gc-msgbtn:hover{border-color:var(--gold)}
.guest-card .gc-link{border:1.5px solid var(--plum);background:transparent;color:var(--plum);
  font-weight:600;font-size:13px;padding:8px;border-radius:10px;cursor:pointer;width:100%}
.guest-card .gc-link:hover{background:var(--plum);color:#fff}

.lk-modal-ov{position:fixed;inset:0;background:rgba(42,26,32,.5);z-index:100000;
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;transition:opacity .2s ease}
.lk-modal-ov.show{opacity:1}
.lk-modal{background:#fff;border-radius:16px;max-width:440px;width:100%;
  box-shadow:0 20px 60px rgba(0,0,0,.3);transform:translateY(14px);transition:transform .2s ease;
  border-top:4px solid var(--gold);overflow:hidden}
.lk-modal-ov.show .lk-modal{transform:translateY(0)}
.lk-modal-head{display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 6px;font-family:var(--serif)}
.lk-modal-head b{color:var(--plum);font-size:19px}
.lk-modal-x{border:none;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}
.lk-modal-sub{padding:0 18px;color:var(--muted);font-size:13px}
.lk-modal-body{padding:14px 18px 22px;font-size:16px;line-height:1.7;color:var(--ink);
  font-family:'Padauk','Myanmar Text',var(--sans);white-space:normal;word-break:break-word;max-height:50vh;overflow:auto}

@media(max-width:560px){ .guest-cards{grid-template-columns:1fr} }

/* gift registry account-number block */
.gift-acc{margin-top:12px}
.gift-acc .ga-name{font-weight:600;color:var(--plum);margin-bottom:6px}
.gift-acc .ga-row{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.gift-acc .ga-num{font-size:18px;font-weight:700;letter-spacing:.5px;color:var(--ink)}

/* invitation language toggle (Standard/Premium bilingual) */
.inv-lang{display:flex;justify-content:center;gap:0;margin:0 0 14px}
.inv-lang button{border:1px solid var(--line);background:#fff;padding:7px 18px;cursor:pointer;
  font-weight:600;font-size:13px;color:var(--ink)}
.inv-lang button:first-child{border-radius:999px 0 0 999px}
.inv-lang button:last-child{border-radius:0 999px 999px 0;border-left:none}
.inv-lang button.active{background:var(--plum);color:#fff;border-color:var(--plum)}

/* host dashboard: "mark invited" toggle */
.guest-card .gc-inv{border:1.5px solid var(--line);background:#fff;color:var(--ink);
  font-weight:600;font-size:12px;padding:8px 12px;border-radius:10px;cursor:pointer;white-space:nowrap}
.guest-card .gc-inv:hover{border-color:var(--gold)}
.guest-card .gc-inv.on{background:rgba(46,125,82,.12);border-color:var(--ok);color:var(--ok)}

/* ===== animated invitation designs ===== */
@keyframes lk-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.lk-anim .lk-inner>*{opacity:0;animation:lk-rise .6s ease forwards}
.lk-anim .lk-inner>*:nth-child(1){animation-delay:.06s}
.lk-anim .lk-inner>*:nth-child(2){animation-delay:.16s}
.lk-anim .lk-inner>*:nth-child(3){animation-delay:.26s}
.lk-anim .lk-inner>*:nth-child(4){animation-delay:.36s}
.lk-anim .lk-inner>*:nth-child(5){animation-delay:.46s}
.lk-anim .lk-inner>*:nth-child(6){animation-delay:.56s}
.lk-anim .lk-inner>*:nth-child(7){animation-delay:.66s}
.lk-anim .lk-inner>*:nth-child(8){animation-delay:.76s}

/* shimmer: a soft light sweeps across the card */
.lk-anim-shimmer{position:relative;overflow:hidden}
.lk-anim-shimmer::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);
  transform:translateX(-120%);animation:lk-shimmer 3.2s ease-in-out 1s infinite}
@keyframes lk-shimmer{0%{transform:translateX(-120%)}60%,100%{transform:translateX(120%)}}

/* glow: gentle pulsing accent border */
.lk-anim-glow .lk-inner{animation:lk-glow 2.6s ease-in-out infinite}
@keyframes lk-glow{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--c-accent) 40%,transparent)}
  50%{box-shadow:0 0 22px 2px color-mix(in srgb,var(--c-accent) 45%,transparent)}}

/* float: decorative motifs drift gently */
.lk-anim-float .lk-motif,.lk-anim-float .lk-orn,.lk-anim-float .lk-dv{animation:lk-float 4s ease-in-out infinite}
@keyframes lk-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

/* respect reduced-motion */
@media(prefers-reduced-motion:reduce){
  .lk-anim .lk-inner>*{opacity:1;animation:none}
  .lk-anim-shimmer::after,.lk-anim-glow .lk-inner,.lk-anim-float .lk-motif,
  .lk-anim-float .lk-orn,.lk-anim-float .lk-dv{animation:none}
}

/* ============================================================
   EVENT PHOTOS — arched cover, host upload, slideshow, album
   ============================================================ */
/* arched cover photo on the invitation card (Basic + all tiers w/ photos) */
.lk-cover{width:74%;margin:2px auto 12px;aspect-ratio:4/5;overflow:hidden;
  border-radius:1000px 1000px 16px 16px;border:3px solid var(--c-accent);
  box-shadow:0 8px 22px rgba(0,0,0,.16)}
.lk-cover img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .lk-cover{width:62%;margin:0 auto 6px;border-width:2px}
/* keep cover aligned with the text in left/split layouts; tidy double-arch */
.lk-lay-left .lk-cover{margin-left:0}
.lk-fr-arch .lk-cover{margin-top:-4px}

/* host dashboard: photo upload grid */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin:8px 0}
.photo-th{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.photo-th img{width:100%;height:100%;object-fit:cover;display:block}
.photo-x{position:absolute;top:4px;right:4px;width:24px;height:24px;border:none;border-radius:50%;
  background:rgba(42,26,32,.72);color:#fff;font-size:16px;line-height:1;cursor:pointer;display:flex;
  align-items:center;justify-content:center}
.photo-add{display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;
  border:1.5px dashed var(--line);border-radius:12px;padding:14px;color:var(--plum);font-weight:600;
  background:var(--cream);transition:border-color .15s,background .15s}
.photo-add:hover,.photo-add.drag{border-color:var(--gold);background:#fff}
.photo-tip{font-size:12px;color:var(--plum);background:var(--cream);border:1px solid var(--line);
  border-radius:8px;padding:8px 10px;margin:0 0 10px;line-height:1.5}

/* invitation photo sections */
.lk-photos{margin:24px 0}
/* slideshow (Standard) */
.lk-slider{position:relative;max-width:480px;margin:0 auto;border-radius:16px;overflow:hidden;
  border:1px solid var(--line);background:#000}
.lk-slides{position:relative;aspect-ratio:4/3}
.lk-slide{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.lk-slide.on{opacity:1}
.lk-slide img{width:100%;height:100%;object-fit:cover;display:block}
.lk-sl-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border:none;
  border-radius:50%;background:rgba(255,255,255,.85);color:var(--plum);font-size:22px;line-height:1;cursor:pointer}
.lk-sl-nav.prev{left:10px}.lk-sl-nav.next{right:10px}
.lk-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;gap:7px;justify-content:center}
.lk-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer}
.lk-dot.on{background:#fff}
/* album grid (Premium) */
.lk-album{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-width:480px;margin:0 auto}
.lk-alb{padding:0;border:none;border-radius:12px;overflow:hidden;aspect-ratio:1;cursor:pointer;background:none}
.lk-alb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.lk-alb:hover img{transform:scale(1.05)}
/* lightbox */
.lk-lb{position:fixed;inset:0;z-index:100001;background:rgba(10,8,10,.92);display:flex;align-items:center;
  justify-content:center;opacity:0;transition:opacity .2s}
.lk-lb.show{opacity:1}
.lk-lb img{max-width:92vw;max-height:84vh;border-radius:8px;box-shadow:0 12px 50px rgba(0,0,0,.6)}
.lk-lb-x{position:absolute;top:16px;right:18px;width:40px;height:40px;border:none;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;font-size:24px;cursor:pointer}
.lk-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:none;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.lk-lb-nav.prev{left:14px}.lk-lb-nav.next{right:14px}
.lk-lb-count{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#fff;font-size:13px;opacity:.85}
