@import url("https://fonts.googleapis.com/css2?family=Allura&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=DM+Sans:wght@400;500;600&family=Noto+Naskh+Arabic:wght@400;500&family=Cormorant+Infant:ital,wght@0,300..700;1,300..700&family=Elsie:wght@400;900&family=Mooli&display=swap");

/* ======= HERO + GLOBALS (carried over verbatim from the original template) ======= */
:root {
  --font-display: "Elsie", "Times New Roman", serif;
  --font-body: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --font-script: "Elsie", "Snell Roundhand", "Segoe Script", cursive;
  --font-arabic: "Geeza Pro", "Traditional Arabic", serif;
}

img {
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  scroll-behavior: smooth;
  background: var(--plum);
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  background: var(--plum);
  color: var(--plum);
}

body.intro-locked {
  height: 100vh;
  overflow: hidden;
}

button, input, select, textarea {
  font: inherit;
}

button,
a,
.hero {
  -webkit-tap-highlight-color: transparent;
}

a {
  color: inherit;
}

main {
  overflow: clip;
  background: var(--plum);
}

.hero {
  align-items: center;
  display: flex;
  min-height: 100svh;
  overflow: hidden;
  position: relative;
  isolation: isolate;
  background: var(--plum);
  color: var(--ivory);
  
    -webkit-tap-highlight-color: transparent;
}

.hero.is-closed {
  cursor: pointer;
}

.hero-video, .hero-veil {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}

.hero-video {
  transform: scale(1.025);
  transition: filter 1.8s ease, transform 8s ease;
  z-index: -3;
  filter: none;
}

.is-open .hero-video {
  transform: scale(1.08);
  filter: none;
}

.hero-veil {
  z-index: -2;
  background: transparent;
}

.hero-geometry {
  inset: 21px;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.hero-geometry::before, .hero-geometry::after {
  border-style: solid;
  content: "";
  inset: 0;
  position: absolute;
  border-color: color-mix(
    in srgb,
    var(--champagne) 32%,
    transparent
    );
}

.hero-geometry::before {
  border-width: 1px;
  clip-path: polygon(0 0, 35% 0, 35% 1px, 65% 1px, 65% 0, 100% 0, 100% 100%, 65% 100%, 65% calc(100% - 1px), 35% calc(100% - 1px), 35% 100%, 0 100%);
}

.hero-geometry::after {
  border-width: 0 1px;
  inset: 12px 0;
}

.hero-geometry i {
  border: 1px solid color-mix(in srgb, var(--ivory) 23%, transparent);
  border-bottom: 0;
  border-radius: 50% 50% 0 0 / 35% 35% 0 0;
  height: 48%;
  left: 50%;
  max-width: 690px;
  position: absolute;
  top: 4%;
  transform: translateX(-50%);
  width: 72%;
  border-color: color-mix(
    in srgb,
    var(--champagne) 26%,
    transparent
    );
}

.hero-geometry i + i {
  height: 44%;
  opacity: .45;
  top: 8%;
  width: 64%;
}

.opening-mark {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 19px;
  inset: 0;
  justify-content: center;
  opacity: 1;
  position: absolute;
  transition: opacity .7s ease, transform .9s ease, visibility .7s;
  visibility: visible;
  z-index: 3;
  color: var(--ivory);
}

.is-open .opening-mark {
  opacity: 0;
  transform: scale(.96);
  visibility: hidden;
}

.opening-mono {
  align-items: center;
  display: flex;
  gap: 18px;
  line-height: 1;
  color: var(--ivory);
  font-family: var(--font-script);
  font-size: clamp(3.8rem, 12vw, 6rem);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
}

.opening-mono i {
  height: 52px;
  transform: rotate(28deg);
  width: 1px;
  background: color-mix(
    in srgb,
    var(--champagne) 70%,
    transparent
    );
}

.opening-label {
  font-size: .64rem;
  font-weight: 650;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--champagne);
  display: none;
}

.opening-ripple {
  border: 1px solid color-mix(in srgb, var(--ivory) 52%, transparent);
  border-radius: 50%;
  height: 31px;
  margin-top: 6px;
  position: relative;
  width: 31px;
  border-color: color-mix(
    in srgb,
    var(--champagne) 80%,
    transparent
    );
}

.opening-ripple::before, .opening-ripple::after {
  border: 1px solid color-mix(in srgb, var(--ivory) 35%, transparent);
  border-radius: inherit;
  content: "";
  inset: -1px;
  position: absolute;
  animation: pulse-ring 2.4s ease-out infinite;
  border-color: color-mix(
    in srgb,
    var(--champagne) 46%,
    transparent
    );
}

.opening-ripple::after {
  animation-delay: .8s;
}

.music-toggle {
  align-items: center;
  backdrop-filter: blur(7px);
  border: 1px solid color-mix(in srgb, var(--ivory) 42%, transparent);
  border-radius: 999px;
  cursor: pointer;
  display: flex;
  font-size: .61rem;
  font-weight: 650;
  gap: 0;
  letter-spacing: .16em;
  padding: 10px 12px;
  position: fixed;
  right: 17px;
  text-transform: uppercase;
  top: 17px;
  transition: background .25s ease, border-color .25s ease;
  z-index: 50;
  background: color-mix(
    in srgb,
    var(--plum) 68%,
    transparent
    );
  border-color: color-mix(
    in srgb,
    var(--champagne) 55%,
    transparent
    );
  color: var(--ivory);
}

.music-toggle:hover, .music-toggle:focus-visible {
  outline: none;
  background: color-mix(
    in srgb,
    var(--plum) 92%,
    transparent
    );
  border-color: var(--champagne);
}

.music-bars {
  align-items: center;
  display: flex;
  gap: 2px;
  height: 15px;
}

.music-bars i {
  background: currentColor;
  border-radius: 2px;
  display: block;
  height: 5px;
  opacity: .8;
  width: 1px;
}

.music-toggle.is-playing .music-bars i {
  animation: music-bar .8s ease-in-out infinite alternate;
}

.music-toggle.is-playing .music-bars i:nth-child(2) {
  animation-delay: -.45s;
}

.music-toggle.is-playing .music-bars i:nth-child(3) {
  animation-delay: -.25s;
}

.hero-content {
  margin: auto;
  max-width: 860px;
  padding: 118px 34px 90px;
  text-align: center;
  width: 100%;
  color: var(--plum);
  text-shadow: 0 1px 3px rgba(27, 24, 13, .3),
    0 4px 20px rgba(255, 255, 255, .65);
  opacity: 0;
  transform: translateY(28px);
  visibility: hidden;
  pointer-events: none;
  will-change: opacity, transform;
  line-height: 1.45;

}

.bismillah {
  font-family: var(--font-arabic);
  font-size: clamp(1.7rem, 5vw, 2.6rem);
  font-weight: 400;
  line-height: 1.3;
  margin: 42px 0 2px;
    opacity: .9;
    display: none;

}

.translation {
  font-family: var(--font-display);
  font-size: .75rem;
  font-style: italic;
  letter-spacing: .03em;
  margin: 0;
  color: var(--ivory);
  opacity: .78;
  display: none;
}

