/* Wastra — woven cloth wedding flagship. Trusted template stylesheet.
   The pattern is generated from CSS gradients, not copied artwork: an abstract
   geometry in the grammar of Indonesian textiles rather than a reproduction of
   any particular motif, several of which are regionally restricted. */

.uk-wastra{
  --wa-cream:#F4EADA;
  --wa-cream2:#EADCC6;
  --wa-indigo:#1E3050;
  --wa-indigo-dp:#142138;
  --wa-soga:#7A4A22;
  --wa-gold:#B98D3E;
  --wa-gold-lt:#E0C489;
  --wa-ink:#2E2418;
  --wa-muted:rgba(46,36,24,.68);
  --wa-line:rgba(185,141,62,.36);
  --wa-hairline:rgba(46,36,24,.14);
  --wa-radius:2px;
  --wa-radius-control:2px;
  --wa-weave:22px;
  --wa-ease:cubic-bezier(.24,.72,.3,1);
  --wa-reveal:.72s;
  --wa-shift:18px;
  --wa-col:min(100% - 36px, 560px);
  min-height:100vh;
  overflow:clip;
  background:var(--wa-cream);
  color:var(--wa-ink);
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:15px;
  line-height:1.82;
}
.uk-wastra *,.uk-wastra *:before,.uk-wastra *: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-wastra [hidden]{display:none !important}
.uk-wastra .bdu-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}
.uk-wastra h1,.uk-wastra h2,.uk-wastra h3,.uk-wastra h4{
  font-family:"Playfair Display",Georgia,serif;font-weight:600;line-height:1.18;overflow-wrap:anywhere;
}
.uk-wastra p,.uk-wastra strong,.uk-wastra span,.uk-wastra li,.uk-wastra cite{overflow-wrap:anywhere}
.uk-wa-preline{white-space:pre-line}

