/* Celestia — cosmic midnight romance flagship. Trusted template stylesheet. */

.uk-celestia{
  --ce-void:#080C1A;
  --ce-deep:#0D1528;
  --ce-panel:rgba(18,30,56,.62);
  --ce-silver:#A8C5DA;
  --ce-silver-lt:#C8DDE8;
  --ce-star:#E8F0F7;
  --ce-lavender:#C8A4D4;
  --ce-text:rgba(220,235,248,.9);
  --ce-muted:rgba(168,197,218,.66);
  --ce-line:rgba(168,197,218,.2);
  --ce-hairline:rgba(168,197,218,.1);
  --ce-radius:20px;
  --ce-radius-control:999px;
  --ce-round:50%;
  --ce-ease:cubic-bezier(.25,.8,.25,1);
  --ce-reveal:.8s;
  --ce-shift:20px;
  --ce-col:min(100% - 36px, 520px);
  position:relative;
  min-height:100vh;
  overflow:clip;
  background:var(--ce-void);
  color:var(--ce-text);
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:15px;
  line-height:1.85;
}
.uk-celestia *,.uk-celestia *:before,.uk-celestia *: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-celestia [hidden]{display:none !important}
.uk-celestia .bdu-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}
.uk-celestia h1,.uk-celestia h2,.uk-celestia h3,.uk-celestia h4{
  font-family:"Playfair Display",Georgia,serif;font-weight:600;line-height:1.16;
  color:var(--ce-star);letter-spacing:.01em;overflow-wrap:anywhere;
}
.uk-celestia p,.uk-celestia strong,.uk-celestia span,.uk-celestia li,.uk-celestia cite{overflow-wrap:anywhere}
.uk-ce-preline{white-space:pre-line}

/* The night sky is one continuous field; sections are divided by
   constellations rather than by alternating background panels. */
.uk-ce-sky{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(1.6px 1.6px at 12% 18%, var(--ce-star) 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 78% 12%, var(--ce-silver-lt) 50%, transparent 51%),
    radial-gradient(1.8px 1.8px at 62% 34%, var(--ce-star) 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 28% 52%, var(--ce-silver) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 88% 62%, var(--ce-star) 50%, transparent 51%),
    radial-gradient(1.1px 1.1px at 42% 78%, var(--ce-silver-lt) 50%, transparent 51%),
    radial-gradient(1.7px 1.7px at 8% 88%, var(--ce-star) 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 70% 92%, var(--ce-silver) 50%, transparent 51%),
    radial-gradient(60vw 60vw at 50% 8%, rgba(168,197,218,.10), transparent 70%),
    radial-gradient(70vw 70vw at 20% 92%, rgba(200,164,212,.08), transparent 70%);
  opacity:.72;
  animation:uk-ce-drift 90s linear infinite;
}
@keyframes uk-ce-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-3%,0)}}
.uk-celestia main,.uk-ce-gate,.uk-ce-nav,.uk-ce-rail{position:relative;z-index:1}

