:root{
  --ink:#2d2926;--muted:#7b7068;--paper:#fffdf9;--accent:#7b4f4f;--line:#e7ddd5;
  /* Luxury invitation typography tokens (Sprint 9 final) */
  --font-invite-en:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-display-en:Cinzel,"Cormorant Garamond",Georgia,serif;
  --font-invite-ar:Amiri,"Noto Naskh Arabic",Georgia,serif;
  --font-display-ar:"Aref Ruqaa",Amiri,"Noto Naskh Arabic",Georgia,serif;
  --font-ui:Cairo,ui-sans-serif,system-ui,sans-serif;
  --font-body:var(--font-ui);
  --font-ceremonial:"Scheherazade New","Aref Ruqaa",Amiri,serif;
  font-family:var(--font-ui);scroll-behavior:smooth
}
*{box-sizing:border-box}
/* Author display:grid on .invite-section must not override the HTML hidden attribute
   (UA [hidden]{display:none} loses to author display), or empty optional sections
   keep min-height / padding and leave large vertical gaps — especially on mobile. */
[hidden]{display:none!important}
html{scroll-padding-top:82px}
body{
  margin:0;color:var(--ink);min-height:100vh;
  background:
    radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.55),transparent 55%),
    linear-gradient(160deg,#efe2dc 0%,#f7f1ea 42%,#ebe3d8 100%);
}

/* Nav — restrained */
.invite-nav{
  position:sticky;top:0;z-index:50;min-height:62px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:10px clamp(16px,4vw,40px);
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:blur(16px);
  border-bottom:1px solid color-mix(in srgb,var(--accent) 14%,transparent)
}
/* Collision-proof monogram: only initials + real &. Never stack / wrap / invent marks. */
.invite-monogram,
.invite-site .invite-monogram,
.invite-nav .invite-monogram,
.invitation-sheet .invite-monogram,
.invitation-card .invite-monogram{
  width:auto;min-width:40px;height:40px;max-width:none;border-radius:50%;
  display:inline-grid !important;
  grid-template-columns:max-content max-content max-content;
  grid-auto-flow:column;
  align-items:center;justify-content:center;justify-items:center;
  column-gap:.08em;row-gap:0;
  flex-direction:unset !important;flex-wrap:nowrap !important;
  writing-mode:horizontal-tb !important;
  direction:ltr !important;unicode-bidi:isolate;white-space:nowrap !important;
  text-decoration:none;background:transparent;color:var(--ink);
  border:1px solid color-mix(in srgb,var(--ink) 35%,transparent);
  font-family:var(--font-display-en);font-size:.95rem;letter-spacing:.04em;
  line-height:1;overflow:visible;padding:0 10px;box-sizing:border-box
}
.invite-monogram.is-solo,
.invite-nav .invite-monogram.is-solo{
  grid-template-columns:max-content;padding:0;width:40px
}
.invite-monogram.is-empty,
.invite-nav .invite-monogram.is-empty,
.hero-monogram.is-empty,
.footer-monogram.is-empty{
  display:none !important
}
.invite-monogram.is-ar{
  font-family:var(--font-display-ar),Amiri,"Noto Naskh Arabic",serif;
  letter-spacing:.02em
}
.invite-monogram.is-couple{font-size:.72rem;letter-spacing:0;padding:0 10px}
.invite-monogram .mono-a,
.invite-monogram .mono-b,
.invite-monogram .mono-solo{
  display:block;grid-row:1;font-size:inherit;line-height:1;
  white-space:nowrap !important;writing-mode:horizontal-tb !important;
  background:none !important;border:0 !important;box-shadow:none !important
}
.invite-monogram .mono-a{grid-column:1}
.invite-monogram .mono-amp{grid-column:2}
.invite-monogram .mono-b{grid-column:3}
.invite-monogram .mono-amp{
  display:block;grid-row:1;font-size:.58rem;opacity:.85;margin:0;font-style:italic;
  line-height:1;min-width:0.42em;
  /* Force Latin serif so Arabic display faces never tofu "&" into a square/bar */
  font-family:"Times New Roman",Times,Georgia,serif !important;
  font-weight:400;letter-spacing:0;background:none !important;border:0 !important;
  transform:none !important;text-shadow:none !important;
  white-space:nowrap !important;writing-mode:horizontal-tb !important
}
.invite-monogram .mono-a::before,
.invite-monogram .mono-a::after,
.invite-monogram .mono-b::before,
.invite-monogram .mono-b::after,
.invite-monogram .mono-amp::before,
.invite-monogram .mono-amp::after,
.invite-monogram::before,
.invite-monogram::after{
  content:none !important;display:none !important;
  background:none !important;border:0 !important;width:0 !important;height:0 !important
}
html[dir=rtl] .invite-monogram,
[dir=rtl] .invite-monogram,
html[lang=ar] .invite-monogram{
  direction:ltr !important;grid-auto-flow:column;writing-mode:horizontal-tb !important
}
.invite-nav-links{display:flex;align-items:center;gap:4px}
.invite-nav-links a{
  color:var(--ink);text-decoration:none;font-size:.84rem;font-weight:600;
  padding:9px 12px;border-radius:2px;letter-spacing:.02em;font-family:var(--font-ui)
}
.invite-nav-links a:hover,.invite-nav-links a.active{
  color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)
}
.invite-lang-toggle{
  border:1px solid rgba(20,33,61,.18);
  background:color-mix(in srgb,var(--paper) 92%,transparent);
  color:inherit;
  min-height:40px;
  min-width:44px;
  padding:0 12px;
  border-radius:2px;
  font:600 .85rem/1 inherit;
  cursor:pointer;
  margin-inline-start:auto;
  flex:0 0 auto;
  position:relative;
  z-index:60;
}
.invite-lang-toggle[hidden]{display:none !important}
.invite-menu-toggle{
  display:none;width:42px;height:42px;border:1px solid var(--line);
  border-radius:50%;background:var(--paper);padding:10px;cursor:pointer
}
.invite-menu-toggle span{display:block;height:1.5px;background:currentColor;margin:4px 0}

