/* Eden — soft botanical romance flagship. Trusted template stylesheet. */

.uk-eden{
  --ed-cream:#F8F4EC;
  --ed-warm:#F2EDE4;
  --ed-sage-soft:#EDF3EC;
  --ed-ink:#6B5744;
  --ed-muted:rgba(107,87,68,.66);
  --ed-sage:#5B7C5A;
  --ed-sage-lt:#7FA37E;
  --ed-rose:#C98B8B;
  --ed-line:rgba(91,124,90,.22);
  --ed-hairline:rgba(107,87,68,.14);
  --ed-canvas:#EFE9DE;
  --ed-radius:18px;
  --ed-radius-control:999px;
  --ed-arch:52% 52% 6px 6px / 34% 34% 6px 6px;
  /* A tall hero box needs a shallower dome, or the arch swallows the photo. */
  --ed-arch-hero:52% 52% 10px 10px / 26% 26% 10px 10px;
  --ed-ease:cubic-bezier(.25,.8,.25,1);
  --ed-reveal:.7s;
  --ed-shift:18px;
  --ed-col:min(100% - 62px, 480px);
  min-height:100vh;
  overflow:clip;
  background:var(--ed-canvas);
  color:var(--ed-ink);
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:15px;
  line-height:1.8;
}
.uk-eden *,.uk-eden *:before,.uk-eden *: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-eden [hidden]{display:none !important}
.uk-eden .bdu-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}
.uk-eden h1,.uk-eden h2,.uk-eden h3,.uk-eden h4{
  font-family:"Playfair Display",Georgia,serif;font-weight:600;line-height:1.2;overflow-wrap:anywhere;
}
.uk-eden p,.uk-eden strong,.uk-eden span,.uk-eden li,.uk-eden cite{overflow-wrap:anywhere}
.uk-ed-preline{white-space:pre-line}
/* Eden's script accent. The platform self-hosts two families only, so the
   flourish comes from an italic serif rather than a new font download. */
.uk-ed-script{font-style:italic;letter-spacing:.005em}

