/* =========================================================
   AKASH & ANAMIKA — WEDDING INVITATION
   Modern Mughal-garden editorial: plum, marigold gold, ivory.
   ========================================================= */

:root{
  --plum-950:#17060c;
  --plum-900:#220912;
  --plum-800:#2f0d1b;
  --plum-700:#401326;
  --wine:#571b30;
  --wine-deep:#3d1122;
  --gold:#d3a44b;
  --gold-2:#e7c479;
  --gold-3:#8a6220;
  --marigold:#e08a2e;
  --ivory:#f8f1e5;
  --ivory-2:#f1e6d4;
  --ink:#2c111a;
  --ink-soft:#6b4a51;
  --line:rgba(211,164,75,.3);
  --line-soft:rgba(211,164,75,.16);
  --line-dark:rgba(44,17,26,.14);

  --display:'Bodoni Moda','Times New Roman',Georgia,serif;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif;
  --hindi:'Tiro Devanagari Hindi',Georgia,serif;

  --wrap:1160px;
  --jali:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='88' viewBox='0 0 88 88'%3E%3Cpath d='M44 4 50.9 27.4 72.3 15.7 60.6 37.1 84 44 60.6 50.9 72.3 72.3 50.9 60.6 44 84 37.1 60.6 15.7 72.3 27.4 50.9 4 44 27.4 37.1 15.7 15.7 37.1 27.4Z' fill='none' stroke='%23d3a44b' stroke-width='.7' opacity='.55'/%3E%3Ccircle cx='44' cy='44' r='3' fill='none' stroke='%23d3a44b' stroke-width='.7' opacity='.55'/%3E%3C/svg%3E");
  --jali-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='88' viewBox='0 0 88 88'%3E%3Cpath d='M44 4 50.9 27.4 72.3 15.7 60.6 37.1 84 44 60.6 50.9 72.3 72.3 50.9 60.6 44 84 37.1 60.6 15.7 72.3 27.4 50.9 4 44 27.4 37.1 15.7 15.7 37.1 27.4Z' fill='none' stroke='%232c111a' stroke-width='.7' opacity='.55'/%3E%3Ccircle cx='44' cy='44' r='3' fill='none' stroke='%232c111a' stroke-width='.7' opacity='.55'/%3E%3C/svg%3E");
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--serif);
  font-size:18px;
  line-height:1.6;
  color:var(--ivory);
  background:var(--plum-950);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.is-locked{overflow:hidden;height:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit}
img,svg{display:block}
h1,h2,h3,p{margin:0}
::selection{background:var(--gold);color:var(--plum-950)}
main > section[id]{scroll-margin-top:clamp(4.5rem,8vh,6rem)}
:focus-visible{outline:2px solid var(--gold-2);outline-offset:4px;border-radius:2px}

.sprite{position:absolute;width:0;height:0;overflow:hidden}
.wrap{width:min(var(--wrap),100% - clamp(2.2rem,6vw,4rem));margin-inline:auto}
.monogram{display:block;width:100%;height:auto;color:currentColor}

.skip-link{
  position:fixed;top:.75rem;left:.75rem;z-index:200;
  padding:.7rem 1rem;border-radius:999px;
  background:var(--ivory);color:var(--ink);
  font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  transform:translateY(-160%);transition:transform .25s;
}
.skip-link:focus{transform:none}

