/* Kencana — gold ledger flagship. Trusted template stylesheet.
   Its identity is the layout, not the palette: every section is a numbered
   ledger entry, flush left or flush right in turn. Nothing here is centred. */

.uk-kencana{
  --kn-cream:#FAF7F2;
  --kn-cream2:#F0EAE0;
  --kn-gold:#C9A46E;
  --kn-gold-dp:#8B6B3A;
  --kn-gold-lt:#E8D5B0;
  --kn-ink:#2C2418;
  --kn-dark:#1A0E05;
  --kn-muted:rgba(44,36,24,.66);
  --kn-line:rgba(201,164,110,.34);
  --kn-hairline:rgba(44,36,24,.12);
  --kn-radius:2px;
  --kn-radius-control:2px;
  --kn-indent:0px;
  --kn-ease:cubic-bezier(.22,.7,.28,1);
  --kn-reveal:.72s;
  --kn-shift:0px;
  --kn-slide:26px;
  --kn-col:min(100% - 36px, 620px);
  min-height:100vh;
  overflow:clip;
  background:var(--kn-cream);
  color:var(--kn-ink);
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:15px;
  line-height:1.82;
}
.uk-kencana *,.uk-kencana *:before,.uk-kencana *:after{box-sizing:border-box}
/* Controls are toggled through the hidden attribute and carry their own
   display rules, so the user-agent rule has to be reinforced here. */
.uk-kencana [hidden]{display:none !important}
.uk-kencana .bdu-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}
.uk-kencana h1,.uk-kencana h2,.uk-kencana h3,.uk-kencana h4{
  font-family:"Playfair Display",Georgia,serif;font-weight:600;line-height:1.16;overflow-wrap:anywhere;
}
.uk-kencana p,.uk-kencana strong,.uk-kencana span,.uk-kencana li,.uk-kencana cite{overflow-wrap:anywhere}
.uk-kn-preline{white-space:pre-line}

/* Palettes ---------------------------------------------------------------- */
.uk-kencana.uk-design-palette-warm{--kn-cream:#FBF4E9;--kn-cream2:#F2E6D3;--kn-gold:#BC8A45;--kn-gold-dp:#8A6128;--kn-gold-lt:#E3C795;--kn-ink:#33281A;--kn-muted:rgba(51,40,26,.66);--kn-line:rgba(188,138,69,.36);--kn-hairline:rgba(51,40,26,.12)}
.uk-kencana.uk-design-palette-romantic{--kn-cream:#FBF3F2;--kn-cream2:#F2E1DE;--kn-gold:#B98A76;--kn-gold-dp:#8C6151;--kn-gold-lt:#E6C7BB;--kn-ink:#3A2A26;--kn-muted:rgba(58,42,38,.66);--kn-line:rgba(185,138,118,.36);--kn-hairline:rgba(58,42,38,.12)}
.uk-kencana.uk-design-palette-sage{--kn-cream:#F6F7F0;--kn-cream2:#E8ECDD;--kn-gold:#8C9460;--kn-gold-dp:#666D40;--kn-gold-lt:#CBD3A8;--kn-ink:#2E3324;--kn-muted:rgba(46,51,36,.66);--kn-line:rgba(140,148,96,.36);--kn-hairline:rgba(46,51,36,.12)}
.uk-kencana.uk-design-palette-midnight{--kn-cream:#14100B;--kn-cream2:#1F1810;--kn-gold:#D6B074;--kn-gold-dp:#A9854B;--kn-gold-lt:#F0DDB8;--kn-ink:#F6EEE0;--kn-muted:rgba(246,238,224,.7);--kn-line:rgba(214,176,116,.4);--kn-hairline:rgba(246,238,224,.16);--kn-dark:#0B0805}

/* Typography variants ----------------------------------------------------- */
.uk-kencana.uk-design-type-classic h1,
.uk-kencana.uk-design-type-classic h2,
.uk-kencana.uk-design-type-classic h3{letter-spacing:.05em}
.uk-kencana.uk-design-type-editorial h1,
.uk-kencana.uk-design-type-editorial h2,
.uk-kencana.uk-design-type-editorial h3{font-style:italic;letter-spacing:-.012em}
.uk-kencana.uk-design-type-modern h1,
.uk-kencana.uk-design-type-modern h2,
.uk-kencana.uk-design-type-modern h3,
.uk-kencana.uk-design-type-modern h4{font-family:"DM Sans",system-ui,sans-serif;font-weight:700;letter-spacing:-.035em}

/* Surface variants. The ledger is square by nature, so the control moves the
   indent of the alternating columns instead of rounding corners. */
.uk-kencana.uk-design-surface-soft{--kn-radius:14px;--kn-radius-control:999px;--kn-indent:0px}
.uk-kencana.uk-design-surface-balanced{--kn-radius:8px;--kn-radius-control:8px;--kn-indent:16px}
.uk-kencana.uk-design-surface-sharp{--kn-radius:0px;--kn-radius-control:0px;--kn-indent:36px}

/* Motion variants. Entries slide in from their own side of the page. */
.uk-kencana.uk-design-motion-soft{--kn-reveal:.95s;--kn-slide:12px}
.uk-kencana.uk-design-motion-cinematic{--kn-reveal:.85s;--kn-slide:48px}
.uk-kencana.uk-design-motion-minimal{--kn-reveal:0s;--kn-slide:0px}

/* Primitives -------------------------------------------------------------- */
.uk-kn-eyebrow{
  margin:0;color:var(--kn-gold-dp);font-size:10px;font-weight:700;line-height:1.6;
  letter-spacing:.3em;text-transform:uppercase;
}
.uk-kn-copy{margin:14px 0 0;max-width:56ch;color:var(--kn-muted);font-size:14px;line-height:1.92}
.uk-kn-lead{margin:14px 0 0;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.3rem,6vw,1.75rem)}

.uk-kn-seal{
  display:inline-grid;place-items:center;width:62px;height:62px;
  border:1px solid var(--kn-gold);border-radius:50%;
  color:var(--kn-gold-dp);font-family:"Playfair Display",Georgia,serif;font-size:14px;letter-spacing:.14em;
}
.uk-kn-seal.is-large{width:88px;height:88px;font-size:18px}

.uk-kn-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 20px;cursor:pointer;text-decoration:none;
  border:1px solid var(--kn-line);border-radius:var(--kn-radius-control);
  background:transparent;color:var(--kn-gold-dp);
  font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  transition:background .25s var(--kn-ease),border-color .25s var(--kn-ease),color .25s var(--kn-ease);
}
.uk-kn-button:hover{border-color:var(--kn-gold);background:rgba(201,164,110,.12)}
.uk-kn-button.is-solid{border-color:var(--kn-gold);background:var(--kn-gold);color:var(--kn-dark)}
.uk-kn-button.is-solid:hover{background:var(--kn-gold-dp);color:var(--kn-cream)}
.uk-kencana :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid var(--kn-gold-dp);outline-offset:3px}

.uk-kn-progress{position:fixed;left:0;top:0;z-index:1100;width:100%;height:2px;pointer-events:none}
.uk-kn-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--kn-gold-lt),var(--kn-gold),var(--kn-gold-dp));transition:width .1s linear}

