/* ═══ Katha Invite · modern luxury · 2026 ═══ */
:root{
  --bg:#0d0507; --bg-2:#17090c; --gold:#d4b06a; --champagne:#e9d3a3; --gold-dim:rgba(212,176,106,.35);
  --text:#f3e9d8; --muted:rgba(243,233,216,.62); --line:rgba(212,176,106,.22);
  --serif:'Tiro Devanagari Hindi',serif; --latin:'Cormorant Garamond',serif; --sans:'Mukta',sans-serif;
  --blush:#f2d9d0; --peach:#f9e6d2; --powder:#e6e9ec;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--serif);color:var(--text);min-height:100vh;overflow-x:hidden;
  background:
    radial-gradient(70% 42% at 12% 8%,rgba(242,217,208,.09) 0%,transparent 60%),
    radial-gradient(60% 40% at 88% 30%,rgba(249,230,210,.07) 0%,transparent 60%),
    radial-gradient(70% 45% at 20% 68%,rgba(230,233,236,.05) 0%,transparent 60%),
    radial-gradient(60% 40% at 82% 92%,rgba(242,217,208,.08) 0%,transparent 60%),
    linear-gradient(180deg,#0d0507 0%,#17090c 40%,#0d0507 100%)}
::selection{background:rgba(242,217,208,.35)}

/* ── elegant opening gate ── */
.gate{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:radial-gradient(90% 70% at 50% 42%,#14070a 0%,#0b0406 70%)}
.gate.open{pointer-events:none;opacity:0;visibility:hidden;transition:opacity 1.1s ease .9s,visibility 0s 2.1s}
.gate-ring{position:absolute;width:min(78vmin,420px);height:min(78vmin,420px);transform:rotate(-90deg)}
.ring-path{fill:none;stroke:var(--gold-dim);stroke-width:.7;stroke-linecap:round;
  stroke-dasharray:880;stroke-dashoffset:880;animation:draw 2.6s ease .3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.gate.open .gate-ring{transform:rotate(-90deg) scale(1.25);transition:transform 1.6s cubic-bezier(.6,0,.3,1)}
.gate-inner{text-align:center;padding:2rem;animation:rise 1.4s ease .4s both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.gate.open .gate-inner{opacity:0;transform:translateY(-16px);transition:opacity .8s ease,transform .8s ease}
.gate-eyebrow{font-size:.72rem}
.gate-title{font-size:clamp(2.5rem,10.5vw,4.1rem);line-height:1.3;margin:1.2rem 0;font-weight:400;color:var(--champagne)}
.gate-rule{width:52px;height:1px;margin:0 auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.gate-hint{margin-top:1.4rem;color:var(--muted);font-size:.92rem;animation:pulse 1.9s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}

.eyebrow{font-family:var(--sans);font-weight:400;font-size:.78rem;letter-spacing:.34em;color:var(--gold);text-transform:uppercase}


/* particles + music */
.fx{position:fixed;inset:0;z-index:40;pointer-events:none}
.music{position:fixed;right:1.1rem;bottom:1.2rem;z-index:45;width:50px;height:50px;border-radius:50%;
  border:1px solid var(--line);background:rgba(23,9,12,.6);color:var(--champagne);font-size:1.15rem;cursor:pointer;
  backdrop-filter:blur(12px);transition:transform .25s;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.music:hover{transform:scale(1.06)}
.music.off{opacity:.5}
.music.off::after{content:"";position:absolute;left:9px;right:9px;top:50%;height:1px;background:var(--champagne);transform:rotate(-35deg)}

/* ── page ── */
.page{max-width:600px;margin:0 auto;visibility:hidden}
.page.show{visibility:visible}

/* hero: full viewport, slideshow, editorial typography */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2}
.slide{position:absolute;inset:0;background-size:cover;background-position:center 18%;opacity:0;
  transform:scale(1.1);transition:opacity 2.4s ease,transform 8s ease}
.slide.on{opacity:1;transform:scale(1)}
.hero-veil{position:absolute;inset:0;z-index:-1;background:
  linear-gradient(180deg,rgba(13,5,7,.62),rgba(19,7,10,.55) 45%,rgba(242,217,208,.10) 82%,var(--bg) 100%),
  radial-gradient(90% 60% at 50% 42%,rgba(13,5,7,.15),rgba(13,5,7,.72))}
.hero-content{padding:2rem 1.4rem}
.hero-ganesha{margin-bottom:1.6rem}
.hero-title{font-size:clamp(2.7rem,12vw,4.6rem);line-height:1.28;font-weight:400;color:var(--champagne)}
.hero-title em{font-style:normal;color:var(--gold)}
.gold-shimmer{background:linear-gradient(100deg,#d4b06a 20%,#f7ead0 42%,#d4b06a 60%);background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 5s linear infinite}
@keyframes shimmer{to{background-position:200% center}}
.hero-rule{display:flex;align-items:center;gap:.9rem;justify-content:center;margin:1.6rem auto;color:var(--gold)}
.hero-rule::before,.hero-rule::after{content:"";height:1px;width:min(90px,20vw);background:linear-gradient(90deg,transparent,var(--gold-dim))}
.hero-rule::after{transform:scaleX(-1)}
.hero-sub{font-family:var(--latin);font-size:clamp(1.05rem,4vw,1.3rem);letter-spacing:.24em;color:var(--muted);text-transform:uppercase}
.hero-when{margin-top:2.6rem;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.d-big{font-family:var(--latin);font-weight:500;font-size:clamp(3.4rem,16vw,5.4rem);line-height:1;color:var(--champagne);letter-spacing:.04em}
.d-month{font-size:1.25rem;color:var(--muted)}
.d-divider{color:var(--gold);margin:.5rem 0;font-size:.75rem}
.d-line{font-size:1.05rem;color:var(--text)}
.d-line small{color:var(--muted)}
.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);width:1px;height:52px;overflow:hidden}

/* sections */
section{margin-top:clamp(4rem,10vw,6rem);padding:0 1.3rem}
.sec-head{text-align:center;margin-bottom:2.4rem}
.sec-head .eyebrow{display:block;margin-bottom:.7rem}
.sec-title{font-size:clamp(1.7rem,6.5vw,2.3rem);font-weight:400;color:var(--champagne)}

/* glass card — pastel-tinted */
.card{position:relative;margin-inline:1.3rem;background:linear-gradient(155deg,rgba(242,217,208,.10) 0%,rgba(255,255,255,.03) 45%,rgba(249,230,210,.06) 100%);
  border:1px solid var(--line);border-radius:22px;
  padding:2.2rem 1.5rem;backdrop-filter:blur(14px);text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.card .eyebrow{display:block;margin-bottom:1rem}
.corner{position:absolute;width:26px;height:26px;border-color:var(--gold-dim);border-style:solid}
.corner.tl{top:12px;left:12px;border-width:1px 0 0 1px}
.corner.tr{top:12px;right:12px;border-width:1px 1px 0 0}
.corner.bl{bottom:12px;left:12px;border-width:0 0 1px 1px}
.corner.br{bottom:12px;right:12px;border-width:0 1px 1px 0}

/* countdown — minimal hairline row */
.cd-tiles{display:flex;justify-content:center;align-items:stretch}
.cd-tile{flex:1;max-width:110px;padding:.4rem .2rem;text-align:center}
.cd-tile+.cd-tile{border-left:1px solid var(--line)}
.cd-tile span{display:block;font-family:var(--latin);font-weight:500;font-size:clamp(2.1rem,9vw,3rem);
  color:var(--champagne);font-variant-numeric:tabular-nums;line-height:1.1;text-shadow:0 0 26px rgba(233,211,163,.28)}
.cd-tile small{display:block;margin-top:.3rem;font-size:.72rem;letter-spacing:.28em;color:var(--muted)}

/* kathavyas — editorial portrait */
.vyas-art{display:block;width:min(56vw,230px);margin:0 auto 1.2rem;border-radius:20px;border:1px solid var(--gold-dim);
  padding:5px;background:linear-gradient(155deg,rgba(242,217,208,.14),rgba(249,230,210,.05));
  box-shadow:0 18px 45px rgba(0,0,0,.5)}
.vyas-name{font-size:1.6rem;color:var(--champagne);font-weight:400}
.vyas-desc{margin-top:.45rem;color:var(--muted);font-size:.98rem}

.scroll-cue::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,var(--gold));animation:cue 2.2s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}


/* day rows — horizontal, editorial list */
.days{display:flex;flex-direction:column}
.day{display:grid;grid-template-columns:64px 1fr;gap:1.1rem;padding:1.15rem .2rem;align-items:center;
  border-bottom:1px solid var(--line);opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.day:last-child{border-bottom:0}
.day.in{opacity:1;transform:none}
.day-num{font-family:var(--latin);font-weight:500;font-size:2rem;line-height:1;color:var(--blush);text-align:center;
  text-shadow:0 0 22px rgba(242,217,208,.25)}
.day-num small{display:block;font-family:var(--sans);font-size:.62rem;color:var(--gold);margin-top:.3rem}
.day-body{border-left:1px solid var(--line);padding-left:1.1rem;text-align:left}
.day-head{font-family:var(--sans);font-size:.78rem;color:var(--gold)}
.day-topic{margin-top:.35rem;line-height:1.45;font-size:1.02rem}
.day-time{margin-top:.25rem;font-size:.85rem;color:var(--muted)}

/* venue */
.venue-name{font-size:1.8rem;color:var(--champagne);font-weight:400}
.venue-addr{margin:.5rem 0 1.4rem;color:var(--muted)}

/* buttons — champagne-to-peach sweep */
.btn{display:inline-block;text-decoration:none;font-family:var(--sans);font-weight:500;letter-spacing:.12em;
  color:#14090b;padding:.85rem 2rem;border-radius:999px;font-size:.95rem;text-transform:uppercase;
  background:linear-gradient(120deg,#d4b06a,#f7e6cf 50%,#e8bfa0);background-size:200% auto;
  box-shadow:0 12px 30px rgba(212,176,106,.22);transition:transform .25s,background-position .5s}
.btn:hover{transform:translateY(-2px);background-position:100% center}
.btn.ghost{background:transparent;border:1px solid var(--gold-dim);color:var(--champagne);box-shadow:none}
.btn-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* invite — pastel glow */
.invite{text-align:center;padding:2.4rem .6rem;position:relative}
.invite::before{content:"";position:absolute;inset:-1.5rem 10%;z-index:-1;border-radius:50%;
  background:radial-gradient(60% 60% at 50% 50%,rgba(242,217,208,.10),transparent 70%)}
.pooja-thali{font-size:1.35rem;letter-spacing:.55em;margin-bottom:1.1rem;color:var(--peach)}
.invite-kicker{margin-bottom:1rem}
.invite-family{font-size:clamp(1.5rem,6vw,1.9rem);line-height:1.4;color:var(--champagne)}
.invite-line-2{margin-top:1.1rem;color:var(--muted);line-height:1.5}

/* aarti */
.aarti{margin:clamp(4rem,10vw,6rem) auto 0;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  background:rgba(255,255,255,.03);backdrop-filter:blur(10px);margin-left:1.3rem;margin-right:1.3rem}
.aarti summary{cursor:pointer;padding:1.15rem 1.4rem;color:var(--champagne);list-style:none;position:relative;text-align:center}
.aarti summary::-webkit-details-marker{display:none}
.aarti summary::after{content:"＋";position:absolute;right:1.3rem;color:var(--gold);transition:.3s}
.aarti[open] summary::after{transform:rotate(45deg)}
.aarti-body{padding:.4rem 1.5rem 1.5rem;line-height:1.65;color:var(--muted);text-align:center}
.aarti-body p+p{margin-top:1rem}

/* footer */
.footer{text-align:center;margin-top:clamp(4rem,10vw,6rem);padding:0 1.3rem 3.2rem}
.foot-divider{color:var(--gold);opacity:.65;font-size:.7rem;letter-spacing:.5em;margin-bottom:1rem}
.footer p{font-size:1.15rem;color:var(--champagne)}
.footer-small{margin-top:.6rem;color:var(--muted);font-size:.82rem;letter-spacing:.08em}

/* scroll reveal — blur + rise */
.reveal{opacity:0;transform:translateY(26px);filter:blur(6px);transition:opacity .9s ease,transform .9s ease,filter .9s ease}
.reveal.in{opacity:1;transform:none;filter:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.day{opacity:1!important;transform:none!important;filter:none!important}
  .gate{display:none}
  .page{visibility:visible}
}