/* ================= INTRO ================= */
.intro{
  position:fixed;inset:0;z-index:100;
  display:grid;place-items:center;
  overflow:hidden;
  isolation:isolate;
}
.intro__panel{
  position:absolute;top:0;bottom:0;width:50.15%;
  background:
    radial-gradient(100% 70% at 50% 40%,rgba(211,164,75,.09),transparent 65%),
    linear-gradient(155deg,#37101f,#1a060d 72%);
  transition:transform 1.25s cubic-bezier(.77,0,.18,1);
  will-change:transform;
}
.intro__panel::before{
  content:"";position:absolute;inset:0;
  background-image:var(--jali);background-size:88px 88px;
  opacity:.2;
  -webkit-mask-image:radial-gradient(ellipse at 50% 45%,#000 10%,transparent 78%);
  mask-image:radial-gradient(ellipse at 50% 45%,#000 10%,transparent 78%);
}
.intro__panel::after{
  content:"";position:absolute;inset:16px;
  border:1px solid rgba(211,164,75,.17);
}
.intro__panel--l{left:0;box-shadow:inset -1px 0 0 rgba(211,164,75,.55)}
.intro__panel--r{right:0;box-shadow:inset 1px 0 0 rgba(211,164,75,.55)}
.intro.is-open .intro__panel--l{transform:translateX(-101%)}
.intro.is-open .intro__panel--r{transform:translateX(101%)}
.intro.is-open{pointer-events:none}
.intro.is-done{display:none}

.intro__arch{
  position:absolute;left:50%;top:50%;z-index:2;
  width:min(430px,78vw);height:auto;
  color:var(--gold);opacity:.3;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.intro__inner{
  position:relative;z-index:3;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
  padding:2rem 1.4rem;
  transition:opacity .35s ease,transform .55s ease;
}
.intro.is-open .intro__inner{opacity:0;transform:translateY(-14px) scale(.98)}

.intro__mono{width:clamp(78px,10vw,104px);color:var(--gold);margin-bottom:clamp(1rem,2.6vh,1.6rem)}
.intro__kicker,
.hero__eyebrow,
.kicker{
  display:inline-flex;align-items:center;gap:.9rem;
  font-family:var(--sans);font-size:.66rem;font-weight:400;
  letter-spacing:.4em;text-transform:uppercase;
}
.intro__kicker{color:var(--gold-2)}
.intro__kicker::before,
.intro__kicker::after,
.hero__eyebrow::before,
.hero__eyebrow::after{
  content:"";width:clamp(22px,4vw,40px);height:1px;background:currentColor;opacity:.45;
}
.intro__names{
  display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;
  gap:.12em .3em;
  margin-top:clamp(.8rem,2vh,1.4rem);
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.6rem,6.4vw,4.8rem);
  line-height:1.02;letter-spacing:-.025em;
  color:var(--ivory);
}
.intro__names em{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:.48em;color:var(--gold);letter-spacing:0;
}
.intro__date{
  margin-top:clamp(1rem,2.4vh,1.5rem);
  font-family:var(--sans);font-size:clamp(.6rem,1.4vw,.74rem);
  letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold-2);
}
.intro__note{
  margin-top:1.3rem;
  font-family:var(--serif);font-style:italic;
  font-size:clamp(.95rem,1.8vw,1.12rem);
  color:rgba(248,241,229,.62);
}

.btn{
  display:inline-flex;align-items:center;gap:.8rem;
  margin-top:clamp(1.6rem,4vh,2.4rem);
  padding:1rem 1.7rem;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:linear-gradient(135deg,var(--gold-2),#c99a3f);
  color:var(--plum-950);
  font-family:var(--sans);font-size:.66rem;font-weight:500;
  letter-spacing:.24em;text-transform:uppercase;
  box-shadow:0 20px 44px -20px rgba(211,164,75,.75);
  transition:transform .3s ease,background .3s ease,box-shadow .3s ease;
}
.btn:hover{transform:translateY(-2px);background:var(--ivory);box-shadow:0 24px 52px -20px rgba(211,164,75,.9)}
.btn svg{width:15px;height:15px;flex:none}
.btn--ghost{
  background:transparent;color:var(--ivory);
  border-color:rgba(211,164,75,.4);
  box-shadow:none;
}
.btn--ghost:hover{background:rgba(211,164,75,.12);color:var(--gold-2);box-shadow:none}

/* ================= NAV / PROGRESS ================= */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;pointer-events:none}
.progress span{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--gold-3),var(--gold-2));
  box-shadow:0 0 12px rgba(211,164,75,.55);
}
.nav{
  position:fixed;top:0;left:0;right:0;z-index:70;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.7rem clamp(1rem,4vw,2.4rem);
  color:var(--ivory);
  opacity:0;transform:translateY(-105%);
  pointer-events:none;
  transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1),background .4s ease,border-color .4s ease;
  border-bottom:1px solid transparent;
}
.nav.is-visible{opacity:1;transform:none;pointer-events:auto}
.nav.is-stuck{
  background:rgba(23,6,12,.84);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  border-bottom-color:rgba(211,164,75,.2);
}
.nav__brand{display:block;color:var(--gold);text-decoration:none;transition:transform .3s ease}
.nav__brand:hover{transform:rotate(-4deg)}
.nav__mono{display:block;width:40px}
.nav__links{display:flex;align-items:center;gap:clamp(1.4rem,3vw,2.6rem)}
.nav__links a{
  position:relative;
  font-family:var(--sans);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;
  color:rgba(248,241,229,.78);text-decoration:none;padding:.4rem 0;
  transition:color .25s ease;
}
.nav__links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:right;
  transition:transform .3s ease;
}
.nav__links a:hover{color:var(--gold-2)}
.nav__links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__date{
  font-family:var(--sans);font-size:.6rem;letter-spacing:.28em;
  color:var(--gold-2);white-space:nowrap;
}

/* ================= REVEAL ================= */
.reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--d,0s);
}
.reveal.in{opacity:1;transform:none}