/* Palettes ---------------------------------------------------------------- */
.uk-celestia.uk-design-palette-midnight{--ce-void:#03060F;--ce-deep:#070C1A;--ce-panel:rgba(12,20,40,.66);--ce-silver:#8FB4CE;--ce-silver-lt:#B8D3E4;--ce-star:#DCEAF5;--ce-lavender:#9FB6D8;--ce-line:rgba(143,180,206,.2);--ce-hairline:rgba(143,180,206,.1)}
.uk-celestia.uk-design-palette-romantic{--ce-void:#170A16;--ce-deep:#231026;--ce-panel:rgba(56,22,58,.6);--ce-silver:#D8A6C4;--ce-silver-lt:#EDC7DC;--ce-star:#FBE8F2;--ce-lavender:#C79AD8;--ce-line:rgba(216,166,196,.22);--ce-hairline:rgba(216,166,196,.11)}
.uk-celestia.uk-design-palette-warm{--ce-void:#140D07;--ce-deep:#20150C;--ce-panel:rgba(52,34,18,.6);--ce-silver:#D8B27E;--ce-silver-lt:#EBD2A9;--ce-star:#FBEFDC;--ce-lavender:#C9906A;--ce-line:rgba(216,178,126,.22);--ce-hairline:rgba(216,178,126,.11)}
.uk-celestia.uk-design-palette-sage{--ce-void:#06120F;--ce-deep:#0B1C18;--ce-panel:rgba(18,44,38,.6);--ce-silver:#8FC6B0;--ce-silver-lt:#BCE0D2;--ce-star:#E2F4EC;--ce-lavender:#A9CF9A;--ce-line:rgba(143,198,176,.22);--ce-hairline:rgba(143,198,176,.11)}

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

/* Surface variants. Celestia is circular by default; sharp removes every
   curve, which is the largest single change any control here can make. */
.uk-celestia.uk-design-surface-soft{--ce-radius:28px}
.uk-celestia.uk-design-surface-balanced{--ce-radius:12px;--ce-round:18px}
.uk-celestia.uk-design-surface-sharp{--ce-radius:0px;--ce-radius-control:0px;--ce-round:0px}

/* Motion variants --------------------------------------------------------- */
.uk-celestia.uk-design-motion-soft{--ce-reveal:1s;--ce-shift:10px}
.uk-celestia.uk-design-motion-cinematic{--ce-reveal:.9s;--ce-shift:34px}
.uk-celestia.uk-design-motion-minimal{--ce-reveal:0s;--ce-shift:0px}
.uk-celestia.uk-design-motion-minimal .uk-ce-sky{animation:none}

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

.uk-ce-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(--ce-line);border-radius:var(--ce-radius-control);
  background:transparent;color:var(--ce-silver-lt);
  font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  transition:background .25s var(--ce-ease),border-color .25s var(--ce-ease),color .25s var(--ce-ease);
}
.uk-ce-button:hover{border-color:var(--ce-silver);background:rgba(168,197,218,.1);color:var(--ce-star)}
.uk-ce-button.is-solid{border-color:var(--ce-silver);background:rgba(168,197,218,.16);color:var(--ce-star)}
.uk-ce-button.is-solid:hover{background:rgba(168,197,218,.26)}
.uk-celestia :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid var(--ce-silver);outline-offset:3px}

/* Constellation divider: stars of varying weight on a faint hairline. */
.uk-ce-constellation{
  display:flex;align-items:center;justify-content:center;gap:16px;
  width:min(100% - 36px,320px);margin:clamp(34px,8vw,54px) auto 0;height:24px;position:relative;
}
.uk-ce-constellation:before{content:"";position:absolute;left:8%;right:8%;top:50%;height:1px;background:linear-gradient(90deg,transparent,var(--ce-hairline) 22%,var(--ce-hairline) 78%,transparent)}
.uk-ce-constellation i{position:relative;border-radius:50%;background:var(--ce-silver-lt)}
.uk-ce-constellation i:nth-child(1){width:3px;height:3px;opacity:.5;transform:translateY(-7px)}
.uk-ce-constellation i:nth-child(2){width:5px;height:5px;opacity:.85;transform:translateY(4px)}
.uk-ce-constellation i:nth-child(3){width:7px;height:7px;opacity:1;background:var(--ce-star);box-shadow:0 0 12px rgba(232,240,247,.5)}
.uk-ce-constellation i:nth-child(4){width:5px;height:5px;opacity:.85;transform:translateY(-5px)}
.uk-ce-constellation i:nth-child(5){width:3px;height:3px;opacity:.5;transform:translateY(6px);background:var(--ce-lavender)}

.uk-ce-orbit-mark{display:inline-grid;place-items:center;width:64px;height:64px;margin-bottom:18px;position:relative}
.uk-ce-orbit-mark i{position:absolute;border-radius:50%;border:1px solid var(--ce-line)}
.uk-ce-orbit-mark i:nth-child(1){inset:0;border-style:dashed}
.uk-ce-orbit-mark i:nth-child(2){inset:18px;background:var(--ce-silver-lt);border-color:transparent;box-shadow:0 0 18px rgba(200,221,232,.45)}

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

.uk-ce-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:1px solid var(--ce-line);border-radius:999px;
  background:rgba(8,12,26,.94);color:var(--ce-star);font-size:12px;font-weight:600;text-align:center;
  box-shadow:0 14px 40px rgba(0,0,0,.5);transition:opacity .22s var(--ce-ease),transform .22s var(--ce-ease);
}
.uk-ce-toast.is-show{opacity:1;transform:translate(-50%,0)}

.uk-ce-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(--ce-line);border-radius:14px;
  background:rgba(13,21,40,.96);color:var(--ce-star);font-size:13px;box-shadow:0 12px 34px rgba(0,0,0,.45);
}

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