.uk-kn-toast{
  position:fixed;left:50%;bottom:96px;z-index:1250;transform:translate(-50%,10px);
  opacity:0;pointer-events:none;max-width:min(88vw,340px);
  padding:10px 18px;border-radius:var(--kn-radius);background:var(--kn-dark);color:var(--kn-gold-lt);
  font-size:12px;font-weight:600;text-align:center;
  box-shadow:0 14px 40px rgba(26,14,5,.35);transition:opacity .22s var(--kn-ease),transform .22s var(--kn-ease);
}
.uk-kn-toast.is-show{opacity:1;transform:translate(-50%,0)}

.uk-kn-feedback{
  position:fixed;left:50%;top:64px;z-index:1200;transform:translateX(-50%);
  display:flex;align-items:center;gap:8px;width:min(92vw,520px);
  padding:11px 16px;border:1px solid var(--kn-line);border-radius:var(--kn-radius);
  background:var(--kn-cream);color:var(--kn-ink);font-size:13px;box-shadow:0 12px 34px rgba(26,14,5,.16);
}

/* Reveal: entries arrive from the side they belong to. */
.uk-kn-reveal,.uk-kn-reveal-item{
  opacity:0;transform:translate3d(calc(var(--kn-slide) * -1),0,0);
  transition:opacity var(--kn-reveal) var(--kn-ease),transform var(--kn-reveal) var(--kn-ease);
}
.uk-kn-sec:nth-of-type(even) .uk-kn-reveal,
.uk-kn-sec:nth-of-type(even) .uk-kn-reveal-item{transform:translate3d(var(--kn-slide),0,0)}
.uk-kn-reveal.is-visible,.uk-kn-reveal.is-visible .uk-kn-reveal-item,.uk-kn-reveal-item.is-visible{opacity:1;transform:none}
.uk-kn-reveal.is-visible .uk-kn-reveal-item:nth-child(2){transition-delay:.07s}
.uk-kn-reveal.is-visible .uk-kn-reveal-item:nth-child(3){transition-delay:.14s}
.uk-kn-reveal.is-visible .uk-kn-reveal-item:nth-child(4){transition-delay:.21s}

