/* ═══════════════════════════════════════════════════════════════════
   ROYAL HERITAGE — wedding invitation (static)
   Powder blue + royal navy + antique gold. Cinematic video-intro hero,
   scroll reveals, scratch-to-reveal date, heart card, live countdown.
   Tailwind utilities + theme from the CDN config in index.html; this
   file holds base, fonts, the video hero & signature components.
═══════════════════════════════════════════════════════════════════ */

:root {
  --font-serif: "Cormorant Garamond", Georgia, serif;
  --font-display: "Playfair Display", Georgia, serif;
  --font-cinzel: "Cinzel", Georgia, serif;
  --font-script: "Dancing Script", cursive;
  --font-sans: "Jost", system-ui, sans-serif;
  --ease-luxe: cubic-bezier(0.22, 1, 0.36, 1);

  --powder-50: #f5f9fc;
  --powder-100: #eef4fa;
  --powder-200: #dde9f4;
  --powder-300: #c6dcec;
  --blue-400: #6b9cc6;
  --blue-500: #3d6f9e;
  --royal-600: #295a87;
  --royal-700: #1c4c7d;
  --navy-900: #16273a;
  --gold-500: #a07a4a;
  --gold-400: #d8c088;
  --cream: #f3e6c8;
  --hero-cream: #f5e9dc;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-tap-highlight-color: transparent; }

body {
  margin: 0; min-height: 100vh;
  background-color: #eef4fa;
  color: #16273a;
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

::selection { background-color: rgba(61, 111, 158, 0.28); color: #16273a; }
:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 3px; border-radius: 2px; }

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #dde9f4; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #6b9cc6, #1c4c7d); border-radius: 8px; border: 2px solid #dde9f4; }

html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
body.gate-locked { overflow: hidden; }

/* ── Typography helpers ──────────────────────────────────────────── */
.font-script { font-family: var(--font-script); }
.font-serif { font-family: var(--font-serif); }
.font-display { font-family: var(--font-display); }
.font-cinzel { font-family: var(--font-cinzel); }
.eyebrow { font-family: var(--font-display); font-weight: 500; color: var(--royal-700); line-height: 1.06; letter-spacing: 0.01em; }
.text-gold-gradient {
  background-image: linear-gradient(120deg, #e6cf94 0%, #d8c088 30%, #a07a4a 55%, #e6cf94 80%, #a07a4a 100%);
  background-size: 200% auto; -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rose-line { height: 1px; background: linear-gradient(90deg, transparent, var(--blue-500), transparent); }

/* ── Heart / dividers ────────────────────────────────────────────── */
.divider { display: flex; align-items: center; justify-content: center; gap: 0.75rem; color: var(--blue-500); }
.divider::before, .divider::after { content: ""; height: 1px; width: clamp(48px, 18vw, 120px); background: linear-gradient(90deg, transparent, var(--blue-400)); }
.divider::after { background: linear-gradient(90deg, var(--blue-400), transparent); }
.divider svg { width: 14px; height: 14px; }

.sec-icon {
  display: grid; place-items: center; width: 3.25rem; height: 3.25rem; margin: 0 auto;
  border-radius: 9999px; border: 1px solid rgba(28, 76, 125, 0.32); color: var(--royal-700);
  box-shadow: inset 0 0 0 3px rgba(160, 122, 74, 0.14);
}
.sec-icon svg { width: 1.4rem; height: 1.4rem; }

/* soft card */
.card-rose {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(61, 111, 158, 0.26);
  border-radius: 1.25rem;
  box-shadow: 0 30px 70px -40px rgba(22, 39, 58, 0.4);
  backdrop-filter: blur(6px);
}

/* royal solid button */
.btn-rose {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  padding: 0.85rem 2rem; border-radius: 9999px;
  font-family: var(--font-sans); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  color: #f3f8fc; background: linear-gradient(135deg, #295a87, #1c4c7d 55%, #16406b);
  box-shadow: 0 12px 30px -12px rgba(22, 39, 58, 0.65), inset 0 0 0 1px rgba(216, 192, 136, 0.25);
  transition: transform 0.4s var(--ease-luxe), box-shadow 0.4s var(--ease-luxe), filter 0.3s;
  text-decoration: none; cursor: pointer; border: none;
}
.btn-rose:hover { transform: translateY(-2px); filter: brightness(1.08); box-shadow: 0 16px 40px -12px rgba(22, 39, 58, 0.8), inset 0 0 0 1px rgba(216, 192, 136, 0.4); }

/* ── Reveal system ───────────────────────────────────────────────── */
[data-reveal] { opacity: 0; }
[data-splittext] { display: inline-block; }
[data-splittext] .st-char { display: inline-block; will-change: transform, opacity, filter; }

/* ── Cinematic video hero ─────────────────────────────────────────── */
.hero-video { background: #0e0d0b; color: var(--hero-cream); }
.hero-media {
  position: absolute; inset: 0; z-index: 0;
  width: 100%; height: 100%; object-fit: cover;
  cursor: pointer; background: #0e0d0b;
}
.hero-overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0;
  transition: opacity 1.2s var(--ease-luxe);
  background: linear-gradient(to bottom, rgba(6, 12, 22, 0.5) 0%, rgba(6, 12, 22, 0.18) 45%, rgba(6, 12, 22, 0.62) 100%);
}
#hero.is-revealed .hero-overlay { opacity: 1; }
#hero canvas[data-particles] { z-index: 2; opacity: 0; transition: opacity 1.4s ease; }
#hero.is-revealed canvas[data-particles] { opacity: 0.9; }

/* Tap-to-begin prompt */
.hero-play {
  position: absolute; left: 50%; top: 50%; z-index: 6; transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: center; gap: 1rem;
  padding: 0; border: none; background: none; cursor: pointer; color: var(--hero-cream);
  transition: opacity 0.6s ease, transform 0.6s var(--ease-luxe);
}
.hero-play-icon {
  position: relative; width: 3rem; height: 3rem; padding: 1.25rem; box-sizing: content-box;
  border-radius: 9999px; border: 1px solid rgba(245, 233, 220, 0.55);
  background: rgba(20, 30, 46, 0.35); backdrop-filter: blur(4px);
  filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.5));
}
.hero-play-ring {
  position: absolute; left: 50%; top: calc(1.25rem + 1.5rem); width: 5.5rem; height: 5.5rem;
  transform: translate(-50%, -50%); border-radius: 9999px; border: 1px solid rgba(245, 233, 220, 0.5);
  animation: hero-pulse 2.4s ease-out infinite;
}
.hero-play-label {
  font-family: var(--font-cinzel); font-size: 0.72rem; letter-spacing: 0.32em; text-transform: uppercase;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7);
}
@keyframes hero-pulse { 0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.7); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(1.35); } }
#hero.is-playing .hero-play { opacity: 0; pointer-events: none; transform: translate(-50%, -50%) scale(0.9); }