/* Palettes ---------------------------------------------------------------- */
.uk-eden.uk-design-palette-warm{--ed-cream:#FBF3EA;--ed-warm:#F4E7D9;--ed-sage-soft:#F6EBE0;--ed-ink:#6A4B39;--ed-muted:rgba(106,75,57,.66);--ed-sage:#B4703F;--ed-sage-lt:#CE9264;--ed-rose:#C98B6B;--ed-line:rgba(180,112,63,.22);--ed-hairline:rgba(106,75,57,.14);--ed-canvas:#EFE2D3}
.uk-eden.uk-design-palette-romantic{--ed-cream:#FCF3F2;--ed-warm:#F7E6E5;--ed-sage-soft:#F9EDEC;--ed-ink:#6A4247;--ed-muted:rgba(106,66,71,.66);--ed-sage:#B26A72;--ed-sage-lt:#C98B8B;--ed-rose:#A9737E;--ed-line:rgba(178,106,114,.22);--ed-hairline:rgba(106,66,71,.14);--ed-canvas:#EFDDDC}
.uk-eden.uk-design-palette-sage{--ed-cream:#F4F6F0;--ed-warm:#E8EFE4;--ed-sage-soft:#DFEBDC;--ed-ink:#3C4A38;--ed-muted:rgba(60,74,56,.66);--ed-sage:#3F6140;--ed-sage-lt:#5F8560;--ed-rose:#8FA678;--ed-line:rgba(63,97,64,.24);--ed-hairline:rgba(60,74,56,.14);--ed-canvas:#DCE6D7}
.uk-eden.uk-design-palette-midnight{--ed-cream:#1F2A24;--ed-warm:#26332C;--ed-sage-soft:#1B2520;--ed-ink:#EAE3D6;--ed-muted:rgba(234,227,214,.68);--ed-sage:#9DBE9A;--ed-sage-lt:#B6D2B3;--ed-rose:#D3A2A2;--ed-line:rgba(157,190,154,.3);--ed-hairline:rgba(234,227,214,.16);--ed-canvas:#141B17}

/* Typography variants ----------------------------------------------------- */
.uk-eden.uk-design-type-classic h1,
.uk-eden.uk-design-type-classic h2,
.uk-eden.uk-design-type-classic h3{letter-spacing:.03em}
.uk-eden.uk-design-type-classic .uk-ed-script{font-style:normal;letter-spacing:.06em}
.uk-eden.uk-design-type-editorial h1,
.uk-eden.uk-design-type-editorial h2,
.uk-eden.uk-design-type-editorial h3{font-style:italic;letter-spacing:-.01em}
.uk-eden.uk-design-type-modern h1,
.uk-eden.uk-design-type-modern h2,
.uk-eden.uk-design-type-modern h3,
.uk-eden.uk-design-type-modern h4{font-family:"DM Sans",system-ui,sans-serif;font-weight:700;letter-spacing:-.03em}
.uk-eden.uk-design-type-modern .uk-ed-script{font-style:normal}

/* Surface variants — Eden is round by default, the opposite of a hairline. */
.uk-eden.uk-design-surface-soft{--ed-radius:26px;--ed-arch:58% 58% 18px 18px / 38% 38% 18px 18px;--ed-arch-hero:58% 58% 18px 18px / 30% 30% 18px 18px}
.uk-eden.uk-design-surface-balanced{--ed-radius:12px;--ed-radius-control:12px;--ed-arch:44% 44% 8px 8px / 28% 28% 8px 8px;--ed-arch-hero:44% 44% 8px 8px / 18% 18% 8px 8px}
.uk-eden.uk-design-surface-sharp{--ed-radius:0px;--ed-radius-control:0px;--ed-arch:0;--ed-arch-hero:0}

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

/* Primitives -------------------------------------------------------------- */
.uk-ed-eyebrow{
  margin:0;color:var(--ed-sage);font-size:10px;font-weight:700;line-height:1.6;
  letter-spacing:.26em;text-transform:uppercase;
}
.uk-ed-eyebrow.is-light{color:#FFF8EE}
.uk-ed-copy{margin:14px auto 0;max-width:46ch;color:var(--ed-muted);font-size:14px;line-height:1.9}
.uk-ed-lead{margin:14px 0 0;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.3rem,6vw,1.75rem)}

.uk-ed-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 20px;cursor:pointer;text-decoration:none;
  border:1.5px solid var(--ed-line);border-radius:var(--ed-radius-control);
  background:transparent;color:var(--ed-sage);
  font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  transition:background .25s var(--ed-ease),border-color .25s var(--ed-ease),color .25s var(--ed-ease);
}
.uk-ed-button:hover{border-color:var(--ed-sage);background:rgba(91,124,90,.08)}
.uk-ed-button.is-solid{border-color:var(--ed-sage);background:var(--ed-sage);color:#FBF8F2}
.uk-ed-button.is-solid:hover{background:var(--ed-sage-lt);color:#FBF8F2}
.uk-eden :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid var(--ed-sage);outline-offset:3px}

/* A leaf drawn with two opposite corner radii — no extra asset needed. */
.uk-ed-divider{display:flex;align-items:center;justify-content:center;gap:10px;margin:26px auto 0;max-width:220px}
.uk-ed-divider span{flex:1;height:1px;background:var(--ed-line)}
.uk-ed-divider i{width:16px;height:9px;border-radius:0 100% 0 100%;background:var(--ed-sage);opacity:.55;transform:rotate(-12deg)}

.uk-ed-flora{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:9px;height:34px;opacity:.5}
.uk-ed-flora i{width:20px;height:11px;border-radius:0 100% 0 100%;background:var(--ed-sage)}
.uk-ed-flora i:nth-child(1){transform:rotate(-38deg) scale(.82)}
.uk-ed-flora i:nth-child(2){transform:rotate(-6deg)}
.uk-ed-flora i:nth-child(3){transform:rotate(34deg) scale(.82)}
.uk-ed-flora b{width:7px;height:7px;border-radius:50%;background:var(--ed-rose);align-self:center}
.uk-ed-flora.is-bottom{transform:scaleY(-1)}

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

.uk-ed-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:999px;background:var(--ed-ink);color:#FBF8F2;
  font-size:12px;font-weight:600;text-align:center;
  box-shadow:0 14px 40px rgba(107,87,68,.2);transition:opacity .22s var(--ed-ease),transform .22s var(--ed-ease);
}
.uk-ed-toast.is-show{opacity:1;transform:translate(-50%,0)}

.uk-ed-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(--ed-line);border-radius:14px;
  background:var(--ed-cream);color:var(--ed-ink);font-size:13px;box-shadow:0 12px 34px rgba(107,87,68,.16);
}

/* Reveal — a soft botanical drift upward. */
.uk-ed-reveal,.uk-ed-reveal-item{
  opacity:0;transform:translate3d(0,var(--ed-shift),0);
  transition:opacity var(--ed-reveal) var(--ed-ease),transform var(--ed-reveal) var(--ed-ease);
}
.uk-ed-reveal.is-visible,.uk-ed-reveal.is-visible .uk-ed-reveal-item,.uk-ed-reveal-item.is-visible{opacity:1;transform:none}
.uk-ed-reveal.is-visible .uk-ed-reveal-item:nth-child(2){transition-delay:.08s}
.uk-ed-reveal.is-visible .uk-ed-reveal-item:nth-child(3){transition-delay:.16s}
.uk-ed-reveal.is-visible .uk-ed-reveal-item:nth-child(4){transition-delay:.24s}

/* Opening gate ------------------------------------------------------------ */
.uk-ed-gate{
  position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:10px;padding:26px 20px;
  background:var(--ed-cream);text-align:center;
  transition:opacity .6s var(--ed-ease),visibility .6s;
}
.uk-ed-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.uk-ed-gate-media{position:absolute;inset:0;overflow:hidden}
.uk-ed-gate-media img{width:100%;height:100%;object-fit:cover;object-position:var(--ed-focus-mobile-x,50%) var(--ed-focus-mobile-y,32%)}
.uk-ed-gate-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(248,244,236,.86),rgba(248,244,236,.95) 55%,var(--ed-cream))}
.uk-ed-gate-body{position:relative;z-index:2;width:min(100%,440px)}
.uk-ed-gate-body h1{margin:14px 0 0;font-size:clamp(2.4rem,13vw,3.6rem)}
.uk-ed-gate-date{margin:14px 0 0;color:var(--ed-muted);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.uk-ed-gate-body .uk-ed-button{margin-top:22px}
.uk-ed-flora.is-top,.uk-ed-flora.is-bottom{position:relative;z-index:2}

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

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

/* The invitation column ---------------------------------------------------- */
.uk-ed-paper{width:100%;margin:0 auto;background:var(--ed-cream)}
.uk-ed-sec{padding:clamp(48px,11vw,72px) 0;text-align:center}
.uk-ed-sec.is-cream{background:var(--ed-cream)}
.uk-ed-sec.is-warm{background:var(--ed-warm)}
.uk-ed-sec.is-sage{background:var(--ed-sage-soft)}
.uk-ed-wrap{width:var(--ed-col);margin:0 auto}
.uk-ed-wrap>h2{margin:10px 0 0;font-size:clamp(1.65rem,7.5vw,2.3rem)}
.uk-ed-bismillah{margin:0 0 18px;color:var(--ed-sage);font-size:clamp(1.05rem,5vw,1.35rem);line-height:2}
.uk-ed-quote{margin:24px auto 0;max-width:42ch;padding:18px 20px;border-radius:var(--ed-radius);background:rgba(91,124,90,.07)}
.uk-ed-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-ed-quote cite{display:block;margin-top:10px;color:var(--ed-muted);font-size:11px;font-style:normal;letter-spacing:.14em;text-transform:uppercase}

/* Cover arch --------------------------------------------------------------- */
/* Hero cover: the window reaches nearly the full viewport instead of sitting
   politely inside the column. */
.uk-ed-cover{min-height:100svh;display:grid;align-content:center;background:var(--ed-cream);padding:clamp(18px,4vw,28px) 0 clamp(36px,9vw,56px)}
.uk-ed-arch{position:relative;width:min(100% - 24px,560px);height:78svh;margin:0 auto;overflow:hidden;border-radius:var(--ed-arch-hero);background:var(--ed-warm)}
.uk-ed-cover-image{width:100%;height:100%;object-fit:cover;object-position:var(--ed-focus-mobile-x,50%) var(--ed-focus-mobile-y,32%)}
.uk-ed-arch-line{position:absolute;inset:12px;border:1px solid rgba(255,248,238,.5);border-radius:var(--ed-arch);pointer-events:none}
.uk-ed-cover-veil{position:absolute;inset:auto 0 0;height:56%;background:linear-gradient(180deg,rgba(43,38,30,0),rgba(43,38,30,.62))}
.uk-ed-cover-caption{position:absolute;inset:auto 18px 22px;color:#FFF8EE}
.uk-ed-cover-caption h1{margin:8px 0 0;color:#FFF8EE;font-size:clamp(2rem,10vw,2.9rem)}
.uk-ed-cover-date{margin:16px 0 0;color:var(--ed-muted);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.uk-ed-cover .uk-ed-wrap{margin-top:22px}

/* Participants ------------------------------------------------------------ */
.uk-ed-couple-index{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0 0}
.uk-ed-couple-index button{
  min-height:44px;padding:0 16px;cursor:pointer;border:1.5px solid var(--ed-line);
  border-radius:var(--ed-radius-control);background:transparent;color:var(--ed-muted);font:inherit;font-size:12px;
}
.uk-ed-couple-index button.is-active{border-color:var(--ed-sage);color:var(--ed-sage)}
.uk-ed-couples{display:grid;gap:40px;margin:30px 0 0}
.uk-ed-couple>.uk-ed-eyebrow{margin-bottom:18px}
.uk-ed-pair{display:flex;flex-direction:column;gap:22px}
.uk-ed-person{min-width:0;text-align:left}
.uk-ed-person:after{content:"";display:block;clear:both}
.uk-ed-pair>.uk-ed-person:nth-of-type(even){text-align:right}
.uk-ed-portrait{float:left;width:38%;margin:0 18px 12px 0;aspect-ratio:3/4;overflow:hidden;border-radius:var(--ed-arch);background:var(--ed-warm)}
.uk-ed-portrait img{width:100%;height:100%;object-fit:cover}
.uk-ed-portrait.is-empty{display:grid;place-items:center;border:1px solid var(--ed-line)}
.uk-ed-portrait.is-empty span{font-family:"Playfair Display",Georgia,serif;font-size:2.6rem;color:var(--ed-sage)}
.uk-ed-pair>.uk-ed-person:nth-of-type(even) .uk-ed-portrait{float:right;margin:0 0 12px 18px}
/* Alternating sides are a rhythm between entries. With a single entry there is
   nothing to alternate with, so it reads as pushed to one side instead. */
.uk-ed-pair>.uk-ed-person:only-child{text-align:center}
.uk-ed-pair>.uk-ed-person:only-child .uk-ed-portrait{float:none;width:min(76%,240px);margin:0 auto 14px}
.uk-ed-person h3{margin:0;font-size:clamp(1.4rem,6.4vw,1.9rem)}
.uk-ed-role{margin:6px 0 0;color:var(--ed-sage);font-size:9px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.uk-ed-fullname{display:block;margin-top:8px;font-size:13px;font-weight:500;color:var(--ed-muted)}
.uk-ed-parents{margin-top:14px}
.uk-ed-parents span{display:block;color:var(--ed-muted);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.uk-ed-parents p{margin:6px 0 0;font-size:13px;line-height:1.8}
.uk-ed-parents em{color:var(--ed-rose);font-family:"Playfair Display",Georgia,serif}
.uk-ed-bio{margin-top:12px;color:var(--ed-muted);font-size:13px;line-height:1.85}
.uk-ed-amp{flex:0 0 auto;align-self:center;color:var(--ed-rose);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:2rem;line-height:1}

/* Events ------------------------------------------------------------------ */
/* One vine runs through the whole invitation: story, agenda and events all
   hang off it. Nothing here is a free-floating card. */
.uk-ed-events{position:relative;display:grid;gap:0;margin:28px 0 0;padding:0 0 0 26px;text-align:left}
.uk-ed-events:before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:1px;background:var(--ed-line)}
.uk-ed-event{position:relative;padding:20px 0 24px;border:0;border-radius:0;background:transparent}
.uk-ed-event+.uk-ed-event{border-top:1px solid var(--ed-hairline)}
.uk-ed-event:before{
  content:"";position:absolute;left:-26px;top:26px;width:14px;height:8px;
  border-radius:0 100% 0 100%;background:var(--ed-sage);transform:rotate(-16deg);
}
.uk-ed-event-crown{display:none}
.uk-ed-event-crown i{width:18px;height:10px;border-radius:0 100% 0 100%;background:var(--ed-sage);opacity:.5;transform:rotate(-12deg)}
.uk-ed-event h3{margin:0;font-size:clamp(1.25rem,5.5vw,1.6rem)}
.uk-ed-event-date{margin:8px 0 0;color:var(--ed-sage);font-size:12px;font-weight:700;letter-spacing:.1em}
.uk-ed-venue{display:block;margin-top:14px;font-size:14px;font-weight:700}
.uk-ed-address{margin:6px 0 0;max-width:38ch;color:var(--ed-muted);font-size:13px;line-height:1.75}
.uk-ed-scope{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0 0 12px}
.uk-ed-scope span{color:var(--ed-muted);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.uk-ed-scope strong{color:var(--ed-sage);font-size:12px}
.uk-ed-map{width:100%;height:180px;margin-top:16px;border:0;border-radius:var(--ed-radius);filter:saturate(.8)}
.uk-ed-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.uk-ed-actions .uk-ed-button{min-height:42px;padding:0 16px}

/* Countdown --------------------------------------------------------------- */
.uk-ed-count{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:22px}
.uk-ed-count>div{
  display:grid;place-content:center;aspect-ratio:1/1;padding:8px 4px;
  border:1px solid var(--ed-line);border-radius:4px 100% 4px 100%;background:rgba(255,255,255,.46);
}
.uk-eden.uk-design-surface-sharp .uk-ed-count>div{border-radius:0}
.uk-ed-count strong{display:block;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.4rem,7vw,2rem);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ed-sage)}
.uk-ed-count span{display:block;margin-top:2px;color:var(--ed-muted);font-size:9px;letter-spacing:.18em;text-transform:uppercase}
.uk-ed-count-done{margin:18px 0 0;color:var(--ed-sage);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:18px}

/* Vine timeline (story + schedule) ---------------------------------------- */
.uk-ed-vine{list-style:none;margin:28px 0 0;padding:0 0 0 26px;text-align:left;position:relative}
.uk-ed-vine:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--ed-line)}
.uk-ed-vine li{position:relative;padding:0 0 26px}
.uk-ed-vine li:last-child{padding-bottom:0}
.uk-ed-vine li:before{content:"";position:absolute;left:-26px;top:7px;width:12px;height:7px;border-radius:0 100% 0 100%;background:var(--ed-sage);transform:rotate(-16deg)}
.uk-ed-vine-date{display:block;color:var(--ed-sage);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.uk-ed-vine h3{margin:6px 0 0;font-size:18px}
.uk-ed-vine p{margin:6px 0 0;color:var(--ed-muted);font-size:13px;line-height:1.8}

/* Gallery — polaroid rail by default -------------------------------------- */
.uk-ed-gallery-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 14px}
.uk-ed-gallery-tools>span{color:var(--ed-muted);font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.uk-ed-gallery-tools>div{display:flex;gap:6px}
/* Only the side-scrolling layouts have anything for the arrows to move. */
.uk-design-gallery-grid .uk-ed-gallery-tools>div,
.uk-design-gallery-editorial .uk-ed-gallery-tools>div{display:none}
.uk-ed-gallery-tools button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1.5px solid var(--ed-line);border-radius:var(--ed-radius-control);background:transparent;color:var(--ed-sage);
}
.uk-ed-gallery figure{position:relative;margin:0;padding:10px 10px 44px;border-radius:6px;background:#FFFDF8;box-shadow:0 10px 26px rgba(107,87,68,.14)}
.uk-ed-gallery figure img{display:block;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;border-radius:3px}
.uk-ed-gallery figure button{
  position:absolute;right:12px;bottom:8px;display:grid;place-items:center;width:44px;height:36px;cursor:pointer;
  border:0;border-radius:6px;background:transparent;color:var(--ed-muted);
}
.uk-ed-gallery{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,72%);gap:14px;
  overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory;scrollbar-width:none;
}
.uk-ed-gallery::-webkit-scrollbar{display:none}
.uk-ed-gallery figure{scroll-snap-align:center}
.uk-ed-gallery figure:nth-child(odd){transform:rotate(-1.4deg)}
.uk-ed-gallery figure:nth-child(even){transform:rotate(1.2deg)}
.uk-design-gallery-grid .uk-ed-gallery{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;scroll-snap-type:none}
.uk-design-gallery-grid .uk-ed-gallery figure{transform:none;padding:8px 8px 8px}
.uk-design-gallery-editorial .uk-ed-gallery{grid-auto-flow:row;grid-template-columns:1fr;overflow:visible;scroll-snap-type:none;gap:18px}
.uk-design-gallery-editorial .uk-ed-gallery figure{transform:none}
.uk-design-gallery-editorial .uk-ed-gallery figure img{aspect-ratio:4/5}
.uk-design-gallery-filmstrip .uk-ed-gallery figure{transform:none;padding:6px 6px 6px}
.uk-design-gallery-filmstrip .uk-ed-gallery figure img{aspect-ratio:4/5}

/* Gift, contacts, FAQ, livestream ---------------------------------------- */
.uk-ed-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0 0}
.uk-ed-tabs button{
  display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 16px;cursor:pointer;
  border:1.5px solid var(--ed-line);border-radius:var(--ed-radius-control);background:transparent;
  color:var(--ed-muted);font:inherit;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.uk-ed-tabs button.is-active{border-color:var(--ed-sage);background:rgba(91,124,90,.08);color:var(--ed-sage)}
.uk-ed-gift-panel{margin-top:20px}
.uk-ed-accounts,.uk-ed-contacts{display:grid;gap:14px}
.uk-ed-accounts article,.uk-ed-contacts article{padding:20px;border:1px solid var(--ed-line);border-radius:var(--ed-radius);background:rgba(255,255,255,.4);min-width:0}
.uk-ed-accounts strong{display:block;margin:8px 0 4px;font-family:"Playfair Display",Georgia,serif;font-size:1.3rem;letter-spacing:.04em}
.uk-ed-accounts p,.uk-ed-contacts p{margin:4px 0 0;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--ed-muted);font-size:13px}
.uk-ed-accounts .uk-ed-button,.uk-ed-contacts .uk-ed-button{margin-top:14px}
.uk-ed-contacts strong{display:block;margin-top:8px;font-family:"Playfair Display",Georgia,serif;font-size:1.2rem}
.uk-ed-address-card{padding:20px;border:1px solid var(--ed-line);border-radius:var(--ed-radius);background:rgba(255,255,255,.4)}
.uk-ed-address-card strong{display:block;margin:8px 0 6px;font-family:"Playfair Display",Georgia,serif;font-size:18px}
.uk-ed-address-card p{margin:0;color:var(--ed-muted);font-size:13px;line-height:1.8}

.uk-ed-faq{margin:24px 0 0;text-align:left}
.uk-ed-faq details{margin-bottom:10px;padding:0 18px;border:1px solid var(--ed-line);border-radius:var(--ed-radius);background:rgba(255,255,255,.4)}
.uk-ed-faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  min-height:56px;padding:12px 0;cursor:pointer;list-style:none;font-size:14px;font-weight:600;
}
.uk-ed-faq summary::-webkit-details-marker{display:none}
.uk-ed-faq summary .bdu-icon{color:var(--ed-sage);transition:transform .3s var(--ed-ease)}
.uk-ed-faq details[open] summary .bdu-icon{transform:rotate(45deg)}
.uk-ed-faq p{margin:0 0 16px;color:var(--ed-muted);font-size:13px;line-height:1.85}