.hero-divider {
  align-items: center;
  display: flex;
  gap: 13px;
  justify-content: center;
  margin: 14px auto;
  display: none;
}

.hero-divider::before, .hero-divider::after {
  content: "";
  height: 1px;
  width: 34px;
  background: color-mix(
    in srgb,
    var(--champagne) 70%,
    transparent
    );
}

.hero-divider span {
  font-size: .62rem;
  color: var(--champagne);
}

.hero-welcome {
  font-size: .58rem;
  font-weight: 600;
  white-space: pre-line;
  letter-spacing: .16em;
  margin: 0 0 20px;
  text-transform: uppercase;
  line-height: 1.4;
    opacity: .8;

}

.couple-names {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}

.couple-names h1 {
  margin: 0 0 5px;
  text-wrap: balance;
  font-family: var(--font-script);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  font-size: calc(clamp(2.4rem, 7vw, 4.2rem) * var(--name-scale, 1));
  line-height: .9;
}

.couple-names h1 span {
  display: block;
  font-size: 1.06em;
  font-family: inherit;
}

.couple-names p {
  font-size: .57rem;
  font-weight: 600;
  letter-spacing: .2em;
  margin: 0 0 3px;
  opacity: .75;
  text-transform: uppercase;
}

.couple-names p:empty,
.couple-names small:empty {
  display: none;
}

.couple-names small {
  display: block;
  font-family: var(--font-display);
  font-size: .82rem;
  font-style: italic;
  line-height: 1.2;
}

.name-ampersand {
  line-height: 1;
  color: var(--champagne);
  font-family: var(--font-display);
  font-size: 2.3rem;
  font-style: italic;
  font-weight: 400;
}

.hero-invitation {
  font-family: var(--font-display);
  font-size: .92rem;
  line-height: 1.4;
  margin: 20px auto 6px;
  max-width: 500px;
}

.hero-closing {
  font-size: .58rem;
  font-weight: 600;
  white-space: pre-line;
  letter-spacing: .16em;
  margin: 0;
  opacity: .8;
  text-transform: uppercase;
}

.scroll-cue {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 65px auto 0;
  text-decoration: none;
  width: fit-content;
  color: var(--plum);
}

.scroll-cue span {
  font-size: .52rem;
  font-weight: 650;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.scroll-cue i {
  height: 27px;
  overflow: hidden;
  position: relative;
  width: 1px;
  background: color-mix(
    in srgb,
    var(--champagne) 55%,
    transparent
    );
}

.scroll-cue i::after {
  animation: scroll-line 2s ease-in-out infinite;
  content: "";
  height: 10px;
  left: 0;
  position: absolute;
  top: -10px;
  width: 1px;
  background: var(--champagne);
}

.closing-arch .bismillah {
  direction: rtl;
  font-size: clamp(1.4rem, 5vw, 2.25rem);
  max-width: 650px;
  color: var(--plum);
}

.closing-arch > p:not(.bismillah) {
  font-family: var(--font-display);
  font-size: .86rem;
  font-style: italic;
  line-height: 1.7;
  margin: 12px auto;
  max-width: 520px;
  opacity: .72;
  color: var(--plum);
}

.hero.is-open .hero-content {
  visibility: visible;
  pointer-events: auto;
  animation: hero-content-reveal 1.4s cubic-bezier(.16,.75,.25,1) 8s both;
}

::selection {
  background: var(--mauve);
  color: var(--ivory);
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline-color: var(--champagne);
}

#brideName, #groomName {
  font-family: var(--font-script);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  font-size: calc(clamp(2.4rem, 7vw, 4.2rem) * var(--name-scale, 1));
  line-height: .92;
}

@media (min-width: 700px) {

  .hero-geometry {
    inset: 28px;
  }

  .hero-content {
    padding-left: 55px;
    padding-right: 55px;
  }

  .couple-names {
    grid-template-columns: 1fr auto 1fr;
  }

  .name-ampersand {
    font-size: 2.6rem;
  }
}

@media (min-width: 1000px) {
  .hero-content {
    padding-top: 112px;
  }
}

@media (max-height: 750px) and (min-width: 700px) {
  .hero-content {
    padding-bottom: 50px;
    padding-top: 75px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

  .hero.is-open .hero-content {
    animation: none;
    opacity: 1;
    transform: none;
    visibility: visible;
    pointer-events: auto;
  }
}

@media (max-width: 600px) {
  #brideName, #groomName {
    font-size: calc(clamp(2.2rem, 9vw, 3.4rem) * var(--name-scale, 1));
    line-height: .92;
    white-space: normal;
  }

  #brideName span, #groomName span {
    display: block;
  }

  .hero-geometry {
    inset: 14px;
  }

  .music-toggle {
    right: 12px;
    top: 12px;
  }
}

#musicLabel {
  display: none;
}

.hero-card .bismillah,
.hero-card .translation,
.hero-card .couple-names,
.hero-card .hero-invitation,
.hero-card .hero-welcome,
.hero-card .hero-closing {
  color: var(--plum);
}

































@keyframes hero-content-reveal {
  0% {
    opacity: 0;
    transform: translateY(32px) scale(.985);
    filter: blur(5px);
  }
  60% {
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes pulse-ring {
  70%, 100% { opacity: 0; transform: scale(2.05); }
}

@keyframes music-bar {
  to { height: 15px; }
}

@keyframes scroll-line { to { transform: translateY(38px); } }

/* =====================================================================
   SECTIONS (everything below the hero)
   Written fresh for this template. The hero rules above are untouched.
   Every colour is read from the tokens defined by the skin block, which
   in turn read config.js -> theme, so a client re-colour just works.
   ===================================================================== */

html { scroll-padding-top: 12px; }

main#invitation {
  background: var(--a-bg);
  overflow: clip;
  counter-reset: sec;
}

.x-sec {
  position: relative;
  isolation: isolate;
  padding: clamp(64px, 11vw, 116px) 0;
  color: var(--ink);
  overflow: clip;
}

.x-wrap {
  position: relative;
  z-index: 1;
  width: min(1080px, calc(100% - 40px));
  margin-inline: auto;
}

.x-sec--a { --band-bg: var(--a-bg); background: var(--a-bg); }
.x-sec--b { --band-bg: var(--b-bg); background: var(--b-bg); }

/* Dark bands re-map the tokens so every component inside inverts by itself. */
.x-sec--c,
.x-sec--d {
  --ink: var(--on-c);
  --ink-2: var(--on-c-2);
  --accent: var(--gold-l);
  --gold: var(--gold-l);
  --line: var(--line-d);
  --card: var(--card-d);
  --shadow: var(--shadow-d);
  --day-on: var(--c-bg);
  --btn-bg: var(--gold-l);
  --btn-on: var(--c-bg);
  color: var(--on-c);
}
.x-sec--c { --band-bg: var(--c-bg); background: var(--c-bg); }
.x-sec--d { --band-bg: var(--d-bg); background: var(--d-bg); }

/* ---------- texture layer, painted by the skin ---------- */
.x-sec::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: var(--tex-c, transparent);
  -webkit-mask: var(--tex-m, none);
  mask: var(--tex-m, none);
  opacity: var(--tex-o, .1);
}