/* ================= HERO ================= */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(5.6rem,13vh,9rem) clamp(1.1rem,4vw,2rem) clamp(2.6rem,6vh,4rem);
  overflow:hidden;
  text-align:center;
  color:var(--ivory);
  background:
    radial-gradient(95% 62% at 50% 0%,rgba(211,164,75,.18),transparent 62%),
    radial-gradient(80% 55% at 50% 106%,rgba(87,27,48,.85),transparent 70%),
    linear-gradient(180deg,#200811 0%,#2c0c18 46%,#17060c 100%);
}
.hero__jali{
  position:absolute;inset:0;z-index:0;
  background-image:var(--jali);background-size:88px 88px;
  opacity:.18;
  -webkit-mask-image:radial-gradient(ellipse at 50% 45%,transparent 26%,#000 78%);
  mask-image:radial-gradient(ellipse at 50% 45%,transparent 26%,#000 78%);
  pointer-events:none;
}
.hero__arch{
  position:absolute;left:50%;top:50%;z-index:0;
  width:calc(min(74vh,760px) * .625);
  height:min(74vh,760px);
  color:var(--gold);opacity:.3;
  transform:translate(-50%,-50%) translateY(var(--shift,0px));
  pointer-events:none;will-change:transform;
}
.hero__garlands{
  position:absolute;top:0;left:0;right:0;height:0;z-index:1;
  pointer-events:none;
  transform:translateY(calc(var(--shift,0px) * .4));
  will-change:transform;
}
.garland{
  position:absolute;top:-4px;
  transform-origin:50% 0;
  animation:garlandSway var(--dur,9s) ease-in-out infinite;
  animation-delay:var(--delay,0s);
  filter:drop-shadow(0 0 7px rgba(211,164,75,.28));
  pointer-events:none;
}
.hero__content{position:relative;z-index:3;width:100%;max-width:1080px}
.hero__eyebrow{color:var(--gold-2);font-size:clamp(.56rem,1.3vw,.68rem)}
.hero__names{
  display:flex;flex-direction:column;align-items:center;
  margin-top:clamp(.9rem,2.4vh,1.6rem);
  font-family:var(--display);font-weight:400;
  font-size:clamp(3.7rem,11.4vw,11rem);
  line-height:.84;letter-spacing:-.03em;
  color:var(--ivory);
  text-wrap:balance;
}
.hero__names em{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:.34em;line-height:1;letter-spacing:0;
  color:var(--gold);
  margin:.16em 0 .1em;
}
.hero__sub{
  max-width:34rem;margin:clamp(1.2rem,3vh,1.8rem) auto 0;
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.02rem,1.9vw,1.3rem);
  line-height:1.55;
  color:rgba(248,241,229,.7);
}
.dateline{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:clamp(1.1rem,3.6vw,2.8rem);
  margin-top:clamp(1.9rem,4.5vh,3rem);
}
.dateline__item{display:flex;flex-direction:column;align-items:center;gap:.28rem;min-width:6.4rem}
.dateline__label{
  font-family:var(--sans);font-size:.58rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold);
}
.dateline__date{
  font-family:var(--display);font-size:clamp(1.15rem,2.4vw,1.55rem);
  letter-spacing:.06em;color:var(--ivory);white-space:nowrap;
}
.dateline__year{
  font-family:var(--sans);font-size:.58rem;letter-spacing:.34em;
  color:rgba(248,241,229,.52);
}
.dateline__sep{width:15px;height:15px;color:var(--gold);opacity:.75;flex:none;margin-top:.5rem}
.scroll-cue{
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  margin-top:clamp(2rem,5vh,3.4rem);
  font-family:var(--sans);font-size:.55rem;letter-spacing:.36em;text-transform:uppercase;
  color:rgba(248,241,229,.48);
}
.scroll-cue i{
  width:1px;height:44px;
  background:linear-gradient(180deg,var(--gold),transparent);
  animation:cueDrop 2.6s ease-in-out infinite;
}