.uk-ed-streams{display:grid;gap:10px;margin:24px 0 0;text-align:left}
.uk-ed-streams a{
  display:flex;align-items:center;gap:12px;min-height:56px;padding:14px 18px;
  border:1px solid var(--ed-line);border-radius:var(--ed-radius);background:rgba(255,255,255,.4);
  color:inherit;text-decoration:none;
}
.uk-ed-streams a>span{display:grid;gap:2px;flex:1;min-width:0}
.uk-ed-streams strong{font-size:14px}
.uk-ed-streams small{color:var(--ed-muted);font-size:12px}

/* Closing ----------------------------------------------------------------- */
.uk-ed-closing{padding:clamp(52px,12vw,88px) 0;background:var(--ed-warm);text-align:center}
.uk-ed-closing h2{margin:12px 0 0;font-size:clamp(2rem,10vw,2.9rem)}
.uk-ed-signature{margin:22px 0 0;color:var(--ed-sage);font-family:"Playfair Display",Georgia,serif;font-size:1.3rem}
.uk-ed-hashtags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}
.uk-ed-hashtags button{
  display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;cursor:pointer;
  border:1px solid var(--ed-line);border-radius:999px;background:transparent;color:var(--ed-sage);
  font:inherit;font-size:11px;letter-spacing:.06em;
}
.uk-ed-closing-actions{display:grid;gap:8px;margin-top:24px}