/* ---------- garland seam (the template's own floral asset) ---------- */
.x-garland {
  position: relative;
  z-index: 6;
  height: 0;
  pointer-events: none;
}
.x-garland img {
  position: absolute;
  left: 50%;
  top: 0;
  width: min(820px, 94vw);
  height: auto;
  transform: translate(-50%, -48%);
  display: block;
  filter: drop-shadow(0 8px 14px color-mix(in srgb, var(--ink) 18%, transparent));
}
.x-garland--flip img { transform: translate(-50%, -52%) scaleY(-1); }

/* ---------- section head ---------- */
.x-head {
  text-align: center;
  max-width: 660px;
  margin: 0 auto clamp(30px, 6vw, 54px);
}
.x-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .3em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--accent);
}
.x-title {
  margin: .32em 0 .22em;
  font-family: var(--x-title-font, var(--font-display));
  font-size: clamp(2.2rem, 7.6vw, 3.9rem);
  font-weight: var(--x-title-weight, 400);
  font-style: var(--x-title-style, normal);
  letter-spacing: var(--x-title-track, -.01em);
  line-height: 1.04;
  text-wrap: balance;
  color: var(--ink);
}
.x-rule {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: min(250px, 62%);
  margin: 16px auto 0;
  color: var(--gold);
}
.x-rule::before,
.x-rule::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, currentColor);
  opacity: .8;
}
.x-rule::after { transform: scaleX(-1); }
.x-rule b {
  flex: none;
  width: 22px;
  height: 22px;
  background: currentColor;
  -webkit-mask: var(--glyph) center / contain no-repeat;
  mask: var(--glyph) center / contain no-repeat;
}

.x-lede {
  margin: 0 auto;
  max-width: 34em;
  font-family: var(--font-display);
  font-size: clamp(1.08rem, 3.5vw, 1.32rem);
  line-height: 1.7;
  color: var(--ink-2);
}

/* ---------- buttons ---------- */
.x-btn {
  --btn-fg: var(--btn-on, #fff);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 28px;
  border: 1px solid var(--btn-bg, var(--accent));
  border-radius: var(--btn-r, 999px);
  background: var(--btn-bg, var(--accent));
  color: var(--btn-fg);
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, background .3s, color .3s;
}
.x-btn:hover,
.x-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px color-mix(in srgb, var(--ink) 18%, transparent);
  outline: none;
}
.x-btn--ghost {
  background: transparent;
  color: var(--ink);
  border-color: color-mix(in srgb, var(--gold) 70%, transparent);
}
.x-btn--ghost:hover,
.x-btn--ghost:focus-visible {
  background: color-mix(in srgb, var(--gold) 16%, transparent);
}
.x-btn svg { width: 16px; height: 16px; flex: none; }

/* ---------- scroll reveal ---------- */
.rv {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .9s cubic-bezier(.2,.75,.25,1) calc(var(--i, 0) * 90ms),
              transform .9s cubic-bezier(.2,.75,.25,1) calc(var(--i, 0) * 90ms);
}
.rv.is-in { opacity: 1; transform: none; }

/* =====================================================================
   1. INVITATION LETTER
   ===================================================================== */
.x-letter {
  position: relative;
  max-width: 780px;
  margin-inline: auto;
  padding: clamp(46px, 9vw, 78px) clamp(24px, 7vw, 72px);
  text-align: center;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--card-r);
  box-shadow: var(--shadow);
}
.x-letter::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid var(--line);
  border-radius: calc(var(--card-r) - 6px);
  pointer-events: none;
}
.x-corner {
  position: absolute;
  width: clamp(34px, 8vw, 52px);
  aspect-ratio: 1;
  color: var(--gold);
  background: currentColor;
  -webkit-mask: var(--corner) center / contain no-repeat;
  mask: var(--corner) center / contain no-repeat;
  opacity: .9;
  pointer-events: none;
}
.x-corner--tl { top: 14px; left: 14px; }
.x-corner--tr { top: 14px; right: 14px; transform: scaleX(-1); }
.x-corner--bl { bottom: 14px; left: 14px; transform: scaleY(-1); }
.x-corner--br { bottom: 14px; right: 14px; transform: scale(-1); }

.x-bismillah {
  margin: 0 0 18px;
  font-family: var(--font-arabic);
  font-size: clamp(1.5rem, 5.5vw, 2.1rem);
  line-height: 1.4;
  color: var(--accent);
}
.x-bismillah:empty { display: none; }

.x-hosts {
  display: grid;
  gap: 18px;
  margin: clamp(30px, 6vw, 44px) auto 0;
  padding-top: clamp(24px, 5vw, 34px);
  border-top: 1px solid var(--line);
  max-width: 560px;
}
.x-host { display: grid; gap: 4px; }
.x-host em {
  font-family: var(--font-script);
  font-size: clamp(1.7rem, 6vw, 2.2rem);
  font-style: normal;
  line-height: 1.1;
  color: var(--accent);
}
.x-host small {
  font-family: var(--font-body);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.x-host strong {
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink);
}
@media (min-width: 700px) {
  .x-hosts { grid-template-columns: 1fr 1fr; gap: 0; }
  .x-host + .x-host { border-left: 1px solid var(--line); }
}

.signature {
  margin-top: clamp(26px, 5vw, 38px);
  font-family: var(--font-script);
  font-size: clamp(2.3rem, 9vw, 3.4rem);
  line-height: 1.1;
  color: var(--accent);
}
.signature span { margin: 0 .12em; color: var(--gold); }

/* =====================================================================
   2. SAVE THE DATE (scratch card inside the template's frame art)
   ===================================================================== */