/* Palettes ---------------------------------------------------------------- */
.uk-wastra.uk-design-palette-warm{--wa-cream:#F7ECD9;--wa-cream2:#EEDCBE;--wa-indigo:#6B3A18;--wa-indigo-dp:#4A2710;--wa-soga:#8C5A28;--wa-gold:#C08A3C;--wa-gold-lt:#E7C88C;--wa-ink:#33251A;--wa-muted:rgba(51,37,26,.68);--wa-line:rgba(192,138,60,.38);--wa-hairline:rgba(51,37,26,.14)}
.uk-wastra.uk-design-palette-romantic{--wa-cream:#F7EBE9;--wa-cream2:#EED8D4;--wa-indigo:#6E2A38;--wa-indigo-dp:#4C1B26;--wa-soga:#8E4750;--wa-gold:#B97A63;--wa-gold-lt:#E3BCA9;--wa-ink:#35242A;--wa-muted:rgba(53,36,42,.68);--wa-line:rgba(185,122,99,.38);--wa-hairline:rgba(53,36,42,.14)}
.uk-wastra.uk-design-palette-sage{--wa-cream:#F1F2E6;--wa-cream2:#E1E5D0;--wa-indigo:#2C4630;--wa-indigo-dp:#1D3020;--wa-soga:#5C6B33;--wa-gold:#9A9A4C;--wa-gold-lt:#D2D295;--wa-ink:#28301F;--wa-muted:rgba(40,48,31,.68);--wa-line:rgba(154,154,76,.38);--wa-hairline:rgba(40,48,31,.14)}
.uk-wastra.uk-design-palette-midnight{--wa-cream:#16202F;--wa-cream2:#1D2A3C;--wa-indigo:#0D1520;--wa-indigo-dp:#080D15;--wa-soga:#9A6B34;--wa-gold:#D8AC5E;--wa-gold-lt:#F0D79C;--wa-ink:#EFE4CE;--wa-muted:rgba(239,228,206,.72);--wa-line:rgba(216,172,94,.4);--wa-hairline:rgba(239,228,206,.16)}

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

/* Surface variants. Cloth is woven, not rounded, so the control changes the
   weave density instead of the corner radius. */
.uk-wastra.uk-design-surface-soft{--wa-radius:16px;--wa-radius-control:999px;--wa-weave:30px}
.uk-wastra.uk-design-surface-balanced{--wa-radius:8px;--wa-radius-control:8px;--wa-weave:26px}
.uk-wastra.uk-design-surface-sharp{--wa-radius:0px;--wa-radius-control:0px;--wa-weave:14px}

/* Motion variants --------------------------------------------------------- */
.uk-wastra.uk-design-motion-soft{--wa-reveal:.95s;--wa-shift:9px}
.uk-wastra.uk-design-motion-cinematic{--wa-reveal:.85s;--wa-shift:30px}
.uk-wastra.uk-design-motion-minimal{--wa-reveal:0s;--wa-shift:0px}

/* The cloth field: two diagonals crossing over a field of small lozenges,
   drawn entirely with gradients so it recolours with the palette. */
.uk-wa-band.is-cloth,.uk-wa-gate,.uk-wa-closing,.uk-wa-countdown{
  background-color:var(--wa-indigo);
  background-image:
    repeating-linear-gradient(45deg,rgba(224,196,137,.12) 0 2px,transparent 2px var(--wa-weave)),
    repeating-linear-gradient(-45deg,rgba(224,196,137,.12) 0 2px,transparent 2px var(--wa-weave)),
    radial-gradient(circle at 50% 50%,rgba(224,196,137,.16) 0 1.6px,transparent 1.7px);
  background-size:auto,auto,calc(var(--wa-weave) * 2) calc(var(--wa-weave) * 2);
  color:var(--wa-cream);
}
.uk-wa-band.is-cloth h2,.uk-wa-closing h2,.uk-wa-gate h1{color:var(--wa-cream)}
.uk-wa-band.is-cloth .uk-wa-eyebrow,.uk-wa-closing .uk-wa-eyebrow,.uk-wa-gate .uk-wa-eyebrow{color:var(--wa-gold-lt)}
.uk-wa-band.is-cloth .uk-wa-copy,.uk-wa-closing .uk-wa-copy{color:rgba(244,234,218,.78)}

/* Tumpal: the row of triangles that edges a length of cloth. */
.uk-wa-tumpal{
  display:block;height:14px;
  background:
    linear-gradient(135deg,var(--wa-gold) 25%,transparent 25%) -12px 0,
    linear-gradient(225deg,var(--wa-gold) 25%,transparent 25%) -12px 0;
  background-size:24px 14px;
  opacity:.9;
}
.uk-wa-tumpal.is-top{position:absolute;left:0;right:0;top:0;z-index:2}
.uk-wa-tumpal.is-bottom{position:absolute;left:0;right:0;bottom:0;z-index:2;transform:scaleY(-1)}

/* Ketupat: a lozenge, the diamond every Indonesian reads at a glance. */
.uk-wa-ketupat{
  display:inline-grid;place-items:center;width:64px;height:64px;
  border:1px solid var(--wa-gold);transform:rotate(45deg);
}
.uk-wa-ketupat>i{
  transform:rotate(-45deg);font-style:normal;color:var(--wa-gold-lt);
  font-family:"Playfair Display",Georgia,serif;font-size:13px;letter-spacing:.16em;
}
.uk-wa-ketupat.is-large{width:88px;height:88px}
.uk-wa-ketupat.is-large>i{font-size:18px}

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

.uk-wa-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(--wa-line);border-radius:var(--wa-radius-control);
  background:transparent;color:var(--wa-soga);
  font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  transition:background .25s var(--wa-ease),border-color .25s var(--wa-ease),color .25s var(--wa-ease);
}
.uk-wa-button:hover{border-color:var(--wa-gold);background:rgba(185,141,62,.12)}
.uk-wa-button.is-solid{border-color:var(--wa-gold);background:var(--wa-gold);color:var(--wa-indigo-dp)}
.uk-wa-button.is-solid:hover{background:var(--wa-gold-lt)}
.uk-wa-band.is-cloth .uk-wa-button,.uk-wa-closing .uk-wa-button,.uk-wa-gate .uk-wa-button{color:var(--wa-gold-lt);border-color:rgba(224,196,137,.42)}
.uk-wa-band.is-cloth .uk-wa-button.is-solid,.uk-wa-closing .uk-wa-button.is-solid,.uk-wa-gate .uk-wa-button.is-solid{background:var(--wa-gold);color:var(--wa-indigo-dp);border-color:var(--wa-gold)}
.uk-wastra :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid var(--wa-gold);outline-offset:3px}

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

.uk-wa-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(--wa-radius);background:var(--wa-indigo-dp);color:var(--wa-gold-lt);
  font-size:12px;font-weight:600;text-align:center;
  box-shadow:0 14px 40px rgba(20,33,56,.4);transition:opacity .22s var(--wa-ease),transform .22s var(--wa-ease);
}
.uk-wa-toast.is-show{opacity:1;transform:translate(-50%,0)}

.uk-wa-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(--wa-line);border-radius:var(--wa-radius);
  background:var(--wa-cream);color:var(--wa-ink);font-size:13px;box-shadow:0 12px 34px rgba(20,33,56,.2);
}