/* Opening gate ------------------------------------------------------------ */
.uk-ce-gate{
  position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:26px 20px;
  background:var(--ce-void);text-align:center;
  transition:opacity .6s var(--ce-ease),visibility .6s;
}
.uk-ce-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.uk-ce-gate-media{position:absolute;inset:0;overflow:hidden}
.uk-ce-gate-media img{width:100%;height:100%;object-fit:cover;object-position:var(--ce-focus-mobile-x,50%) var(--ce-focus-mobile-y,40%);opacity:.5}
.uk-ce-gate-veil{position:absolute;inset:0;background:radial-gradient(70% 55% at 50% 42%, rgba(8,12,26,.45), rgba(8,12,26,.88) 70%, var(--ce-void))}
.uk-ce-gate-body{position:relative;z-index:2;width:min(100%,440px)}
.uk-ce-gate-body h1{margin:12px 0 0;font-size:clamp(2.3rem,12vw,3.4rem)}
.uk-ce-gate-date{margin:14px 0 0;color:var(--ce-muted);font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.uk-ce-gate-body .uk-ce-button{margin-top:22px}

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

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

/* Cover portal ------------------------------------------------------------ */
/* Hero cover: the portal is sized against the viewport, not against a column. */
.uk-ce-cover{min-height:100svh;display:grid;align-content:center;padding:clamp(24px,6vw,44px) 0 0;text-align:center}
.uk-ce-portal{position:relative;width:min(92vw,68svh);margin:0 auto clamp(26px,6vw,40px);aspect-ratio:1/1;display:grid;place-items:center}
.uk-ce-portal-image{
  width:78%;height:78%;object-fit:cover;border-radius:var(--ce-round);
  object-position:var(--ce-focus-mobile-x,50%) var(--ce-focus-mobile-y,40%);
}
.uk-ce-portal-veil{position:absolute;width:78%;height:78%;border-radius:var(--ce-round);background:radial-gradient(circle at 50% 30%, rgba(8,12,26,0) 40%, rgba(8,12,26,.42) 100%)}
.uk-ce-orbit{position:absolute;border-radius:var(--ce-round);border:1px solid var(--ce-hairline);pointer-events:none}
.uk-ce-orbit.is-inner{inset:8%;border-style:dashed;border-color:var(--ce-line)}
.uk-ce-orbit.is-outer{inset:0;box-shadow:0 0 60px rgba(168,197,218,.14) inset}
.uk-ce-cover h1{margin:12px 0 0;font-size:clamp(2.2rem,11vw,3.2rem)}
.uk-ce-cover-date{margin:16px 0 0;color:var(--ce-muted);font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.uk-ce-monogram{display:block;margin:22px 0 0;color:var(--ce-lavender);font-family:"Playfair Display",Georgia,serif;font-size:15px;letter-spacing:.34em}

/* Sections ---------------------------------------------------------------- */
.uk-ce-sec{padding:clamp(46px,10vw,68px) 0 0;text-align:center}
.uk-ce-wrap{width:var(--ce-col);margin:0 auto}
.uk-ce-wrap>h2{margin:10px 0 0;font-size:clamp(1.65rem,7.5vw,2.3rem)}
.uk-ce-bismillah{margin:0 0 18px;color:var(--ce-silver-lt);font-size:clamp(1.05rem,5vw,1.35rem);line-height:2}
.uk-ce-quote{margin:24px auto 0;max-width:42ch;padding:20px;border:1px solid var(--ce-hairline);border-radius:var(--ce-radius);background:var(--ce-panel)}
.uk-ce-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;color:var(--ce-star)}
.uk-ce-quote cite{display:block;margin-top:10px;color:var(--ce-muted);font-size:11px;font-style:normal;letter-spacing:.16em;text-transform:uppercase}

/* Participants ------------------------------------------------------------ */
.uk-ce-couple-index{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0 0}
.uk-ce-couple-index button{
  min-height:44px;padding:0 16px;cursor:pointer;border:1px solid var(--ce-line);
  border-radius:var(--ce-radius-control);background:transparent;color:var(--ce-muted);font:inherit;font-size:12px;
}
.uk-ce-couple-index button.is-active{border-color:var(--ce-silver);color:var(--ce-star);background:rgba(168,197,218,.12)}
.uk-ce-couples{display:grid;gap:40px;margin:30px 0 0}
.uk-ce-couple>.uk-ce-eyebrow{margin-bottom:18px}
/* Flex, not a two-column grid: the ampersand is a third child, so a
   two-column track pushed the second person onto the next row and left the
   ampersand sitting beside the first one. Flex also survives groups with one
   or three participants. */
.uk-ce-pair{display:flex;flex-direction:column;align-items:center;gap:24px}
.uk-ce-pair>.uk-ce-person{width:100%}
.uk-ce-person{min-width:0}
.uk-ce-portrait{width:min(58%,190px);margin:0 auto;aspect-ratio:1/1;overflow:hidden;border-radius:var(--ce-round);border:1px solid var(--ce-line);background:var(--ce-deep)}
.uk-ce-portrait img{width:100%;height:100%;object-fit:cover}
.uk-ce-portrait.is-empty{display:grid;place-items:center}
.uk-ce-portrait.is-empty span{font-family:"Playfair Display",Georgia,serif;font-size:2.4rem;color:var(--ce-silver)}
.uk-ce-person h3{margin:16px 0 0;font-size:clamp(1.45rem,6.5vw,1.9rem)}
.uk-ce-role{margin:6px 0 0;color:var(--ce-silver);font-size:9px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.uk-ce-fullname{display:block;margin-top:8px;font-size:13px;font-weight:500;color:var(--ce-muted)}
.uk-ce-parents{margin-top:14px}
.uk-ce-parents span{display:block;color:var(--ce-muted);font-size:9px;letter-spacing:.22em;text-transform:uppercase}
.uk-ce-parents p{margin:6px 0 0;font-size:13px;line-height:1.8}
.uk-ce-parents em{color:var(--ce-lavender);font-family:"Playfair Display",Georgia,serif}
.uk-ce-bio{margin-top:12px;color:var(--ce-muted);font-size:13px;line-height:1.85}
.uk-ce-amp{flex:0 0 auto;color:var(--ce-lavender);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:1.9rem;line-height:1}

/* Events ------------------------------------------------------------------ */
/* The last part of Celestia that still read as a plain stack of cards. The
   events become bodies on an orbit: each panel carries its own dashed ring,
   and the column traces an arc down the page. */
.uk-ce-events{position:relative;display:grid;gap:26px;margin:28px 0 0;padding:14px 12px}
.uk-ce-events>.uk-ce-event:nth-child(odd){margin-right:5%}
.uk-ce-events>.uk-ce-event:nth-child(even){margin-left:5%}
.uk-ce-event{position:relative;padding:30px 20px 22px;border:1px solid var(--ce-hairline);border-radius:var(--ce-radius);background:var(--ce-panel)}
.uk-ce-event:after{
  content:"";position:absolute;inset:-11px;border-radius:inherit;
  border:1px dashed var(--ce-line);opacity:.5;pointer-events:none;
}
.uk-ce-event-star{position:absolute;top:-16px;left:50%;z-index:2;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;background:var(--ce-star);box-shadow:0 0 16px rgba(232,240,247,.6)}
.uk-ce-event h3{margin:0;font-size:clamp(1.25rem,5.5vw,1.6rem)}
.uk-ce-event-date{margin:8px 0 0;color:var(--ce-silver);font-size:12px;font-weight:700;letter-spacing:.14em}
.uk-ce-venue{display:block;margin-top:14px;font-size:14px;font-weight:700;color:var(--ce-star)}
.uk-ce-address{margin:6px auto 0;max-width:38ch;color:var(--ce-muted);font-size:13px;line-height:1.75}
.uk-ce-scope{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px;margin:0 0 12px}
.uk-ce-scope span{color:var(--ce-muted);font-size:9px;letter-spacing:.22em;text-transform:uppercase}
.uk-ce-scope strong{color:var(--ce-silver-lt);font-size:12px}
.uk-ce-map{width:100%;height:180px;margin-top:16px;border:0;border-radius:var(--ce-radius);filter:grayscale(.4) brightness(.82) contrast(1.05)}
.uk-ce-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.uk-ce-actions .uk-ce-button{min-height:42px;padding:0 16px}

/* Orbital countdown ------------------------------------------------------- */
.uk-ce-orbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:24px}
.uk-ce-orb{position:relative;aspect-ratio:1/1;display:grid;place-content:center;align-content:center;gap:2px}
.uk-ce-orb>span{
  position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(var(--ce-silver) calc(var(--ce-orb, 0) * 360deg), rgba(168,197,218,.14) 0);
  -webkit-mask:radial-gradient(circle, transparent 63%, #000 64%);
  mask:radial-gradient(circle, transparent 63%, #000 64%);
  transition:background .4s linear;
}
.uk-ce-orb strong{font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.25rem,6vw,1.7rem);font-weight:600;color:var(--ce-star);font-variant-numeric:tabular-nums;line-height:1}
.uk-ce-orb small{color:var(--ce-muted);font-size:8.5px;letter-spacing:.2em;text-transform:uppercase}
.uk-ce-count-done{margin:20px 0 0;color:var(--ce-silver-lt);font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:18px}

/* Trail (story + schedule) ------------------------------------------------ */
.uk-ce-trail{list-style:none;margin:28px 0 0;padding:0 0 0 26px;text-align:left;position:relative}
.uk-ce-trail:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,transparent,var(--ce-line) 12%,var(--ce-line) 88%,transparent)}
.uk-ce-trail li{position:relative;padding:0 0 26px}
.uk-ce-trail li:last-child{padding-bottom:0}
.uk-ce-trail li:before{content:"";position:absolute;left:-25px;top:9px;width:9px;height:9px;border-radius:50%;background:var(--ce-star);box-shadow:0 0 12px rgba(232,240,247,.5)}
.uk-ce-trail-date{display:block;color:var(--ce-silver);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.uk-ce-trail h3{margin:6px 0 0;font-size:18px}
.uk-ce-trail p{margin:6px 0 0;color:var(--ce-muted);font-size:13px;line-height:1.85}

/* Gallery ----------------------------------------------------------------- */
.uk-ce-gallery-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 14px}
.uk-ce-gallery-tools>span{color:var(--ce-muted);font-size:10px;letter-spacing:.22em;text-transform:uppercase}
.uk-ce-gallery-tools>div{display:flex;gap:6px}
.uk-ce-gallery-tools button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1px solid var(--ce-line);border-radius:var(--ce-radius-control);background:transparent;color:var(--ce-silver-lt);
}
.uk-design-gallery-grid .uk-ce-gallery-tools>div,
.uk-design-gallery-editorial .uk-ce-gallery-tools>div{display:none}
.uk-ce-gallery figure{position:relative;margin:0;overflow:hidden;border-radius:var(--ce-radius);border:1px solid var(--ce-hairline);background:var(--ce-deep)}
.uk-ce-gallery figure img{display:block;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .7s var(--ce-ease)}
.uk-ce-gallery figure:hover img{transform:scale(1.04)}
.uk-ce-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(--ce-radius-control);background:rgba(8,12,26,.72);color:var(--ce-star);
}
/* Offset constellation grid is the default: the second column hangs lower. */
.uk-ce-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-bottom:24px}
.uk-ce-gallery figure:nth-child(even){transform:translateY(20px)}
.uk-design-gallery-grid .uk-ce-gallery figure:nth-child(even){transform:none}
.uk-design-gallery-editorial .uk-ce-gallery{grid-template-columns:1fr;gap:18px}
.uk-design-gallery-editorial .uk-ce-gallery figure{transform:none}
.uk-design-gallery-editorial .uk-ce-gallery figure img{aspect-ratio:4/5}
.uk-design-gallery-filmstrip .uk-ce-gallery{
  grid-template-columns:none;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-ce-gallery::-webkit-scrollbar{display:none}
.uk-design-gallery-filmstrip .uk-ce-gallery figure{transform:none;scroll-snap-align:center}
.uk-design-gallery-filmstrip .uk-ce-gallery figure img{aspect-ratio:4/5}

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

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

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

/* Closing moon ------------------------------------------------------------ */
.uk-ce-closing{padding:clamp(56px,12vw,92px) 0 clamp(48px,10vw,72px);text-align:center;position:relative;z-index:1}
.uk-ce-moon{position:relative;width:min(62vw,230px);margin:0 auto clamp(26px,6vw,38px);aspect-ratio:1/1;display:grid;place-items:center}
.uk-ce-moon-disc{
  position:absolute;inset:12%;border-radius:50%;
  background:radial-gradient(circle at 40% 34%, rgba(232,240,247,.95), rgba(180,210,232,.62) 58%, rgba(120,165,200,.26) 100%);
  box-shadow:0 0 70px rgba(168,197,218,.3);
}
.uk-ce-moon-ring{position:absolute;inset:0;border-radius:50%;border:1px dashed var(--ce-line)}
.uk-ce-moon-names{
  position:relative;z-index:2;width:66%;margin:0;padding:0;
  font-family:"Playfair Display",Georgia,serif;font-size:clamp(.85rem,3.6vw,1.2rem);font-weight:600;
  color:#0A1020;line-height:1.3;hyphens:auto;
}
.uk-ce-closing h2{margin:12px 0 0;font-size:clamp(1.95rem,9vw,2.7rem)}
.uk-ce-closing-date{margin:16px 0 0;color:var(--ce-silver);font-size:11px;letter-spacing:.26em;text-transform:uppercase}
.uk-ce-hashtags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}
.uk-ce-hashtags button{
  display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;cursor:pointer;
  border:1px solid var(--ce-line);border-radius:999px;background:transparent;color:var(--ce-silver-lt);
  font:inherit;font-size:11px;letter-spacing:.08em;
}
.uk-ce-closing-actions{display:grid;gap:8px;margin-top:24px}

