/* Havan & Yajña (/havan) — a night altar: the hero is the kuṇḍa in the dark,
   everything below it is lit by that fire (warm parchment, ember accents). */
.hv { --hv-night: #1a0d08; --hv-char: #2a140b; --hv-ember: #e4572e; --hv-flame: #ff9a2e; --hv-gold: #f0c15a;
  --hv-parch: #fdf6e7; --hv-ink: #3a1d12; --hv-soft: #7a5440; --hv-line: rgba(160, 100, 42, .22); }
.hv .dev, .hv [lang="sa"] { font-family: 'Noto Serif Devanagari', 'Tiro Devanagari Sanskrit', serif; }

/* ── hero ── */
.hv-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 12px;
  padding: 44px 48px 0; border-radius: 28px; color: #fbe9cf; isolation: isolate;
  background: radial-gradient(120% 90% at 74% 78%, #5a220c 0%, #2a140b 42%, #140906 100%); box-shadow: 0 24px 60px rgba(60, 20, 5, .35); }
.hv-embers { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.hv-hero-txt { padding-bottom: 44px; }
.hv-kicker { margin: 0 0 10px; color: var(--hv-gold); font-size: .95rem; letter-spacing: .02em; }
.hv-hero h1 { margin: 0 0 12px; font: 700 clamp(2.2rem, 4.6vw, 3.5rem)/1.05 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: #fff4dc; }
.hv-hero h1 .dev { display: block; font-size: .5em; font-weight: 500; color: var(--hv-gold); margin-top: 8px; }
.hv-lede { margin: 0 0 22px; max-width: 54ch; color: #f1d9bb; line-height: 1.65; }
.hv-stats { list-style: none; display: flex; gap: 10px; padding: 0; margin: 0 0 24px; flex-wrap: wrap; }
.hv-stats li { padding: 10px 16px; border-radius: 14px; background: rgba(255, 180, 90, .09); border: 1px solid rgba(255, 190, 110, .25); min-width: 92px; }
.hv-stats b { display: block; font: 700 1.7rem/1 'Cormorant Garamond', serif; color: #ffd98a; }
.hv-stats span { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: #e3c19c; }
.hv-btn { display: inline-block; padding: 12px 22px; border-radius: 999px; font-weight: 700; text-decoration: none; color: #2a140b;
  background: linear-gradient(180deg, #ffd76a, #ff9a2e); box-shadow: 0 8px 24px rgba(255, 140, 40, .35); transition: transform .2s; }
.hv-btn:hover { transform: translateY(-2px); }
.hv-btn-dark { color: #fff4dc; background: linear-gradient(180deg, #a4431b, #6e2c12); box-shadow: 0 8px 22px rgba(110, 44, 18, .3); }
.hv-kunda { align-self: end; }
.hv-kunda svg { display: block; width: 100%; max-width: 380px; margin: 0 auto; overflow: visible; }
.hv-flame { transform-box: fill-box; transform-origin: 50% 100%; animation: hvFlick 2.6s ease-in-out infinite; }
.hv-fl-b { animation-duration: 1.9s; animation-delay: -.6s; } .hv-fl-c { animation-duration: 2.2s; animation-delay: -1.1s; } .hv-fl-d { animation-duration: 1.5s; animation-delay: -.3s; }
.hv-glow { animation: hvGlow 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.hv-brickline { fill: none; stroke: #3d160a; stroke-width: 1.6; }
.hv-samidh path { fill: none; stroke: #4a2410; stroke-width: 7; stroke-linecap: round; }
@keyframes hvFlick { 0%, 100% { transform: scale(1, 1) skewX(0); } 25% { transform: scale(.95, 1.07) skewX(-2.5deg); } 50% { transform: scale(1.04, .95) skewX(1.5deg); } 75% { transform: scale(.97, 1.05) skewX(2.5deg); } }
@keyframes hvGlow { 0%, 100% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.07); } }

/* ── verses ── */
.hv-verse { margin: 0; padding: 18px 22px; border-radius: 18px; background: var(--hv-parch); border: 1px solid var(--hv-line); border-left: 4px solid var(--hv-flame); }
.hv-verse blockquote { margin: 0 0 8px; font-size: 1.08rem; line-height: 1.9; color: #7a1f12; }
.hv-tr { margin: 0 0 8px; color: var(--hv-ink); line-height: 1.6; font-size: .95rem; }
.hv-verse figcaption { font-size: .78rem; color: var(--hv-soft); letter-spacing: .02em; }
.hv-verse figcaption a { color: #a4431b; }
.hv-own { font-style: italic; }
.hv-verse-big { margin: 30px auto; max-width: 860px; text-align: center; border-left: 1px solid var(--hv-line); border-top: 4px solid var(--hv-flame); padding: 26px 30px; }
.hv-verse-big blockquote { font-size: 1.4rem; }
.hv-verse-big .hv-tr { font: italic 500 1.15rem/1.55 'Cormorant Garamond', serif; }

.hv-sec-head { text-align: center; margin: 0 auto 22px; max-width: 760px; }
.hv-sec-head h2, .hv-sources h2 { margin: 0 0 6px; font: 700 clamp(1.6rem, 3vw, 2.2rem)/1.15 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--hv-ink); }
.hv-sec-head p { margin: 0; color: var(--hv-soft); line-height: 1.6; font-size: .95rem; }
.hv section { margin-bottom: 46px; }

/* ── the wheel ── */
.hv-why { display: grid; grid-template-columns: 340px 1fr; gap: 28px; align-items: center; }
.hv-wheel svg { display: block; width: 100%; overflow: visible; }
.hv-wheel-ring { fill: none; stroke: var(--hv-line); stroke-width: 10; }
.hv-wheel-run { fill: none; stroke: var(--hv-flame); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 46 607; animation: hvRun 7s linear infinite; }
@keyframes hvRun { to { stroke-dashoffset: -653; } }
.hv-wheel-node { fill: var(--hv-parch); stroke: #d9a35c; stroke-width: 1.6; }
.hv-wheel-node.is-fire { fill: #ffe2a8; stroke: var(--hv-ember); stroke-width: 2.4; }
.hv-wheel text { text-anchor: middle; }
.hv-wheel-sa { font: 600 13px 'Noto Serif Devanagari', serif; fill: #7a1f12; }
.hv-wheel-en { font-size: 9.5px; fill: var(--hv-soft); }
.hv-wheel-mid { font: 700 22px 'Noto Serif Devanagari', serif; fill: #d9a35c; }
.hv-why-verses { display: grid; gap: 14px; }

/* ── five limbs ── */
.hv-limb-row { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; padding: 0; margin: 0 0 18px; }
.hv-limb-row li { position: relative; text-align: center; padding: 22px 8px 16px; border-radius: 18px; color: #fbe9cf;
  background: linear-gradient(180deg, #4a1d0c, #2a140b); box-shadow: inset 0 -3px 0 var(--hv-flame); }
.hv-limb-row b { display: block; font-size: 1.35rem; color: #ffd98a; margin-bottom: 2px; }
.hv-limb-row li > span:last-child { font-size: .82rem; color: #e3c19c; }
.hv-limb-n { position: absolute; top: 6px; left: 12px; font: 700 .9rem 'Noto Serif Devanagari', serif; color: rgba(255, 190, 110, .55); }
.hv-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* ── finder ── */
.hv-finder { scroll-margin-top: 90px; }
.hv-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 22px; }
.hv-chip { --hue: #a4431b; cursor: pointer; font: inherit; font-size: .9rem; font-weight: 600; padding: 9px 16px; border-radius: 999px; color: var(--hv-ink);
  background: #fff; border: 1.5px solid var(--hv-line); transition: all .2s; }
.hv-chip i { font-style: normal; font-size: .72rem; margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: rgba(160, 100, 42, .13); }
.hv-chip:hover { border-color: var(--hue); }
.hv-chip.is-on { color: #fff4dc; background: linear-gradient(180deg, #4a1d0c, #2a140b); border-color: #2a140b; box-shadow: inset 0 -3px 0 var(--hue); }
.hv-chip.is-on i { background: rgba(255, 255, 255, .16); }
.hv-langnote { text-align: center; color: var(--hv-soft); font-size: .85rem; margin: -8px 0 18px; }
.hv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.hv-rite { position: relative; overflow: hidden; padding: 20px 20px 16px; border-radius: 20px; background: #fffdf8; border: 1px solid var(--hv-line);
  box-shadow: 0 6px 20px rgba(90, 40, 10, .07); transition: transform .25s, box-shadow .25s; animation: hvIn .45s both; }
.hv-rite::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 5px; background: linear-gradient(90deg, var(--hue), #ffd76a 60%, transparent); }
.hv-rite::after { content: ''; position: absolute; right: -40px; top: -40px; width: 130px; height: 130px; border-radius: 50%; background: radial-gradient(circle, var(--hue), transparent 68%); opacity: .13; pointer-events: none; }
.hv-rite:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(90, 40, 10, .13); }
.hv-rite[hidden] { display: none; }
.hv-rite:target { outline: 2px solid var(--hv-flame); }
@keyframes hvIn { from { opacity: 0; transform: translateY(10px); } }
.hv-rite-cat { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--hv-soft); }
.hv-rite h3 { margin: 4px 0 2px; font: 700 1.35rem/1.2 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--hv-ink); }
.hv-rite-dev { margin: 0 0 10px; color: #a4431b; font-size: .92rem; }
.hv-rite-for { margin: 0 0 12px; color: var(--hv-ink); line-height: 1.6; font-size: .93rem; }
.hv-rite details { margin-bottom: 10px; }
.hv-rite summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .85rem; color: #a4431b; padding: 7px 14px; border-radius: 999px; background: rgba(255, 154, 46, .13); }
.hv-rite summary::-webkit-details-marker { display: none; }
.hv-rite summary::after { content: '+'; font-size: 1.1rem; line-height: 1; }
.hv-rite details[open] summary::after { content: '–'; }
.hv-rite dl { margin: 14px 0; }
.hv-rite dt { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--hv-soft); margin-top: 10px; }
.hv-rite dd { margin: 3px 0 0; line-height: 1.6; font-size: .92rem; color: var(--hv-ink); }
.hv-rite .hv-verse { margin-top: 10px; padding: 14px 16px; }
.hv-rite .hv-verse blockquote { font-size: .98rem; }
.hv-rite-src { margin: 0; padding-top: 10px; border-top: 1px dashed var(--hv-line); font-size: .78rem; color: var(--hv-soft); line-height: 1.5; }
.hv-seven { list-style: none; counter-reset: s; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0 0 12px; }
.hv-seven li { counter-increment: s; font-size: .82rem; padding: 5px 11px; border-radius: 999px; background: rgba(181, 101, 29, .1); color: var(--hv-ink); }
.hv-seven li::before { content: counter(s) ' · '; color: #a4431b; font-weight: 700; }

/* ── nine sticks ── */
.hv-grahas { padding: 34px 28px 26px; border-radius: 26px; color: #fbe9cf; background: radial-gradient(100% 120% at 50% 110%, #5a220c, #1f0f08 60%); }
.hv-grahas .hv-sec-head h2 { color: #fff4dc; } .hv-grahas .hv-sec-head p { color: #e3c19c; }
.hv-sticks { display: grid; grid-template-columns: repeat(9, 1fr); gap: 8px; }
.hv-stick { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 3px; }
.hv-stick-japa { font-size: .8rem; color: #ffd98a; }
.hv-stick-bar { position: relative; width: 16px; height: 150px; display: flex; align-items: flex-end; border-radius: 8px; background: rgba(255, 255, 255, .06); }
.hv-stick-bar i { display: block; width: 100%; height: var(--h); border-radius: 8px; background: linear-gradient(180deg, #ffd76a, var(--hue)); box-shadow: 0 0 16px var(--hue);
  transform-origin: bottom; animation: hvGrow .9s calc(var(--i) * 70ms) both cubic-bezier(.2, .8, .2, 1); }
@keyframes hvGrow { from { transform: scaleY(0); } }
.hv-stick-g { margin-top: 6px; font: 700 1.05rem 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: #fff4dc; }
.hv-stick-s { font-size: .82rem; color: #ffd98a; }
.hv-stick em { font-size: .66rem; color: #c9a583; }
.hv-stick-d { font-size: .72rem; color: #e3c19c; padding-top: 4px; border-top: 1px solid rgba(255, 190, 110, .2); width: 100%; }
.hv-legend { display: flex; justify-content: center; gap: 18px; margin: 18px 0 0; font-size: .75rem; color: #e3c19c; flex-wrap: wrap; }
.hv-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; }
.hv-legend .k1 { background: #ffd76a; } .hv-legend .k2 { background: #ffd98a; border-radius: 2px; } .hv-legend .k3 { background: #e3c19c; border-radius: 2px; }

/* ── steps: climbing the mekhalās ── */
.hv-steps ol { list-style: none; padding: 0; margin: 0 auto; max-width: 820px; position: relative; }
.hv-steps ol::before { content: ''; position: absolute; left: 25px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(180deg, #ffd76a, var(--hv-ember)); }
.hv-steps li { position: relative; display: grid; grid-template-columns: 52px 1fr; gap: 16px; margin-bottom: 14px; }
.hv-step-n { z-index: 1; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; font: 700 1.3rem 'Noto Serif Devanagari', serif; color: #2a140b;
  background: radial-gradient(circle at 50% 35%, #fff3c4, #ff9a2e); box-shadow: 0 0 0 5px #fff8ea, 0 6px 16px rgba(255, 140, 40, .35); }
.hv-steps li > div { padding: 14px 18px; border-radius: 16px; background: #fffdf8; border: 1px solid var(--hv-line); }
.hv-step-sa { margin: 0; color: #a4431b; font-size: .92rem; }
.hv-steps h3 { margin: 2px 0 4px; font: 700 1.2rem 'Cormorant Garamond', 'Noto Serif Devanagari', serif; color: var(--hv-ink); }
.hv-steps li p:not(.hv-step-sa) { margin: 0 0 6px; line-height: 1.6; font-size: .93rem; color: var(--hv-ink); }
.hv-step-ref { font-size: .72rem; font-weight: 700; letter-spacing: .04em; color: var(--hv-soft); padding: 2px 9px; border-radius: 999px; background: rgba(160, 100, 42, .1); }

/* ── sources ── */
.hv-sources { text-align: center; }
.hv-sources ul { list-style: none; padding: 0; margin: 16px 0 20px; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; text-align: left; }
.hv-sources li a { display: block; height: 100%; padding: 12px 16px; border-radius: 14px; text-decoration: none; background: #fffdf8; border: 1px solid var(--hv-line); color: var(--hv-ink); }
.hv-sources li a:hover { border-color: var(--hv-flame); }
.hv-sources li b { display: block; font-size: .92rem; } .hv-sources li span { font-size: .78rem; color: var(--hv-soft); }
.hv-note { max-width: 820px; margin: 0 auto 22px; font-size: .84rem; line-height: 1.65; color: var(--hv-soft); }

@media (max-width: 860px) {
  .hv-hero { grid-template-columns: 1fr; padding: 30px 22px 0; text-align: center; }
  .hv-hero-txt { padding-bottom: 8px; } .hv-lede { margin-inline: auto; } .hv-stats { justify-content: center; }
  .hv-kunda svg { max-width: 260px; }
  .hv-why { grid-template-columns: 1fr; } .hv-wheel { max-width: 300px; margin: 0 auto; }
  .hv-two { grid-template-columns: 1fr; }
  .hv-limb-row { grid-template-columns: repeat(2, 1fr); } .hv-limb-row li:last-child { grid-column: 1 / -1; }
  .hv-grid { grid-template-columns: 1fr; }
  .hv-grahas { padding: 26px 14px 20px; }
  .hv-sticks { grid-template-columns: repeat(3, 1fr); row-gap: 22px; } .hv-stick-bar { height: 90px; }
  .hv-verse-big blockquote { font-size: 1.12rem; } .hv-verse-big { padding: 20px 16px; }
  .hv-chips { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; margin-inline: -4px; } .hv-chip { white-space: nowrap; flex: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hv-flame, .hv-glow, .hv-wheel-run, .hv-rite, .hv-stick-bar i { animation: none; }
}
@media print { .hv-embers, .hv-chips, .hv-btn { display: none; } .hv-rite details > *:not(summary) { display: block; } }