/* Revealed invitation content over the film */
.hero-content { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; pointer-events: none; }
/* Hold the hero text back from the very first paint. This used to rely on the
   script setting opacity:0 at DOMContentLoaded, so the names flashed on screen
   for a moment before it ran. playHeroEntrance reveals them with an inline
   opacity, which outranks this rule. */
#hero [data-hero-item] { opacity: 0; }
.hero-crest { color: var(--gold-400); filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.6)); }
.hero-msg {
  margin-top: 1rem; font-family: var(--font-serif); font-style: italic; font-size: 1.15rem; line-height: 1.6;
  color: rgba(245, 233, 220, 0.92); text-shadow: 0 2px 14px rgba(0, 0, 0, 0.7);
}
.hero-rule { margin: 1.4rem 0 0.4rem; display: flex; align-items: center; gap: 0.75rem; color: rgba(216, 192, 136, 0.85); }
.hero-rule span { height: 1px; width: 4rem; background: linear-gradient(90deg, transparent, rgba(216, 192, 136, 0.75), transparent); }
.hero-name {
  margin-top: 0.5rem; font-family: var(--font-script); font-weight: 600; line-height: 0.98;
  font-size: clamp(3.6rem, 16vw, 7rem); color: var(--hero-cream);
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.55), 0 0 26px rgba(160, 122, 74, 0.35);
}
.hero-role { margin-top: 0.35rem; font-family: var(--font-sans); font-size: 0.78rem; letter-spacing: 0.14em; color: rgba(245, 233, 220, 0.72); text-shadow: 0 2px 8px rgba(0, 0, 0, 0.65); }
.hero-amp { margin: 0.35rem 0; font-family: var(--font-script); font-size: 2.4rem; color: rgba(216, 192, 136, 0.9); text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6); }
@media (min-width: 768px) {
  .hero-msg { font-size: 1.4rem; }
  .hero-role { font-size: 0.85rem; }
}
.hero-scroll {
  position: absolute; left: 50%; bottom: 2rem; z-index: 4; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 0.4rem;
  border: none; background: none; cursor: pointer; color: rgba(245, 233, 220, 0.75);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
}