/* Reveal ------------------------------------------------------------------ */
.uk-wa-reveal,.uk-wa-reveal-item{
  opacity:0;transform:translate3d(0,var(--wa-shift),0);
  transition:opacity var(--wa-reveal) var(--wa-ease),transform var(--wa-reveal) var(--wa-ease);
}
.uk-wa-reveal.is-visible,.uk-wa-reveal.is-visible .uk-wa-reveal-item,.uk-wa-reveal-item.is-visible{opacity:1;transform:none}
.uk-wa-reveal.is-visible .uk-wa-reveal-item:nth-child(2){transition-delay:.07s}
.uk-wa-reveal.is-visible .uk-wa-reveal-item:nth-child(3){transition-delay:.14s}
.uk-wa-reveal.is-visible .uk-wa-reveal-item:nth-child(4){transition-delay:.21s}

/* Opening gate ------------------------------------------------------------ */
.uk-wa-gate{
  position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:34px 22px;text-align:center;
  transition:opacity .55s var(--wa-ease),visibility .55s;
}
.uk-wa-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.uk-wa-gate-media{position:absolute;inset:0;overflow:hidden}
.uk-wa-gate-media img{width:100%;height:100%;object-fit:cover;object-position:var(--wa-focus-mobile-x,50%) var(--wa-focus-mobile-y,34%);opacity:.34}
.uk-wa-gate-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,33,56,.6),rgba(20,33,56,.82) 60%,rgba(20,33,56,.95))}
.uk-wa-gate-body{position:relative;z-index:3;width:min(100%,460px)}
.uk-wa-gate-body h1{margin:18px 0 0;font-size:clamp(2rem,10vw,3rem)}
.uk-wa-gate-body .uk-wa-eyebrow{margin-top:22px}
.uk-wa-gate-date{margin:14px 0 0;color:rgba(244,234,218,.74);font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.uk-wa-gate-body .uk-wa-button{margin-top:22px}

.uk-wa-guest{margin:20px auto 0;max-width:330px;padding:12px 16px;border:1px solid var(--wa-line)}
.uk-wa-guest span{display:block;color:var(--wa-muted);font-size:9px;letter-spacing:.24em;text-transform:uppercase}
.uk-wa-guest strong{display:block;margin-top:4px;font-family:"Playfair Display",Georgia,serif;font-size:18px;font-weight:600;line-height:1.35}
.uk-wa-gate .uk-wa-guest,.uk-wa-cover-plate .uk-wa-guest{border-color:rgba(224,196,137,.42)}
.uk-wa-gate .uk-wa-guest span,.uk-wa-cover-plate .uk-wa-guest span{color:rgba(244,234,218,.62)}
.uk-wa-gate .uk-wa-guest strong,.uk-wa-cover-plate .uk-wa-guest strong{color:var(--wa-cream)}

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

/* Cover: a full length of cloth, the plate laid over its lower half. */
.uk-wa-cover{position:relative;min-height:100svh;display:grid;align-content:end;background:var(--wa-indigo-dp)}
.uk-wa-cover-media{position:absolute;inset:0;overflow:hidden}
.uk-wa-cover-image{width:100%;height:100%;object-fit:cover;object-position:var(--wa-focus-mobile-x,50%) var(--wa-focus-mobile-y,34%)}
.uk-wa-cover-empty{
  width:100%;height:100%;display:grid;place-items:center;
  background-color:var(--wa-indigo);
  background-image:
    repeating-linear-gradient(45deg,rgba(224,196,137,.16) 0 2px,transparent 2px var(--wa-weave)),
    repeating-linear-gradient(-45deg,rgba(224,196,137,.16) 0 2px,transparent 2px var(--wa-weave));
}
.uk-wa-cover-empty-mark{color:var(--wa-gold-lt);font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.5rem,7vw,2.4rem);letter-spacing:.3em}
.uk-wa-cover-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,33,56,.24),rgba(20,33,56,.66) 58%,rgba(20,33,56,.96))}
.uk-wa-cover-plate{position:relative;z-index:3;width:min(calc(100% - 44px),540px);margin:0 auto;padding:26px 22px 46px;text-align:center;color:var(--wa-cream)}
.uk-wa-cover-plate h1{margin:18px 0 0;color:var(--wa-cream);font-size:clamp(2.1rem,10vw,3.1rem)}
.uk-wa-cover-plate .uk-wa-eyebrow{margin-top:20px;color:var(--wa-gold-lt)}
.uk-wa-cover-date{margin:16px 0 0;color:rgba(244,234,218,.76);font-size:12px;letter-spacing:.2em;text-transform:uppercase}