/* Opening gate ------------------------------------------------------------ */
.uk-kn-gate{
  position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;
  align-items:flex-start;justify-content:flex-end;padding:26px 22px calc(34px + env(safe-area-inset-bottom));
  background:var(--kn-dark);text-align:left;
  transition:opacity .55s var(--kn-ease),visibility .55s;
}
.uk-kn-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.uk-kn-gate-media{position:absolute;inset:0;overflow:hidden}
.uk-kn-gate-media img{width:100%;height:100%;object-fit:cover;object-position:var(--kn-focus-mobile-x,50%) var(--kn-focus-mobile-y,36%)}
.uk-kn-gate-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,14,5,.42),rgba(26,14,5,.72) 52%,rgba(26,14,5,.94))}
.uk-kn-gate-body{position:relative;z-index:2;width:min(100%,460px)}
.uk-kn-gate-body h1{margin:14px 0 0;color:var(--kn-cream);font-size:clamp(2rem,10vw,3rem)}
.uk-kn-gate-body .uk-kn-eyebrow{margin-top:18px;color:var(--kn-gold-lt)}
.uk-kn-gate-body .uk-kn-seal{border-color:var(--kn-gold-lt);color:var(--kn-gold-lt)}
.uk-kn-gate-date{margin:14px 0 0;color:rgba(250,247,242,.72);font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.uk-kn-gate-body .uk-kn-button{margin-top:22px;border-color:var(--kn-gold-lt)}
.uk-kn-gate-body .uk-kn-group-list small{color:rgba(250,247,242,.6)}
.uk-kn-gate-body .uk-kn-group-list strong{color:var(--kn-cream)}
.uk-kn-gate-body .uk-kn-guest{border-color:rgba(232,213,176,.4);background:rgba(26,14,5,.4)}
.uk-kn-gate-body .uk-kn-guest span{color:rgba(250,247,242,.6)}
.uk-kn-gate-body .uk-kn-guest strong{color:var(--kn-cream)}

.uk-kn-guest{margin:20px 0 0;max-width:340px;padding:12px 16px;border:1px solid var(--kn-line);border-radius:var(--kn-radius)}
.uk-kn-guest span{display:block;color:var(--kn-muted);font-size:9px;letter-spacing:.24em;text-transform:uppercase}
.uk-kn-guest strong{display:block;margin-top:4px;font-family:"Playfair Display",Georgia,serif;font-size:18px;font-weight:600;line-height:1.35}

.uk-kn-group-list{display:grid;gap:10px;margin:16px 0 0}
.uk-kn-group-list span{display:grid;gap:2px}
.uk-kn-group-list small{color:var(--kn-muted);font-size:9px;letter-spacing:.22em;text-transform:uppercase}
.uk-kn-group-list strong{font-family:"Playfair Display",Georgia,serif;font-size:18px;font-weight:600}

/* Cover: full-bleed photograph with a gold plate hung off the lower left. */
.uk-kn-cover{position:relative;min-height:100svh;display:grid;align-content:end;background:var(--kn-dark)}
.uk-kn-cover-media{position:absolute;inset:0;overflow:hidden}
.uk-kn-cover-image{width:100%;height:100%;object-fit:cover;object-position:var(--kn-focus-mobile-x,50%) var(--kn-focus-mobile-y,36%)}
.uk-kn-cover-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,14,5,.14),rgba(26,14,5,.62) 56%,rgba(26,14,5,.95))}
.uk-kn-cover-plate{
  position:relative;z-index:2;width:min(calc(100% - 44px),520px);
  margin:0 auto 0 22px;padding:26px 24px 34px;
  border-left:2px solid var(--kn-gold);color:var(--kn-cream);
}
.uk-kn-cover-plate h1{margin:14px 0 0;color:var(--kn-cream);font-size:clamp(2.1rem,10vw,3.2rem)}
.uk-kn-cover-plate .uk-kn-eyebrow{margin-top:18px;color:var(--kn-gold-lt)}
.uk-kn-cover-plate .uk-kn-seal{border-color:var(--kn-gold-lt);color:var(--kn-gold-lt)}
.uk-kn-cover-date{margin:16px 0 0;color:rgba(250,247,242,.74);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.uk-kn-cover-plate .uk-kn-guest{border-color:rgba(232,213,176,.4)}
.uk-kn-cover-plate .uk-kn-guest span{color:rgba(250,247,242,.62)}
.uk-kn-cover-plate .uk-kn-guest strong{color:var(--kn-cream)}
.uk-kn-cover-plate .uk-kn-group-list small{color:rgba(250,247,242,.6)}
.uk-kn-cover-plate .uk-kn-group-list strong{color:var(--kn-cream)}

/* Sections: a numbered ledger, flush left then flush right. Never centred. */
.uk-kn-sec{padding:clamp(46px,10vw,74px) 0;background:var(--kn-cream)}
.uk-kn-sec:nth-of-type(odd){background:var(--kn-cream2)}
.uk-kn-wrap{width:var(--kn-col);margin:0 auto;text-align:left}
.uk-kn-sec:nth-of-type(even) .uk-kn-wrap{text-align:right}

.uk-kn-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px}
.uk-kn-sec:nth-of-type(even) .uk-kn-head{grid-template-columns:minmax(0,1fr) auto}
.uk-kn-sec:nth-of-type(even) .uk-kn-index{order:2}
.uk-kn-index{
  font-family:"Playfair Display",Georgia,serif;font-size:clamp(2.2rem,9vw,3.2rem);line-height:.9;
  color:var(--kn-gold);font-weight:600;
}
.uk-kn-head h2{margin:6px 0 0;font-size:clamp(1.55rem,6.6vw,2.15rem)}
.uk-kn-rule{grid-column:1 / -1;height:1px;margin-top:16px;background:linear-gradient(90deg,var(--kn-gold),var(--kn-hairline))}
.uk-kn-sec:nth-of-type(even) .uk-kn-rule{background:linear-gradient(270deg,var(--kn-gold),var(--kn-hairline))}
.uk-kn-body{margin-top:22px;padding-left:var(--kn-indent)}
.uk-kn-sec:nth-of-type(even) .uk-kn-body{padding-left:0;padding-right:var(--kn-indent)}
.uk-kn-bismillah{margin:0 0 16px;color:var(--kn-gold-dp);font-size:clamp(1.05rem,5vw,1.35rem);line-height:2}
.uk-kn-quote{margin:22px 0 0;max-width:48ch;padding:0 0 0 18px;border-left:2px solid var(--kn-gold)}
.uk-kn-sec:nth-of-type(even) .uk-kn-quote{margin-left:auto;padding:0 18px 0 0;border-left:0;border-right:2px solid var(--kn-gold)}
.uk-kn-quote p{margin:0;font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:clamp(1rem,4.4vw,1.2rem);line-height:1.7}
.uk-kn-quote cite{display:block;margin-top:10px;color:var(--kn-muted);font-size:11px;font-style:normal;letter-spacing:.16em;text-transform:uppercase}