/* ── Scratch to reveal ────────────────────────────────────────────────── */
.scratch-wrap{ position:relative; width:100%; max-width:22rem; margin:0 auto; aspect-ratio:16/9;
  border-radius:1rem; overflow:hidden; border:1px solid rgba(61,111,158,0.28);
  box-shadow:0 30px 70px -40px rgba(22,39,58,0.4); }
.scratch-under{ position:absolute; inset:0; display:grid; place-items:center; text-align:center;
  background:linear-gradient(180deg, #f5f9fc, #dde9f4); }
.scratch-canvas{ position:absolute; inset:0; width:100%; height:100%; cursor:grab; touch-action:none; }
.scratch-canvas:active{ cursor:grabbing; }
/* Heart-shaped scratch card — reveals the invitation embedded in the heart */
.scratch-heart{ position:relative; width:100%; max-width:20rem; margin:0 auto; aspect-ratio:1 / 0.92; }
.scratch-heart .heart-outline{ position:absolute; inset:0; width:100%; height:100%; }
.scratch-heart .heart-content{ position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; padding:10% 15% 22%; }
.scratch-heart .heart-content p{ line-height:1.2; }
.scratch-heart .heart-content .heart-date{ font-size:1.55rem; }
@media (min-width:768px){ .scratch-heart .heart-content .heart-date{ font-size:1.9rem; } }
.scratch-heart .scratch-canvas{ position:absolute; inset:0; width:100%; height:100%; cursor:grab; touch-action:none; }

/* ── Photo slideshow ──────────────────────────────────────────────────── */
.slideshow{ --slide-accent:#a07a4a; position:relative; overflow:hidden; border-radius:1rem;
  max-width:27rem; margin-left:auto; margin-right:auto;
  border:1px solid color-mix(in srgb,var(--slide-accent,#a07a4a) 35%,transparent);
  box-shadow:0 30px 70px -40px rgba(0,0,0,.5); }
.slides{ position:relative; aspect-ratio:3/4; }   /* portrait, to suit real photos */
.slide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0;
  transform:scale(1.04); transition:opacity 1s ease, transform 6s ease; }
.slide.is-active{ opacity:1; transform:scale(1); }
.slide-nav{ position:absolute; top:50%; transform:translateY(-50%); width:2.4rem; height:2.4rem;
  display:grid; place-items:center; border-radius:9999px; border:none; cursor:pointer; font-size:1.4rem;
  background:rgba(0,0,0,.35); color:#fff; backdrop-filter:blur(4px); opacity:0; transition:opacity .3s; }
.slideshow:hover .slide-nav{ opacity:1; } .slide-nav.prev{ left:.7rem; } .slide-nav.next{ right:.7rem; }
.slide-dots{ position:absolute; left:0; right:0; bottom:.8rem; display:flex; gap:.4rem; justify-content:center; }
.slide-dots button{ width:.5rem; height:.5rem; border-radius:9999px; border:none; cursor:pointer;
  background:rgba(255,255,255,.5); } .slide-dots button.is-active{ background:var(--slide-accent,#a07a4a); width:1.2rem; border-radius:9999px; }

/* ── Gallery — uniform portrait tiles for real photos ─────────────── */
#gallery [data-lightbox]{ aspect-ratio:3/4; display:block; padding:0; background:none; cursor:pointer; }
#gallery [data-lightbox] img{ display:block; }

/* ── Heart date card ─────────────────────────────────────────────── */
.heart-card { position: relative; width: 100%; max-width: 22rem; margin: 0 auto; aspect-ratio: 1 / 0.92; }
.heart-card svg.heart-outline { position: absolute; inset: 0; width: 100%; height: 100%; }
/* A heart is widest in its upper-middle and tapers to a point at the bottom.
   Keep content inside that wide band: constrain the width with side padding and
   lift it off the tip with extra bottom padding so nothing spills out. */
.heart-card .heart-content { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 6% 18% 22%; }
.heart-card .heart-content p { line-height: 1.2; }
.heart-card .heart-content .heart-date { font-size: 1.5rem; }
@media (min-width: 768px) { .heart-card .heart-content .heart-date { font-size: 1.75rem; } }

/* ── Program timeline ────────────────────────────────────────────── */
.tl { position: relative; padding-left: 2rem; }
.tl::before { content: ""; position: absolute; left: 0.4rem; top: 0.3rem; bottom: 0.3rem; width: 1px; background: linear-gradient(180deg, rgba(28,76,125,0.5), rgba(28,76,125,0.12)); }
.tl-item { position: relative; padding-bottom: 2rem; }
.tl-item::before { content: ""; position: absolute; left: -1.72rem; top: 0.35rem; width: 0.7rem; height: 0.7rem; border-radius: 9999px; background: var(--royal-700); box-shadow: 0 0 0 4px rgba(28,76,125,0.12); }

/* ── Lightbox ────────────────────────────────────────────────────── */
#lightbox { position: fixed; inset: 0; z-index: 120; display: none; place-items: center; background: rgba(12,22,38,0.92); backdrop-filter: blur(6px); padding: 1.5rem; }
#lightbox.is-open { display: grid; }
#lightbox img { max-width: min(92vw, 1000px); max-height: 84vh; object-fit: contain; border-radius: 0.75rem; box-shadow: 0 30px 80px -20px rgba(0,0,0,0.6); }

/* ── Reduced motion ──────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; filter: none !important; }
  .hero-play-ring { animation: none; }
}

/* ==== BEGIN: Mughal Mandala decorative background ==== */
/* Royal Heritage - Mughal Mandala decorative layer */
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(60% 46% at 50% -8%,rgba(107,156,198,0.22),transparent 70%),radial-gradient(48% 40% at 88% 10%,rgba(216,192,136,0.16),transparent 72%),radial-gradient(56% 46% at 8% 94%,rgba(198,220,236,0.30),transparent 72%),radial-gradient(50% 42% at 92% 96%,rgba(216,192,136,0.10),transparent 72%),linear-gradient(180deg,#d7e5f1 0%,#e9f1f8 40%,#eef4fa 68%,#f4efe0 100%);}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='44'%20height='44'%20viewBox='0%200%2044%2044'%3E%20%3Cg%20fill='none'%20stroke='%23a07a4a'%20stroke-width='0.9'%3E%20%3Ccircle%20cx='0'%20cy='0'%20r='15'/%3E%3Ccircle%20cx='44'%20cy='0'%20r='15'/%3E%20%3Ccircle%20cx='0'%20cy='44'%20r='15'/%3E%3Ccircle%20cx='44'%20cy='44'%20r='15'/%3E%20%3Ccircle%20cx='22'%20cy='0'%20r='15'/%3E%3Ccircle%20cx='0'%20cy='22'%20r='15'/%3E%20%3Ccircle%20cx='44'%20cy='22'%20r='15'/%3E%3Ccircle%20cx='22'%20cy='44'%20r='15'/%3E%20%3Ccircle%20cx='22'%20cy='22'%20r='15'/%3E%20%3C/g%3E%20%3Cg%20fill='%23a07a4a'%3E%20%3Ccircle%20cx='22'%20cy='22'%20r='1'/%3E%3Ccircle%20cx='0'%20cy='0'%20r='1'/%3E%20%3Ccircle%20cx='44'%20cy='44'%20r='1'/%3E%3Ccircle%20cx='44'%20cy='0'%20r='1'/%3E%3Ccircle%20cx='0'%20cy='44'%20r='1'/%3E%20%3C/g%3E%20%3C/svg%3E");background-repeat:repeat;background-size:46px 46px;opacity:0.08;}

section[id]:not(#hero){background-color:transparent !important;position:relative;overflow:hidden;}

section[id]:not(#hero)::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='48'%20height='18'%20viewBox='0%200%2048%2018'%3E%20%3Cg%20fill='none'%20stroke='%23a07a4a'%20stroke-width='1.1'%3E%20%3Cpath%20d='M0%204%20Q12%2016%2024%204%20Q36%2016%2048%204'/%3E%20%3Cline%20x1='0'%20y1='2'%20x2='48'%20y2='2'/%3E%20%3C/g%3E%20%3Cg%20fill='%23a07a4a'%3E%20%3Ccircle%20cx='0'%20cy='4'%20r='1.6'/%3E%3Ccircle%20cx='24'%20cy='4'%20r='1.6'/%3E%3Ccircle%20cx='48'%20cy='4'%20r='1.6'/%3E%20%3C/g%3E%20%3Cg%20fill='%233d6f9e'%3E%20%3Ccircle%20cx='12'%20cy='15'%20r='1.1'/%3E%3Ccircle%20cx='36'%20cy='15'%20r='1.1'/%3E%20%3C/g%3E%20%3C/svg%3E"),radial-gradient(120% 88% at 50% 0%,rgba(61,111,158,0.10),transparent 60%);background-repeat:repeat-x,no-repeat;background-position:center top,center top;background-size:48px 18px,100% 340px;}

section[id]:not(#hero):nth-of-type(even)::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='300'%20height='300'%20viewBox='0%200%20300%20300'%3E%20%3Cg%20fill='none'%20stroke='%23295a87'%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='146'%20stroke-width='1.8'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='118'%20stroke-width='1.4'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='60'%20stroke-width='1.6'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='24'%20stroke-width='1.3'/%3E%20%3C/g%3E%20%3Cg%20fill='none'%20stroke='%23a07a4a'%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='141'%20stroke-width='1.6'%20stroke-dasharray='2%206'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='112'%20stroke-width='2.6'%20stroke-dasharray='1.5%208'/%3E%20%3C/g%3E%20%3Cg%20fill='none'%20stroke='%233d6f9e'%20stroke-width='1.7'%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(30%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(60%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(90%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(120%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(150%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(180%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(210%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(240%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(270%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(300%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(330%20150%20150)'/%3E%3C/g%3E%20%3Cg%20fill='none'%20stroke='%23a07a4a'%20stroke-width='1.5'%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(22.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(67.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(112.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(157.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(202.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(247.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(292.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(337.5%20150%20150)'/%3E%3C/g%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='8'%20fill='none'%20stroke='%23a07a4a'%20stroke-width='1.5'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='3.6'%20fill='%23295a87'/%3E%20%3C/svg%3E");background-repeat:no-repeat;background-position:center 46%;background-size:min(540px,86%) auto;opacity:0.14;}

section[id]:not(#hero):nth-of-type(odd)::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='300'%20height='300'%20viewBox='0%200%20300%20300'%3E%20%3Cg%20fill='none'%20stroke='%23295a87'%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='146'%20stroke-width='1.8'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='118'%20stroke-width='1.4'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='60'%20stroke-width='1.6'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='24'%20stroke-width='1.3'/%3E%20%3C/g%3E%20%3Cg%20fill='none'%20stroke='%23a07a4a'%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='141'%20stroke-width='1.6'%20stroke-dasharray='2%206'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='112'%20stroke-width='2.6'%20stroke-dasharray='1.5%208'/%3E%20%3C/g%3E%20%3Cg%20fill='none'%20stroke='%233d6f9e'%20stroke-width='1.7'%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(30%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(60%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(90%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(120%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(150%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(180%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(210%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(240%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(270%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(300%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='80'%20rx='11'%20ry='32'%20transform='rotate(330%20150%20150)'/%3E%3C/g%3E%20%3Cg%20fill='none'%20stroke='%23a07a4a'%20stroke-width='1.5'%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(22.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(67.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(112.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(157.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(202.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(247.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(292.5%20150%20150)'/%3E%3Cellipse%20cx='150'%20cy='108'%20rx='7'%20ry='20'%20transform='rotate(337.5%20150%20150)'/%3E%3C/g%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='8'%20fill='none'%20stroke='%23a07a4a'%20stroke-width='1.5'/%3E%20%3Ccircle%20cx='150'%20cy='150'%20r='3.6'%20fill='%23295a87'/%3E%20%3C/svg%3E");background-repeat:no-repeat;background-position:right -150px center;background-size:440px auto;opacity:0.1;}
/* ==== END: Mughal Mandala decorative background ==== */

/* ==== Invitocraft credit bar ==== */
.ic-bar{
  background:#16273a;
  border-top:1px solid rgba(216,192,136,.28);
  padding:22px 24px 20px;
  text-align:center;
}
.ic-bar-in{
  max-width:44rem; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.ic-brand{
  display:inline-flex; align-items:center; gap:11px;
  color:#d8c088; text-decoration:none; transition:color .3s ease;
}
.ic-brand:hover{ color:#f3e6c8; }
.ic-seal{ width:30px; height:30px; flex:none; }
.ic-made{
  display:inline-flex; align-items:center; gap:6px;
  font-family:"Jost", system-ui, sans-serif; font-size:12px; font-weight:300;
  letter-spacing:.12em; color:#c8d6e4; white-space:nowrap;
}
.ic-made strong{ font-weight:500; color:inherit; letter-spacing:.18em; }
.ic-brand:hover .ic-made{ color:#e8f0f8; }
.ic-heart{ width:11px; height:11px; flex:none; color:#d8c088; }
.ic-cta{
  display:inline-flex; align-items:center; gap:8px;
  font-family:"Jost", system-ui, sans-serif; font-size:10.5px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; text-decoration:none;
  color:#d8c088; border:1px solid rgba(216,192,136,.35);
  border-radius:999px; padding:8px 16px;
  transition:border-color .3s ease, color .3s ease, background-color .3s ease;
}
.ic-cta:hover{ border-color:#d8c088; color:#f3e6c8; background:rgba(216,192,136,.09); }
.ic-fine{
  margin:16px 0 0;
  font-family:"Jost", system-ui, sans-serif; font-size:10px;
  letter-spacing:.16em; color:rgba(200,214,228,.4);
}
@media (max-width:560px){
  .ic-bar-in{ flex-direction:column; gap:14px; }
}