/* ================= NOTE ================= */
.note{
  position:relative;overflow:hidden;
  padding:clamp(4.8rem,11vw,9rem) clamp(1.2rem,4vw,2rem);
  background:var(--ivory);color:var(--ink);
  text-align:center;
}
.note::before{
  content:"";position:absolute;inset:0;
  background-image:var(--jali-ink);background-size:88px 88px;
  opacity:.4;
  -webkit-mask-image:radial-gradient(ellipse at 50% 50%,transparent 34%,#000 86%);
  mask-image:radial-gradient(ellipse at 50% 50%,transparent 34%,#000 86%);
  pointer-events:none;
}
.note__mark{
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-54%);
  font-family:var(--display);font-size:clamp(18rem,44vw,34rem);
  line-height:.7;color:rgba(87,27,48,.055);
  pointer-events:none;user-select:none;
}
.note__wrap{position:relative;z-index:2;max-width:830px}
.note .kicker{color:var(--wine)}
.note__text{
  margin-top:clamp(1.4rem,3vw,2rem);
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.45rem,3.3vw,2.4rem);
  line-height:1.42;letter-spacing:.002em;
  color:var(--ink);
  text-wrap:balance;
}
.note__text em{font-style:italic;color:var(--wine)}
.note__hindi{
  margin-top:clamp(1.8rem,4vw,2.6rem);
  font-family:var(--hindi);
  font-size:clamp(1.85rem,4.4vw,2.9rem);
  line-height:1.5;color:var(--gold-3);
}
.note__translation{
  margin-top:.5rem;
  font-family:var(--sans);font-size:.6rem;letter-spacing:.36em;text-transform:uppercase;
  color:var(--ink-soft);
}
.rule{
  display:flex;align-items:center;justify-content:center;gap:1rem;
  max-width:270px;margin:clamp(1.6rem,4vw,2.2rem) auto 0;
  color:var(--gold-3);
}
.rule span{flex:1;height:1px;background:currentColor;opacity:.42}
.rule svg{width:15px;height:15px;flex:none}
.note__names{
  margin-top:1.4rem;
  font-family:var(--display);font-size:clamp(1.15rem,2.2vw,1.45rem);
  color:var(--ink);
}
.note__names em{font-family:var(--serif);font-style:italic;color:var(--gold-3)}