/* Bands: lengths of cloth and lengths of plain ground, alternating. */
.uk-wa-band{position:relative;padding:clamp(48px,11vw,76px) 0;text-align:center}
.uk-wa-band.is-cloth{padding-top:calc(clamp(48px,11vw,76px) + 14px)}
.uk-wa-wrap{width:var(--wa-col);margin:0 auto}
.uk-wa-wrap>h2{margin:10px 0 0;font-size:clamp(1.6rem,7vw,2.2rem)}
.uk-wa-bismillah{margin:0 0 18px;color:var(--wa-gold-lt);font-size:clamp(1.05rem,5vw,1.35rem);line-height:2}
.uk-wa-quote{margin:24px auto 0;max-width:44ch;padding:18px 20px;border-top:1px solid var(--wa-line);border-bottom:1px solid var(--wa-line)}
.uk-wa-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-wa-quote cite{display:block;margin-top:10px;color:rgba(244,234,218,.7);font-size:11px;font-style:normal;letter-spacing:.16em;text-transform:uppercase}

/* Events: full bands of their own, each edged with tumpal. */
.uk-wa-panels{display:grid;gap:0;margin:30px 0 0}
.uk-wa-panel{
  position:relative;padding:34px 0 30px;
  background-color:var(--wa-cream2);
  background-image:radial-gradient(circle at 50% 50%,rgba(185,141,62,.14) 0 1.4px,transparent 1.5px);
  background-size:calc(var(--wa-weave) * 1.4) calc(var(--wa-weave) * 1.4);
}
.uk-wa-panel:nth-child(even){background-color:var(--wa-cream)}
.uk-wa-panel h3{margin:0;font-size:clamp(1.3rem,5.6vw,1.7rem)}
.uk-wa-event-date{margin:10px 0 0;color:var(--wa-soga);font-size:13px;font-weight:700;letter-spacing:.04em}
.uk-wa-venue{display:block;margin-top:14px;font-size:14px;font-weight:700}
.uk-wa-address{margin:6px auto 0;max-width:38ch;color:var(--wa-muted);font-size:13px;line-height:1.75}
.uk-wa-scope{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px;margin:0 0 12px}
.uk-wa-scope span{color:var(--wa-muted);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.uk-wa-scope strong{color:var(--wa-soga);font-size:12px}
.uk-wa-map{width:100%;height:180px;margin-top:16px;border:1px solid var(--wa-hairline);border-radius:var(--wa-radius);filter:sepia(.2)}
.uk-wa-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.uk-wa-actions .uk-wa-button{min-height:42px;padding:0 16px}

/* People: portraits set inside lozenges. */
.uk-wa-group-index{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0 0}
.uk-wa-group-index button{
  min-height:44px;padding:0 16px;cursor:pointer;border:1px solid var(--wa-line);
  border-radius:var(--wa-radius-control);background:transparent;color:var(--wa-muted);font:inherit;font-size:12px;
}
.uk-wa-group-index button.is-active{border-color:var(--wa-gold);background:rgba(185,141,62,.14);color:var(--wa-soga)}
.uk-wa-group{margin-top:30px}
.uk-wa-pair{display:grid;gap:44px;margin-top:16px}
.uk-wa-person{min-width:0}
.uk-wa-portrait{
  width:min(62%,210px);margin:0 auto;aspect-ratio:1/1;overflow:hidden;
  transform:rotate(45deg);border:1px solid var(--wa-gold);background:var(--wa-cream2);
}
.uk-wa-portrait img{width:100%;height:100%;object-fit:cover;transform:rotate(-45deg) scale(1.42)}
.uk-wa-portrait.is-empty{display:grid;place-items:center}
.uk-wa-portrait.is-empty span{transform:rotate(-45deg);font-family:"Playfair Display",Georgia,serif;font-size:2.3rem;color:var(--wa-gold)}
.uk-wastra.uk-design-surface-sharp .uk-wa-portrait{transform:none}
.uk-wastra.uk-design-surface-sharp .uk-wa-portrait img{transform:none}
.uk-wastra.uk-design-surface-sharp .uk-wa-portrait.is-empty span{transform:none}
.uk-wa-person h3{margin:26px 0 0;font-size:clamp(1.45rem,6.4vw,1.9rem)}
.uk-wa-role{margin:6px 0 0;color:var(--wa-soga);font-size:9px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.uk-wa-fullname{display:block;margin-top:8px;font-size:13px;font-weight:500;color:var(--wa-muted)}
.uk-wa-parents{margin-top:18px;padding-top:14px;border-top:1px solid var(--wa-hairline)}
.uk-wa-parents.is-group{margin-top:24px}
.uk-wa-parents span{display:block;color:var(--wa-muted);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.uk-wa-parents p{margin:6px 0 0;font-size:14px;line-height:1.8}
.uk-wa-parents em{color:var(--wa-gold);font-family:"Playfair Display",Georgia,serif;font-style:normal}
.uk-wa-bio{margin-top:12px;color:var(--wa-muted);font-size:13px;line-height:1.85}

/* Countdown: four lozenges, the ketupat arrangement. */
.uk-wa-count{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:30px 0 0}
.uk-wa-count>div{position:relative;display:grid;place-content:center;aspect-ratio:1/1}
.uk-wa-count>div>i{position:absolute;inset:10%;border:1px solid rgba(224,196,137,.5);transform:rotate(45deg)}
.uk-wastra.uk-design-surface-sharp .uk-wa-count>div>i{transform:none}
.uk-wa-count strong{position:relative;z-index:2;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.2rem,5.6vw,1.8rem);font-weight:600;font-variant-numeric:tabular-nums;color:var(--wa-gold-lt)}
.uk-wa-count small{position:relative;z-index:2;display:block;margin-top:2px;color:rgba(244,234,218,.72);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase}
.uk-wa-count-done{margin:18px 0 0;color:var(--wa-gold-lt);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:18px}

/* Weft: rows of thread, each with its own gold end. */
.uk-wa-weft{list-style:none;margin:26px 0 0;padding:0;text-align:left}
.uk-wa-weft li{padding:18px 0 20px;border-top:1px solid var(--wa-hairline)}
.uk-wa-weft li:last-child{border-bottom:1px solid var(--wa-hairline)}
.uk-wa-band.is-cloth .uk-wa-weft li{border-color:rgba(224,196,137,.24)}
.uk-wa-weft-key{
  display:inline-block;padding:3px 12px;background:var(--wa-gold);color:var(--wa-indigo-dp);
  font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
.uk-wa-weft h3{margin:10px 0 0;font-size:18px}
.uk-wa-weft p{margin:6px 0 0;color:var(--wa-muted);font-size:13px;line-height:1.85}
.uk-wa-band.is-cloth .uk-wa-weft p{color:rgba(244,234,218,.74)}
.uk-wa-weft .uk-wa-button{margin-top:12px}

/* Gallery: a weave — wide weft threads alternating with paired warp squares. */
.uk-wa-gallery-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 14px}
.uk-wa-gallery-tools>span{color:var(--wa-muted);font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.uk-wa-band.is-cloth .uk-wa-gallery-tools>span{color:rgba(244,234,218,.72)}
.uk-wa-gallery-tools>div{display:none;gap:6px}
.uk-design-gallery-filmstrip .uk-wa-gallery-tools>div{display:flex}
.uk-wa-gallery-tools button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1px solid var(--wa-line);border-radius:var(--wa-radius-control);background:transparent;color:var(--wa-gold-lt);
}
.uk-wa-gallery figure{position:relative;margin:0;overflow:hidden;border:1px solid var(--wa-line);border-radius:var(--wa-radius);background:var(--wa-cream2)}
.uk-wa-gallery figure img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--wa-ease)}
.uk-wa-gallery figure:hover img{transform:scale(1.04)}
.uk-wa-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(--wa-radius-control);background:rgba(244,234,218,.9);color:var(--wa-ink);
}
.uk-wa-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.uk-wa-gallery figure{aspect-ratio:1/1}
.uk-wa-gallery figure:nth-child(3n+1){grid-column:span 2;aspect-ratio:16/7}
.uk-design-gallery-grid .uk-wa-gallery figure:nth-child(3n+1){grid-column:auto;aspect-ratio:1/1}
.uk-design-gallery-editorial .uk-wa-gallery{grid-template-columns:1fr;gap:16px}
.uk-design-gallery-editorial .uk-wa-gallery figure,
.uk-design-gallery-editorial .uk-wa-gallery figure:nth-child(3n+1){grid-column:auto;aspect-ratio:4/5}
.uk-design-gallery-filmstrip .uk-wa-gallery{
  grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(220px,70%);gap:10px;
  overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:none;
}
.uk-design-gallery-filmstrip .uk-wa-gallery::-webkit-scrollbar{display:none}
.uk-design-gallery-filmstrip .uk-wa-gallery figure,
.uk-design-gallery-filmstrip .uk-wa-gallery figure:nth-child(3n+1){grid-column:auto;aspect-ratio:4/5;scroll-snap-align:center}