/* The ledger: a key column and a value column, ruled like a programme. */
.uk-kn-ledger{list-style:none;margin:24px 0 0;padding:0}
.uk-kn-ledger li{
  display:grid;grid-template-columns:minmax(0,34%) minmax(0,1fr);gap:8px 20px;
  padding:20px 0;border-top:1px solid var(--kn-hairline);
}
.uk-kn-ledger li:last-child{border-bottom:1px solid var(--kn-hairline)}
.uk-kn-sec:nth-of-type(even) .uk-kn-ledger li{grid-template-columns:minmax(0,1fr) minmax(0,34%)}
.uk-kn-sec:nth-of-type(even) .uk-kn-ledger-key{order:2}
.uk-kn-ledger-key{
  color:var(--kn-gold-dp);font-size:11px;font-weight:700;line-height:1.7;
  letter-spacing:.18em;text-transform:uppercase;
}
.uk-kn-ledger-val h3{margin:0;font-size:18px}
.uk-kn-ledger-val p{margin:6px 0 0;color:var(--kn-muted);font-size:13px;line-height:1.85}
.uk-kn-ledger-val>strong{display:block;font-family:"Playfair Display",Georgia,serif;font-size:18px}
.uk-kn-account{letter-spacing:.06em}
.uk-kn-event-date{margin:0 0 6px;color:var(--kn-ink);font-size:13px;font-weight:700;letter-spacing:.03em}
.uk-kn-venue{display:block;margin-top:10px;font-size:14px;font-weight:700}
.uk-kn-address{margin:4px 0 0;color:var(--kn-muted);font-size:13px;line-height:1.75}
.uk-kn-scope{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0 0 10px}
.uk-kn-sec:nth-of-type(even) .uk-kn-scope{justify-content:flex-end}
.uk-kn-scope span{color:var(--kn-muted);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.uk-kn-scope strong{color:var(--kn-gold-dp);font-size:12px}
.uk-kn-map{width:100%;height:180px;margin-top:14px;border:1px solid var(--kn-hairline);border-radius:var(--kn-radius);filter:sepia(.14)}
.uk-kn-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.uk-kn-sec:nth-of-type(even) .uk-kn-actions{justify-content:flex-end}
.uk-kn-actions .uk-kn-button{min-height:42px;padding:0 16px}

/* People: portraits set in a row, overlapping slightly like pressed prints. */
.uk-kn-group-index{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0}
.uk-kn-sec:nth-of-type(even) .uk-kn-group-index{justify-content:flex-end}
.uk-kn-group-index button{
  min-height:44px;padding:0 16px;cursor:pointer;border:1px solid var(--kn-line);
  border-radius:var(--kn-radius-control);background:transparent;color:var(--kn-muted);font:inherit;font-size:12px;
}
.uk-kn-group-index button.is-active{border-color:var(--kn-gold);background:rgba(201,164,110,.14);color:var(--kn-gold-dp)}
.uk-kn-group{margin-top:26px}
.uk-kn-pair{display:grid;gap:26px;margin-top:14px}
.uk-kn-person{min-width:0}
.uk-kn-portrait{
  width:min(66%,220px);aspect-ratio:4/5;overflow:hidden;
  border:1px solid var(--kn-gold);border-radius:var(--kn-radius);background:var(--kn-cream2);
}
.uk-kn-sec:nth-of-type(even) .uk-kn-portrait{margin-left:auto}

/* The ledger leans every section to one side; that is the template. The one place
   it does not read as a ledger is a person: a portrait with a name under it is a
   symmetric composition, and leaning it looks like a mistake rather than a rhythm.
   So this single section is centred at every width. Every other section still leans. */
#uk-kn-participants .uk-kn-wrap{text-align:center}
#uk-kn-participants .uk-kn-portrait{margin-left:auto;margin-right:auto}
.uk-kn-portrait img{width:100%;height:100%;object-fit:cover}
.uk-kn-portrait.is-empty{display:grid;place-items:center}
.uk-kn-portrait.is-empty span{font-family:"Playfair Display",Georgia,serif;font-size:2.4rem;color:var(--kn-gold)}
.uk-kn-person h3{margin:14px 0 0;font-size:clamp(1.4rem,6vw,1.85rem)}
.uk-kn-role{margin:6px 0 0;color:var(--kn-gold-dp);font-size:9px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.uk-kn-fullname{display:block;margin-top:8px;font-size:13px;font-weight:500;color:var(--kn-muted)}
.uk-kn-parents{margin-top:16px;padding-top:12px;border-top:1px solid var(--kn-hairline)}
.uk-kn-parents.is-group{margin-top:22px}
.uk-kn-parents span{display:block;color:var(--kn-muted);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.uk-kn-parents p{margin:6px 0 0;font-size:14px;line-height:1.8}
.uk-kn-parents em{color:var(--kn-gold);font-family:"Playfair Display",Georgia,serif;font-style:normal}
.uk-kn-bio{margin-top:12px;color:var(--kn-muted);font-size:13px;line-height:1.85}

/* Countdown: one dark band, read as a line rather than four tiles. */
.uk-kn-band{padding:clamp(34px,7vw,52px) 0;background:var(--kn-dark);color:var(--kn-cream)}
.uk-kn-band .uk-kn-eyebrow{color:var(--kn-gold-lt)}
.uk-kn-count{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:0;margin:16px 0 0;
}
.uk-kn-count>span{display:flex;align-items:baseline;gap:8px;padding:0 16px;border-left:1px solid rgba(232,213,176,.28)}
.uk-kn-count>span:first-child{padding-left:0;border-left:0}
.uk-kn-count strong{font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.6rem,7vw,2.3rem);font-weight:600;font-variant-numeric:tabular-nums;color:var(--kn-gold-lt)}
.uk-kn-count small{color:rgba(250,247,242,.66);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.uk-kn-count-done{margin:16px 0 0;color:var(--kn-gold-lt);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:18px}

/* Gallery: a staircase. Each frame steps further in, then back out. */
.uk-kn-gallery-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 14px}
.uk-kn-gallery-tools>span{color:var(--kn-muted);font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.uk-kn-gallery-tools>div{display:none;gap:6px}
.uk-design-gallery-filmstrip .uk-kn-gallery-tools>div{display:flex}
.uk-kn-gallery-tools button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1px solid var(--kn-line);border-radius:var(--kn-radius-control);background:transparent;color:var(--kn-gold-dp);
}
.uk-kn-gallery figure{position:relative;margin:0;overflow:hidden;border:1px solid var(--kn-line);border-radius:var(--kn-radius);background:var(--kn-cream2)}
.uk-kn-gallery figure img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--kn-ease)}
.uk-kn-gallery figure:hover img{transform:scale(1.04)}
.uk-kn-gallery figure button{
  position:absolute;right:8px;bottom:8px;display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:0;border-radius:var(--kn-radius-control);background:rgba(250,247,242,.9);color:var(--kn-ink);
}
.uk-kn-gallery{display:grid;gap:14px}
.uk-kn-gallery figure{width:88%;aspect-ratio:4/3}
.uk-kn-gallery figure:nth-child(4n+2){margin-left:12%}
.uk-kn-gallery figure:nth-child(4n+3){margin-left:6%;width:94%}
.uk-kn-gallery figure:nth-child(4n+4){margin-left:auto}
.uk-design-gallery-grid .uk-kn-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.uk-design-gallery-grid .uk-kn-gallery figure{width:100%;margin-left:0;aspect-ratio:1/1}
.uk-design-gallery-editorial .uk-kn-gallery figure{width:100%;margin-left:0;aspect-ratio:4/5}
.uk-design-gallery-filmstrip .uk-kn-gallery{
  grid-auto-flow:column;grid-auto-columns:minmax(220px,70%);
  overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:none;
}
.uk-design-gallery-filmstrip .uk-kn-gallery::-webkit-scrollbar{display:none}
.uk-design-gallery-filmstrip .uk-kn-gallery figure{width:100%;margin-left:0;aspect-ratio:4/5;scroll-snap-align:center}