.x-stage {
  position: relative;
  width: min(780px, 100%);
  margin: 0 auto;
  aspect-ratio: var(--frame-ar);
  container-type: inline-size;
}
.x-stage .scratch-wrap {
  position: absolute;
  left: var(--wl);
  top: var(--wt);
  width: var(--ww);
  height: var(--wh);
  overflow: hidden;
  background: var(--paper-card, var(--a-bg));
  /* cut to the frame's real opening, so the surface meets the art with no gap */
  -webkit-mask: url("data:image/png;base64,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") center / 100% 100% no-repeat;
  mask: url("data:image/png;base64,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") center / 100% 100% no-repeat;
  z-index: 1;
}
.x-stage .scratch-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  cursor: crosshair;
  touch-action: none;
  transition: opacity .7s ease, transform .8s ease;
}
.x-stage .scratch-canvas:focus-visible { outline: 2px solid var(--gold); outline-offset: -4px; }
.x-stage .scratch-wrap.is-revealed { animation: x-celebrate .9s cubic-bezier(.2,.8,.2,1); }
.scratch-frame-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  z-index: 4;
  pointer-events: none;
  user-select: none;
}
.x-stage .date-reveal {
  position: absolute;
  inset: var(--dt) var(--dr) var(--db) var(--dl);
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.2cqw;
  text-align: center;
  color: var(--date-ink, var(--ink-l, #3a2a22));
}
.x-stage .date-kicker {
  font-family: var(--font-body);
  font-size: max(.5rem, 1.8cqw);
  font-weight: 700;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--date-accent, var(--accent-l, #8a2a2a));
}
.x-stage .date-main {
  font-family: var(--x-num-font, var(--font-display));
  font-size: var(--date-fs, 6.2cqw);
  font-weight: 500;
  line-height: 1.02;
  white-space: nowrap;
  letter-spacing: -.01em;
}
.x-stage .date-day {
  display: flex;
  align-items: center;
  gap: 1.4cqw;
  font-family: var(--font-body);
  font-size: max(.58rem, 2.1cqw);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.x-stage .date-day a { color: var(--date-accent, var(--accent-l, #8a2a2a)); }

.scratch-note {
  margin: 22px auto 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-style: italic;
  color: var(--ink-2);
}
.scratch-note::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  margin: 0 auto 8px;
  background: var(--gold);
  -webkit-mask: var(--hand) center / contain no-repeat;
  mask: var(--hand) center / contain no-repeat;
  animation: x-ping 2s ease-in-out infinite;
}
.x-sec--date.is-open .scratch-note::before { display: none; }

@keyframes x-ping { 0%,100% { transform: scale(.85); opacity: .7; } 50% { transform: scale(1.15); opacity: 1; } }
@keyframes x-celebrate { 40% { transform: scale(1.025); box-shadow: 0 0 60px color-mix(in srgb, var(--gold) 55%, transparent); } }

/* what appears after the card is scratched */
.x-after {
  display: none;
  gap: 26px;
  justify-items: center;
  margin-top: clamp(30px, 6vw, 48px);
}
.x-sec--date.is-open .x-after { display: grid; animation: x-rise .9s cubic-bezier(.2,.75,.25,1) .25s both; }
@keyframes x-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

.x-cal {
  width: min(330px, 100%);
  padding: 20px 20px 18px;
  text-align: center;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--card-r);
  box-shadow: var(--shadow);
}
.x-cal__month {
  display: block;
  margin-bottom: 12px;
  font-family: var(--x-num-font, var(--font-display));
  font-size: 1.4rem;
  color: var(--ink);
}
.x-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px 0;
  font-family: var(--font-body);
  font-size: .78rem;
}
.x-cal__grid span { display: grid; place-items: center; height: 34px; color: var(--ink-2); }
.x-cal__grid .dow { font-size: .6rem; font-weight: 700; letter-spacing: .12em; color: var(--accent); height: 24px; }
.x-cal__grid .is-day {
  position: relative;
  font-weight: 700;
  color: var(--day-on, #fff);
  z-index: 0;
}
.x-cal__grid .is-day::before {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: -1;
  background: var(--accent);
  -webkit-mask: var(--glyph) center / contain no-repeat;
  mask: var(--glyph) center / contain no-repeat;
  transform: scale(1.5);
}
.x-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* =====================================================================
   3. COUNTDOWN
   ===================================================================== */
.x-count {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(8px, 2.4vw, 22px);
  max-width: 820px;
  margin-inline: auto;
}
.x-count > div {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: clamp(18px, 4.4vw, 34px) 4px clamp(14px, 3.4vw, 26px);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--tile-r, 16px);
  box-shadow: var(--shadow);
}
.x-count strong {
  font-family: var(--x-num-font, var(--font-display));
  font-size: clamp(1.9rem, 8.6vw, 3.9rem);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: var(--ink);
}
.x-count span {
  font-family: var(--font-body);
  font-size: clamp(.5rem, 1.9vw, .66rem);
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent);
}
.x-count-date {
  margin: clamp(28px, 5vw, 40px) 0 0;
  text-align: center;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-style: italic;
  color: var(--ink-2);
}

/* =====================================================================
   4. PROGRAM / TIMELINE
   ===================================================================== */
.x-timeline {
  --p: 0;
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.x-timeline::before,
.x-timeline::after {
  content: "";
  position: absolute;
  left: 21px;
  top: 14px;
  bottom: 14px;
  width: 2px;
  border-radius: 2px;
  background: var(--line);
}
.x-timeline::after {
  background: linear-gradient(var(--gold), var(--accent));
  transform-origin: top;
  transform: scaleY(var(--p));
  box-shadow: 0 0 12px color-mix(in srgb, var(--gold) 55%, transparent);
}
.x-step {
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr;
  column-gap: 20px;
  align-items: start;
  padding-bottom: clamp(26px, 5vw, 42px);
}
.x-step:last-child { padding-bottom: 0; }
.x-step__dot {
  position: relative;
  z-index: 1;
  grid-column: 1;
  grid-row: 1 / span 3;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--a-bg);
  border: 1px solid var(--line);
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--ink-2);
  transition: background .5s, color .5s, border-color .5s, box-shadow .5s, transform .5s;
}
.x-sec--c .x-step__dot { background: var(--c-bg); }
.x-step.is-lit .x-step__dot {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--day-on, #fff);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--gold) 22%, transparent);
  transform: scale(1.06);
}
.x-step time,
.x-step h3,
.x-step p { grid-column: 2; }
.x-step time {
  padding-top: 4px;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent);
}
.x-step h3 {
  margin: 2px 0 0;
  font-family: var(--x-num-font, var(--font-display));
  font-size: clamp(1.45rem, 5.4vw, 2rem);
  font-weight: 500;
  line-height: 1.2;
  color: var(--ink);
}
.x-step p {
  margin: 4px 0 0;
  font-family: var(--font-display);
  font-size: 1.08rem;
  font-style: italic;
  color: var(--ink-2);
}
.x-step p:empty { display: none; }

@media (min-width: 820px) {
  .x-timeline--alt::before,
  .x-timeline--alt::after { left: 50%; margin-left: -1px; }
  .x-timeline--alt .x-step {
    grid-template-columns: 1fr 44px 1fr;
    column-gap: 34px;
  }
  .x-timeline--alt .x-step__dot { grid-column: 2; grid-row: 1 / span 3; }
  .x-timeline--alt .x-step time,
  .x-timeline--alt .x-step h3,
  .x-timeline--alt .x-step p { grid-column: 3; }
  .x-timeline--alt .x-step:nth-child(even) time,
  .x-timeline--alt .x-step:nth-child(even) h3,
  .x-timeline--alt .x-step:nth-child(even) p { grid-column: 1; text-align: right; }
}

/* =====================================================================
   5. FESTIVITIES (pre-wedding events)
   ===================================================================== */
.x-fest {
  display: grid;
  gap: clamp(16px, 3vw, 26px);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  max-width: 1020px;
  margin-inline: auto;
}
.x-fest-card {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: clamp(30px, 6vw, 42px) 24px 28px;
  text-align: center;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--card-r);
  box-shadow: var(--shadow);
}
.x-fest-card::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid var(--line);
  border-radius: calc(var(--card-r) - 5px);
  opacity: .7;
  pointer-events: none;
}
.x-date-badge {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  margin-bottom: 8px;
  border-radius: var(--badge-r, 50%);
  background: var(--accent);
  color: var(--day-on, #fff);
  line-height: 1;
}
.x-date-badge b { font-family: var(--x-num-font, var(--font-display)); font-size: 1.9rem; font-weight: 500; }
.x-date-badge i { font-family: var(--font-body); font-size: .56rem; font-style: normal; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin-top: -8px; }
.x-fest-card h3 {
  margin: 0;
  font-family: var(--x-num-font, var(--font-display));
  font-size: clamp(1.5rem, 5vw, 1.9rem);
  font-weight: 500;
  color: var(--ink);
}
.x-fest-card .when {
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent);
}
.x-fest-card .where { font-family: var(--font-display); font-size: 1.1rem; color: var(--ink-2); line-height: 1.5; }
.x-fest-card .x-link { margin-top: 10px; }
.x-link {
  position: relative;
  z-index: 1;
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--accent);
  border-bottom: 1px solid color-mix(in srgb, var(--gold) 70%, transparent);
  padding-bottom: 3px;
}
.x-link:hover { color: var(--ink); }