/* Navigation and controls ------------------------------------------------- */
.uk-ce-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:850;
  padding:0 0 calc(0px + env(safe-area-inset-bottom));
  border-top:1px solid var(--ce-hairline);background:rgba(8,12,26,.94);backdrop-filter:blur(12px);
}
.uk-ce-nav-focus{
  position:absolute;left:50%;top:7px;z-index:0;width:106px;height:46px;transform:translateX(-50%);
  border:1px solid var(--ce-silver);border-radius:999px;background:rgba(168,197,218,.1);
  box-shadow:0 0 18px rgba(168,197,218,.2);pointer-events:none;
}
.uk-ce-nav-track{
  position:relative;z-index:1;display:flex;gap:0;margin:0;list-style:none;
  padding:7px calc(50% - 53px);overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;
}
.uk-ce-nav-track::-webkit-scrollbar{display:none}
.uk-ce-nav-track>li{flex:0 0 106px;scroll-snap-align:center}
.uk-ce-nav button{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  width:100%;min-width:0;min-height:46px;padding:0 8px;cursor:pointer;border:0;background:transparent;
  color:var(--ce-muted);font:inherit;font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
}
.uk-ce-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uk-ce-nav-index{font-size:8px;font-weight:700;letter-spacing:.2em;opacity:.5}
.uk-ce-nav button.is-focused{color:var(--ce-silver-lt)}
.uk-ce-nav button.is-active{color:var(--ce-star)}
.uk-ce-nav button.is-active .uk-ce-nav-index{color:var(--ce-star);opacity:1}