/* Gift tabs and FAQ ------------------------------------------------------- */
.uk-kn-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0}
.uk-kn-sec:nth-of-type(even) .uk-kn-tabs{justify-content:flex-end}
.uk-kn-tabs button{
  display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 16px;cursor:pointer;
  border:1px solid var(--kn-line);border-radius:var(--kn-radius-control);background:transparent;
  color:var(--kn-muted);font:inherit;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.uk-kn-tabs button.is-active{border-color:var(--kn-gold);background:rgba(201,164,110,.14);color:var(--kn-gold-dp)}
.uk-kn-gift-panel{margin-top:6px}

.uk-kn-faq{margin:22px 0 0;border-top:1px solid var(--kn-hairline)}
.uk-kn-faq details{border-bottom:1px solid var(--kn-hairline)}
.uk-kn-faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  min-height:56px;padding:14px 0;cursor:pointer;list-style:none;font-size:14px;font-weight:600;
}
.uk-kn-sec:nth-of-type(even) .uk-kn-faq summary{flex-direction:row-reverse}
.uk-kn-faq summary::-webkit-details-marker{display:none}
.uk-kn-faq summary .bdu-icon{color:var(--kn-gold);transition:transform .3s var(--kn-ease)}
.uk-kn-faq details[open] summary .bdu-icon{transform:rotate(45deg)}
.uk-kn-faq p{margin:0 0 16px;color:var(--kn-muted);font-size:13px;line-height:1.85}