.invite-site{min-height:100vh}
.invite-section{min-height:100vh;padding:88px 18px;display:grid;align-items:center}
.section-shell{width:min(960px,100%);margin:auto}
.hero-section{padding-top:28px;padding-bottom:48px;min-height:auto}

/* Ceremonial invitation sheet — stationery, not app card */
.invitation-sheet,.invitation-card{
  width:min(720px,100%);margin:auto;position:relative;overflow:hidden;
  text-align:center;
  padding:clamp(48px,8vw,88px) clamp(22px,5vw,64px) clamp(36px,5vw,56px);
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--paper) 92%,#fff) 0%,var(--paper) 100%);
  border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);
  box-shadow:
    0 1px 0 color-mix(in srgb,var(--accent) 10%,transparent),
    0 28px 80px color-mix(in srgb,var(--ink) 10%,transparent);
  border-radius:2px
}
.sheet-atmosphere{
  pointer-events:none;position:absolute;inset:0;opacity:.55;
  background:
    radial-gradient(ellipse at 50% 8%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 48%),
    radial-gradient(ellipse at 12% 88%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 40%),
    radial-gradient(ellipse at 90% 70%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 38%);
  z-index:0
}
.invitation-sheet>*{position:relative;z-index:1}
.sheet-rule,.ornament{
  width:56px;height:1px;background:var(--accent);margin:0 auto 22px;opacity:.55
}
.hero-monogram.invite-seal,
.invitation-sheet .hero-monogram.invite-seal,
.invitation-card .hero-monogram.invite-seal{
  width:auto;height:auto;min-width:0;min-height:0;border:0;background:transparent;
  margin:0 auto 18px;padding:0;color:var(--ink);
  font-family:var(--font-display-en);font-size:1.15rem;letter-spacing:.18em;
  display:inline-grid !important;
  grid-template-columns:max-content max-content max-content;
  grid-auto-flow:column;
  align-items:center;justify-content:center;justify-items:center;
  column-gap:.28em;row-gap:0;
  flex-direction:unset !important;flex-wrap:nowrap !important;
  writing-mode:horizontal-tb !important;
  direction:ltr !important;unicode-bidi:isolate;white-space:nowrap !important;overflow:visible
}
.hero-monogram.invite-seal.is-solo{grid-template-columns:max-content}
.hero-monogram.invite-seal.is-couple{font-size:1.15rem;letter-spacing:.12em}
.hero-monogram.invite-seal.is-ar{
  font-family:var(--font-display-ar),Amiri,"Noto Naskh Arabic",serif;
  letter-spacing:.06em
}
.hero-monogram .mono-a,.hero-monogram .mono-b,.hero-monogram .mono-solo{font-size:inherit;grid-row:1}
.hero-monogram .mono-a{grid-column:1}
.hero-monogram .mono-amp{grid-column:2}
.hero-monogram .mono-b{grid-column:3}
.hero-monogram .mono-amp{
  margin:0;letter-spacing:0;opacity:.55;font-size:.72em;
  font-family:"Times New Roman",Times,Georgia,serif !important;font-style:italic;font-weight:400;
  background:none !important;border:0 !important;transform:none !important;text-shadow:none !important
}
.hero-monogram.invite-seal::before,
.hero-monogram.invite-seal::after,
.invite-seal::before,
.invite-seal::after{
  content:none !important;display:none !important;
  background:none !important;border:0 !important;width:0 !important;height:0 !important;box-shadow:none !important
}
html[lang="ar"] .hero-monogram.invite-seal:not(.is-ar){letter-spacing:.1em}
html[lang="ar"] .hero-monogram.invite-seal.is-ar{font-family:var(--font-display-ar),Amiri,serif}
html[dir=rtl] .hero-monogram.invite-seal,
[dir=rtl] .hero-monogram.invite-seal{
  direction:ltr !important;grid-auto-flow:column;writing-mode:horizontal-tb !important
}