.uk-ce-rail{position:fixed;right:12px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:860;display:grid;gap:6px;justify-items:end}
.uk-ce-rail-toggle,.uk-ce-rail-panel button{
  display:grid;place-items:center;width:44px;height:44px;cursor:pointer;
  border:1px solid var(--ce-line);border-radius:999px;
  background:rgba(13,21,40,.94);color:var(--ce-silver-lt);box-shadow:0 8px 22px rgba(0,0,0,.45);
}
.uk-ce-rail-panel{display:grid;gap:6px;justify-items:end}
.uk-ce-rail-panel button.is-active{border-color:var(--ce-silver);background:rgba(168,197,218,.18);color:var(--ce-star)}

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

/* Modals ------------------------------------------------------------------ */
.uk-ce-sheet,.uk-ce-lightbox{
  position:fixed;inset:0;z-index:1200;display:grid;opacity:0;visibility:hidden;
  background:rgba(3,6,15,.82);transition:opacity .28s var(--ce-ease),visibility .28s;
}
.uk-ce-sheet{place-items:end center}
.uk-ce-lightbox{place-items:center}
.uk-ce-sheet.is-open,.uk-ce-lightbox.is-open{opacity:1;visibility:visible}
.uk-ce-sheet-panel{
  width:min(100%,520px);padding:26px 22px calc(26px + env(safe-area-inset-bottom));
  border-top:1px solid var(--ce-line);border-radius:24px 24px 0 0;background:var(--ce-deep);text-align:center;
}
.uk-ce-sheet-panel h2{margin:10px 0 0;font-size:1.5rem}
.uk-ce-share-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 0}
.uk-ce-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(--ce-line);border-radius:var(--ce-radius);background:transparent;
  color:var(--ce-star);font:inherit;font-size:13px;font-weight:600;
}
.uk-ce-sheet-close{width:100%;margin-top:12px}
.uk-ce-lightbox-panel{position:relative;width:min(94vw,880px);max-height:88svh;display:grid;place-items:center}
.uk-ce-lightbox-panel img{max-width:100%;max-height:78svh;object-fit:contain;border-radius:10px;background:var(--ce-deep)}
.uk-ce-lightbox.is-switching img{opacity:.35;transition:opacity .12s linear}
.uk-ce-lightbox-counter{margin-top:12px;color:var(--ce-silver-lt);font-size:11px;letter-spacing:.2em}
.uk-ce-lightbox button{
  position:absolute;display:grid;place-items:center;width:46px;height:46px;cursor:pointer;
  border:1px solid var(--ce-line);border-radius:999px;background:rgba(8,12,26,.72);color:var(--ce-star);
}
.uk-ce-lightbox-close{top:-4px;right:-4px}
.uk-ce-lightbox-prev{left:-4px;top:50%;transform:translateY(-50%)}
.uk-ce-lightbox-next{right:-4px;top:50%;transform:translateY(-50%)}
body.is-celestia-modal-open{overflow:hidden}

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