/* Gift tabs and FAQ ------------------------------------------------------- */
.uk-wa-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0 0}
.uk-wa-tabs button{
  display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 16px;cursor:pointer;
  border:1px solid var(--wa-line);border-radius:var(--wa-radius-control);background:transparent;
  color:rgba(244,234,218,.72);font:inherit;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.uk-wa-tabs button.is-active{border-color:var(--wa-gold);background:rgba(185,141,62,.2);color:var(--wa-gold-lt)}
.uk-wa-gift-panel{margin-top:6px}

.uk-wa-faq{margin:24px 0 0;text-align:left;border-top:1px solid var(--wa-hairline)}
.uk-wa-faq details{border-bottom:1px solid var(--wa-hairline)}
.uk-wa-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-wa-faq summary::-webkit-details-marker{display:none}
.uk-wa-faq summary .bdu-icon{color:var(--wa-gold);transition:transform .3s var(--wa-ease)}
.uk-wa-faq details[open] summary .bdu-icon{transform:rotate(45deg)}
.uk-wa-faq p{margin:0 0 16px;color:var(--wa-muted);font-size:13px;line-height:1.85}

/* Closing ----------------------------------------------------------------- */
.uk-wa-closing{position:relative;padding:calc(clamp(56px,12vw,92px) + 14px) 0 clamp(46px,10vw,70px);text-align:center}
.uk-wa-closing h2{margin:16px 0 0;font-size:clamp(1.9rem,8vw,2.6rem)}
.uk-wa-closing .uk-wa-eyebrow{margin-top:22px}
.uk-wa-signature{margin:22px 0 0;color:var(--wa-gold-lt);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:1.3rem}
.uk-wa-hashtags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}
.uk-wa-hashtags button{
  display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;cursor:pointer;
  border:1px solid rgba(224,196,137,.34);border-radius:var(--wa-radius-control);background:transparent;
  color:var(--wa-gold-lt);font:inherit;font-size:11px;letter-spacing:.06em;
}
.uk-wa-closing-actions{display:grid;gap:8px;margin-top:24px}