/* =====================================================================
   6. GALLERY
   ===================================================================== */
.x-gal { margin-inline: auto; }
.x-gal--collage {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp(10px, 2.6vw, 22px);
  max-width: 960px;
  align-items: start;
}
.x-gal figure { margin: 0; position: relative; cursor: zoom-in; }
.x-gal figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.x-gal figcaption { font-family: var(--font-display); font-style: italic; text-align: center; padding: 8px 4px 0; color: var(--ink-2); }
.x-gal figcaption:empty { display: none; }
.x-gal--collage figure {
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border-radius: var(--photo-r, 120px 120px 6px 6px);
  border: 1px solid color-mix(in srgb, var(--gold) 65%, transparent);
  box-shadow: var(--shadow);
  background: var(--b-bg);
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
.x-gal--collage figure:hover { transform: translateY(-6px); }
.x-gal--collage figure:nth-child(1) { grid-column: 1 / span 4; aspect-ratio: 4 / 4.6; }
.x-gal--collage figure:nth-child(2) { grid-column: 5 / span 2; margin-top: 18%; }
.x-gal--collage figure:nth-child(3) { grid-column: 2 / span 3; }
.x-gal--collage figure:nth-child(4) { grid-column: 5 / span 2; margin-top: -10%; }
@media (min-width: 760px) {
  .x-gal--collage { grid-template-columns: repeat(12, 1fr); }
  .x-gal--collage figure:nth-child(1) { grid-column: 1 / span 5; aspect-ratio: 3 / 4; }
  .x-gal--collage figure:nth-child(2) { grid-column: 6 / span 4; margin-top: 12%; aspect-ratio: 3 / 4.2; }
  .x-gal--collage figure:nth-child(3) { grid-column: 10 / span 3; margin-top: 4%; aspect-ratio: 3 / 4; }
  .x-gal--collage figure:nth-child(4) { grid-column: 4 / span 4; margin-top: 0; }
}

/* framed viewer (used by skins that ship a photo-frame asset) */
.x-gal--frame {
  position: relative;
  width: min(430px, 100%);
  aspect-ratio: var(--gf-ar, 3 / 4);
}
.x-gal--frame .x-gal__slides {
  position: absolute;
  left: var(--gf-l);
  top: var(--gf-t);
  width: var(--gf-w);
  height: var(--gf-h);
  overflow: hidden;
}
.x-gal--frame figure {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1s ease, transform 1.4s ease;
}
.x-gal--frame figure.is-active { opacity: 1; transform: none; }
.x-gal--frame .x-gal__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  pointer-events: none;
}
.x-dots { display: flex; justify-content: center; gap: 10px; margin-top: 22px; }
.x-dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--gold);
  background: transparent;
  cursor: pointer;
  transition: background .3s, transform .3s;
}
.x-dots button.is-active { background: var(--gold); transform: scale(1.25); }

.x-lightbox {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: color-mix(in srgb, #000 88%, var(--ink));
}
.x-lightbox.is-open { display: flex; }
.x-lightbox img { max-width: min(100%, 900px); max-height: 86vh; border-radius: 6px; box-shadow: 0 30px 80px #0008; }
.x-lightbox button {
  position: absolute;
  width: 48px;
  height: 48px;
  border: 1px solid #ffffff55;
  border-radius: 50%;
  background: #0006;
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
}
.x-lightbox .lb-close { top: 16px; right: 16px; }
.x-lightbox .lb-prev { left: 12px; top: 50%; translate: 0 -50%; }
.x-lightbox .lb-next { right: 12px; top: 50%; translate: 0 -50%; }

/* =====================================================================
   7. VENUE
   ===================================================================== */
.x-venue {
  position: relative;
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
  padding: clamp(38px, 7vw, 64px) clamp(22px, 6vw, 60px);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--card-r);
  box-shadow: var(--shadow);
}
.x-venue::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid var(--line);
  border-radius: calc(var(--card-r) - 6px);
  pointer-events: none;
}
.x-venue__pin {
  display: block;
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  color: var(--gold);
  background: currentColor;
  -webkit-mask: var(--pin) center / contain no-repeat;
  mask: var(--pin) center / contain no-repeat;
}
.x-venue__art {
  display: block;
  width: min(420px, 82%);
  margin: 0 auto 8px;
  filter: drop-shadow(0 14px 22px color-mix(in srgb, var(--ink) 20%, transparent));
}
.x-venue h2 { margin: 0; }
.x-venue address {
  margin: 12px auto 26px;
  max-width: 28em;
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 3.6vw, 1.32rem);
  font-style: normal;
  line-height: 1.6;
  color: var(--ink-2);
}
.x-venue .x-actions { position: relative; z-index: 1; }

/* =====================================================================
   8. DRESS CODE
   ===================================================================== */
.x-dress {
  display: grid;
  gap: clamp(30px, 6vw, 56px);
  align-items: center;
  max-width: 940px;
  margin-inline: auto;
  text-align: center;
}
.x-dress__copy .x-title { margin-bottom: .3em; }
.x-dress__copy p { margin: 12px auto 0; max-width: 32em; font-family: var(--font-display); font-size: 1.14rem; line-height: 1.75; color: var(--ink-2); }
.x-palette { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(10px, 2.6vw, 18px); }
.x-palette i {
  display: block;
  width: clamp(54px, 15vw, 84px);
  aspect-ratio: 3 / 4.3;
  border-radius: var(--chip-r, 999px 999px 10px 10px);
  background: var(--sw);
  border: 3px solid var(--card);
  outline: 1px solid color-mix(in srgb, var(--gold) 60%, transparent);
  box-shadow: 0 14px 24px color-mix(in srgb, var(--ink) 16%, transparent);
  transition: transform .5s cubic-bezier(.2,.8,.2,1);
}
.x-palette i:nth-child(odd) { transform: translateY(10px); }
.x-palette i:hover { transform: translateY(-8px); }
@media (min-width: 820px) {
  .x-dress { grid-template-columns: 1.1fr .9fr; text-align: left; }
  .x-dress__copy p { margin-left: 0; }
  .x-dress .x-palette { justify-content: flex-end; }
  .x-dress .x-head { text-align: left; margin-left: 0; }
}