.ceremonial-opening{
  margin:0 auto 22px;max-width:34em;
  font-family:var(--font-ceremonial);font-size:clamp(1.05rem,2.8vw,1.35rem);
  line-height:2.05;color:var(--ink);font-weight:400;
  text-wrap:pretty;white-space:pre-line
}
.ceremonial-opening[data-kind="quran_rum_21"]{
  font-size:clamp(.98rem,2.5vw,1.22rem);line-height:2.15
}
.ceremonial-opening[data-kind="basmala"]{
  font-size:clamp(1.15rem,3vw,1.45rem);letter-spacing:.02em
}
.date-block .event-time-range{
  margin:.35rem 0 0;font-family:var(--font-body,inherit);
  font-size:clamp(.95rem,2.4vw,1.05rem);font-weight:500;
  color:var(--muted);letter-spacing:.01em;line-height:1.55
}
.date-block .event-time-range[hidden]{display:none!important}
html[lang="ar"] .date-block .event-time-range{
  font-family:var(--font-display-ar,inherit)
}

.guest-greeting,
.guest-dedication{
  margin:0 auto 20px;
  max-width:28em;
  display:grid;
  gap:6px;
  justify-items:center;
  text-align:center;
}
.guest-dedication-kicker{
  margin:0;
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
}
html[lang="ar"] .guest-dedication-kicker,
.guest-dedication[lang="ar"] .guest-dedication-kicker{
  letter-spacing:.06em;
  text-transform:none;
  font-size:.88rem;
  font-weight:500;
  font-family:var(--font-display-ar);
}
.guest-dedication-name{
  margin:0;
  font-family:var(--font-invite-en);
  font-size:clamp(1.25rem,3.6vw,1.65rem);
  font-weight:500;
  color:var(--ink);
  line-height:1.4;
  text-wrap:balance;
  overflow-wrap:anywhere;
  max-width:100%;
}
.guest-dedication[lang="ar"] .guest-dedication-name,
html[lang="ar"] .guest-dedication-name{
  font-family:var(--font-display-ar);
  font-size:clamp(1.35rem,4vw,1.85rem);
  font-weight:400;
  line-height:1.5;
}
.guest-dedication-rule{
  display:block;
  width:36px;
  height:1px;
  margin:8px auto 2px;
  background:var(--accent);
  opacity:.5;
}
.guest-greeting:not(.guest-dedication){
  margin:0 0 14px;font-size:.95rem;color:var(--accent);font-weight:500;letter-spacing:.03em
}
.kicker,.event-label,.section-kicker{
  display:inline-block;font-size:.78rem;color:var(--accent);
  letter-spacing:.16em;text-transform:uppercase;font-weight:600
}
html[lang="ar"] .kicker,html[lang="ar"] .event-label,html[lang="ar"] .section-kicker{
  letter-spacing:.08em;text-transform:none;font-size:.88rem;font-weight:500;
  font-family:var(--font-display-ar)
}
html[lang="en"] .section-kicker{
  font-family:var(--font-display-en);font-weight:500
}

.couple-names,.invitation-card h1{
  font-family:var(--font-display-en);font-weight:500;
  font-size:clamp(2.05rem,6.2vw,3.55rem);
  line-height:1.12;margin:.45em 0 .35em;
  letter-spacing:.02em;text-wrap:balance;overflow-wrap:anywhere;max-width:100%;
  min-height:1.15em
}
html[lang="ar"] .couple-names,html[lang="ar"] .invitation-card h1{
  font-family:var(--font-display-ar);line-height:1.45;
  font-size:clamp(1.95rem,5.8vw,3.15rem);font-weight:400;letter-spacing:0
}

.invitation-copy{
  max-width:32em;margin:0 auto 28px;color:var(--muted);
  font-size:clamp(1.05rem,2.5vw,1.18rem);line-height:1.9;white-space:pre-line;
  font-weight:500;font-family:var(--font-invite-en);text-wrap:pretty;
  min-height:2.6em
}
html[lang="ar"] .invitation-copy{
  font-family:var(--font-invite-ar);line-height:2.15;font-weight:400;
  font-size:clamp(1.08rem,2.6vw,1.22rem)
}
/* Never use Cinzel / display faces for body paragraphs */
.invitation-copy,.feature-copy,.story-moment p,.location-copy p,.meta-sub{
  font-family:var(--font-invite-en)
}
html[lang="ar"] .invitation-copy,
html[lang="ar"] .feature-copy,
html[lang="ar"] .story-moment p,
html[lang="ar"] .location-copy p,
html[lang="ar"] .meta-sub,
.guest-dedication[lang="ar"] ~ .invitation-copy{
  font-family:var(--font-invite-ar)
}