/* Navigation and controls ------------------------------------------------- */
.uk-wa-nav{
  position:fixed;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));z-index:850;
  width:min(360px,calc(100vw - 24px));transform:translateX(-50%);
}
.uk-wa-shuttle{
  display:flex;align-items:stretch;
  border:1px solid var(--wa-line);border-top:2px solid var(--wa-gold);
  background:rgba(244,234,218,.96);backdrop-filter:blur(12px);box-shadow:0 10px 26px rgba(20,33,56,.22);
}
.uk-wa-shuttle-step{
  flex:0 0 48px;display:grid;place-items:center;min-height:52px;cursor:pointer;
  border:0;background:transparent;color:var(--wa-soga);
}
.uk-wa-shuttle-step[disabled]{opacity:.34;cursor:default}
.uk-wa-shuttle-current{
  flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-width:0;min-height:52px;padding:0 10px;cursor:pointer;background:transparent;
  border:0;border-left:1px solid var(--wa-line);border-right:1px solid var(--wa-line);
  color:var(--wa-soga);font:inherit;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
}
.uk-wa-shuttle-count{font-size:8px;letter-spacing:.24em;opacity:.6}
.uk-wa-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-wa-weave{
  position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:1;margin:0;padding:6px;list-style:none;
  max-height:min(46svh,300px);overflow-y:auto;overscroll-behavior:contain;
  border:1px solid var(--wa-line);border-top:2px solid var(--wa-gold);
  background:rgba(244,234,218,.98);box-shadow:0 14px 30px rgba(20,33,56,.24);
}
.uk-wa-weave button{
  display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 10px;cursor:pointer;
  border:0;background:transparent;text-align:left;
  color:var(--wa-muted);font:inherit;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
}
.uk-wa-weave-index{font-size:8px;letter-spacing:.2em;opacity:.55}
.uk-wa-weave button.is-active{color:var(--wa-soga);background:rgba(185,141,62,.14)}
.uk-wa-weave button.is-active .uk-wa-weave-index{opacity:1}