/* Closing: the seal, flush left like a signed document. */
.uk-kn-closing{padding:clamp(56px,12vw,92px) 0 clamp(46px,10vw,68px);background:var(--kn-dark);color:var(--kn-cream)}
.uk-kn-closing .uk-kn-wrap{text-align:left}
.uk-kn-closing .uk-kn-eyebrow{margin-top:20px;color:var(--kn-gold-lt)}
.uk-kn-closing .uk-kn-seal{border-color:var(--kn-gold-lt);color:var(--kn-gold-lt)}
.uk-kn-closing h2{margin:12px 0 0;color:var(--kn-cream);font-size:clamp(1.9rem,8vw,2.6rem)}
.uk-kn-closing .uk-kn-copy{color:rgba(250,247,242,.74)}
.uk-kn-signature{margin:22px 0 0;color:var(--kn-gold-lt);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:1.3rem}
.uk-kn-hashtags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.uk-kn-hashtags button{
  display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;cursor:pointer;
  border:1px solid rgba(232,213,176,.34);border-radius:var(--kn-radius-control);background:transparent;
  color:var(--kn-gold-lt);font:inherit;font-size:11px;letter-spacing:.06em;
}
.uk-kn-closing-actions{display:grid;gap:8px;margin-top:24px}
.uk-kn-closing-actions .uk-kn-button{border-color:rgba(232,213,176,.4);color:var(--kn-gold-lt)}
.uk-kn-closing-actions .uk-kn-button.is-solid{border-color:var(--kn-gold-lt);background:var(--kn-gold-lt);color:var(--kn-dark)}

/* Navigation and controls ------------------------------------------------- */
.uk-kn-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:850;
  display:flex;gap:0;overflow-x:auto;scrollbar-width:none;
  padding:0 4px calc(0px + env(safe-area-inset-bottom));
  border-top:1px solid var(--kn-line);background:rgba(250,247,242,.96);backdrop-filter:blur(12px);
}
.uk-kn-nav::-webkit-scrollbar{display:none}
.uk-kn-nav button{
  flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  min-width:0;min-height:54px;padding:0 2px;cursor:pointer;border:0;background:transparent;
  color:var(--kn-muted);font:inherit;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}
.uk-kn-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-kn-nav button i{width:14px;height:1px;background:var(--kn-line)}
.uk-kn-nav button.is-active{color:var(--kn-gold-dp)}
.uk-kn-nav button.is-active i{background:var(--kn-gold);height:2px}

.uk-kn-rail{position:fixed;right:12px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:860;display:grid;gap:6px;justify-items:end}
/* A fixed control has to read against paper AND against ink, because the
   page scrolls under it. Measured before this ring: 1.06:1 against the
   background at the gallery. The ring is the half that the fill cannot be. */
.uk-kn-rail-toggle,.uk-kn-rail-panel button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1px solid var(--kn-line);border-radius:var(--kn-radius-control);
  background:rgba(250,247,242,.96);color:var(--kn-gold-dp);box-shadow:0 0 0 2px var(--kn-ink),0 8px 22px rgba(26,14,5,.2);
}
.uk-kn-rail-panel{display:grid;gap:6px;justify-items:end}
.uk-kn-rail-panel button.is-active{border-color:var(--kn-gold);background:rgba(201,164,110,.18)}

.uk-kencana main{padding-bottom:calc(62px + env(safe-area-inset-bottom))}

/* Modals ------------------------------------------------------------------ */
.uk-kn-sheet,.uk-kn-lightbox{
  position:fixed;inset:0;z-index:1200;display:grid;opacity:0;visibility:hidden;
  background:rgba(26,14,5,.78);transition:opacity .28s var(--kn-ease),visibility .28s;
}
.uk-kn-sheet{place-items:end center}
.uk-kn-lightbox{place-items:center}
.uk-kn-sheet.is-open,.uk-kn-lightbox.is-open{opacity:1;visibility:visible}
.uk-kn-sheet-panel{
  width:min(100%,520px);padding:26px 22px calc(26px + env(safe-area-inset-bottom));
  border-top:2px solid var(--kn-gold);background:var(--kn-cream);text-align:left;
}
.uk-kn-sheet-panel h2{margin:10px 0 0;font-size:1.5rem}
.uk-kn-share-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 0}
.uk-kn-share-grid button{
  display:flex;align-items:center;gap:9px;min-height:52px;padding:0 14px;cursor:pointer;
  border:1px solid var(--kn-line);border-radius:var(--kn-radius);background:transparent;
  color:var(--kn-ink);font:inherit;font-size:13px;font-weight:600;
}
.uk-kn-sheet-close{width:100%;margin-top:12px}
.uk-kn-lightbox-panel{position:relative;width:min(94vw,880px);max-height:88svh;display:grid;place-items:center}
.uk-kn-lightbox-panel img{max-width:100%;max-height:78svh;object-fit:contain;background:var(--kn-cream2)}
.uk-kn-lightbox.is-switching img{opacity:.35;transition:opacity .12s linear}
.uk-kn-lightbox-counter{margin-top:12px;color:var(--kn-gold-lt);font-size:11px;letter-spacing:.2em}
.uk-kn-lightbox button{
  position:absolute;display:grid;place-items:center;width:46px;height:46px;cursor:pointer;
  border:1px solid rgba(232,213,176,.36);border-radius:var(--kn-radius-control);background:rgba(26,14,5,.6);color:var(--kn-gold-lt);
}
.uk-kn-lightbox-close{top:-4px;right:-4px}
.uk-kn-lightbox-prev{left:-4px;top:50%;transform:translateY(-50%)}
.uk-kn-lightbox-next{right:-4px;top:50%;transform:translateY(-50%)}
body.is-kencana-modal-open{overflow:hidden}