/* The platform-level personalized chip, matched to the night sky. */
.bdu-public-theme-celestia .bdu-guest-personalized{
  border-color:rgba(168,197,218,.4);background:#0D1528;color:#DCEBF8;box-shadow:0 8px 26px rgba(0,0,0,.5);
}
.bdu-public-theme-celestia .bdu-guest-personalized strong{color:#E8F0F7}

/* Desktop ----------------------------------------------------------------- */
@media(min-width:768px){
  .uk-celestia{font-size:16px;--ce-col:min(100% - 64px, 620px)}

  .uk-ce-gate-media img{object-position:var(--ce-focus-desktop-x,50%) var(--ce-focus-desktop-y,42%)}
  .uk-ce-portal-image{object-position:var(--ce-focus-desktop-x,50%) var(--ce-focus-desktop-y,42%)}
  .uk-ce-portal{width:min(48vw,62svh)}

  .uk-ce-pair{flex-direction:row;align-items:flex-start;justify-content:center;gap:28px}
  .uk-ce-events{padding:18px 18px}
  .uk-ce-events>.uk-ce-event:nth-child(odd){margin-right:9%}
  .uk-ce-events>.uk-ce-event:nth-child(even){margin-left:9%}
  .uk-ce-pair>.uk-ce-person{flex:1 1 0;max-width:320px}
  /* Roughly level with the middle of the portraits rather than the middle of
     the whole column, which bios of different lengths would throw off. */
  .uk-ce-amp{margin-top:64px}
  .uk-ce-couple-index{gap:10px}
  .uk-ce-orbs{gap:14px}
  .uk-ce-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-bottom:30px}
  .uk-ce-gallery figure:nth-child(even){transform:none}
  .uk-ce-gallery figure:nth-child(3n+2){transform:translateY(26px)}
  .uk-design-gallery-grid .uk-ce-gallery figure{transform:none}
  .uk-design-gallery-editorial .uk-ce-gallery{grid-template-columns:1fr}
  .uk-design-gallery-filmstrip .uk-ce-gallery{grid-auto-columns:minmax(260px,32%)}
  .uk-ce-accounts,.uk-ce-contacts{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* 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-ce-accounts>*:last-child:nth-child(odd),.uk-ce-contacts>*:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:min(100%,420px)}
  .uk-ce-closing-actions{grid-auto-flow:column;justify-content:center}

  .uk-ce-nav{
    left:clamp(12px,2vw,28px);right:auto;bottom:auto;top:50%;transform:translateY(-50%);
    width:150px;padding:8px;border:1px solid var(--ce-hairline);border-radius:22px;
  }
  .uk-ce-nav-focus{left:8px;top:50%;width:134px;height:40px;transform:translateY(-50%)}
  .uk-ce-nav-track{
    flex-direction:column;max-height:min(58vh,340px);
    padding:calc(min(29vh,170px) - 20px) 0;
    overflow-x:hidden;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;
  }
  .uk-ce-nav-track>li{flex:0 0 40px;width:100%}
  .uk-ce-nav button{flex-direction:row;gap:10px;min-height:40px;padding:0 10px;justify-content:flex-start;text-align:left;font-size:10px;letter-spacing:.1em}
  .uk-ce-nav button span{max-width:none;overflow:visible}
  .uk-ce-rail{right:clamp(12px,2vw,28px);bottom:auto;top:50%;transform:translateY(-50%)}
  .uk-celestia main{padding-bottom:0}
  .uk-ce-feedback{top:20px}
  .uk-ce-toast{bottom:28px}
  .uk-ce-sheet{place-items:center}
  .uk-ce-sheet-panel{border:1px solid var(--ce-line);border-radius:24px}
  .uk-ce-lightbox-close{top:-52px;right:0}
  .uk-ce-lightbox-prev{left:-62px}
  .uk-ce-lightbox-next{right:-62px}
}