/* ================= FAMILIES ================= */
.families{
  position:relative;overflow:hidden;
  padding:clamp(4.4rem,9vw,7rem) clamp(1.2rem,4vw,2rem);
  background:linear-gradient(180deg,#f4ead9,#eee0c8);
  color:var(--ink);
  text-align:center;
  border-top:1px solid rgba(211,164,75,.55);
}
.families::before{
  content:"";position:absolute;inset:0;
  background-image:var(--jali-ink);background-size:88px 88px;
  opacity:.34;
  -webkit-mask-image:radial-gradient(ellipse at 50% 50%,transparent 32%,#000 86%);
  mask-image:radial-gradient(ellipse at 50% 50%,transparent 32%,#000 86%);
  pointer-events:none;
}
.families .wrap{position:relative;z-index:2}
.families .kicker{color:var(--wine)}
.families .section-head{margin-bottom:clamp(2.2rem,5vw,3.2rem)}
.families .section-head .kicker{color:var(--wine)}
.families .section-head h2 em{color:var(--wine)}
.families .section-head .section-sub{color:var(--ink-soft)}
.family-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:stretch;
  gap:clamp(.8rem,2.4vw,2rem);
  max-width:900px;margin-inline:auto;
}
.family{
  display:flex;flex-direction:column;align-items:center;
  padding:clamp(1.4rem,3vw,2.2rem) clamp(.5rem,2vw,1.2rem);
}
.family__side{
  font-family:var(--sans);font-size:.54rem;letter-spacing:.36em;text-transform:uppercase;
  color:var(--gold-3);padding-left:.36em;
}
.family__name{
  margin-top:.75rem;
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.9rem,3.8vw,2.7rem);line-height:1;letter-spacing:-.01em;
  color:var(--ink);
}
.family__rel{
  margin-top:.9rem;
  font-family:var(--serif);font-style:italic;
  font-size:clamp(.95rem,1.8vw,1.08rem);
  color:var(--ink-soft);
}
.family__parents{
  margin-top:.45rem;
  font-family:var(--serif);
  font-size:clamp(1.08rem,2.3vw,1.32rem);
  line-height:1.55;
  max-width:26ch;
  text-wrap:balance;
}
.family__parents em{font-style:italic;color:var(--gold-3);padding:0 .18em}
.family__parents .tba{font-style:italic;color:var(--ink-soft);opacity:.7}
.family-divider{
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
  padding:.5rem 0;
  color:var(--gold-3);
}
.family-divider span{
  width:1px;flex:1;min-height:40px;
  background:linear-gradient(180deg,transparent,currentColor 18%,currentColor 82%,transparent);
  opacity:.45;
}
.family-divider svg{width:14px;height:14px;flex:none;opacity:.85}

/* ================= MARQUEE ================= */
.marquee{
  position:relative;z-index:2;overflow:hidden;
  padding:.9rem 0;
  background:linear-gradient(90deg,#bd8d35,#e7c479 45%,#c99a3f);
  color:var(--plum-950);
  border-top:1px solid rgba(23,6,12,.2);
  border-bottom:1px solid rgba(23,6,12,.2);
}
.marquee__track{display:flex;width:max-content;animation:marquee 36s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__group{
  display:flex;align-items:center;gap:2rem;
  padding-right:2rem;white-space:nowrap;
  font-family:var(--sans);font-size:.66rem;font-weight:400;
  letter-spacing:.3em;text-transform:uppercase;
}
.marquee__group svg{width:13px;height:13px;flex:none;opacity:.7}

/* ================= EVENTS ================= */
.events{
  position:relative;overflow:hidden;
  padding:clamp(4.8rem,11vw,9rem) clamp(1.2rem,4vw,2rem);
  color:var(--ivory);
  background:
    radial-gradient(80% 50% at 50% 0%,rgba(211,164,75,.1),transparent 60%),
    linear-gradient(180deg,#1d0710,#2b0c18 44%,#1c0710);
}
.events::before{
  content:"";position:absolute;inset:0;
  background-image:var(--jali);background-size:88px 88px;
  opacity:.13;
  -webkit-mask-image:radial-gradient(ellipse at 50% 45%,transparent 20%,#000 82%);
  mask-image:radial-gradient(ellipse at 50% 45%,transparent 20%,#000 82%);
  pointer-events:none;
}
.events .wrap{position:relative;z-index:2}
.section-head{max-width:780px;margin:0 auto clamp(2.8rem,6vw,4.6rem);text-align:center}
.section-head .kicker{color:var(--gold-2)}
.section-head h2{
  margin-top:1rem;
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.35rem,5.4vw,4.4rem);
  line-height:1.02;letter-spacing:-.015em;
  text-wrap:balance;
}
.section-head h2 em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--gold)}
.section-head .section-sub{
  margin-top:1rem;
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.02rem,1.9vw,1.3rem);
  color:rgba(248,241,229,.66);
}
.event-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(1.4rem,2.8vw,2.4rem);
  align-items:stretch;
  max-width:1080px;margin-inline:auto;
}
.event-wrap{display:flex;min-width:0}
.event{
  position:relative;display:flex;flex-direction:column;
  width:100%;min-height:540px;
  padding:clamp(1.9rem,3.6vw,3.1rem);
  overflow:hidden;
  border:1px solid var(--line);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease;
}
.event::before{
  content:"";position:absolute;inset:10px;
  border:1px solid var(--ev-line);
  pointer-events:none;z-index:1;
}
.event--engagement{
  color:var(--ink);
  background:
    radial-gradient(110% 70% at 100% 0%,rgba(211,164,75,.2),transparent 55%),
    linear-gradient(165deg,#fdf8ee,#f1e5d2);
  --ev-accent:var(--wine);
  --ev-line:rgba(44,17,26,.14);
}
.event--wedding{
  color:var(--ivory);
  border-color:rgba(211,164,75,.48);
  background:
    radial-gradient(120% 80% at 82% 0%,rgba(211,164,75,.2),transparent 55%),
    linear-gradient(155deg,#4c162b,#2a0a14 74%);
  --ev-accent:var(--gold-2);
  --ev-line:rgba(211,164,75,.3);
}
.event>*:not(.event__arch){position:relative;z-index:2}
.event__arch{
  position:absolute;top:-3%;right:-7%;z-index:0;
  width:auto;height:76%;
  color:var(--ev-line);opacity:.62;
  pointer-events:none;
}
.event__badge{
  position:absolute;top:1.5rem;right:1.5rem;z-index:3;
  padding:.4rem .75rem;
  border:1px solid rgba(211,164,75,.4);border-radius:999px;
  font-family:var(--sans);font-size:.5rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-2);background:rgba(23,6,12,.28);
}
.event__top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.event__no{
  font-family:var(--sans);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ev-accent);opacity:.9;
}
.event__hindi{
  font-family:var(--hindi);font-size:clamp(1rem,2vw,1.2rem);
  color:var(--ev-accent);line-height:1.5;text-align:right;
}
.event__date{display:flex;align-items:flex-end;gap:1rem;margin-top:clamp(1.8rem,4vw,2.6rem)}
.event__day{
  font-family:var(--display);font-weight:400;
  font-size:clamp(4.6rem,9vw,7.4rem);
  line-height:.72;letter-spacing:-.04em;
  color:var(--ev-accent);
}
.event__my{display:flex;flex-direction:column;padding-bottom:.3rem}
.event__my b{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1rem,1.9vw,1.22rem);
  letter-spacing:.02em;
}
.event__my span{
  margin-top:.3rem;
  font-family:var(--sans);font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;
  opacity:.68;
}
.event__my em{
  margin-top:.55rem;
  font-family:var(--sans);font-style:normal;
  font-size:.54rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ev-accent);opacity:.9;
}
.event__title{
  margin-top:clamp(1.4rem,3vw,2rem);
  font-family:var(--display);font-weight:400;
  font-size:clamp(2rem,3.8vw,2.9rem);
  line-height:1.05;letter-spacing:-.01em;
}
.event__desc{
  margin-top:.75rem;max-width:33ch;
  font-family:var(--serif);font-size:clamp(1.02rem,1.7vw,1.16rem);
  line-height:1.55;opacity:.76;
}
.event__meta{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  margin-top:auto;padding-top:1.5rem;
  border-top:1px solid var(--ev-line);
}
.event__venue{
  display:inline-flex;align-items:center;gap:.5rem;
  max-width:58%;
  font-family:var(--sans);font-size:.58rem;letter-spacing:.17em;line-height:1.7;text-transform:uppercase;
  opacity:.76;
}
.event__venue svg{width:14px;height:14px;flex:none;color:var(--ev-accent)}
.event__cal{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:0 0 2px;
  border-bottom:1px solid currentColor;
  font-family:var(--sans);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ev-accent);
  transition:opacity .25s ease;
}
.event__cal:hover{opacity:.65}
.event__cal svg{width:14px;height:14px;flex:none}