/* Navigation and controls ------------------------------------------------- */
/* A stem down the edge. Every section is a bud on it, the section being read
   opens its leaf, and the stem fills as the guest descends the page. Nothing
   is docked across the bottom, so the page keeps its full width. */
.uk-ed-nav{
  position:fixed;left:0;top:50%;z-index:850;transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:12px 7px;border:1px solid var(--ed-line);border-left:0;
  border-radius:0 18px 18px 0;background:rgba(248,244,236,.96);backdrop-filter:blur(12px);
}
.uk-ed-stem{
  position:absolute;left:50%;top:14px;bottom:14px;width:1px;
  transform:translateX(-50%);background:var(--ed-line);
}
.uk-ed-stem>i{display:block;width:100%;height:0;background:var(--ed-sage);transition:height .25s linear}
.uk-ed-nav button{
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px;
  min-width:0;min-height:36px;padding:0 2px;cursor:pointer;border:0;background:transparent;
  color:var(--ed-muted);font:inherit;font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
}
/* The bud keeps a 44px touch target without widening the stem. */
.uk-ed-nav button:after{content:"";position:absolute;inset:-4px -6px}
.uk-ed-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-ed-nav button span{
  writing-mode:vertical-rl;max-height:0;opacity:0;
  transition:max-height .22s var(--ed-ease),opacity .22s var(--ed-ease);
}
.uk-ed-nav button i{width:9px;height:5px;border-radius:0 100% 0 100%;background:var(--ed-line);transform:rotate(-14deg)}
.uk-ed-nav button.is-active{color:var(--ed-sage)}
.uk-ed-nav button.is-active i{background:var(--ed-sage);width:11px;height:7px}
.uk-ed-nav button.is-active span,
.uk-ed-nav button:hover span,
.uk-ed-nav button:focus-visible span{max-height:96px;opacity:1}