/* Wide screens: the surround becomes a slow orbit instead of empty space. */
@media(min-width:1180px){
  .uk-ce-sky:after{
    content:"";position:absolute;left:50%;top:50%;width:min(92vh,1180px);aspect-ratio:1/1;
    transform:translate(-50%,-50%);border-radius:50%;
    border:1px solid rgba(168,197,218,.08);
    box-shadow:0 0 0 90px rgba(168,197,218,.02), 0 0 0 200px rgba(200,164,212,.02);
    animation:uk-ce-orbit 220s linear infinite;
  }
}
@keyframes uk-ce-orbit{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}

/* Narrow phones and short viewports --------------------------------------- */
@media(max-width:760px){
  .uk-ce-share-grid{grid-template-columns:1fr}
}
@media(max-width:400px){
  .uk-ce-nav-focus{width:94px}
  .uk-ce-nav-track{padding-inline:calc(50% - 47px)}
  .uk-ce-nav-track>li{flex:0 0 94px}
  .uk-ce-events>.uk-ce-event:nth-child(odd),
  .uk-ce-events>.uk-ce-event:nth-child(even){margin-left:0;margin-right:0}
  .uk-ce-orbs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uk-ce-gallery{grid-template-columns:1fr}
  .uk-ce-gallery figure:nth-child(even){transform:none}
}
@media(max-height:620px){
  .uk-ce-gate{justify-content:flex-start;padding-top:18px}
  .uk-ce-gate-body h1{font-size:clamp(1.9rem,9vw,2.6rem)}
  .uk-ce-orbit-mark{width:48px;height:48px;margin-bottom:12px}
  .uk-ce-guest{margin-top:12px;padding:9px 14px}
  .uk-ce-gate-body .uk-ce-button{margin-top:14px}
  .uk-ce-portal{width:min(52vw,46svh)}
}
@media(min-width:768px) and (max-height:620px){
  .uk-ce-nav-track{max-height:min(42svh,240px);padding-block:calc(min(21svh,120px) - 20px)}
}

/* Cover without a photograph -------------------------------------------- */
.uk-ce-cover-empty{
  position:relative;display:grid;place-items:center;
  width:78%;height:78%;border-radius:var(--ce-round);overflow:hidden;
  background:radial-gradient(circle at 50% 34%, var(--ce-deep), var(--ce-void));
}
.uk-ce-cover-empty-moon{
  position:absolute;width:46%;aspect-ratio:1/1;border-radius:50%;
  background:radial-gradient(circle at 40% 34%, rgba(232,240,247,.92), rgba(168,197,218,.5) 62%, rgba(120,165,200,.2));
  box-shadow:0 0 60px rgba(168,197,218,.26);
}
.uk-ce-cover-empty-mark{
  position:relative;z-index:2;color:var(--ce-star);
  font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.1rem,4.6vw,1.6rem);letter-spacing:.3em;
}

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