/* =====================================================================
   9. BLESSINGS + RSVP NOTE
   ===================================================================== */
.x-bless { max-width: 760px; margin-inline: auto; text-align: center; }
.x-dua {
  margin: clamp(28px, 6vw, 44px) auto 0;
  padding: clamp(24px, 5vw, 34px) clamp(18px, 5vw, 36px);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.x-dua p:first-child {
  margin: 0 0 10px;
  font-family: var(--font-arabic);
  font-size: clamp(1.4rem, 5vw, 1.9rem);
  line-height: 1.9;
  color: var(--accent);
}
.x-dua p + p {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-style: italic;
  color: var(--ink-2);
}
.x-dua:empty,
.x-dua[hidden] { display: none; }
.x-rsvp {
  margin: clamp(30px, 6vw, 46px) auto 0;
  display: grid;
  gap: 10px;
  justify-items: center;
}
.x-rsvp p { margin: 0; font-family: var(--font-display); font-size: 1.12rem; color: var(--ink-2); }
.x-rsvp .x-actions { margin-top: 12px; }

/* =====================================================================
   10. CLOSING
   ===================================================================== */
.x-close { text-align: center; padding-bottom: clamp(70px, 12vw, 120px); }
.x-close__inner { position: relative; max-width: 720px; margin-inline: auto; }
.x-close h2 {
  margin: 14px 0 20px;
  font-family: var(--x-num-font, var(--font-display));
  font-size: clamp(2rem, 7vw, 3.2rem);
  font-weight: var(--x-title-weight, 400);
  font-style: var(--x-title-style, normal);
  line-height: 1.12;
  text-wrap: balance;
  color: var(--ink);
}
.closing-names {
  font-family: var(--font-script);
  font-size: clamp(3rem, 14vw, 5.2rem);
  line-height: 1.05;
  color: var(--accent);
}
.closing-names span { margin: 0 .1em; color: var(--gold); }
#closingDetails {
  display: block;
  margin-top: 18px;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .24em;
  line-height: 1.9;
  text-transform: uppercase;
  color: var(--ink-2);
}
.x-close .x-rule { margin-bottom: 4px; }



/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .rv { opacity: 1; transform: none; transition: none; }
  .scratch-note::before { animation: none; }
}

/* ---------- print-safe fallback if JS never runs ---------- */
.no-js .rv { opacity: 1; transform: none; }


/* =====================================================================
   PHOTO BACKGROUNDS + PHOTO BANDS (generated scenery, no people)
   ===================================================================== */
.x-bgimg {
  position: absolute;
  inset: 0;
  z-index: -2;
  background-size: cover;
  background-position: center;
  pointer-events: none;
}
.x-bgimg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--band-bg) var(--wash, 80%), transparent);
}
.x-photoband {
  position: relative;
  z-index: 2;
  height: clamp(200px, 44vw, 440px);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  box-shadow: inset 0 14px 28px -18px rgba(0,0,0,.45), inset 0 -14px 28px -18px rgba(0,0,0,.45);
}
@media (min-width: 900px) and (hover: hover) {
  .x-photoband { background-attachment: fixed; }
}


/* ---------- celebration canvas + date pop (after the scratch reveal) ---------- */
.x-celebrate {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 120;
  pointer-events: none;
}
.x-stage .scratch-wrap.is-revealed .date-main {
  animation: x-date-pop 1.1s cubic-bezier(.2, .9, .25, 1.2) both;
}
.x-stage .scratch-wrap.is-revealed .date-kicker,
.x-stage .scratch-wrap.is-revealed .date-day {
  animation: x-date-rise .9s ease .25s both;
}
@keyframes x-date-pop {
  0% { transform: scale(.6); opacity: 0; letter-spacing: .2em; }
  60% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes x-date-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .x-stage .scratch-wrap.is-revealed .date-main,
  .x-stage .scratch-wrap.is-revealed .date-kicker,
  .x-stage .scratch-wrap.is-revealed .date-day { animation: none; }
}