.uk-ed-rail{position:fixed;right:12px;bottom:calc(14px + 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.13:1 against the
   background at every scroll position. The ring is the half that the fill cannot be. */
.uk-ed-rail-toggle,.uk-ed-rail-panel button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1.5px solid var(--ed-line);border-radius:999px;
  background:rgba(251,248,242,.96);color:var(--ed-sage);box-shadow:0 0 0 2px var(--ed-ink),0 8px 22px rgba(107,87,68,.16);
}
.uk-ed-rail-panel{display:grid;gap:6px;justify-items:end}
.uk-ed-rail-panel button.is-active{border-color:var(--ed-sage);background:rgba(91,124,90,.14)}

.uk-ed-aside{display:none}
.uk-eden main{padding-bottom:0}

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

/* Engagement skin --------------------------------------------------------- */
.uk-ed-engagement .bdu-public-card{
  max-width:none;margin:16px 0 0;padding:24px 20px;border:1px solid var(--ed-line);
  border-radius:var(--ed-radius);background:rgba(255,255,255,.44);box-shadow:none;color:var(--ed-ink);text-align:left;
}
.uk-ed-engagement .bdu-public-card-head{display:flex;align-items:center;gap:12px}
.uk-ed-engagement .bdu-public-icon{
  display:grid;place-items:center;width:44px;height:44px;border:1.5px solid var(--ed-line);
  border-radius:999px;background:transparent;color:var(--ed-sage);
}
.uk-ed-engagement .bdu-public-card-head p{margin:0;color:var(--ed-sage);font-size:9px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.uk-ed-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(--ed-ink)}
.uk-ed-engagement .bdu-public-card-copy{color:var(--ed-muted);font-size:14px;line-height:1.85}
.uk-ed-engagement .bdu-public-form{display:grid;gap:12px;margin-top:18px}
.uk-ed-engagement .bdu-public-form label{color:var(--ed-ink);font-size:11px;font-weight:700;letter-spacing:.08em}
.uk-ed-engagement .bdu-public-form :is(input,select,textarea){
  border:1px solid var(--ed-line);border-radius:12px;background:var(--ed-cream);color:var(--ed-ink);
}
.uk-ed-engagement .bdu-public-form :is(input,select){min-height:46px}
.uk-ed-engagement .bdu-public-form :is(input,select,textarea):focus{border-color:var(--ed-sage);box-shadow:0 0 0 3px rgba(91,124,90,.12)}
.uk-ed-engagement .bdu-public-form small{color:var(--ed-muted)}
.uk-ed-engagement .bdu-public-choice-group span{
  min-height:44px;border:1.5px solid var(--ed-line);border-radius:999px;background:var(--ed-cream);color:var(--ed-muted);
}
.uk-ed-engagement .bdu-public-choice-group input:checked+span{border-color:var(--ed-sage);background:rgba(91,124,90,.1);color:var(--ed-sage)}
.uk-ed-engagement .bdu-public-primary{
  min-height:46px;border:1.5px solid var(--ed-sage);border-radius:999px;background:var(--ed-sage);color:#FBF8F2;
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.uk-ed-engagement .bdu-public-primary:hover{background:var(--ed-sage-lt)}
.uk-ed-engagement :is(.bdu-public-known-guest,.bdu-public-notice,.bdu-public-wish,.bdu-public-rsvp-saved){
  border:1px solid var(--ed-hairline);border-radius:14px;background:var(--ed-cream);
}
.uk-ed-engagement .bdu-public-wishes-list>h3{margin:0 0 8px;color:var(--ed-sage);font-family:inherit;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.uk-ed-engagement .bdu-public-wish p{color:var(--ed-ink)}
.uk-ed-engagement .bdu-public-wish footer{color:var(--ed-muted)}
.uk-ed-engagement .bdu-public-pin{color:var(--ed-sage)}

/* The platform-level personalized chip, matched to the botanical canvas. */
.bdu-public-theme-eden .bdu-guest-personalized{
  border-color:rgba(91,124,90,.45);background:#F8F4EC;box-shadow:0 8px 24px rgba(107,87,68,.16);
}
.bdu-public-theme-eden .bdu-guest-personalized strong{color:#5B7C5A}

/* Desktop ----------------------------------------------------------------- */
@media(min-width:768px){
  .uk-eden{font-size:16px;--ed-col:min(100% - 56px, 520px)}

  .uk-ed-gate-media img{object-position:var(--ed-focus-desktop-x,50%) var(--ed-focus-desktop-y,36%)}
  .uk-ed-cover-image{object-position:var(--ed-focus-desktop-x,50%) var(--ed-focus-desktop-y,36%)}

  /* The column becomes a physical card; the canvas around it stays botanical. */
  .uk-ed-paper{width:min(100%,600px);box-shadow:0 0 70px rgba(107,87,68,.16)}
  .uk-ed-gate{background:transparent}
  .uk-ed-gate-veil{background:linear-gradient(180deg,rgba(248,244,236,.82),rgba(248,244,236,.94) 55%,rgba(248,244,236,.99))}

  .uk-ed-pair{flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:30px}
  .uk-ed-pair>.uk-ed-person{flex:1 1 0;max-width:320px}
  .uk-ed-amp{align-self:flex-start;margin-top:64px}
  .uk-ed-person,.uk-ed-pair>.uk-ed-person:nth-of-type(even){text-align:center}
  .uk-ed-portrait,.uk-ed-pair>.uk-ed-person:nth-of-type(even) .uk-ed-portrait{float:none;width:min(76%,240px);margin:0 auto 14px}
  .uk-ed-count{gap:10px}
  .uk-ed-closing-actions{grid-auto-flow:column;justify-content:center}
  .uk-design-gallery-grid .uk-ed-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}

  /* With room to spare the leaves stay open and the stem reads as a label column. */
  .uk-ed-nav{
    left:clamp(12px,2vw,26px);align-items:flex-start;gap:2px;padding:10px 12px;
    border:1px solid var(--ed-line);border-radius:20px;
  }
  .uk-ed-stem{left:19px;transform:none}
  .uk-ed-nav button{flex-direction:row;gap:9px;min-height:38px;padding:0 6px;justify-content:flex-start;text-align:left;font-size:10px;letter-spacing:.08em}
  .uk-ed-nav button span{writing-mode:horizontal-tb;max-width:none;max-height:none;opacity:1;overflow:visible}
  .uk-ed-rail{right:clamp(12px,2vw,26px);bottom:auto;top:50%;transform:translateY(-50%)}
  .uk-ed-feedback{top:20px}
  .uk-ed-toast{bottom:28px}
  .uk-ed-sheet{place-items:center}
  .uk-ed-sheet-panel{border-radius:24px}
  .uk-ed-lightbox-close{top:-52px;right:0}
  .uk-ed-lightbox-prev{left:-62px}
  .uk-ed-lightbox-next{right:-62px}
}

/* Wide screens: the surround earns its keep instead of sitting empty. */
@media(min-width:1180px){
  .uk-ed-aside{
    position:fixed;left:clamp(90px,8vw,150px);top:50%;transform:translateY(-50%);z-index:840;
    display:grid;gap:18px;justify-items:center;color:var(--ed-muted);text-align:center;pointer-events:none;
  }
  .uk-ed-aside-mark{font-family:"Playfair Display",Georgia,serif;font-size:1.5rem;letter-spacing:.3em;color:var(--ed-sage)}
  .uk-ed-aside-name{
    max-height:46svh;writing-mode:vertical-rl;font-family:"Playfair Display",Georgia,serif;font-style:italic;
    font-size:1.5rem;line-height:1.3;color:var(--ed-ink);overflow:hidden;
  }
  .uk-ed-aside-date{font-size:10px;letter-spacing:.24em;text-transform:uppercase}
  .uk-ed-nav{left:auto;right:clamp(90px,8vw,150px);transform:translateY(-50%) translateX(0)}
  .uk-ed-rail{right:clamp(12px,2vw,26px)}
}

/* Narrow phones and short viewports --------------------------------------- */
@media(max-width:760px){
  .uk-ed-share-grid{grid-template-columns:1fr}
}
@media(max-width:400px){
  .uk-ed-count{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uk-design-gallery-grid .uk-ed-gallery{grid-template-columns:1fr}
}
@media(max-height:620px){
  .uk-ed-gate{justify-content:flex-start;padding-top:18px}
  .uk-ed-gate-body h1{font-size:clamp(1.9rem,9vw,2.6rem)}
  .uk-ed-guest{margin-top:12px;padding:9px 14px}
  .uk-ed-gate-body .uk-ed-button{margin-top:14px}
  .uk-ed-flora{height:24px}
  .uk-ed-arch{height:56svh}
}
@media(max-width:767px) and (max-height:620px){
  .uk-ed-nav{max-height:92svh;overflow-y:auto;overscroll-behavior:contain}
  .uk-ed-nav button.is-active span{max-height:64px}
}
@media(min-width:768px) and (max-height:620px){
  .uk-ed-nav{max-height:92svh;overflow-y:auto;overscroll-behavior:contain}
}

/* Cover without a photograph -------------------------------------------- */
.uk-ed-cover-empty{
  position:relative;display:grid;place-items:center;
  width:100%;height:100%;
  background:linear-gradient(170deg,var(--ed-warm),var(--ed-sage-soft));
}
.uk-ed-cover-empty-leaf{
  position:absolute;width:64px;height:30px;border-radius:0 100% 0 100%;
  background:var(--ed-sage);opacity:.32;
}
.uk-ed-cover-empty-leaf:nth-child(1){transform:translate(-78px,-96px) rotate(-38deg)}
.uk-ed-cover-empty-leaf:nth-child(2){transform:translate(0,-128px) rotate(-6deg)}
.uk-ed-cover-empty-leaf:nth-child(3){transform:translate(78px,-96px) rotate(34deg)}
.uk-ed-cover-empty-mark{
  color:var(--ed-sage);font-family:"Playfair Display",Georgia,serif;font-style:italic;
  font-size:clamp(1.5rem,7vw,2.4rem);letter-spacing:.24em;
}

/* Reduced motion ---------------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  .uk-eden{--ed-reveal:0s;--ed-shift:0px}
  .uk-ed-reveal,.uk-ed-reveal-item{opacity:1;transform:none;transition:none}
  .uk-ed-gate,.uk-ed-sheet,.uk-ed-lightbox,.uk-ed-faq summary .bdu-icon,.uk-ed-progress i{transition:none}
  /* The stem fills and the leaf opens instantly; both still say the same thing. */
  .uk-ed-stem>i,.uk-ed-nav button span{transition:none}
  .uk-ed-gallery figure{transform:none !important}
}
