/* rich.css — visual richness layer: gold foil, Indian line-art ornaments, framed cards, layered hero, ornamental footer.
   Assets: assets/ornaments/*.svg (generated by tools/make_ornaments.py, ~70 KB total, cached 30 days). */
:root { --foil: linear-gradient(100deg, #8C6A1E 0%, #C9A24A 22%, #F2DA92 38%, #B8913A 55%, #E9CD7A 72%, #8C6A1E 100%);
  --orn: "../assets/ornaments/"; }
main { overflow-x: hidden; overflow-x: clip; }
body { background-image: url(../assets/ornaments/paisley-tile.svg), radial-gradient(circle at 10% 10%, rgba(var(--blush-rgb), .35), transparent 40%), radial-gradient(circle at 90% 30%, rgba(var(--lav-rgb), .35), transparent 40%), radial-gradient(circle at 20% 80%, rgba(var(--peach-rgb), .35), transparent 40%);
  background-size: 120px 120px, auto, auto, auto; }
.section > .container { position: relative; z-index: 1; }

/* ---------- Gold-foil typography ---------- */
.eyebrow { background: var(--foil); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 600; }
.eyebrow::before, .eyebrow::after { content: "✦"; display: inline-block; margin: 0 .7em; font-size: .8em; color: var(--gold); -webkit-text-fill-color: var(--gold); }
.center .script-title::after, .script-title.center::after, .container.center .script-title::after { content: ""; display: block; width: min(240px, 70%); height: 32px; margin: 6px auto 0;
  background: url(../assets/ornaments/divider-lotus.svg) center / contain no-repeat; }
.subhead::after { width: 190px; height: 28px; background: url(../assets/ornaments/divider-diya.svg) center / contain no-repeat; }
.hero__date { background: linear-gradient(100deg, var(--hero-ink) 0 30%, var(--hero-accent) 45%, var(--hero-ink) 60%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero__place { font-weight: 600; }

/* ---------- Ornamental section dividers ---------- */
.orn-div { height: 46px; width: min(380px, 78%); margin: -23px auto; position: relative; z-index: 2; background: center / contain no-repeat; pointer-events: none;
  filter: drop-shadow(0 2px 3px rgba(var(--gold-d-rgb), .25)); }
.orn-div--lotus { background-image: url(../assets/ornaments/divider-lotus.svg); }
.orn-div--diya { background-image: url(../assets/ornaments/divider-diya.svg); }
.orn-div--peacock { background-image: url(../assets/ornaments/divider-peacock.svg); }
.orn-div--marigold { background-image: url(../assets/ornaments/divider-marigold.svg); width: min(460px, 86%); }

/* ---------- Layered hero ---------- */
.hero__bg::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle at 12% 30%, rgba(255, 236, 170, .55) 0 18px, transparent 60px), radial-gradient(circle at 86% 22%, rgba(255, 255, 255, .8) 0 14px, transparent 50px),
    radial-gradient(circle at 30% 78%, rgba(var(--blush-rgb), .8) 0 26px, transparent 80px), radial-gradient(circle at 70% 85%, rgba(255, 236, 170, .5) 0 20px, transparent 70px),
    radial-gradient(circle at 52% 12%, rgba(var(--lav-rgb), .7) 0 22px, transparent 70px), radial-gradient(circle at 94% 60%, rgba(var(--peach-rgb), .7) 0 30px, transparent 90px),
    radial-gradient(circle at 6% 70%, rgba(255, 255, 255, .7) 0 12px, transparent 44px);
  animation: bokeh 9s ease-in-out infinite alternate; }
@keyframes bokeh { from { opacity: .55; transform: scale(1); } to { opacity: 1; transform: scale(1.04); } }
.corner--bl { top: auto; bottom: 0; left: 0; transform: scaleY(-1); opacity: .7; }
.corner--br { top: auto; bottom: 0; right: 0; transform: scale(-1, -1); opacity: .7; }
.hero__photo { position: relative; }
.hero__photo::before { content: ""; position: absolute; left: 50%; top: 50%; width: min(640px, 150%); aspect-ratio: 1; translate: -50% -50%; z-index: -1; pointer-events: none;
  background: url(../assets/ornaments/mandala.svg) center / contain no-repeat; opacity: .55; animation: spin 140s linear infinite; }
@keyframes spin { to { rotate: 360deg; } }
.hero-hang { position: absolute; inset: var(--nav-h) 0 auto; height: 0; z-index: 2; pointer-events: none; }
.hang { position: absolute; top: 0; transform-origin: 50% 0; animation: hangSway 4.6s ease-in-out infinite; filter: drop-shadow(0 4px 6px rgba(var(--gold-d-rgb), .3)); }
.hang--d1 { left: 17%; width: 34px; animation-delay: -1s; } .hang--d2 { right: 17%; width: 34px; animation-delay: -2.4s; }
.hang--b1 { left: 23%; width: 24px; animation-duration: 3.8s; } .hang--b2 { right: 23%; width: 24px; animation-duration: 4.1s; animation-delay: -1.7s; }
@keyframes hangSway { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
.toran { left: 27%; right: 27%; }
@media (max-width: 860px) { .hang--b1, .hang--b2 { display: none; } .hang--d1 { left: 8px; width: 26px; top: 110px; } .hang--d2 { right: 8px; width: 26px; top: 110px; } .toran { left: 100px; right: 100px; }
  .corner--bl, .corner--br { width: 90px; opacity: .55; } }

/* ---------- Framed cards with corner filigree ---------- */
.story-card, .info-card, .venue__info, .cd, .t-card__body, .faq details, .gb-card, .booth, .guest-count, .rsvp {
  --c: 42px; }
.story-card, .info-card, .cd, .t-card__body {
  background-image: url(../assets/ornaments/corner-orn.svg), url(../assets/ornaments/corner-orn-tr.svg), url(../assets/ornaments/corner-orn-bl.svg), url(../assets/ornaments/corner-orn-br.svg);
  background-position: top 7px left 7px, top 7px right 7px, bottom 7px left 7px, bottom 7px right 7px; background-size: var(--c) var(--c); background-repeat: no-repeat; }
.cd { --c: 28px; }
.glass { box-shadow: var(--shadow), inset 0 0 0 1px rgba(var(--gold-rgb), .28), inset 0 0 0 5px rgba(255, 255, 255, .35), inset 0 0 0 6px rgba(var(--gold-rgb), .16); }
.story-card__num { background: radial-gradient(circle at 35% 30%, var(--gold-l), var(--gold) 55%, var(--gold-d)); box-shadow: 0 0 0 4px #fff, 0 0 0 5px rgba(var(--gold-rgb), .6), 0 6px 14px rgba(var(--gold-d-rgb), .35); }
.info-card__icon { background: radial-gradient(circle at 35% 30%, #FFF3D6, var(--blush) 70%); box-shadow: inset 0 0 0 1.5px rgba(var(--gold-rgb), .7), 0 0 0 4px rgba(255, 255, 255, .7); color: var(--maroon); border-radius: 50%; }
.hotel-card { border-style: solid; display: flex; flex-direction: column; align-items: flex-start; }
.hotel-card__area { margin: 0 0 16px !important; font-weight: 500; color: var(--gold-d) !important; letter-spacing: .04em; }
.hotel-card h3 { margin-bottom: 4px; }
.hotel-card .btn { margin-top: auto; }
.btn--sm { padding: 9px 18px; font-size: .86rem; }

/* ---------- Section backdrops (varied) ---------- */
.section--scratch::before, .section--countdown::before, .section--guests::before, .section--guestbook::before, .section--venues::before {
  content: ""; position: absolute; pointer-events: none; z-index: 0; aspect-ratio: 1; background: url(../assets/ornaments/mandala.svg) center / contain no-repeat; }
.section--scratch::before { width: min(620px, 120vw); left: 50%; top: 50%; translate: -50% -46%; opacity: .45; }
.section--countdown { background: linear-gradient(180deg, transparent, rgba(var(--blush-rgb), .3) 25%, rgba(242, 223, 166, .22) 75%, transparent); }
.section--countdown::before { width: min(760px, 140vw); left: 50%; top: 50%; translate: -50% -50%; opacity: .35; animation: spin 180s linear infinite reverse; }
.section--guests::before { width: 460px; left: -230px; top: 20%; opacity: .4; }
.section--guestbook::before { width: 460px; right: -230px; top: 12%; opacity: .4; }
.section--venues::before { width: 520px; right: -260px; bottom: 0; opacity: .35; }
.section--venues { background: linear-gradient(180deg, transparent, rgba(var(--lav-rgb), .22) 30%, rgba(var(--peach-rgb), .22) 70%, transparent); }
.section--scratch::after { content: ""; position: absolute; right: clamp(4px, 8vw, 140px); top: 18%; width: clamp(34px, 5vw, 60px); aspect-ratio: 60 / 200; background: url(../assets/ornaments/peacock-feather.svg) center / contain no-repeat; rotate: 18deg; opacity: .9; pointer-events: none; }
.section--events::before, .section--events::after { content: ""; position: absolute; top: clamp(50px, 7vw, 90px); width: clamp(110px, 13vw, 170px); aspect-ratio: 4 / 3; background: url(../assets/ornaments/elephant.svg) center / contain no-repeat; pointer-events: none; }
.section--events::before { left: clamp(8px, 8vw, 150px); transform: scaleX(-1); } .section--events::after { right: clamp(8px, 8vw, 150px); }
.section--rsvp::before, .section--rsvp::after { content: ""; position: absolute; top: clamp(50px, 7vw, 90px); width: clamp(70px, 8vw, 100px); aspect-ratio: 100 / 120; background: url(../assets/ornaments/kalash.svg) center / contain no-repeat; pointer-events: none; }
.section--rsvp::before { left: clamp(8px, 10vw, 190px); } .section--rsvp::after { right: clamp(8px, 10vw, 190px); }
.section--travel::before { content: ""; position: absolute; left: clamp(4px, 5vw, 90px); top: 60px; width: clamp(30px, 4vw, 50px); aspect-ratio: 60 / 200; background: url(../assets/ornaments/peacock-feather.svg) center / contain no-repeat; rotate: -16deg; pointer-events: none; }
.section--travel::after { content: ""; position: absolute; right: clamp(4px, 5vw, 90px); top: 60px; width: clamp(30px, 4vw, 50px); aspect-ratio: 60 / 200; background: url(../assets/ornaments/peacock-feather.svg) center / contain no-repeat; rotate: 16deg; pointer-events: none; }
@media (max-width: 700px) {
  .section--events::before, .section--events::after { top: 22px; width: 76px; opacity: .8; }
  .section--rsvp::before, .section--rsvp::after { top: 24px; width: 48px; opacity: .85; }
  .section--scratch::after { right: 6px; top: 24px; }
  .section--travel::before, .section--travel::after { top: 30px; width: 24px; }
  .section--guests::before, .section--guestbook::before, .section--venues::before { width: 300px; }
  .section--guests::before { left: -150px; } .section--guestbook::before, .section--venues::before { right: -150px; }
}

/* ---------- Timeline ---------- */
.t-card { position: relative; border: 0; }
.t-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; z-index: 2; background: var(--foil); }
.t-card__img { border-bottom: 3px solid transparent; border-image: var(--foil) 1; }
.t-card__title::after { content: ""; display: block; width: 130px; height: 20px; margin: 2px 0 2px; background: url(../assets/ornaments/divider-lotus.svg) left center / contain no-repeat; }
.t-item__dot { background: radial-gradient(circle at 35% 30%, var(--gold-l), var(--gold) 55%, var(--gold-d)); color: #fff; border-color: #fff; box-shadow: 0 0 0 3px rgba(var(--gold-rgb), .6), 0 0 0 9px rgba(var(--blush-rgb), .5), 0 4px 10px rgba(var(--gold-d-rgb), .35); }
.timeline__line { background: repeating-linear-gradient(180deg, rgba(var(--gold-rgb), .45) 0 6px, transparent 6px 12px); }

/* ---------- Venues ---------- */
.venue { box-shadow: var(--shadow-lg), 0 0 0 1px rgba(var(--gold-rgb), .5), 0 0 0 7px rgba(255, 255, 255, .6), 0 0 0 8px rgba(var(--gold-rgb), .35); }
.venue__info { position: relative; background-image: url(../assets/ornaments/corner-orn-tr.svg), url(../assets/ornaments/corner-orn-br.svg), url(../assets/ornaments/kalash.svg);
  background-position: top 10px right 10px, bottom 10px right 10px, right 26px bottom 24px; background-size: 46px, 46px, 70px auto; background-repeat: no-repeat; }
.venue__info h3::after { content: ""; display: block; width: 150px; height: 22px; margin-top: 6px; background: url(../assets/ornaments/divider-lotus.svg) left center / contain no-repeat; }

/* ---------- Countdown & scratch card ---------- */
.cd { border: 1px solid rgba(var(--gold-rgb), .55); background-color: rgba(255, 255, 255, .6); }
.cd::after { content: ""; position: absolute; top: 6px; left: 50%; width: 22px; height: 14px; translate: -50% 0; background: url(../assets/ornaments/divider-lotus.svg) center / 70px auto no-repeat; opacity: .9; }
.cd__lbl { font-weight: 600; }
.scratch { box-shadow: var(--shadow-lg), 0 0 0 4px #fff, 0 0 0 6px var(--gold), 0 0 0 11px rgba(255, 255, 255, .7), 0 0 0 12px rgba(var(--gold-rgb), .5); }
.scratch::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background-image: url(../assets/ornaments/corner-orn.svg), url(../assets/ornaments/corner-orn-tr.svg), url(../assets/ornaments/corner-orn-bl.svg), url(../assets/ornaments/corner-orn-br.svg);
  background-position: top 14px left 14px, top 14px right 14px, bottom 14px left 14px, bottom 14px right 14px; background-size: 40px; background-repeat: no-repeat; }

/* ---------- FAQ / guestbook / soon cards ---------- */
.faq details { border-left: 3px solid transparent; border-image: var(--foil) 1; border-radius: 0 18px 18px 0; }
.faq details[open] { background-image: url(../assets/ornaments/corner-orn-br.svg); background-position: bottom 8px right 8px; background-size: 36px; background-repeat: no-repeat; }

/* ---------- Ornamental footer ---------- */

.footer { position: relative; isolation: isolate; padding: 70px 20px 40px; color: #F6E7C8; border-top: 0; margin-top: 40px;
  background: var(--footer-bg); overflow: hidden; }
.footer__mid { position: relative; }
.footer__mid::before { content: ""; position: absolute; left: 50%; top: 50%; width: 560px; aspect-ratio: 1; translate: -50% -50%; background: url(../assets/ornaments/mandala.svg) center / contain no-repeat; opacity: .16; pointer-events: none; z-index: -1; }
.footer__mid > * { position: relative; }
.footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 36px; background: url(../assets/ornaments/divider-marigold.svg) center top / 360px 36px repeat-x; }
.footer__inner { display: flex; align-items: flex-end; justify-content: center; gap: clamp(10px, 5vw, 70px); max-width: 1000px; margin: 0 auto; }
.footer__mid { display: flex; flex-direction: column; align-items: center; }
.footer__logo { width: 84px; height: 84px; filter: drop-shadow(0 6px 14px rgba(0, 0, 0, .35)); }
.footer__names { font-family: var(--f-names); font-size: clamp(2.2rem, 6vw, 3.2rem); line-height: 1.2; margin: 10px 0 0 !important; background: var(--foil); -webkit-background-clip: text; background-clip: text; color: transparent; padding: 0 .15em; }
.footer__names i { font-style: normal; }
.footer__div { width: 240px; height: auto; margin: 4px 0; filter: brightness(1.25); }
.footer__date { font-family: var(--f-serif); font-size: 1.3rem; letter-spacing: .14em; color: #FFF3D6; }
.footer__place { text-transform: uppercase; letter-spacing: .3em; font-size: .75rem; color: var(--gold-l); }
.footer__tag { font-family: var(--f-names); font-size: 1.6rem; color: var(--gold-l); margin-top: 8px !important; }
.footer .credit { font-size: .8rem; color: rgba(246, 231, 200, .75); margin-top: 14px !important; }
.footer .credit span { color: #F4B6C6; }
.footer__ele { width: clamp(90px, 14vw, 160px); height: auto; opacity: .95; filter: brightness(1.15); }
.footer__ele--l { transform: scaleX(-1); }
@media (max-width: 600px) { .footer__ele { display: none; } }

@media (prefers-reduced-motion: reduce) { .hero__bg::before, .hero__photo::before, .section--countdown::before, .hang { animation: none !important; } }