/* ================= COUNTDOWN ================= */
.countdown{
  position:relative;overflow:hidden;
  padding:clamp(4.8rem,11vw,9rem) clamp(1.2rem,4vw,2rem);
  background:var(--ivory);color:var(--ink);
  text-align:center;
}
.countdown::before{
  content:"";position:absolute;inset:0;
  background-image:var(--jali-ink);background-size:88px 88px;
  opacity:.34;
  -webkit-mask-image:radial-gradient(ellipse at 50% 55%,transparent 30%,#000 88%);
  mask-image:radial-gradient(ellipse at 50% 55%,transparent 30%,#000 88%);
  pointer-events:none;
}
.countdown__star{
  position:absolute;left:50%;top:58%;z-index:0;
  width:min(620px,90vw);height:auto;
  transform:translate(-50%,-50%);
  color:var(--wine);opacity:.045;
  pointer-events:none;
}
.countdown__wrap{position:relative;z-index:2}
.countdown .kicker{color:var(--wine)}
.countdown h2{
  margin-top:1rem;
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.2rem,5vw,3.9rem);
  line-height:1.03;letter-spacing:-.015em;
}
.countdown h2 em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--wine)}
.cd{display:flex;flex-direction:column;align-items:center;margin-top:clamp(1.8rem,4vw,2.8rem)}
.cd__main{display:flex;flex-direction:column;align-items:center}
.cd__days{
  font-family:var(--display);font-weight:400;
  font-size:clamp(6.4rem,20vw,15rem);
  line-height:.78;letter-spacing:-.045em;
  color:var(--wine);
  font-variant-numeric:tabular-nums;
}
.cd__label{
  margin-top:1.1rem;
  font-family:var(--sans);font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;
  color:var(--gold-3);padding-left:.5em;
}
.cd__units{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:clamp(.9rem,3vw,1.8rem);
  margin-top:clamp(1.6rem,3.6vw,2.4rem);
  padding-top:clamp(1.2rem,2.6vw,1.7rem);
  border-top:1px solid var(--line-dark);
}
.cd__unit{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:3.5rem}
.cd__unit b{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.35rem,2.8vw,2rem);
  line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.cd__unit span{
  font-family:var(--sans);font-size:.52rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-soft);
}
.cd__sep{width:12px;height:12px;color:var(--gold-3);opacity:.65;flex:none;margin-top:-1rem}
.countdown__note{
  margin-top:clamp(1.7rem,4vw,2.4rem);
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1rem,1.9vw,1.2rem);
  color:var(--ink-soft);
}