.uk-wa-rail{position:fixed;right:12px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:860;display:grid;gap:6px;justify-items:end}
.uk-wa-rail-toggle,.uk-wa-rail-panel button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1px solid var(--wa-line);border-radius:var(--wa-radius-control);
  background:rgba(244,234,218,.96);color:var(--wa-soga);box-shadow:0 8px 22px rgba(20,33,56,.24);
}
.uk-wa-rail-panel{display:grid;gap:6px;justify-items:end}
.uk-wa-rail-panel button.is-active{border-color:var(--wa-gold);background:rgba(185,141,62,.2)}

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

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

/* Engagement skin --------------------------------------------------------- */
.uk-wa-engagement .bdu-public-card{
  max-width:none;margin:16px 0 0;padding:22px 20px;border:1px solid var(--wa-hairline);
  border-radius:var(--wa-radius);background:rgba(255,255,255,.44);box-shadow:none;color:var(--wa-ink);text-align:left;
}
.uk-wa-band.is-cloth .bdu-public-card{background:rgba(20,33,56,.42);border-color:rgba(224,196,137,.28);color:var(--wa-cream)}
.uk-wa-engagement .bdu-public-card-head{display:flex;align-items:center;gap:12px}
.uk-wa-engagement .bdu-public-icon{
  display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--wa-line);
  border-radius:var(--wa-radius-control);background:transparent;color:var(--wa-gold);
}
.uk-wa-engagement .bdu-public-card-head p{margin:0;color:var(--wa-gold);font-size:9px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.uk-wa-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}
.uk-wa-engagement .bdu-public-card-copy{color:var(--wa-muted);font-size:14px;line-height:1.9}
.uk-wa-band.is-cloth .bdu-public-card-copy{color:rgba(244,234,218,.76)}
.uk-wa-engagement .bdu-public-form{display:grid;gap:12px;margin-top:18px}
.uk-wa-engagement .bdu-public-form label{font-size:11px;font-weight:700;letter-spacing:.08em}
.uk-wa-engagement .bdu-public-form :is(input,select,textarea){
  border:1px solid var(--wa-line);border-radius:var(--wa-radius);background:var(--wa-cream);color:var(--wa-ink);
}
.uk-wa-engagement .bdu-public-form :is(input,select){min-height:46px}
.uk-wa-engagement .bdu-public-form :is(input,select,textarea):focus{border-color:var(--wa-gold);box-shadow:0 0 0 3px rgba(185,141,62,.2)}
.uk-wa-engagement .bdu-public-form small{color:var(--wa-muted)}
.uk-wa-band.is-cloth .bdu-public-form label{color:var(--wa-cream)}
.uk-wa-band.is-cloth .bdu-public-form small{color:rgba(244,234,218,.64)}
.uk-wa-engagement .bdu-public-choice-group span{
  min-height:44px;border:1px solid var(--wa-line);border-radius:var(--wa-radius-control);background:var(--wa-cream);color:var(--wa-muted);
}
.uk-wa-engagement .bdu-public-choice-group input:checked+span{border-color:var(--wa-gold);background:rgba(185,141,62,.18);color:var(--wa-soga)}
.uk-wa-engagement .bdu-public-primary{
  min-height:46px;border:1px solid var(--wa-gold);border-radius:var(--wa-radius-control);background:var(--wa-gold);color:var(--wa-indigo-dp);
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
.uk-wa-engagement .bdu-public-primary:hover{background:var(--wa-gold-lt)}
.uk-wa-engagement :is(.bdu-public-known-guest,.bdu-public-notice,.bdu-public-wish,.bdu-public-rsvp-saved){
  border:1px solid var(--wa-hairline);border-radius:var(--wa-radius);background:var(--wa-cream);color:var(--wa-ink);
}
.uk-wa-engagement .bdu-public-wishes-list>h3{margin:0 0 8px;color:var(--wa-gold);font-family:inherit;font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.uk-wa-engagement .bdu-public-pin{color:var(--wa-gold)}

/* The platform-level personalized chip, matched to the cloth. */
.bdu-public-theme-wastra .bdu-guest-personalized{
  border-color:rgba(185,141,62,.55);background:#F4EADA;box-shadow:0 8px 24px rgba(20,33,56,.24);
}
.bdu-public-theme-wastra .bdu-guest-personalized strong{color:#7A4A22}

/* Desktop ----------------------------------------------------------------- */
@media(min-width:768px){
  .uk-wastra{font-size:16px;--wa-col:min(100% - 72px, 720px)}

  .uk-wa-gate-media img{object-position:var(--wa-focus-desktop-x,50%) var(--wa-focus-desktop-y,40%)}
  .uk-wa-cover-image{object-position:var(--wa-focus-desktop-x,50%) var(--wa-focus-desktop-y,40%)}
  .uk-wa-cover-plate{padding-bottom:64px}

  .uk-wa-pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:40px}
  /* 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-wa-pair>*:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:min(100%,360px)}
  .uk-wa-panels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uk-wa-panel:nth-child(even){background-color:var(--wa-cream2)}
  .uk-wa-panel:nth-child(4n+2),.uk-wa-panel:nth-child(4n+3){background-color:var(--wa-cream)}
  .uk-wa-count{gap:22px}
  .uk-wa-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .uk-wa-gallery figure:nth-child(3n+1){grid-column:span 3;aspect-ratio:21/8}
  .uk-design-gallery-grid .uk-wa-gallery figure:nth-child(3n+1){grid-column:auto;aspect-ratio:1/1}
  .uk-design-gallery-editorial .uk-wa-gallery{grid-template-columns:1fr}
  .uk-design-gallery-filmstrip .uk-wa-gallery{grid-auto-columns:minmax(260px,32%)}
  .uk-wa-closing-actions{grid-auto-flow:column;justify-content:center}

  .uk-wa-nav{bottom:clamp(14px,2.4vh,26px);width:min(420px,calc(100vw - 48px))}
  .uk-wa-shuttle-current{font-size:11px}
  .uk-wa-weave button{font-size:11px}
  .uk-wa-rail{right:clamp(12px,2vw,28px);bottom:auto;top:50%;transform:translateY(-50%)}
  .uk-wa-feedback{top:20px}
  .uk-wa-toast{bottom:28px}
  .uk-wa-sheet{place-items:center}
  .uk-wa-sheet-panel{border:1px solid var(--wa-line);border-top:3px solid var(--wa-gold)}
  .uk-wa-lightbox-close{top:-52px;right:0}
  .uk-wa-lightbox-prev{left:-62px}
  .uk-wa-lightbox-next{right:-62px}
}

/* Narrow phones and short viewports --------------------------------------- */
@media(max-width:760px){
  .uk-wa-share-grid{grid-template-columns:1fr}
}
@media(max-width:400px){
  .uk-wa-nav{width:calc(100vw - 16px)}
  .uk-wa-shuttle-step{flex:0 0 44px}
  .uk-wa-count{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .uk-wa-gallery{grid-template-columns:1fr}
  .uk-wa-gallery figure:nth-child(3n+1){grid-column:auto}
  .uk-wa-portrait{width:min(70%,190px)}
}
@media(max-height:620px){
  .uk-wa-gate{justify-content:flex-start;padding-top:20px}
  .uk-wa-gate-body h1{font-size:clamp(1.7rem,8vw,2.3rem)}
  .uk-wa-ketupat{width:46px;height:46px}
  .uk-wa-ketupat>i{font-size:10px}
  .uk-wa-guest{margin-top:12px;padding:9px 14px}
  .uk-wa-gate-body .uk-wa-button{margin-top:14px}
  .uk-wa-cover{align-content:center}
}
@media(min-width:768px) and (max-height:620px){
  .uk-wa-weave{max-height:min(38svh,220px)}
}

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