/* Date / venue as composition — not form cards */
.meta-block{
  display:grid;justify-items:center;gap:6px;
  margin:0 auto 18px;max-width:420px;padding:14px 8px 6px;
  border:0;border-block:1px solid color-mix(in srgb,var(--line) 90%,var(--accent));
  background:transparent;border-radius:0
}
.meta-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
html[lang="ar"] .meta-label{letter-spacing:.06em;text-transform:none;font-size:.8rem}
.meta-value{
  font-family:var(--font-display-en);font-size:clamp(1.05rem,2.6vw,1.25rem);
  font-weight:500;letter-spacing:.02em
}
html[lang="ar"] .meta-value{font-family:var(--font-display-ar);font-size:clamp(1.1rem,2.8vw,1.35rem)}
.meta-sub{margin:0;color:var(--muted);font-size:.92rem;line-height:1.6;white-space:pre-line}
.venue-block{margin-top:4px;border-block-start:0;padding-top:4px}
.venue-block .meta-value{font-size:clamp(1.15rem,3vw,1.4rem)}

/* Editorial countdown — stationery rhythm */
.countdown,.editorial-countdown{
  display:grid;justify-items:center;gap:12px;
  margin:32px auto 36px;max-width:520px;width:100%;
  border:0;background:transparent;padding:8px 0 4px
}
.countdown-caption{
  margin:0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);font-weight:600;font-family:var(--font-display-en)
}
html[lang="ar"] .countdown-caption{
  letter-spacing:.06em;text-transform:none;font-size:.82rem;font-weight:500;
  font-family:var(--font-display-ar)
}
.countdown-row{
  display:flex;align-items:stretch;justify-content:center;
  gap:0;width:100%;border:0;background:transparent
}
.count-unit,.countdown-row>div{
  flex:1 1 0;min-width:0;padding:8px 6px;text-align:center;
  background:transparent;border:0;border-radius:0
}
.count-sep{
  width:1px;align-self:stretch;margin:10px 0;
  background:color-mix(in srgb,var(--line) 85%,var(--accent));opacity:.9
}
.countdown strong,.count-unit strong{
  display:block;font-family:var(--font-display-en);
  font-size:clamp(1.55rem,5vw,2.05rem);font-weight:500;letter-spacing:.04em;
  line-height:1.1
}
html[lang="ar"] .countdown strong,html[lang="ar"] .count-unit strong{
  font-family:var(--font-display-ar)
}
.countdown span,.count-unit span{
  display:block;margin-top:6px;font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);font-weight:600
}
html[lang="ar"] .countdown span,html[lang="ar"] .count-unit span{
  letter-spacing:.04em;text-transform:none;font-size:.78rem;font-weight:500
}

/* Actions — ceremony first, utilities secondary */
.invite-actions{
  display:grid;gap:12px;justify-items:center;margin-top:10px;width:100%
}
.invite-utility-row{
  display:grid;gap:8px;justify-items:center;width:min(100%,340px)
}
.guest-opening-replay{
  position:fixed;
  z-index:40;
  inset-inline-end:max(12px, env(safe-area-inset-right));
  bottom:max(16px, env(safe-area-inset-bottom));
  border:1px solid rgba(20,33,61,.18);
  background:rgba(255,250,243,.92);
  color:#14213d;
  min-height:44px;
  padding:0.55rem 0.95rem;
  border-radius:999px;
  font:600 .82rem/1.2 inherit;
  letter-spacing:.03em;
  cursor:pointer;
  backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(20,33,61,.08);
}
.guest-opening-replay:focus-visible{
  outline:2px solid #c4a574;
  outline-offset:2px;
}
.music-control,.share-button,.map-link,.invite-action{
  min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  text-decoration:none;font-weight:600;font-size:.92rem;
  border-radius:2px;padding:11px 18px;cursor:pointer;transition:background .25s ease,border-color .25s ease,color .25s ease
}
/* Stationery music control — override experience.css pill */
.music-control,
.music-control.stationery-music,
body[data-experience] .music-control.stationery-music{
  margin:0;border:1px solid var(--line);background:transparent;color:var(--ink);
  width:min(100%,340px);border-radius:2px;backdrop-filter:none;font-weight:600;font-size:.92rem;
  padding:11px 18px;min-width:0
}
.invite-action.rsvp-action{
  width:min(100%,340px);border:1px solid var(--ink);color:var(--paper);background:var(--ink)
}
.invite-action.rsvp-action:hover{
  background:transparent;color:var(--ink)
}
.invite-action.map-action,.invite-utility-row .map-link,.invite-utility-row .share-button{
  width:100%;border:1px solid var(--line);color:var(--ink);background:transparent
}
.invite-action.map-action:hover,.music-control:hover,.map-link:hover,
.invite-utility-row .share-button:hover{
  border-color:color-mix(in srgb,var(--accent) 45%,var(--line));
  background:color-mix(in srgb,var(--accent) 6%,transparent)
}
.share-button,.invite-action.share-button{
  width:min(100%,340px);border:1px solid var(--line);background:transparent;color:var(--ink)
}
.share-button:disabled,.invite-action.share-button:disabled{
  cursor:default;opacity:.72;pointer-events:none
}
.invite-utility-row .share-button:disabled:hover{
  border-color:var(--line);background:transparent
}
.preview-badge{margin:16px 0 0;font-size:.82rem;color:var(--accent)}