/* ================= VENUE ================= */
.venue{
  position:relative;overflow:hidden;
  padding:clamp(4.8rem,11vw,9rem) clamp(1.2rem,4vw,2rem);
  background:
    radial-gradient(80% 60% at 50% 100%,rgba(211,164,75,.1),transparent 65%),
    linear-gradient(180deg,#220912,#17060c);
  color:var(--ivory);
}
.venue::before{
  content:"";position:absolute;inset:0;
  background-image:var(--jali);background-size:88px 88px;
  opacity:.12;
  -webkit-mask-image:radial-gradient(ellipse at 50% 45%,transparent 22%,#000 84%);
  mask-image:radial-gradient(ellipse at 50% 45%,transparent 22%,#000 84%);
  pointer-events:none;
}
.venue .wrap{position:relative;z-index:2}
.venue__card{
  position:relative;max-width:720px;
  margin-inline:auto;
  padding:clamp(3.2rem,7vw,5.4rem) clamp(1.5rem,5vw,4rem) clamp(2.8rem,5.5vw,4rem);
  text-align:center;
  background:linear-gradient(170deg,#fdf8ee,#f1e5d2);
  color:var(--ink);
  border:1px solid var(--gold-3);
  box-shadow:0 45px 90px -45px rgba(0,0,0,.85);
  overflow:hidden;
}
.venue__card::before{
  content:"";position:absolute;inset:10px;
  border:1px solid rgba(44,17,26,.16);
  pointer-events:none;z-index:1;
}
.venue__arch{
  position:absolute;top:-2%;left:50%;z-index:0;
  width:auto;height:84%;
  transform:translateX(-50%);
  color:rgba(169,122,44,.3);
  pointer-events:none;
}
.venue__card>*:not(.venue__arch){position:relative;z-index:2}
.venue__pin{width:42px;height:42px;margin:0 auto 1.2rem;color:var(--gold-3)}
.venue__name{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.8rem,4vw,2.8rem);
  line-height:1.1;
}
.venue__addr{
  margin-top:1rem;
  font-family:var(--sans);font-size:.66rem;letter-spacing:.2em;line-height:2;text-transform:uppercase;
  color:var(--ink-soft);
}
.venue__map{
  display:inline-block;margin-top:1.5rem;padding-bottom:2px;
  border-bottom:1px solid currentColor;
  font-family:var(--sans);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--wine);text-decoration:none;
  transition:opacity .25s ease;
}
.venue__map:hover{opacity:.6}
.venue__note{
  margin-top:1.8rem;
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1rem,2vw,1.2rem);
  color:var(--ink-soft);
}

/* ================= CLOSING ================= */
.closing{
  position:relative;overflow:hidden;
  padding:clamp(4.8rem,11vw,9rem) clamp(1.2rem,4vw,2rem) clamp(3rem,6vw,4.5rem);
  text-align:center;
  color:var(--ivory);
  background:
    radial-gradient(80% 65% at 50% 100%,rgba(211,164,75,.14),transparent 65%),
    var(--plum-950);
}
.closing__star{
  position:absolute;left:50%;top:48%;z-index:0;
  width:min(560px,90vw);height:auto;
  transform:translate(-50%,-50%);
  color:var(--gold);opacity:.055;
  pointer-events:none;
}
.closing__wrap{position:relative;z-index:2}
.closing__mono{width:92px;margin:0 auto clamp(1.4rem,3vw,2rem);color:var(--gold)}
.closing__script{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.15rem,2.5vw,1.6rem);
  color:rgba(248,241,229,.7);
}
.closing__names{
  margin-top:.8rem;
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.6rem,7vw,5.2rem);
  line-height:1.02;letter-spacing:-.02em;
  color:var(--ivory);
}
.closing__names em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--gold)}
.closing__date{
  margin-top:1.2rem;
  font-family:var(--sans);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;
  color:var(--gold);
}
.closing__actions{margin-top:clamp(2rem,4vw,2.8rem)}
.closing__hash{
  margin-top:clamp(2.4rem,5vw,3.4rem);
  font-family:var(--sans);font-size:.56rem;letter-spacing:.36em;
  color:rgba(248,241,229,.4);
}

/* ================= TOAST / NOJS ================= */
.toast{
  position:fixed;left:50%;bottom:1.4rem;z-index:140;
  padding:.8rem 1.35rem;border-radius:999px;
  background:var(--ivory);color:var(--ink);
  font-family:var(--sans);font-size:.68rem;letter-spacing:.1em;
  box-shadow:0 18px 44px -18px rgba(0,0,0,.6);
  opacity:0;transform:translate(-50%,18px);pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;
  max-width:calc(100vw - 2rem);text-align:center;
}
.toast.is-on{opacity:1;transform:translate(-50%,0)}

.sheet{position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:1.4rem}
.sheet[hidden]{display:none}
.sheet__scrim{position:absolute;inset:0;background:rgba(10,3,6,.74);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sheet__panel{
  position:relative;z-index:2;width:min(470px,100%);
  padding:clamp(1.6rem,4.5vw,2.5rem);
  background:linear-gradient(170deg,#fdf8ee,#f1e5d2);
  color:var(--ink);
  border:1px solid var(--gold-3);
  box-shadow:0 44px 90px -34px rgba(0,0,0,.85);
}
.sheet__panel::before{
  content:"";position:absolute;inset:8px;
  border:1px solid rgba(44,17,26,.16);pointer-events:none;
}
.sheet__kicker{
  position:relative;font-family:var(--sans);font-size:.56rem;
  letter-spacing:.34em;text-transform:uppercase;color:var(--wine);
}
.sheet__title{
  position:relative;margin-top:.55rem;
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.45rem,3.4vw,1.95rem);line-height:1.1;
}
.sheet__input{
  position:relative;width:100%;margin-top:1.15rem;
  padding:.8rem .9rem;
  border:1px solid rgba(44,17,26,.26);
  background:rgba(255,255,255,.62);
  color:var(--ink);
  font-family:var(--sans);font-size:.78rem;letter-spacing:.02em;
}
.sheet__actions{position:relative;display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.15rem}
.sheet__actions .btn{
  margin-top:0;padding:.78rem 1.25rem;
  font-size:.56rem;letter-spacing:.2em;
}

.nojs{
  position:fixed;inset:0;z-index:150;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;
  padding:2rem;text-align:center;
  background:var(--plum-950);color:var(--ivory);
}
.nojs__kicker{font-family:var(--sans);font-size:.66rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold)}
.nojs h1{font-family:var(--display);font-weight:400;font-size:clamp(2.4rem,8vw,4.5rem);line-height:1.05}
.nojs h1 em{font-family:var(--serif);font-style:italic;color:var(--gold)}
.nojs__dates{font-family:var(--serif);font-size:1.2rem;line-height:1.8;color:rgba(248,241,229,.8)}
.nojs__note{font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;color:rgba(248,241,229,.5)}