/* ======= SKIN ======= */
/* ---------- SKIN: malligai — limewash, teak & jasmine · "heritage panels" (left-aligned, carved plaques) ---------- */
:root {
  --a-bg: var(--ivory);
  --b-bg: color-mix(in srgb, var(--lilac) 42%, var(--ivory));
  --c-bg: var(--plum);
  --d-bg: color-mix(in srgb, var(--plum) 70%, #000);

  --ink: var(--plum);
  --ink-2: color-mix(in srgb, var(--plum) 74%, var(--ivory));
  --on-c: color-mix(in srgb, var(--ivory) 96%, #fff);
  --on-c-2: color-mix(in srgb, var(--ivory) 78%, var(--plum));

  --accent: var(--lavender);
  --gold: color-mix(in srgb, var(--champagne) 86%, var(--plum));
  --gold-l: color-mix(in srgb, var(--champagne) 72%, #fff);
  --accent-l: var(--lavender);

  --line: color-mix(in srgb, var(--champagne) 70%, transparent);
  --line-d: color-mix(in srgb, var(--champagne) 55%, transparent);
  --card: color-mix(in srgb, #fff 48%, var(--ivory));
  --card-d: color-mix(in srgb, #000 22%, var(--plum));
  --shadow: 0 18px 38px color-mix(in srgb, var(--plum) 14%, transparent);
  --shadow-d: 0 22px 44px rgba(0,0,0,.34);
  --card-r: 2px;
  --tile-r: 2px;
  --badge-r: 3px;
  --day-on: var(--ivory);
  --btn-bg: var(--lavender);
  --btn-on: var(--ivory);
  --paper-card: #f8efe1;
  --date-ink: var(--plum);
  --date-accent: var(--lavender);

  --x-title-font: var(--font-display);
  --x-num-font: var(--font-display);
  --x-title-weight: 400;
  --x-title-track: 0;
  --tex-c: var(--plum);
  --tex-o: .07;

  /* gallery-frame.png window */
  --gf-ar: 1086 / 1448;
  --gf-l: 12.6%; --gf-t: 10.4%; --gf-w: 74.8%; --gf-h: 79.2%;
}

/* ---- headings: left-aligned, numbered like a temple register ---- */
.x-head {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 18px;
  align-items: end;
  text-align: left;
  max-width: none;
  margin: 0 0 clamp(28px, 5vw, 46px);
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.x-head::before {
  counter-increment: sec;
  content: counter(sec, decimal-leading-zero);
  grid-row: 1 / span 2;
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 13vw, 5.2rem);
  line-height: .8;
  color: color-mix(in srgb, var(--gold) 60%, transparent);
}
.x-head .x-eyebrow { grid-column: 2; }
.x-head .x-title { grid-column: 2; margin: 2px 0 0; font-size: clamp(1.9rem, 7vw, 3.1rem); }
.x-head .x-rule { display: none; }

/* head ornament inside cards: the template's heritage knot */
.x-rule b {
  -webkit-mask: none;
  mask: none;
  background: url("./assets/heritage-ornament.png") center / contain no-repeat;
  width: 40px;
  height: 38px;
}
.x-sec--c .x-rule b { filter: brightness(1.25) saturate(.9); }
.x-rule { width: min(290px, 70%); }

/* ---- the gopuram border: dark bands are crowned with a brass temple frieze ---- */
.x-sec--c {
  background-image:
    linear-gradient(135deg, var(--gold-l) 25%, transparent 25%),
    linear-gradient(225deg, var(--gold-l) 25%, transparent 25%);
  background-size: 20px 20px;
  background-position: 0 0;
  background-repeat: repeat-x;
}
.x-sec--c .x-wrap { padding-top: 14px; }

/* ---- letter: lead on the left, text on the right ---- */
.x-letter {
  display: grid;
  gap: 26px;
  text-align: left;
  padding: clamp(34px, 7vw, 64px);
  border-width: 2px;
  border-color: color-mix(in srgb, var(--champagne) 62%, transparent);
  outline: 1px solid color-mix(in srgb, var(--champagne) 38%, transparent);
  outline-offset: 5px;
}
.x-letter::before { border-style: dashed; border-color: color-mix(in srgb, var(--champagne) 55%, transparent); }
.x-letter .x-title { font-size: clamp(2.3rem, 9vw, 3.6rem); }
.x-letter .x-rule { margin-left: 0; }
.x-letter .x-lede { margin-left: 0; text-align: left; }
.x-letter .x-hosts { margin-inline: 0; }
.x-letter .signature { text-align: left; }
@media (min-width: 820px) {
  .x-letter { grid-template-columns: .85fr 1.15fr; column-gap: 64px; align-items: start; }
  .x-letter__lead { padding-right: 48px; border-right: 1px solid var(--line); min-height: 100%; }
}

/* ---- timeline: carved plaques with a brass time-tab ---- */
.x-timeline--plaque { max-width: 820px; margin: 0; }
.x-timeline--plaque::before,
.x-timeline--plaque::after { display: none; }
.x-timeline--plaque .x-step {
  grid-template-columns: 104px 1fr;
  column-gap: 20px;
  align-items: center;
  padding: 0 18px 0 0;
  margin-bottom: 14px;
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 0;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.x-timeline--plaque .x-step:last-child { padding-bottom: 0; }
.x-timeline--plaque .x-step__dot { display: none; }
.x-timeline--plaque .x-step time {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: stretch;
  display: grid;
  place-items: center;
  padding: 18px 8px;
  text-align: center;
  background: var(--accent);
  color: var(--day-on);
  font-size: .68rem;
}
.x-timeline--plaque .x-step h3 { padding-top: 14px; font-size: clamp(1.35rem, 5vw, 1.8rem); }
.x-timeline--plaque .x-step p { padding-bottom: 14px; margin: 0; }
.x-timeline--plaque .x-step.is-lit { border-color: var(--gold); }
.x-timeline--plaque .x-step.is-lit time { background: var(--olive, var(--accent)); }

/* ---- festivities: wooden placards, date block on the left ---- */
.x-fest { grid-template-columns: 1fr; max-width: 820px; margin: 0; }
.x-fest-card {
  grid-template-columns: 88px 1fr;
  justify-items: start;
  align-items: center;
  column-gap: 22px;
  row-gap: 2px;
  padding: 22px 24px;
  text-align: left;
  border-width: 2px;
  border-color: color-mix(in srgb, var(--champagne) 55%, transparent);
}
.x-fest-card > :not(.x-date-badge) { grid-column: 2; }
.x-date-badge { grid-row: 1 / span 5; width: 80px; height: 80px; margin: 0; border-radius: 3px; background: var(--c-bg); color: var(--gold-l); border: 1px solid var(--gold); }
.x-sec--c .x-date-badge { background: var(--gold-l); color: var(--plum); }

/* ---- countdown: brass-trimmed teak tiles ---- */
.x-count > div { border-width: 1px; background: color-mix(in srgb, #000 28%, var(--plum)); }
.x-count > div::before { content: ""; position: absolute; inset: 5px; border: 1px solid var(--line-d); pointer-events: none; }

/* ---- venue: illustration beside the address ---- */
.x-venue {
  display: grid;
  gap: 18px;
  text-align: left;
  border-width: 2px;
  border-color: color-mix(in srgb, var(--champagne) 62%, transparent);
  outline: 1px solid color-mix(in srgb, var(--champagne) 38%, transparent);
  outline-offset: 5px;
}
.x-venue::before { border-style: dashed; border-color: color-mix(in srgb, var(--champagne) 55%, transparent); }
.x-venue__art { width: min(520px, 100%); margin: 0 auto; }
.x-venue .x-rule { margin-left: 0; }
.x-venue address { margin-left: 0; }
.x-venue .x-actions { justify-content: flex-start; }
@media (min-width: 820px) {
  .x-venue { grid-template-columns: 1.05fr 1fr; align-items: center; column-gap: 40px; max-width: 1000px; }
}

/* ---- dress code: a woven saree border ---- */
.x-dress { grid-template-columns: 1fr; text-align: left; max-width: 760px; margin: 0; }
.x-dress .x-rule { margin-left: 0; }
.x-dress__copy p { margin-left: 0; }
.x-palette { flex-direction: column; flex-wrap: nowrap; gap: 6px; justify-content: flex-start; width: 100%; padding: 8px; border: 1px solid var(--line-d); }
.x-palette i:nth-child(n) {
  width: 100%;
  height: 34px;
  aspect-ratio: auto;
  border: 0;
  outline: 0;
  border-radius: 0;
  transform: none;
  position: relative;
  box-shadow: inset 0 3px 0 rgba(255,255,255,.2), inset 0 -3px 0 rgba(0,0,0,.2);
}
.x-palette i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0 14px, rgba(255,255,255,.22) 14px 16px);
}
@media (min-width: 820px) { .x-dress { grid-template-columns: 1fr; } .x-dress .x-palette { justify-content: flex-start; } }

/* ---- blessings / closing ---- */
.x-bless { text-align: left; margin: 0; max-width: 820px; }
.x-bless .x-rule, .x-bless .x-lede { margin-left: 0; }
.x-rsvp { justify-items: start; }
.x-btn { --btn-r: 2px; }
.x-sec--c .x-btn { background: var(--gold-l); border-color: var(--gold-l); color: var(--plum); }
.x-sec--c .x-btn--ghost { background: transparent; color: var(--on-c); border-color: var(--line-d); }
.x-gal--frame { margin-inline: auto; filter: drop-shadow(0 22px 28px color-mix(in srgb, var(--plum) 28%, transparent)); }
.x-gal--frame .x-gal__slides { background: var(--b-bg); }

/* photo layers sit below the gopuram frieze; bands carry a brass rule above and below */
.x-sec--c .x-bgimg { top: 20px; }
.x-photoband { border-block: 4px solid var(--gold); box-shadow: inset 0 0 0 1px color-mix(in srgb, #000 30%, transparent); }


:root {
  --glyph: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2040%2040%22%20%3E%3Cg%20fill%3D%22%23000%22%3E%3Cellipse%20cx%3D%2220%22%20cy%3D%2211%22%20rx%3D%224%22%20ry%3D%228.6%22%20transform%3D%22rotate(0%2020%2020)%22%2F%3E%3Cellipse%20cx%3D%2220%22%20cy%3D%2211%22%20rx%3D%224%22%20ry%3D%228.6%22%20transform%3D%22rotate(60%2020%2020)%22%2F%3E%3Cellipse%20cx%3D%2220%22%20cy%3D%2211%22%20rx%3D%224%22%20ry%3D%228.6%22%20transform%3D%22rotate(120%2020%2020)%22%2F%3E%3Cellipse%20cx%3D%2220%22%20cy%3D%2211%22%20rx%3D%224%22%20ry%3D%228.6%22%20transform%3D%22rotate(180%2020%2020)%22%2F%3E%3Cellipse%20cx%3D%2220%22%20cy%3D%2211%22%20rx%3D%224%22%20ry%3D%228.6%22%20transform%3D%22rotate(240%2020%2020)%22%2F%3E%3Cellipse%20cx%3D%2220%22%20cy%3D%2211%22%20rx%3D%224%22%20ry%3D%228.6%22%20transform%3D%22rotate(300%2020%2020)%22%2F%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%223.2%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --corner: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2060%2060%22%20%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%3E%3Cpath%20d%3D%22M3%2034V3h31%22%2F%3E%3Cpath%20d%3D%22M10%2026V10h16%22%20stroke-width%3D%221.2%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20fill%3D%22%23000%22%2F%3E%3Cpath%20d%3D%22M16%2016l3%203-3%203-3-3z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E");
  --hand: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223.2%22%20fill%3D%22%23000%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.2%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --pin: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20%3E%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22evenodd%22%20d%3D%22M12%201.5a7.5%207.5%200%200%200-7.5%207.5c0%205.6%207.5%2013.5%207.5%2013.5s7.5-7.9%207.5-13.5A7.5%207.5%200%200%200%2012%201.5zm0%2010.2a2.7%202.7%200%201%201%200-5.4%202.7%202.7%200%200%201%200%205.4z%22%2F%3E%3C%2Fsvg%3E");
  --tex-m: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2028%2028%22%20%3E%3Cg%20fill%3D%22%23000%22%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2214%22%20r%3D%221.6%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221.6%22%2F%3E%3Ccircle%20cx%3D%2228%22%20cy%3D%220%22%20r%3D%221.6%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%2228%22%20r%3D%221.6%22%2F%3E%3Ccircle%20cx%3D%2228%22%20cy%3D%2228%22%20r%3D%221.6%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M14%204l10%2010-10%2010L4%2014z%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%22.8%22%2F%3E%3C%2Fsvg%3E") 0 0 / 56px 56px repeat;
}
.x-stage {
  --frame-ar: 1448 / 1086;
  --wl: 7.22%; --wt: 12.89%; --ww: 85.56%; --wh: 74.81%;
  --dl: 7.27%; --dt: 25.15%; --dr: 7.27%; --db: 8.91%;
  --date-fs: 7.31cqw;
}

/* =====================================================================
   DATE - CALENDAR (theme-specific redesign, overrides the shared block)
   ===================================================================== */
.x-cal {
  width: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  text-align: center;
}
.x-cal__side,
.x-cal__foot { display: none; }
.x-cal__month,
.x-cal__year { display: block; margin: 0; }
.x-cal__grid .pad { visibility: hidden; }

/* ---- Malligai: admit-one ticket ---- */
.x-cal {
  width: min(440px, 100%);
  display: grid;
  grid-template-columns: 116px 1fr;
  text-align: left;
  position: relative;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 2px;
  box-shadow: var(--shadow);
}
.x-cal__side {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 22px 8px;
  background: var(--plum);
  color: var(--ivory);
  border-right: 2px dashed color-mix(in srgb, var(--champagne) 75%, transparent);
}
.x-cal__side::before,
.x-cal__side::after {
  content: "";
  position: absolute;
  right: -11px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--band-bg, var(--ivory));
  border: 1px solid var(--line);
}
.x-cal__side::before { top: -11px; clip-path: inset(50% 0 0 0); }
.x-cal__side::after { bottom: -11px; clip-path: inset(0 0 50% 0); }
.x-cal__wd {
  font-family: var(--font-body);
  font-size: .56rem;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--champagne);
}
.x-cal__wd::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  margin: 0 auto 10px;
  background: var(--champagne);
  -webkit-mask: var(--glyph) center / contain no-repeat;
  mask: var(--glyph) center / contain no-repeat;
}
.x-cal__num {
  font-family: var(--font-display);
  font-size: 3.7rem;
  font-weight: 400;
  line-height: 1;
}
.x-cal__mo {
  font-family: var(--font-body);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .36em;
  text-indent: .36em;
  text-transform: uppercase;
}
.x-cal__main { padding: 18px 18px 14px 20px; }
.x-cal__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}
.x-cal__month { font-family: var(--font-display); font-size: 1.3rem; color: var(--ink); }
.x-cal__year {
  font-family: var(--font-body);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .3em;
  color: color-mix(in srgb, var(--lavender) 60%, var(--plum));
}
.x-cal__grid { gap: 1px 0; }
.x-cal__grid span { height: 29px; font-size: .74rem; }
.x-cal__grid .dow { height: 22px; font-size: .56rem; color: color-mix(in srgb, var(--lavender) 60%, var(--plum)); }
.x-cal__grid .sun { color: color-mix(in srgb, var(--lavender) 55%, var(--plum)); }
.x-cal__grid .is-day { color: var(--ivory); }
.x-cal__grid .is-day::before {
  inset: 1px 0;
  margin: 0 auto;
  width: 27px;
  border-radius: 50%;
  background: var(--plum);
  -webkit-mask: none;
  mask: none;
  transform: none;
}
.x-cal__foot {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-family: var(--font-body);
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.x-cal__foot i { width: 14px; height: 1px; background: currentColor; opacity: .6; }

.x-after .x-actions { gap: 4px 30px; }
.x-after .x-btn {
  min-height: 36px;
  padding: 0 2px;
  background: none;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  color: var(--ink);
  box-shadow: none;
  font-size: .68rem;
}
.x-after .x-btn::after { content: "\2192"; margin-left: 10px; transition: transform .3s; }
.x-after .x-btn:hover,
.x-after .x-btn:focus-visible { transform: none; box-shadow: none; background: none; }
.x-after .x-btn:hover::after,
.x-after .x-btn:focus-visible::after { transform: translateX(5px); }
@media (max-width: 380px) {
  .x-cal { grid-template-columns: 92px 1fr; }
  .x-cal__num { font-size: 3rem; }
  .x-cal__main { padding: 16px 12px 12px 14px; }
}