/* Engagement skin --------------------------------------------------------- */
.uk-kn-engagement .bdu-public-card{
  max-width:none;margin:0;padding:22px 0 0;border:0;border-top:1px solid var(--kn-hairline);
  border-radius:0;background:transparent;box-shadow:none;color:var(--kn-ink);text-align:left;
}
.uk-kn-engagement .bdu-public-card-head{display:flex;align-items:center;gap:12px}
.uk-kn-engagement .bdu-public-icon{
  display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--kn-line);
  border-radius:var(--kn-radius-control);background:transparent;color:var(--kn-gold-dp);
}
.uk-kn-engagement .bdu-public-card-head p{margin:0;color:var(--kn-gold-dp);font-size:9px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.uk-kn-engagement .bdu-public-card-head h2{margin:2px 0 0;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.4rem,5vw,1.9rem);font-weight:600;color:var(--kn-ink)}
.uk-kn-engagement .bdu-public-card-copy{color:var(--kn-muted);font-size:14px;line-height:1.9}
.uk-kn-engagement .bdu-public-form{display:grid;gap:12px;margin-top:18px}
.uk-kn-engagement .bdu-public-form label{color:var(--kn-ink);font-size:11px;font-weight:700;letter-spacing:.08em}
.uk-kn-engagement .bdu-public-form :is(input,select,textarea){
  border:1px solid var(--kn-line);border-radius:var(--kn-radius);background:var(--kn-cream);color:var(--kn-ink);
}
.uk-kn-engagement .bdu-public-form :is(input,select){min-height:46px}
.uk-kn-engagement .bdu-public-form :is(input,select,textarea):focus{border-color:var(--kn-gold);box-shadow:0 0 0 3px rgba(201,164,110,.18)}
.uk-kn-engagement .bdu-public-form small{color:var(--kn-muted)}
.uk-kn-engagement .bdu-public-choice-group span{
  min-height:44px;border:1px solid var(--kn-line);border-radius:var(--kn-radius-control);background:var(--kn-cream);color:var(--kn-muted);
}
.uk-kn-engagement .bdu-public-choice-group input:checked+span{border-color:var(--kn-gold);background:rgba(201,164,110,.16);color:var(--kn-gold-dp)}
.uk-kn-engagement .bdu-public-primary{
  min-height:46px;border:1px solid var(--kn-gold);border-radius:var(--kn-radius-control);background:var(--kn-gold);color:var(--kn-dark);
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
.uk-kn-engagement .bdu-public-primary:hover{background:var(--kn-gold-dp);color:var(--kn-cream)}
.uk-kn-engagement :is(.bdu-public-known-guest,.bdu-public-notice,.bdu-public-wish,.bdu-public-rsvp-saved){
  border:1px solid var(--kn-hairline);border-radius:var(--kn-radius);background:var(--kn-cream)
}
.uk-kn-engagement .bdu-public-wishes-list>h3{margin:0 0 8px;color:var(--kn-gold-dp);font-family:inherit;font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.uk-kn-engagement .bdu-public-wish p{color:var(--kn-ink)}
.uk-kn-engagement .bdu-public-wish footer{color:var(--kn-muted)}
.uk-kn-engagement .bdu-public-pin{color:var(--kn-gold-dp)}

/* The platform-level personalized chip, matched to the cream canvas. */
.bdu-public-theme-kencana .bdu-guest-personalized{
  border-color:rgba(201,164,110,.55);background:#FAF7F2;box-shadow:0 8px 24px rgba(26,14,5,.18);
}
.bdu-public-theme-kencana .bdu-guest-personalized strong{color:#8B6B3A}

/* Desktop ----------------------------------------------------------------- */
@media(min-width:768px){
  .uk-kencana{font-size:16px;--kn-col:min(100% - 80px, 860px)}

  .uk-kn-gate-media img{object-position:var(--kn-focus-desktop-x,50%) var(--kn-focus-desktop-y,40%)}
  .uk-kn-cover-image{object-position:var(--kn-focus-desktop-x,50%) var(--kn-focus-desktop-y,40%)}
  .uk-kn-gate{padding:0 clamp(40px,7vw,110px) clamp(56px,8vw,90px);justify-content:flex-end}
  .uk-kn-cover-plate{width:min(52vw,620px);margin-left:clamp(40px,7vw,110px);padding:30px 30px 40px}

  /* The whole page is off-centre on desktop, alternating side to side. */
  .uk-kn-wrap{margin:0 0 0 clamp(40px,8vw,140px)}
  .uk-kn-sec:nth-of-type(even) .uk-kn-wrap{margin:0 clamp(40px,8vw,140px) 0 auto}
  .uk-kn-band .uk-kn-wrap,.uk-kn-closing .uk-kn-wrap{margin:0 0 0 clamp(40px,8vw,140px)}

  .uk-kn-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:32px}
  /* A workspace can hold one entry or five. An odd last entry would sit in the
     first column with an empty one beside it, so it takes the whole row and
     centres itself — which also covers the case of a single entry. */
  .uk-kn-pair>*:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:min(100%,360px)}
  .uk-kn-ledger li{grid-template-columns:minmax(0,26%) minmax(0,1fr);gap:8px 32px}
  .uk-kn-sec:nth-of-type(even) .uk-kn-ledger li{grid-template-columns:minmax(0,1fr) minmax(0,26%)}
  .uk-kn-gallery figure{width:74%}
  .uk-kn-gallery figure:nth-child(4n+2){margin-left:26%}
  .uk-kn-gallery figure:nth-child(4n+3){margin-left:13%;width:84%}
  .uk-design-gallery-grid .uk-kn-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .uk-design-gallery-filmstrip .uk-kn-gallery{grid-auto-columns:minmax(260px,32%)}
  .uk-kn-closing-actions{grid-auto-flow:column;justify-content:start}

  .uk-kn-nav{
    left:auto;right:clamp(12px,2vw,28px);bottom:auto;top:50%;transform:translateY(-50%);
    flex-direction:column;gap:2px;padding:12px 14px;overflow:visible;
    border:1px solid var(--kn-line);border-radius:var(--kn-radius);
  }
  .uk-kn-nav button{flex:0 0 auto;flex-direction:row;gap:10px;min-width:0;min-height:38px;padding:0 6px;justify-content:flex-start;text-align:left;font-size:10px;letter-spacing:.1em}
  .uk-kn-nav button span{max-width:none;overflow:visible}
  .uk-kn-rail{right:clamp(12px,2vw,28px);bottom:clamp(20px,4vw,40px);top:auto;transform:none}
  .uk-kencana main{padding-bottom:0}
  .uk-kn-feedback{top:20px}
  .uk-kn-toast{left:auto;right:28px;bottom:28px;transform:translate(0,10px)}
  .uk-kn-toast.is-show{transform:translate(0,0)}
  .uk-kn-sheet{place-items:center}
  .uk-kn-sheet-panel{border:1px solid var(--kn-line);border-top:2px solid var(--kn-gold)}
  .uk-kn-lightbox-close{top:-52px;right:0}
  .uk-kn-lightbox-prev{left:-62px}
  .uk-kn-lightbox-next{right:-62px}
}

/* Narrow phones and short viewports --------------------------------------- */
@media(max-width:760px){
  .uk-kn-share-grid{grid-template-columns:1fr}
  .uk-kn-nav{gap:0}
}
@media(max-width:400px){
  .uk-kn-ledger li{grid-template-columns:minmax(0,1fr)}
  .uk-kn-sec:nth-of-type(even) .uk-kn-ledger li{grid-template-columns:minmax(0,1fr)}
  .uk-kn-sec:nth-of-type(even) .uk-kn-ledger-key{order:0}
  .uk-kn-count>span{padding:0 10px}
}
@media(max-height:620px){
  .uk-kn-gate{justify-content:center;padding-top:18px}
  .uk-kn-gate-body h1{font-size:clamp(1.7rem,8vw,2.3rem)}
  .uk-kn-seal{width:46px;height:46px;font-size:11px}
  .uk-kn-guest{margin-top:12px;padding:9px 14px}
  .uk-kn-gate-body .uk-kn-button{margin-top:14px}
  .uk-kn-cover{min-height:100svh;align-content:center}
  .uk-kn-cover-plate{padding-top:16px;padding-bottom:20px}
}
@media(min-width:768px) and (max-height:620px){
  .uk-kn-nav{max-height:46svh;overflow-y:auto}
}

/* Cover without a photograph -------------------------------------------- */
.uk-kn-cover-empty{
  display:grid;place-items:center;width:100%;height:100%;
  background:
    repeating-linear-gradient(0deg,rgba(201,164,110,.09) 0 1px,transparent 1px 22px),
    linear-gradient(160deg,#2A1A08,var(--kn-dark));
}
.uk-kn-cover-empty-mark{
  color:var(--kn-gold-lt);font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(1.5rem,7vw,2.4rem);letter-spacing:.3em;
}

/* Reduced motion ---------------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  .uk-kencana{--kn-reveal:0s;--kn-slide:0px}
  .uk-kn-reveal,.uk-kn-reveal-item{opacity:1;transform:none;transition:none}
  .uk-kn-gate,.uk-kn-sheet,.uk-kn-lightbox,.uk-kn-gallery figure img,.uk-kn-faq summary .bdu-icon,.uk-kn-progress i{transition:none}
}