/* ================= MOTION ================= */
@keyframes garlandSway{
  0%,100%{transform:rotate(-1.4deg) translateX(-2px)}
  50%{transform:rotate(1.4deg) translateX(3px)}
}
@keyframes cueDrop{
  0%,100%{transform:scaleY(.55);transform-origin:top;opacity:.5}
  50%{transform:scaleY(1);transform-origin:top;opacity:1}
}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ================= RESPONSIVE ================= */
@media (max-width:900px){
  .event-grid{grid-template-columns:1fr;max-width:640px}
  .event{min-height:0}
  .event__meta{margin-top:2rem}
  .event__desc{max-width:46ch}
}
@media (max-width:720px){
  .nav__links{display:none}
  .nav__date{font-size:.55rem;letter-spacing:.22em}
  .family-grid{grid-template-columns:1fr;gap:.1rem;max-width:460px}
  .family{padding-block:clamp(1rem,3vw,1.5rem)}
  .family__parents{max-width:32ch}
  .family-divider{flex-direction:row;width:min(220px,64%);margin:.2rem auto;padding:0}
  .family-divider span{
    width:auto;height:1px;min-height:0;flex:1;
    background:linear-gradient(90deg,transparent,currentColor 18%,currentColor 82%,transparent);
  }
  .garland:nth-child(2),
  .garland:nth-child(5){display:none}
  .hero__arch{opacity:.26}
  .note__mark{opacity:.7}
}
@media (max-width:560px){
  body{font-size:17px}
  .intro__names{flex-direction:column;align-items:center;gap:.12em;line-height:.98}
  .intro__names em{font-size:.42em;margin:-.05em 0}
  .intro__panel::after{inset:9px}
  .intro__arch{width:min(340px,84vw)}
  .intro__note{max-width:20rem}
  .hero{padding-top:clamp(4.6rem,12vh,6.5rem)}
  .hero__names{font-size:clamp(3.4rem,17vw,5.2rem)}
  .hero__sub{max-width:22rem;font-size:1rem}
  .hero__eyebrow{font-size:.52rem;letter-spacing:.3em;gap:.6rem}
  .hero__eyebrow::before,.hero__eyebrow::after{width:16px}
  .dateline{gap:.9rem 1.1rem}
  .dateline__item{min-width:5.4rem}
  .dateline__sep{display:none}
  .garland:nth-child(3),
  .garland:nth-child(6){display:none}
  .garland{opacity:.75}
  .section-head h2{font-size:clamp(2.1rem,9vw,2.8rem)}
  .event{padding:1.8rem 1.4rem}
  .event__badge{top:1rem;right:1rem;font-size:.46rem;padding:.32rem .6rem}
  .event__date{gap:.75rem}
  .event__day{font-size:clamp(4.2rem,22vw,5.6rem)}
  .event__meta{align-items:flex-start;flex-direction:column;gap:.9rem}
  .event__venue{max-width:100%}
  .cd__units{gap:1rem}
  .cd__sep{display:none}
  .cd__unit{min-width:3rem}
  .cd__unit b{font-size:1.5rem}
  .venue__card{padding-left:1.4rem;padding-right:1.4rem}
  .closing__mono{width:76px}
  .marquee__group{font-size:.58rem;letter-spacing:.24em;gap:1.4rem;padding-right:1.4rem}
  .marquee__group svg{width:11px;height:11px}
}
@media (max-width:400px){
  .hero__names{font-size:3.15rem}
  .dateline__date{font-size:1.02rem}
  .nav{justify-content:space-between}
}
@media (max-height:640px) and (orientation:landscape){
  .hero{min-height:auto;padding-top:5rem;padding-bottom:3rem}
  .hero__arch{opacity:.2}
  .hero__names{font-size:clamp(3rem,9vw,4.6rem)}
  .scroll-cue{display:none}
  .intro__mono{width:64px}
  .intro__names{font-size:clamp(2.2rem,5vw,3.4rem)}
  .intro__note{display:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    transition-delay:0s!important;
  }
  .reveal{opacity:1;transform:none}
  .marquee__track{animation:none;transform:none}
  .scroll-cue i{animation:none}
  .garland{animation:none}
}