/* Long guest names — no horizontal overflow */
.guest-dedication-name,.couple-names,.invitation-copy{
  overflow-wrap:anywhere;word-break:break-word;max-width:100%
}
.invitation-sheet,.invitation-card,.invite-site{overflow-x:clip}

.location-section,.rsvp-section{background:color-mix(in srgb,var(--paper) 35%,transparent)}
.section-shell>h2{
  font-family:var(--font-display-en);font-size:clamp(2rem,4.8vw,3.4rem);
  font-weight:500;margin:.2em 0 .65em
}
html[lang="ar"] .section-shell>h2{font-family:var(--font-display-ar)}

.location-layout,.location-card{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(280px,1.15fr);
  gap:0;overflow:hidden;
  border:1px solid color-mix(in srgb,var(--line) 90%,var(--accent));
  background:color-mix(in srgb,var(--paper) 96%,transparent);
  border-radius:2px;box-shadow:none
}
.location-copy{
  padding:40px 36px;display:flex;flex-direction:column;justify-content:center;
  align-items:flex-start;text-align:start
}
.location-copy>span{color:var(--muted);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
html[lang="ar"] .location-copy>span{letter-spacing:.04em;text-transform:none}
.location-copy h3{
  font-family:var(--font-display-en);font-size:clamp(1.45rem,3vw,1.9rem);
  margin:.35em 0;font-weight:500
}
html[lang="ar"] .location-copy h3{font-family:var(--font-display-ar)}
.location-copy p{color:var(--muted);margin:0 0 20px;white-space:pre-line;line-height:1.7}
.map-link{
  border:1px solid var(--line);padding:11px 18px;color:var(--ink);background:transparent
}
.map-embed-wrap{min-height:380px;background:color-mix(in srgb,var(--muted) 12%,#eee)}
.map-embed-wrap iframe{width:100%;height:100%;min-height:380px;border:0}

.rsvp-hook{
  padding:36px 28px;text-align:center;min-height:200px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--paper) 96%,transparent);
  border:1px solid color-mix(in srgb,var(--line) 90%,var(--accent));
  border-radius:2px;box-shadow:none
}
.rsvp-hook p{margin:0;max-width:560px;color:var(--muted)}
.optional-section:not([hidden]){min-height:70vh}
.invite-nav svg,.map-link svg,.music-control svg,.share-button svg{width:20px;height:20px}

/* Theme-aware sheet accents (subtle inheritance) */
.theme-midnight-gold{
  background:#121214;color:#f4ead7;border-color:#6d5a43;
  --ink:#f4ead7;--muted:#c9bdad;--accent:#d5b46b;--line:#41382e;--paper:#121214;
}
.theme-midnight-gold .invitation-copy,.theme-midnight-gold .count-unit span,.theme-midnight-gold .meta-label,.theme-midnight-gold .meta-sub,.theme-midnight-gold .countdown-caption{color:var(--muted)}
.theme-midnight-gold .meta-block{border-color:var(--line);background:transparent}
.theme-midnight-gold .count-sep{background:var(--line);width:1px;border:0}
.theme-midnight-gold .share-button,.theme-midnight-gold .map-action{border-color:#f4ead7;color:#f4ead7}
.theme-midnight-gold .share-button:hover,.theme-midnight-gold .map-action:hover{background:#f4ead7;color:#121214}
.theme-midnight-gold .rsvp-action{border-color:#d5b46b;background:#d5b46b;color:#121214}
.theme-midnight-gold .stationery-music{border-color:#6d5a43;color:#f4ead7}
.theme-midnight-gold .kicker,.theme-midnight-gold .event-label{color:var(--accent)}

.theme-emerald{
  background:#123f36;color:#edf4e6;border-color:#2a5c4f;
  --ink:#edf4e6;--muted:#b7c9be;--accent:#d3b66d;--line:#2a5c4f;--paper:#123f36;
}
.theme-emerald .invitation-copy,.theme-emerald .count-unit span,.theme-emerald .meta-label,.theme-emerald .meta-sub,.theme-emerald .countdown-caption{color:var(--muted)}
.theme-emerald .meta-block{border-color:var(--line);background:transparent}
.theme-emerald .count-sep{background:var(--line);width:1px;border:0}
.theme-emerald .share-button,.theme-emerald .map-action{border-color:#d3b66d;color:#edf4e6}
.theme-emerald .share-button:hover,.theme-emerald .map-action:hover{background:#d3b66d;color:#0f3f35}
.theme-emerald .rsvp-action{border-color:#d3b66d;background:#d3b66d;color:#0f3f35}
.theme-emerald .stationery-music{border-color:#2a5c4f;color:#edf4e6}
.theme-emerald .kicker,.theme-emerald .event-label{color:var(--accent)}

.theme-royal-black{
  background:#12110f;color:#eee1c4;border-color:#3a3428;
  --ink:#eee1c4;--muted:#cbbba0;--accent:#c8a968;--line:#3a3428;--paper:#12110f;
}
.theme-royal-black .invitation-copy,.theme-royal-black .count-unit span,.theme-royal-black .meta-label,.theme-royal-black .meta-sub,.theme-royal-black .countdown-caption{color:var(--muted)}
.theme-royal-black .meta-block{border-color:var(--line);background:transparent}
.theme-royal-black .count-sep{background:var(--line);width:1px;border:0}
.theme-royal-black .share-button,.theme-royal-black .map-action{border-color:#c8a968;color:#eee1c4}
.theme-royal-black .share-button:hover,.theme-royal-black .map-action:hover{background:#c8a968;color:#09090a}
.theme-royal-black .rsvp-action{border-color:#c8a968;background:#c8a968;color:#09090a}
.theme-royal-black .stationery-music{border-color:#3a3428;color:#eee1c4}
.theme-royal-black .kicker,.theme-royal-black .event-label{color:var(--accent)}

.theme-imperial-gold{
  background:#352214;color:#fff0bf;border-color:#6a4a28;
  --ink:#fff0bf;--muted:#e2d0a0;--accent:#e0bd68;--line:#6a4a28;--paper:#352214;
}
.theme-imperial-gold .invitation-copy,.theme-imperial-gold .count-unit span,.theme-imperial-gold .meta-label,.theme-imperial-gold .meta-sub,.theme-imperial-gold .countdown-caption{color:var(--muted)}
.theme-imperial-gold .meta-block{border-color:var(--line);background:transparent}
.theme-imperial-gold .count-sep{background:var(--line);width:1px;border:0}
.theme-imperial-gold .share-button,.theme-imperial-gold .map-action{border-color:#e0bd68;color:#fff0bf}
.theme-imperial-gold .share-button:hover,.theme-imperial-gold .map-action:hover{background:#e0bd68;color:#2b1b0d}
.theme-imperial-gold .rsvp-action{border-color:#e0bd68;background:#e0bd68;color:#2b1b0d}
.theme-imperial-gold .stationery-music{border-color:#6a4a28;color:#fff0bf}
.theme-imperial-gold .kicker,.theme-imperial-gold .event-label{color:var(--accent)}

.theme-velvet-rose{
  background:#5c2438;color:#f8e8e6;border-color:#7a3a4e;
  --ink:#f8e8e6;--muted:#e4c8cb;--accent:#d7a0a5;--line:#7a3a4e;--paper:#5c2438;
}
.theme-velvet-rose .invitation-copy,.theme-velvet-rose .count-unit span,.theme-velvet-rose .meta-label,.theme-velvet-rose .meta-sub,.theme-velvet-rose .countdown-caption{color:var(--muted)}
.theme-velvet-rose .meta-block{border-color:var(--line);background:transparent}
.theme-velvet-rose .count-sep{background:var(--line);width:1px;border:0}
.theme-velvet-rose .share-button,.theme-velvet-rose .map-action{border-color:#d7a0a5;color:#f8e8e6}
.theme-velvet-rose .share-button:hover,.theme-velvet-rose .map-action:hover{background:#d7a0a5;color:#501f31}
.theme-velvet-rose .rsvp-action{border-color:#d7a0a5;background:#d7a0a5;color:#501f31}
.theme-velvet-rose .stationery-music{border-color:#7a3a4e;color:#f8e8e6}
.theme-velvet-rose .kicker,.theme-velvet-rose .event-label{color:var(--accent)}

.theme-olive-garden{background:#fcfaef}
.theme-pearl-minimal{background:#fff;box-shadow:0 20px 60px rgba(54,50,47,.06)}
.theme-rose-fountain{background:#fffaf7}
.theme-royal-ivory{background:#fffaf0;border-color:#d8c398}
.theme-champagne{background:#fff6e8;border-color:#e4c596}
.theme-white-marble{background:#ffffff;border-color:#d8d1c8}
.theme-florence{background:#f7ead8;border-color:#d4b896}
.theme-sweet-illustrated{background:linear-gradient(180deg,#fffaf5,#fff3ef)}
.theme-rose-fountain .sheet-atmosphere{
  background:
    radial-gradient(ellipse at 50% 0%,rgba(152,95,107,.12),transparent 50%),
    radial-gradient(circle at 18% 80%,rgba(207,146,154,.1),transparent 35%)
}
.theme-olive-garden .sheet-atmosphere{
  background:
    radial-gradient(ellipse at 50% 0%,rgba(105,116,84,.12),transparent 50%),
    radial-gradient(circle at 82% 78%,rgba(125,135,99,.1),transparent 36%)
}
.theme-midnight-gold .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 10%,rgba(212,179,102,.14),transparent 55%)
}
.theme-emerald .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 10%,rgba(211,182,109,.16),transparent 55%)
}
.theme-royal-black .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 10%,rgba(200,169,104,.14),transparent 55%)
}
.theme-imperial-gold .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 8%,rgba(224,189,104,.18),transparent 55%)
}
.theme-velvet-rose .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 10%,rgba(215,160,165,.16),transparent 55%)
}
.theme-pearl-minimal .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 20%,rgba(145,135,124,.08),transparent 55%)
}
.theme-royal-ivory .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 12%,rgba(140,106,54,.1),transparent 55%)
}
.theme-champagne .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 12%,rgba(154,110,73,.1),transparent 55%)
}
.theme-florence .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 12%,rgba(119,73,57,.1),transparent 55%)
}
.theme-white-marble .sheet-atmosphere{
  background:radial-gradient(ellipse at 50% 18%,rgba(75,80,86,.07),transparent 55%)
}

.story-timeline{display:grid;gap:0;max-width:760px}
.story-moment{display:grid;grid-template-columns:58px 1fr;gap:18px;padding:0 0 34px;position:relative}
.story-moment>span{
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:var(--paper);border:1px solid var(--line);font-family:var(--font-display-en)
}
.story-moment:not(:last-child):after{
  content:"";position:absolute;inset-inline-start:20px;top:44px;bottom:0;width:1px;background:var(--line)
}
.story-moment h3{margin:0 0 6px;font-family:var(--font-display-en);font-size:1.35rem;font-weight:500}
html[lang="ar"] .story-moment h3{font-family:var(--font-display-ar)}
.story-moment p,.feature-copy{margin:0;color:var(--muted);white-space:pre-line;line-height:1.9;font-family:var(--font-invite-en)}
html[lang="ar"] .story-moment p,html[lang="ar"] .feature-copy{font-family:var(--font-invite-ar);line-height:2.1}
.faq-list{display:grid;gap:10px}
.faq-list details{background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:0 18px}
.faq-list summary{cursor:pointer;font-weight:700;padding:18px 0}
.faq-list p{color:var(--muted);padding:0 0 18px;margin:0;line-height:1.7}
.rsvp-deadline{font-weight:600;color:var(--accent);margin:-8px 0 20px}
.invite-footer{text-align:center;padding:52px 18px 70px}
.footer-monogram{margin:0 auto 14px}
.invite-footer p{font-family:var(--font-display-en);font-size:1.1rem}
html[lang="ar"] .invite-footer p{font-family:var(--font-display-ar)}

.venue-list{display:grid;gap:18px;margin-top:26px}
.venue-extra{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(280px,1.15fr);
  background:var(--paper);border:1px solid var(--line);border-radius:2px;overflow:hidden
}
.venue-extra>div{padding:28px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.venue-extra span{color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.venue-extra strong{margin-top:7px;font-family:var(--font-display-en);font-weight:500}
.venue-extra p{color:var(--muted);white-space:pre-line}
.venue-extra a{font-weight:700;color:var(--ink)}
.venue-extra iframe{width:100%;min-height:280px;border:0}
.iban-reveal{
  margin-top:24px;border:1px solid var(--line);background:transparent;
  border-radius:2px;padding:12px 20px;font-weight:700;cursor:pointer
}
.iban-value{
  margin-top:14px;padding:16px;border:1px dashed var(--accent);
  border-radius:2px;background:var(--paper);font-weight:700;letter-spacing:.05em;overflow-wrap:anywhere
}
.travel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.travel-grid article{
  background:transparent;border:1px solid var(--line);border-radius:2px;padding:22px
}
.travel-grid h3{font-family:var(--font-display-en);margin:0 0 10px;font-weight:500}
html[lang="ar"] .travel-grid h3{font-family:var(--font-display-ar)}
.travel-grid p{margin:0;color:var(--muted);white-space:pre-line;line-height:1.7}

.gold-envelope{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,#f6eee4,#d8c3af);transition:opacity .45s ease,visibility .45s ease}
.gold-envelope>button{border:0;background:transparent;display:grid;place-items:center;gap:22px;cursor:pointer;color:#4b3428}
.envelope-shell{position:relative;width:min(78vw,390px);aspect-ratio:1.5/1;background:#f7eadc;border-radius:8px;box-shadow:0 26px 70px rgba(65,43,31,.28);overflow:hidden;perspective:900px}
.envelope-shell:before,.envelope-shell:after{content:"";position:absolute;bottom:0;width:62%;height:76%;background:#ecd8c5;z-index:3}
.envelope-shell:before{left:-10%;clip-path:polygon(0 100%,0 0,100% 100%)}
.envelope-shell:after{right:-10%;clip-path:polygon(100% 100%,100% 0,0 100%)}
.envelope-flap{position:absolute;inset:0 0 auto;height:66%;background:#e6ceb8;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:5;transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.envelope-letter{position:absolute;left:10%;right:10%;top:18%;height:74%;background:#fffaf5;display:grid;place-items:center;font-family:Georgia,serif;font-size:1.25rem;z-index:2;transition:transform .75s .2s cubic-bezier(.2,.8,.2,1)}
.envelope-ribbon{position:absolute;left:50%;top:48%;width:72px;height:72px;border-radius:50%;transform:translate(-50%,-50%);background:#7b4f4f;z-index:6;box-shadow:0 0 0 8px rgba(123,79,79,.08)}
.gold-envelope.opening .envelope-flap{transform:rotateX(180deg)}
.gold-envelope.opening .envelope-letter{transform:translateY(-62%)}
.gold-envelope.opening{opacity:0;visibility:hidden;transition-delay:.55s}
.gold-envelope p{font-weight:800;letter-spacing:.03em}

.advanced-tier-fields{display:grid;gap:18px}
.advanced-block>div{display:grid;gap:14px}
.advanced-block label{display:grid;gap:7px}
.repeat-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.repeat-row{position:relative;display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:8px}
.repeat-row [data-remove]{position:absolute;top:8px;inset-inline-end:8px;border:0;background:transparent;font-size:1.2rem;cursor:pointer}
.advanced-ai-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}

@media(max-width:760px){
  html{scroll-padding-top:70px}
  .invite-nav{min-height:56px}
  .invite-menu-toggle{display:block}
  .invite-nav-links{
    position:absolute;top:calc(100% + 8px);inset-inline-end:14px;min-width:210px;
    display:none;flex-direction:column;align-items:stretch;padding:10px;
    background:var(--paper);border:1px solid var(--line);border-radius:8px;
    box-shadow:0 18px 50px rgba(72,49,40,.12)
  }
  .invite-nav-links.open{display:flex}
  .invite-nav-links a{padding:11px 12px}
  .invite-section{min-height:auto;padding:64px 14px}
  .hero-section{padding:0 0 36px}
  .invitation-sheet,.invitation-card{
    width:100%;min-height:calc(100svh - 56px);border-radius:0;border-inline:0;
    padding:48px 18px 32px;display:flex;flex-direction:column;justify-content:center;
    box-shadow:none
  }
  .couple-names,.invitation-card h1{font-size:clamp(1.85rem,8.5vw,2.55rem)}
  html[lang="ar"] .couple-names,html[lang="ar"] .invitation-card h1{font-size:clamp(1.75rem,8vw,2.35rem)}
  .countdown strong,.count-unit strong{font-size:1.45rem}
  .countdown,.editorial-countdown{margin:24px auto 28px}
  .location-layout,.location-card{grid-template-columns:1fr}
  .location-copy{padding:28px 22px}
  .map-embed-wrap,.map-embed-wrap iframe{min-height:300px}
  .map-link{width:100%}
  .rsvp-hook{padding:28px 18px}
  .venue-extra{grid-template-columns:1fr}
  .venue-extra iframe{min-height:240px}
  .invite-action,.share-button,.music-control,.invite-utility-row{width:100%;max-width:none}
  .invitation-sheet,.invitation-card{
    padding-bottom:max(32px, env(safe-area-inset-bottom, 0px))
  }
  .invite-actions{padding-bottom:max(4px, env(safe-area-inset-bottom, 0px))}
}
.invite-section .section-shell{
  opacity:1;
}
body[data-experience][data-motion]:not([data-motion="reduced"]) .invite-section[data-reveal]:not(.is-revealed) .section-shell{
  opacity:.01;
  transform:translateY(6px);
}
body[data-experience][data-motion]:not([data-motion="reduced"]) .invite-section[data-reveal].is-revealed .section-shell{
  animation:invite-shell-reveal 820ms cubic-bezier(.22,.61,.36,1) both;
}
@keyframes invite-shell-reveal{
  from{opacity:.01;transform:translateY(6px)}
  to{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  :root{scroll-behavior:auto}
  .gold-envelope,.envelope-flap,.envelope-letter,.invite-action,.music-control,.share-button,.map-link{transition:none}
  body[data-experience] .invite-section[data-reveal] .section-shell{
    opacity:1!important;transform:none!important;animation:none!important
  }
}
