/*
 * Pitru Theme v2 — pages/home.css
 *
 * Homepage section CSS. Built in C.5 by 4 parallel Opus subagents:
 *   A1 → Hero + Rituals
 *   A2 → Cities (home variant)
 *   A3 → WhatIs · FortnightCalendar · Concepts · Scripture · SacredMap · FirstRiteGuide
 *   A4 → MythicOrigin · RiteAnatomy · DiasporaVoices · LineageExercise · ClosingInvocation
 *
 * Sections appear here in COMPOSER ORDER (matches templates/front-page.php
 * call sequence) for maintainability. Reusable bands (trust-icons,
 * faq-accordion) live in components.css; everything below is page-only.
 *
 * Class prefix: every selector is `.pps-home-{section}*` — verified
 * collision-free against components.css and other pages/*.css.
 */

@keyframes pps-home-fade-up {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: none; }
}

/* ============================================================
 *  1. HERO — countdown + dual stats + dual cards
 *  Port: ORG components/HomeHero.jsx Hero (lines 5-130)
 * ============================================================ */
.pps-home-hero {
  position: relative;
  padding: 56px 0 96px;
  overflow: hidden;
}
.pps-home-hero__backdrop {
  position: absolute;
  pointer-events: none;
  line-height: 0;
}
.pps-home-hero__backdrop--top    { top: 60px; right: -120px; opacity: 0.06; color: var(--gold); }
.pps-home-hero__backdrop--bottom { bottom: 40px; left: -80px; opacity: 0.04; color: var(--ink); }
.pps-home-hero__inner { position: relative; }

.pps-home-hero__meta {
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 28px; border-bottom: 1px solid var(--line-2);
  margin-bottom: 56px; flex-wrap: wrap; gap: 12px;
}
.pps-home-hero__meta-left { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.pps-home-hero__live { display: flex; align-items: center; gap: 8px; }
.pps-home-hero__live-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--vermillion);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--vermillion) 20%, transparent);
}
.pps-home-hero__live-text,
.pps-home-hero__loc,
.pps-home-hero__tithi {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em;
  color: var(--ink-soft);
}
.pps-home-hero__loc, .pps-home-hero__tithi { color: var(--stone); }

.pps-home-hero__grid {
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 72px; align-items: start;
}

.pps-home-hero__eyebrow-row { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; }
.pps-home-hero__eyebrow-rule { width: 28px; height: 1px; background: var(--gold); }
.pps-home-hero__title {
  font-size: clamp(60px, 7.5vw, 104px);
  line-height: 0.96; letter-spacing: -0.025em; font-weight: 500;
}
.pps-home-hero__title-em { font-style: italic; color: var(--gold-deep); }
.pps-home-hero__lede {
  margin-top: 32px; font-size: 20px; line-height: 1.6;
  color: var(--ink-soft); max-width: 540px;
}
.pps-home-hero__ctas { display: flex; gap: 12px; margin-top: 40px; flex-wrap: wrap; }
.pps-home-hero__cta-primary { padding: 18px 30px; font-size: 16px; }
.pps-home-hero__cta-ghost   { padding: 18px 26px; font-size: 16px; }
.pps-home-hero__cta-arrow   { margin-left: 4px; }

.pps-home-hero__stats { margin-top: 56px; display: flex; gap: 40px; flex-wrap: wrap; }
.pps-home-hero__stat-value {
  font-family: var(--font-display); font-size: 34px; font-weight: 500;
  letter-spacing: -0.02em; line-height: 1;
}
.pps-home-hero__stat-sub { font-size: 18px; color: var(--stone); margin-left: 2px; }
.pps-home-hero__stat-label {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em;
  color: var(--stone); text-transform: uppercase; margin-top: 6px;
}

.pps-home-hero__rhs { display: flex; flex-direction: column; gap: 20px; }
.pps-home-hero__card { border-radius: var(--r-xl); position: relative; overflow: hidden; }
.pps-home-hero__card--dates {
  background: var(--paper); padding: 32px;
  border: 1px solid var(--line); box-shadow: var(--shadow-md);
}
.pps-home-hero__card-motif {
  position: absolute; top: -40px; right: -40px;
  opacity: 0.06; color: var(--gold); line-height: 0;
}
.pps-home-hero__card-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 22px; position: relative; gap: 12px;
}
.pps-home-hero__card-title {
  font-family: var(--font-display); font-size: 32px; font-weight: 500;
  letter-spacing: -0.01em; margin-top: 6px;
}
.pps-home-hero__card-sub { font-size: 13px; color: var(--stone); margin-top: 2px; }

.pps-home-hero__countdown {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; position: relative;
}
.pps-home-hero__cd-box {
  background: var(--ivory); border-radius: var(--r-md);
  padding: 16px 6px; text-align: center;
  border: 1px solid var(--line-2);
}
.pps-home-hero__cd-value {
  font-family: var(--font-display); font-size: 32px; font-weight: 500;
  letter-spacing: -0.02em; font-variant-numeric: tabular-nums; line-height: 1;
}
.pps-home-hero__cd-label {
  font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.14em;
  color: var(--stone); text-transform: uppercase; margin-top: 2px;
}
.pps-home-hero__countdown-banner {
  text-align: center; padding: 18px 12px;
  background: var(--ivory); border: 1px solid var(--line-2);
  border-radius: var(--r-md);
  font-family: var(--font-display); font-size: 18px; color: var(--gold-deep);
}

.pps-home-hero__card-foot {
  margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line-2);
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.pps-home-hero__slots { font-size: 13px; color: var(--ink-soft); }
.pps-home-hero__reserve { font-size: 13px; color: var(--gold-deep); font-weight: 500; }

.pps-home-hero__card--orient {
  background: var(--ink); color: var(--ivory); padding: 28px;
}
.pps-home-hero__orient-flame {
  position: absolute; top: -30px; right: -30px;
  opacity: 0.1; color: var(--gold-soft); line-height: 0;
}
.pps-home-hero__orient-body { position: relative; }
.pps-home-hero__orient-eyebrow {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.16em;
  color: var(--gold-soft);
}
.pps-home-hero__orient-title {
  font-family: var(--font-display); font-size: 24px; letter-spacing: -0.01em;
  font-weight: 500; margin-top: 8px; line-height: 1.3;
}
.pps-home-hero__orient-lede {
  font-size: 14px; color: color-mix(in srgb, var(--ivory) 72%, transparent);
  line-height: 1.6; margin-top: 10px;
}
.pps-home-hero__orient-link {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 14px; font-size: 13px; color: var(--gold-soft);
  font-family: var(--font-body); font-weight: 500;
}

@media (max-width: 1024px) {
  .pps-home-hero__grid { grid-template-columns: 1fr; gap: 48px; }
  .pps-home-hero__lede { max-width: none; }
}
@media (max-width: 720px) {
  .pps-home-hero { padding: 40px 0 64px; }
  .pps-home-hero__meta { margin-bottom: 32px; padding-bottom: 20px; }
  .pps-home-hero__stats { gap: 28px; margin-top: 36px; }
  .pps-home-hero__card--dates { padding: 24px; }
  .pps-home-hero__cd-value { font-size: 26px; }
  .pps-home-hero__card-title { font-size: 26px; }
}

/* ============================================================
 *  2. WHAT IS SECTION — sticky rail + 4 step bodies
 *  Port: ORG components/HomeEducational.jsx WhatIsSection (8-96)
 * ============================================================ */
.pps-home-what-is {
  padding: 120px 0 100px;
  background: var(--paper);
  border-top: 1px solid var(--line-2);
  position: relative;
}
.pps-home-what-is__intro { max-width: 820px; margin-bottom: 72px; }
.pps-home-what-is__eyebrow-row { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.pps-home-what-is__rule { width: 36px; height: 1px; background: var(--gold); display: inline-block; }
.pps-home-what-is__title {
  font-size: clamp(42px, 5.5vw, 72px); letter-spacing: -0.02em; line-height: 1.04;
}
.pps-home-what-is__title em { font-style: italic; color: var(--gold-deep); }
.pps-home-what-is__lede {
  margin-top: 24px; font-size: 19px; color: var(--ink-soft);
  line-height: 1.65; max-width: 680px;
}
.pps-home-what-is__grid {
  display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 72px; align-items: start;
}
.pps-home-what-is__rail {
  position: sticky; top: 120px; align-self: start;
  display: flex; flex-direction: column; gap: 10px;
}
.pps-home-what-is__rail-item {
  display: flex; gap: 14px; align-items: center;
  padding: 20px 22px; border: 1px solid var(--line-2); border-radius: var(--r-md);
  color: var(--ink-soft); transition: all 0.28s var(--ease-ios);
}
.pps-home-what-is__rail-item:hover { border-color: var(--ink); color: var(--ink); }
.pps-home-what-is__rail-item.is-active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pps-home-what-is__rail-num { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; opacity: 0.6; }
.pps-home-what-is__rail-title { font-size: 17px; font-weight: 500; font-family: var(--font-display); letter-spacing: -0.01em; }
.pps-home-what-is__detail-stack { display: flex; flex-direction: column; gap: 80px; }
.pps-home-what-is__step { animation: pps-home-fade-up 0.5s var(--ease-ios); }
.pps-home-what-is__photo { height: 280px; border-radius: var(--r-xl); margin-bottom: 28px; }
.pps-home-what-is__photo-inner { text-align: center; color: var(--gold-deep); }
.pps-home-what-is__photo-motif { margin-bottom: 10px; }
.pps-home-what-is__fact {
  display: flex; align-items: center; gap: 16px;
  padding: 18px 22px; background: var(--ivory-2); border-radius: var(--r-md);
  margin-bottom: 24px;
}
.pps-home-what-is__fact-headline { font-family: var(--font-display); font-size: 32px; font-style: italic; color: var(--gold-deep); line-height: 1; font-weight: 500; }
.pps-home-what-is__fact-rule { width: 1px; height: 30px; background: var(--line); }
.pps-home-what-is__fact-sub { font-size: 13px; color: var(--ink-soft); }
.pps-home-what-is__body { font-size: 20px; line-height: 1.7; color: var(--ink-2); }
@media (max-width: 1024px) { .pps-home-what-is__grid { grid-template-columns: 1fr; gap: 48px; } .pps-home-what-is__rail { position: static; flex-direction: row; flex-wrap: wrap; } }
@media (max-width: 720px)  { .pps-home-what-is { padding: 60px 0; } .pps-home-what-is__detail-stack { gap: 56px; } }

/* ============================================================
 *  3. FORTNIGHT CALENDAR — 15-tithi visual fortnight
 *  Port: ORG components/HomeEducational.jsx FortnightCalendar (98-205)
 * ============================================================ */
.pps-home-fortnight {
  padding: 100px 0; background: var(--ivory-2);
  border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
}
.pps-home-fortnight__head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 48px; flex-wrap: wrap; gap: 24px; }
.pps-home-fortnight__title { font-size: clamp(40px, 5vw, 64px); letter-spacing: -0.02em; line-height: 1.05; margin-top: 10px; max-width: 680px; }
.pps-home-fortnight__head-aside { max-width: 360px; font-size: 15px; color: var(--ink-soft); line-height: 1.6; }
.pps-home-fortnight__strip { display: grid; grid-template-columns: repeat(15, 1fr); gap: 8px; margin-bottom: 14px; }
.pps-home-fortnight__moon { display: flex; justify-content: center; }
.pps-home-fortnight__grid {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(15, 1fr); gap: 8px;
}
.pps-home-fortnight__cell {
  padding: 14px 8px;
  background: color-mix(in srgb, var(--paper) 50%, transparent);
  border: 1px solid var(--line-2); border-radius: var(--r-sm);
  text-align: center;
  transition: transform 0.22s var(--ease-ios), box-shadow 0.22s var(--ease-ios);
  position: relative;
  display: flex; flex-direction: column; gap: 4px; align-items: center;
}
.pps-home-fortnight__cell:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.pps-home-fortnight__cell--special { background: var(--paper); border-color: var(--gold); }
.pps-home-fortnight__cell-en { font-family: var(--font-mono); font-size: 9px; color: var(--stone); letter-spacing: 0.12em; }
.pps-home-fortnight__cell-name { font-family: var(--font-display); font-size: 16px; font-weight: 500; letter-spacing: -0.01em; color: var(--ink); }
.pps-home-fortnight__cell--special .pps-home-fortnight__cell-name { color: var(--gold-deep); }
.pps-home-fortnight__cell-date { font-family: var(--font-mono); font-size: 9px; color: var(--stone); letter-spacing: 0.08em; }
.pps-home-fortnight__cell-weight {
  margin-top: 4px; padding: 2px 8px;
  background: color-mix(in srgb, var(--gold) 18%, transparent);
  color: var(--gold-deep); border-radius: var(--r-pill);
  font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.12em;
}
.pps-home-fortnight__cell-note { font-size: 11px; color: var(--ink-soft); line-height: 1.45; margin-top: 4px; padding: 0 2px; }
.pps-home-fortnight__cell-num { font-family: var(--font-mono); font-size: 8px; color: var(--stone-2); letter-spacing: 0.14em; margin-top: 6px; }
.pps-home-fortnight__panel {
  margin-top: 32px; padding: 28px 32px;
  background: var(--paper); border-radius: var(--r-lg); border: 1px solid var(--line);
  display: flex; gap: 32px; align-items: flex-start;
}
.pps-home-fortnight__panel-label { font-family: var(--font-mono); font-size: 11px; color: var(--gold-deep); letter-spacing: 0.14em; min-width: 130px; }
.pps-home-fortnight__panel-body { font-size: 16px; line-height: 1.6; color: var(--ink-2); }
@media (max-width: 1024px) { .pps-home-fortnight__strip, .pps-home-fortnight__grid { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 720px) {
  .pps-home-fortnight { padding: 60px 0; }
  .pps-home-fortnight__strip { display: none; }
  .pps-home-fortnight__grid { grid-template-columns: repeat(3, 1fr); }
  .pps-home-fortnight__panel { flex-direction: column; gap: 12px; }
}

/* ============================================================
 *  4. MYTHIC ORIGIN — dark vermillion panel, gold accents
 *  Port: ORG components/HomeDeep.jsx MythicOrigin (7-93)
 * ============================================================ */
.pps-home-mythic-origin {
  position: relative; overflow: hidden;
  padding: 140px 0; background: var(--vermillion-deep); color: var(--ivory);
}
.pps-home-mythic-origin__wash {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, color-mix(in srgb, var(--gold) 15%, transparent), transparent 60%);
  pointer-events: none;
}
.pps-home-mythic-origin__mandala {
  position: absolute; bottom: -120px; right: -120px;
  opacity: 0.06; color: var(--ivory); pointer-events: none;
}
.pps-home-mythic-origin__inner { position: relative; }
.pps-home-mythic-origin__head { text-align: center; margin-bottom: 64px; }
.pps-home-mythic-origin__motif { display: inline-flex; color: var(--gold-soft); margin-bottom: 14px; }
.pps-home-mythic-origin__eyebrow { color: color-mix(in srgb, var(--ivory) 60%, transparent); }
.pps-home-mythic-origin__title {
  font-family: var(--font-display); font-size: clamp(46px, 6vw, 80px);
  letter-spacing: -0.025em; line-height: 1.04;
  margin-top: 14px; color: var(--ivory); font-weight: 500;
}
.pps-home-mythic-origin__title em { font-style: italic; color: var(--gold-soft); }
.pps-home-mythic-origin__body {
  display: grid; grid-template-columns: 220px 1fr; gap: 64px;
  max-width: 1100px; margin: 0 auto;
}
.pps-home-mythic-origin__rail {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 4px;
  border-left: 2px solid color-mix(in srgb, var(--ivory) 15%, transparent);
}
.pps-home-mythic-origin__rail-link {
  display: block; padding: 18px 18px;
  color: color-mix(in srgb, var(--ivory) 55%, transparent);
  text-decoration: none; transition: all 0.28s var(--ease-ios);
  border-left: 2px solid transparent; margin-left: -2px;
}
.pps-home-mythic-origin__rail-link:hover,
.pps-home-mythic-origin__rail-link:focus-visible {
  color: var(--ivory);
  background: color-mix(in srgb, var(--ivory) 8%, transparent);
  border-left-color: var(--gold-soft); outline: none;
}
.pps-home-mythic-origin__rail-num {
  display: block; font-family: var(--font-display);
  font-size: 28px; font-style: italic; color: var(--gold-soft); line-height: 1;
}
.pps-home-mythic-origin__rail-title {
  display: block; font-size: 13px; line-height: 1.35; margin-top: 6px;
  font-family: var(--font-body);
}
.pps-home-mythic-origin__chapters { display: flex; flex-direction: column; gap: 96px; }
.pps-home-mythic-origin__chapter { position: relative; max-width: 640px; }
.pps-home-mythic-origin__ghost {
  font-family: var(--font-display); font-size: 160px; font-style: italic;
  line-height: 0.8; letter-spacing: -0.03em;
  color: color-mix(in srgb, var(--ivory) 8%, transparent);
  margin-bottom: -40px;
}
.pps-home-mythic-origin__chapter-title {
  font-family: var(--font-display); font-size: 40px; line-height: 1.15;
  letter-spacing: -0.02em; color: var(--ivory); font-weight: 500;
  margin: 0 0 28px;
}
.pps-home-mythic-origin__chapter-body {
  font-size: 20px; line-height: 1.75;
  color: color-mix(in srgb, var(--ivory) 88%, transparent);
  font-family: var(--font-body); margin: 0;
}
.pps-home-mythic-origin__pull {
  margin-top: 36px; padding-left: 24px;
  border-left: 2px solid var(--gold-soft);
  font-family: var(--font-display); font-size: 28px; font-style: italic;
  color: var(--gold-soft); line-height: 1.4; max-width: 520px;
}
.pps-home-mythic-origin__counter {
  margin-top: 32px; font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.14em;
  color: color-mix(in srgb, var(--ivory) 50%, transparent);
}
@media (max-width: 900px) {
  .pps-home-mythic-origin { padding: 96px 0; }
  .pps-home-mythic-origin__body { grid-template-columns: 1fr; gap: 32px; }
  .pps-home-mythic-origin__rail { display: none; }
  .pps-home-mythic-origin__chapters { gap: 64px; }
  .pps-home-mythic-origin__chapter-title { font-size: 30px; }
  .pps-home-mythic-origin__chapter-body { font-size: 17px; }
  .pps-home-mythic-origin__ghost { font-size: 110px; margin-bottom: -28px; }
}

/* ============================================================
 *  5. CONCEPTS SECTION — 6-card glossary, sticky-rail layout
 *  Port: ORG components/HomeEducational.jsx ConceptsSection (207-320)
 * ============================================================ */
.pps-home-concepts { padding: 100px 0; }
.pps-home-concepts__intro { max-width: 780px; margin-bottom: 48px; }
.pps-home-concepts__title { font-size: clamp(40px, 5vw, 64px); letter-spacing: -0.02em; line-height: 1.05; margin-top: 10px; }
.pps-home-concepts__title em { font-style: italic; color: var(--gold-deep); }
.pps-home-concepts__lede { margin-top: 20px; font-size: 17px; color: var(--ink-soft); line-height: 1.6; }
.pps-home-concepts__layout { display: grid; grid-template-columns: 280px 1fr; gap: 40px; }
.pps-home-concepts__rail { display: flex; flex-direction: column; gap: 4px; position: sticky; top: 120px; align-self: start; }
.pps-home-concepts__rail-item {
  padding: 16px 20px; border-radius: var(--r-md); border: 1px solid transparent;
  color: var(--ink-soft);
  display: flex; align-items: baseline; gap: 12px;
  transition: all 0.22s var(--ease-ios);
}
.pps-home-concepts__rail-item:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pps-home-concepts__rail-name { font-family: var(--font-display); font-size: 20px; font-weight: 500; letter-spacing: -0.01em; }
.pps-home-concepts__rail-dev  { font-family: var(--font-display); font-size: 16px; font-style: italic; opacity: 0.6; }
.pps-home-concepts__cards { display: flex; flex-direction: column; gap: 32px; }
.pps-home-concepts__card {
  background: var(--paper); border-radius: var(--r-xl);
  padding: 48px; border: 1px solid var(--line);
  min-height: 520px; position: relative; overflow: hidden;
  animation: pps-home-fade-up 0.4s var(--ease-ios);
}
.pps-home-concepts__card-mandala { position: absolute; top: -40px; right: -40px; opacity: 0.05; color: var(--gold); pointer-events: none; }
.pps-home-concepts__card-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 28px; flex-wrap: wrap; gap: 16px; position: relative; }
.pps-home-concepts__card-dev  { font-family: var(--font-display); font-size: 84px; color: var(--gold-deep); line-height: 1; font-style: italic; letter-spacing: -0.02em; }
.pps-home-concepts__card-name { font-family: var(--font-display); font-size: 48px; margin-top: 8px; letter-spacing: -0.02em; font-weight: 500; }
.pps-home-concepts__card-pron { text-align: right; }
.pps-home-concepts__card-pron-label { font-family: var(--font-mono); font-size: 11px; color: var(--stone); letter-spacing: 0.14em; }
.pps-home-concepts__card-pron-value { font-size: 18px; margin-top: 4px; color: var(--ink-2); }
.pps-home-concepts__card-pron-type  { font-family: var(--font-mono); font-size: 10px; color: var(--stone); margin-top: 6px; letter-spacing: 0.1em; }
.pps-home-concepts__card-section { margin-top: 24px; position: relative; }
.pps-home-concepts__card-section-label { margin-bottom: 10px; }
.pps-home-concepts__card-def { font-size: 20px; line-height: 1.55; color: var(--ink); font-family: var(--font-display); font-weight: 500; letter-spacing: -0.005em; }
.pps-home-concepts__card-context { font-size: 16px; line-height: 1.75; color: var(--ink-soft); }
.pps-home-concepts__card-example {
  margin: 28px 0 0; padding: 20px 24px;
  border-left: 2px solid var(--gold); background: var(--ivory-2);
  font-family: var(--font-display); font-size: 22px; font-style: italic;
  color: var(--ink-2); line-height: 1.5;
}
@media (max-width: 1024px) {
  .pps-home-concepts__layout { grid-template-columns: 1fr; }
  .pps-home-concepts__rail { position: static; flex-direction: row; flex-wrap: wrap; }
  .pps-home-concepts__card { padding: 32px; min-height: 0; }
}
@media (max-width: 720px) {
  .pps-home-concepts { padding: 60px 0; }
  .pps-home-concepts__card-dev { font-size: 64px; }
  .pps-home-concepts__card-name { font-size: 36px; }
}

/* ============================================================
 *  6. RITUALS — 4-ritual archetype anchor-stack
 *  Port: ORG components/HomeHero.jsx Rituals (142-245)
 * ============================================================ */
.pps-home-rituals { padding: 100px 0; background: var(--ivory-2); position: relative; }
.pps-home-rituals__head { text-align: center; margin-bottom: 56px; }
.pps-home-rituals__head-motif { display: inline-flex; color: var(--gold); margin-bottom: 14px; line-height: 0; }
.pps-home-rituals__title { font-size: clamp(40px, 5vw, 64px); letter-spacing: -0.02em; line-height: 1.05; margin-top: 10px; }
.pps-home-rituals__lede {
  margin: 16px auto 0; font-size: 17px; color: var(--ink-soft); max-width: 620px;
}
.pps-home-rituals__nav { display: flex; justify-content: center; margin-bottom: 36px; }
.pps-home-rituals__seg a {
  border: none; background: transparent;
  padding: 8px 18px; border-radius: var(--r-pill);
  font-size: 14px; color: var(--ink-soft); text-decoration: none;
  display: inline-flex; align-items: center;
  transition: all 0.22s var(--ease-ios);
}
.pps-home-rituals__seg a.is-active,
.pps-home-rituals__seg a.active { background: var(--paper); color: var(--ink); box-shadow: var(--shadow-sm); }
.pps-home-rituals__seg a:hover { color: var(--ink); }
.pps-home-rituals__stack { display: flex; flex-direction: column; gap: 32px; }
.pps-home-rituals__item { scroll-margin-top: 96px; }
.pps-home-rituals[data-pps-swap].pps-swap-enhanced .pps-home-rituals__item:not(.is-active) { display: none; }
@media (max-width: 720px) {
  .pps-home-rituals { padding: 64px 0; }
  .pps-home-rituals__head { margin-bottom: 36px; }
  .pps-home-rituals__seg { flex-wrap: wrap; }
  .pps-home-rituals__stack { gap: 24px; }
}

/* ============================================================
 *  7. RITE ANATOMY — paper bg, two-col diagram + cards
 *  Port: ORG components/HomeDeep.jsx RiteAnatomy (95-198)
 * ============================================================ */
.pps-home-rite-anatomy { padding: 120px 0; background: var(--paper); }
.pps-home-rite-anatomy__head { max-width: 820px; margin-bottom: 64px; }
.pps-home-rite-anatomy__title {
  font-family: var(--font-display); font-size: clamp(42px, 5.5vw, 72px);
  letter-spacing: -0.02em; line-height: 1.04;
  margin: 10px 0 0; font-weight: 500;
}
.pps-home-rite-anatomy__lede {
  margin-top: 22px; max-width: 640px;
  font-size: 18px; line-height: 1.65; color: var(--ink-soft);
}
.pps-home-rite-anatomy__body {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: start;
}
.pps-home-rite-anatomy__diagram {
  margin: 0; aspect-ratio: 4 / 3;
  background: var(--ivory-2); border: 1px solid var(--line);
  border-radius: var(--r-xl); overflow: hidden;
}
.pps-home-rite-anatomy__diagram svg { width: 100%; height: 100%; display: block; }
.pps-home-rite-anatomy__cards { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.pps-home-rite-anatomy__card {
  padding: 20px 24px; background: var(--paper);
  border: 1px solid var(--line-2); border-radius: var(--r-md);
  transition: all 0.22s var(--ease-ios);
}
.pps-home-rite-anatomy__card:hover { background: var(--ivory-2); border-color: var(--ink); }
.pps-home-rite-anatomy__card-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.pps-home-rite-anatomy__card-num {
  flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%;
  background: var(--ink); color: var(--paper);
  font-family: var(--font-mono); font-size: 10px; font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center;
}
.pps-home-rite-anatomy__card:hover .pps-home-rite-anatomy__card-num { background: var(--vermillion); }
.pps-home-rite-anatomy__card-title {
  font-family: var(--font-display); font-size: 22px; font-weight: 500;
  letter-spacing: -0.01em; margin: 0;
}
.pps-home-rite-anatomy__card-body {
  font-size: 14px; line-height: 1.65; color: var(--ink-soft);
  padding-left: 34px; margin: 0;
}
@media (max-width: 900px) {
  .pps-home-rite-anatomy { padding: 80px 0; }
  .pps-home-rite-anatomy__body { grid-template-columns: 1fr; gap: 32px; }
}

/* ----- 7b. RITE ANATOMY — interactive SVG hotspots (B3 follow-up #7) -----
 * No-JS: hotspot groups stay invisible (the cards-only stack reads as before).
 * JS-enhanced (.pps-hotspot-enhanced): vermillion ring markers appear on the
 * SVG; hovering / focusing / tapping a marker OR its card highlights both.
 * --------------------------------------------------------------------------- */
.pps-home-rite-anatomy__hotspot { opacity: 0; pointer-events: none; cursor: pointer; outline: none; }
.pps-home-rite-anatomy__hotspot-hit  { fill: transparent; }
.pps-home-rite-anatomy__hotspot-ring { fill: rgba(166, 61, 42, 0.14); stroke: var(--vermillion); stroke-width: 1.4; }
.pps-home-rite-anatomy__hotspot-dot  { fill: var(--vermillion); }

.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot {
  opacity: 1; pointer-events: auto;
  transition: transform 0.22s var(--ease-ios);
  transform-box: fill-box;
  transform-origin: center;
}
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot-ring {
  transition: fill 0.22s var(--ease-ios), stroke-width 0.22s var(--ease-ios);
}
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot:hover,
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot:focus-visible {
  transform: scale(1.18);
}
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot:focus-visible .pps-home-rite-anatomy__hotspot-ring {
  stroke-width: 2.4;
}
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot.is-active {
  transform: scale(1.25);
}
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot.is-active .pps-home-rite-anatomy__hotspot-ring {
  fill: rgba(166, 61, 42, 0.28); stroke-width: 2.2;
}

/* Card highlight on the active half of a pair. The hover affordance from
 * the static stack (line 501) keeps working; .is-active just goes further. */
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__card.is-active {
  background: var(--ivory-2); border-color: var(--vermillion);
}
.pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__card.is-active .pps-home-rite-anatomy__card-num {
  background: var(--vermillion);
}

@media (prefers-reduced-motion: reduce) {
  .pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot,
  .pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot-ring,
  .pps-home-rite-anatomy__card { transition: none; }
  .pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot:hover,
  .pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot:focus-visible,
  .pps-home-rite-anatomy.pps-hotspot-enhanced .pps-home-rite-anatomy__hotspot.is-active { transform: none; }
}

/* ============================================================
 *  8. SCRIPTURE SECTION — 5-source dark accordion
 *  Port: ORG components/HomeEducational.jsx ScriptureSection (322-403)
 * ============================================================ */
.pps-home-scripture {
  padding: 120px 0; background: var(--ink); color: var(--ivory);
  position: relative; overflow: hidden;
}
.pps-home-scripture__mandala { position: absolute; top: -120px; left: -120px; opacity: 0.05; color: var(--gold-soft); pointer-events: none; }
.pps-home-scripture__inner { position: relative; }
.pps-home-scripture__intro { max-width: 820px; margin-bottom: 64px; }
.pps-home-scripture__eyebrow-row { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; color: var(--gold-soft); }
.pps-home-scripture__rule { width: 36px; height: 1px; background: currentColor; display: inline-block; }
.pps-home-scripture__eyebrow { color: var(--gold-soft); }
.pps-home-scripture__title { font-size: clamp(42px, 5.5vw, 72px); letter-spacing: -0.02em; line-height: 1.04; color: var(--ivory); }
.pps-home-scripture__title em { font-style: italic; color: var(--gold-soft); }
.pps-home-scripture__lede { margin-top: 22px; font-size: 18px; color: color-mix(in srgb, var(--ivory) 70%, transparent); line-height: 1.65; max-width: 640px; }
.pps-home-scripture__row {
  border-bottom: 1px solid color-mix(in srgb, var(--ivory) 14%, transparent);
  padding: 28px 0; transition: all 0.22s var(--ease-ios);
}
.pps-home-scripture__row-summary {
  display: grid; grid-template-columns: 60px 2fr 1fr auto; gap: 24px; align-items: center;
  cursor: pointer; list-style: none;
}
.pps-home-scripture__row-summary::-webkit-details-marker { display: none; }
.pps-home-scripture__row-num { font-family: var(--font-mono); font-size: 11px; color: var(--gold-soft); letter-spacing: 0.16em; }
.pps-home-scripture__row-titles { display: flex; flex-direction: column; gap: 6px; }
.pps-home-scripture__row-book { font-family: var(--font-display); font-size: 32px; font-weight: 500; letter-spacing: -0.01em; color: var(--ivory); }
.pps-home-scripture__row-dev { font-style: italic; color: var(--gold-soft); font-size: 22px; margin-left: 12px; opacity: 0.8; }
.pps-home-scripture__row-section { font-family: var(--font-mono); font-size: 11px; color: color-mix(in srgb, var(--ivory) 50%, transparent); letter-spacing: 0.12em; }
.pps-home-scripture__row-period { font-family: var(--font-mono); font-size: 11px; color: color-mix(in srgb, var(--ivory) 50%, transparent); letter-spacing: 0.12em; text-align: right; }
.pps-home-scripture__row-toggle {
  width: 32px; height: 32px; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--ivory) 20%, transparent);
  display: flex; align-items: center; justify-content: center;
  color: var(--ivory); font-size: 16px; transition: all 0.22s var(--ease-ios);
}
.pps-home-scripture__row-plus  { display: inline; }
.pps-home-scripture__row-minus { display: none; }
.pps-home-scripture__row[open] .pps-home-scripture__row-toggle { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.pps-home-scripture__row[open] .pps-home-scripture__row-plus  { display: none; }
.pps-home-scripture__row[open] .pps-home-scripture__row-minus { display: inline; }
.pps-home-scripture__row-body {
  padding: 20px 60px 0 84px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px;
  animation: pps-home-fade-up 0.4s var(--ease-ios);
}
.pps-home-scripture__row-col-label { color: var(--gold-soft); margin-bottom: 8px; }
.pps-home-scripture__row-col-text { font-size: 15px; line-height: 1.7; color: color-mix(in srgb, var(--ivory) 82%, transparent); }
.pps-home-scripture__note {
  margin-top: 56px; padding: 28px 32px;
  background: color-mix(in srgb, var(--ivory) 5%, transparent);
  border-radius: var(--r-lg);
  border: 1px solid color-mix(in srgb, var(--ivory) 10%, transparent);
  display: flex; align-items: center; gap: 20px;
}
.pps-home-scripture__note-icon { color: var(--gold-soft); flex-shrink: 0; }
.pps-home-scripture__note-body { flex: 1; }
.pps-home-scripture__note-title { font-size: 15px; color: var(--ivory); font-weight: 500; }
.pps-home-scripture__note-sub { font-size: 13px; color: color-mix(in srgb, var(--ivory) 65%, transparent); margin-top: 4px; line-height: 1.5; }
.pps-home-scripture__note-cta { color: var(--ivory); border-color: color-mix(in srgb, var(--ivory) 25%, transparent); padding: 10px 18px; font-size: 13px; flex-shrink: 0; }
.pps-home-scripture__note-cta:hover { background: color-mix(in srgb, var(--ivory) 8%, transparent); }
@media (max-width: 1024px) {
  .pps-home-scripture__row-summary { grid-template-columns: 40px 1fr auto; }
  .pps-home-scripture__row-period { display: none; }
  .pps-home-scripture__row-body { padding: 20px 0 0 64px; grid-template-columns: 1fr; gap: 24px; }
  .pps-home-scripture__row-book { font-size: 24px; }
  .pps-home-scripture__row-dev  { font-size: 18px; margin-left: 8px; }
}
@media (max-width: 720px) { .pps-home-scripture { padding: 60px 0; } .pps-home-scripture__note { flex-direction: column; align-items: flex-start; } }

/* ============================================================
 *  9. SACRED MAP — stylized India outline + 9 city pins
 *  Port: ORG components/HomeEducational.jsx SacredMap (405-498)
 * ============================================================ */
.pps-home-sacred-map { padding: 100px 0; background: var(--paper); }
.pps-home-sacred-map__intro { max-width: 780px; margin-bottom: 48px; }
.pps-home-sacred-map__title { font-size: clamp(40px, 5vw, 64px); letter-spacing: -0.02em; line-height: 1.05; margin-top: 10px; }
.pps-home-sacred-map__lede { margin-top: 20px; font-size: 17px; color: var(--ink-soft); line-height: 1.6; max-width: 620px; }
.pps-home-sacred-map__layout { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: center; }
.pps-home-sacred-map__map {
  position: relative; aspect-ratio: 4 / 5;
  background: var(--ivory-2); border-radius: var(--r-xl); border: 1px solid var(--line);
  overflow: hidden; margin: 0;
}
.pps-home-sacred-map__svg { width: 100%; height: 100%; position: absolute; inset: 0; }
.pps-home-sacred-map__pin { color: var(--ink); opacity: 0.7; cursor: pointer; transition: opacity 0.22s var(--ease-ios), color 0.22s var(--ease-ios); }
.pps-home-sacred-map__pin:hover,
.pps-home-sacred-map__pin.is-active { color: var(--vermillion); opacity: 1; }
.pps-home-sacred-map__pin-dot { fill: currentColor; r: 2px; transition: r 0.22s var(--ease-ios), fill 0.22s var(--ease-ios); }
.pps-home-sacred-map__pin-ring { fill: none; stroke: var(--vermillion); stroke-width: 0.3; opacity: 0; transition: opacity 0.22s var(--ease-ios); }
.pps-home-sacred-map__pin.is-active .pps-home-sacred-map__pin-dot { r: 3px; }
.pps-home-sacred-map__pin.is-active .pps-home-sacred-map__pin-ring { opacity: 0.5; }
.pps-home-sacred-map__pin text { fill: var(--ink); font-weight: 400; pointer-events: none; }
.pps-home-sacred-map__pin.is-active text { font-weight: 500; }
.pps-home-sacred-map__caption { position: absolute; font-family: var(--font-mono); font-size: 10px; color: var(--stone); letter-spacing: 0.14em; }
.pps-home-sacred-map__caption--tl { top: 16px; left: 16px; }
.pps-home-sacred-map__caption--br { bottom: 16px; right: 16px; }
.pps-home-sacred-map__detail { display: flex; flex-direction: column; gap: 28px; }
.pps-home-sacred-map__panel-stack { display: flex; flex-direction: column; gap: 28px; }
.pps-home-sacred-map__lead { animation: pps-home-fade-up 0.4s var(--ease-ios); }
.pps-home-sacred-map[data-pps-swap].pps-swap-enhanced .pps-home-sacred-map__lead:not(.is-active) { display: none; }
.pps-home-sacred-map__lead-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 14px; flex-wrap: wrap; }
.pps-home-sacred-map__lead-name { font-family: var(--font-display); font-size: 44px; letter-spacing: -0.02em; font-weight: 500; }
.pps-home-sacred-map__lead-state { font-family: var(--font-mono); font-size: 11px; color: var(--stone); letter-spacing: 0.14em; }
.pps-home-sacred-map__lead-coords { font-family: var(--font-mono); font-size: 11px; color: var(--gold-deep); letter-spacing: 0.14em; margin-bottom: 14px; }
.pps-home-sacred-map__lead-blurb { font-size: 17px; line-height: 1.7; color: var(--ink-soft); }
.pps-home-sacred-map__lead-cta { margin-top: 24px; padding: 16px 20px; background: var(--ivory-2); border-radius: var(--r-md); display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.pps-home-sacred-map__lead-cta-label { font-family: var(--font-mono); font-size: 10px; color: var(--stone); letter-spacing: 0.14em; text-transform: uppercase; }
.pps-home-sacred-map__lead-cta-value { font-family: var(--font-display); font-size: 28px; font-weight: 500; color: var(--ink); margin-top: 2px; }
.pps-home-sacred-map__lead-btn { padding: 10px 18px; font-size: 13px; }
.pps-home-sacred-map__tiles { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pps-home-sacred-map__tile-link {
  display: flex; flex-direction: column; gap: 4px;
  padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-md);
  color: var(--ink-soft); transition: all 0.22s var(--ease-ios);
}
.pps-home-sacred-map__tile-link:hover,
.pps-home-sacred-map__tile-link.is-active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pps-home-sacred-map__tile-name { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: -0.01em; color: var(--ink); }
.pps-home-sacred-map__tile-link:hover .pps-home-sacred-map__tile-name,
.pps-home-sacred-map__tile-link.is-active .pps-home-sacred-map__tile-name { color: var(--paper); }
.pps-home-sacred-map__tile-meta { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; opacity: 0.75; }
@media (max-width: 1024px) { .pps-home-sacred-map__layout { grid-template-columns: 1fr; gap: 40px; } .pps-home-sacred-map__map { max-width: 480px; } }
@media (max-width: 720px) { .pps-home-sacred-map { padding: 60px 0; } .pps-home-sacred-map__tiles { grid-template-columns: 1fr; } .pps-home-sacred-map__lead-name { font-size: 32px; } .pps-home-sacred-map__lead-cta { flex-direction: column; align-items: flex-start; } }

/* ============================================================
 * 10. CITIES (homepage variant) — 6 compact cards from pps_cities()
 *  Port: ORG components/HomeSections.jsx Cities (5-77) + a deviation:
 *  trailing ghost CTA "View all sacred cities →" not in ORG.
 * ============================================================ */
.pps-home-cities { padding: 100px 0; position: relative; }
.pps-home-cities__intro {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 48px; flex-wrap: wrap; gap: 24px;
}
.pps-home-cities__heading { min-width: 0; }
.pps-home-cities__eyebrow { display: inline-block; margin-bottom: 10px; }
.pps-home-cities__title { font-size: clamp(40px, 5vw, 64px); letter-spacing: -0.02em; line-height: 1.05; margin: 0; }
.pps-home-cities__title em { font-family: var(--font-display); font-weight: 400; font-style: italic; color: var(--gold-deep); }
.pps-home-cities__lede { font-size: 16px; color: var(--ink-soft); max-width: 380px; line-height: 1.6; margin: 0; }
.pps-home-cities__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.pps-home-cities__footer { margin-top: 48px; display: flex; justify-content: center; }
.pps-home-cities__cta { padding: 14px 24px; font-size: 14px; }
@media (max-width: 1024px) {
  .pps-home-cities { padding: 72px 0; }
  .pps-home-cities__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .pps-home-cities { padding: 56px 0; }
  .pps-home-cities__intro { flex-direction: column; align-items: flex-start; }
  .pps-home-cities__grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * 11. FIRST RITE GUIDE — "Where do you begin?" 5-path stack
 *  Port: ORG components/HomeEducational.jsx FirstRiteGuide (500-580)
 * ============================================================ */
.pps-home-first-rite { padding: 120px 0; background: var(--ivory-2); }
.pps-home-first-rite__intro { max-width: 780px; margin: 0 auto 48px; text-align: center; }
.pps-home-first-rite__ornament { display: inline-flex; color: var(--gold-deep); margin-bottom: 14px; }
.pps-home-first-rite__title { font-size: clamp(40px, 5vw, 64px); letter-spacing: -0.02em; line-height: 1.04; margin-top: 10px; }
.pps-home-first-rite__title em { font-style: italic; color: var(--gold-deep); }
.pps-home-first-rite__lede { margin-top: 20px; font-size: 17px; color: var(--ink-soft); line-height: 1.6; }
.pps-home-first-rite__pillbar { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
.pps-home-first-rite__pill {
  padding: 12px 22px; border-radius: var(--r-pill);
  border: 1px solid var(--line); background: var(--paper); color: var(--ink);
  font-family: inherit; font-size: 14px;
  transition: all 0.22s var(--ease-ios);
}
.pps-home-first-rite__pill:hover,
.pps-home-first-rite__pill.is-active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pps-home-first-rite__cards { display: flex; flex-direction: column; gap: 32px; max-width: 980px; margin: 0 auto; }
.pps-home-first-rite__card {
  background: var(--paper); border-radius: var(--r-xl);
  padding: 48px; border: 1px solid var(--line); box-shadow: var(--shadow-md);
  animation: pps-home-fade-up 0.4s var(--ease-ios);
}
.pps-home-first-rite[data-pps-swap].pps-swap-enhanced .pps-home-first-rite__card:not(.is-active) { display: none; }
.pps-home-first-rite__card-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; }
.pps-home-first-rite__card-title { font-size: 36px; letter-spacing: -0.02em; line-height: 1.15; }
.pps-home-first-rite__card-sub { margin-top: 14px; font-size: 17px; color: var(--ink-soft); line-height: 1.65; font-style: italic; }
.pps-home-first-rite__card-note {
  margin-top: 32px; padding: 24px;
  background: var(--ivory); border-radius: var(--r-md); border: 1px solid var(--line-2);
}
.pps-home-first-rite__card-note-label { margin-bottom: 8px; }
.pps-home-first-rite__card-note-body { font-size: 15px; color: var(--ink-2); line-height: 1.7; }
.pps-home-first-rite__card-cta { margin-top: 28px; padding: 14px 24px; font-size: 14px; }
.pps-home-first-rite__card-aside { display: flex; flex-direction: column; gap: 16px; }
.pps-home-first-rite__rec { padding: 16px 20px; background: var(--ivory); border-radius: var(--r-md); border: 1px solid var(--line-2); }
.pps-home-first-rite__rec-label { font-family: var(--font-mono); font-size: 10px; color: var(--stone); letter-spacing: 0.14em; text-transform: uppercase; }
.pps-home-first-rite__rec-value { font-family: var(--font-display); font-size: 20px; font-weight: 500; letter-spacing: -0.01em; margin-top: 4px; color: var(--ink); }
.pps-home-first-rite__compl {
  margin-top: 8px; padding: 18px;
  background: var(--ink); color: var(--ivory); border-radius: var(--r-md);
  position: relative; overflow: hidden;
}
.pps-home-first-rite__compl-flame { position: absolute; top: -20px; right: -20px; opacity: 0.1; color: var(--gold-soft); pointer-events: none; }
.pps-home-first-rite__compl-eyebrow { color: var(--gold-soft); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; position: relative; }
.pps-home-first-rite__compl-title { font-size: 17px; font-weight: 500; margin-top: 6px; position: relative; }
.pps-home-first-rite__compl-body { font-size: 13px; color: color-mix(in srgb, var(--ivory) 70%, transparent); margin-top: 6px; line-height: 1.5; position: relative; }
@media (max-width: 1024px) { .pps-home-first-rite__card-grid { grid-template-columns: 1fr; gap: 40px; } .pps-home-first-rite__card { padding: 32px; } }
@media (max-width: 720px)  { .pps-home-first-rite { padding: 60px 0; } .pps-home-first-rite__card-title { font-size: 28px; } }

/* ============================================================
 * 12. LINEAGE EXERCISE — paper bg, 6-field local exercise
 *  Port: ORG components/HomeDeep.jsx LineageExercise (271-342)
 *  The exercise does not submit; CSS uses :has() + :placeholder-shown
 *  to gold-fill bullet when a field has been typed into.
 * ============================================================ */
.pps-home-lineage-exercise {
  padding: 120px 0; background: var(--paper);
  border-top: 1px solid var(--line-2);
}
.pps-home-lineage-exercise__head { max-width: 780px; margin: 0 auto 56px; text-align: center; }
.pps-home-lineage-exercise__motif { display: inline-flex; color: var(--gold-deep); margin-bottom: 14px; }
.pps-home-lineage-exercise__title {
  font-family: var(--font-display); font-size: clamp(40px, 5vw, 64px);
  letter-spacing: -0.02em; line-height: 1.04;
  margin: 10px 0 0; font-weight: 500;
}
.pps-home-lineage-exercise__title em { font-style: italic; color: var(--gold-deep); }
.pps-home-lineage-exercise__lede {
  margin: 20px auto 0; max-width: 620px;
  font-size: 17px; line-height: 1.65; color: var(--ink-soft);
}
.pps-home-lineage-exercise__form { max-width: 920px; margin: 0 auto; }
.pps-home-lineage-exercise__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.pps-home-lineage-exercise__col-eyebrow {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em;
  color: var(--gold-deep); margin-bottom: 16px;
}
.pps-home-lineage-exercise__divider {
  height: 18px; border-left: 1px dashed var(--line); margin-left: 20px;
}
.pps-home-lineage-exercise__field { display: flex; align-items: center; gap: 16px; }
.pps-home-lineage-exercise__field-bullet {
  flex-shrink: 0; width: 40px; height: 40px;
  border-radius: 50%; border: 2px solid var(--line);
  background: var(--paper); color: var(--stone);
  font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all 0.22s var(--ease-ios);
}
.pps-home-lineage-exercise__field-body { flex: 1; }
.pps-home-lineage-exercise__field-label {
  display: block; font-family: var(--font-mono);
  font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--stone);
}
.pps-home-lineage-exercise__field-input {
  width: 100%; padding: 6px 0;
  font-family: var(--font-display); font-size: 20px; font-weight: 500;
  letter-spacing: -0.01em;
  background: transparent; border: none;
  border-bottom: 1px solid var(--line); color: var(--ink); outline: none;
}
.pps-home-lineage-exercise__field-input:focus { border-bottom-color: var(--gold-deep); }
.pps-home-lineage-exercise__field-input:not(:placeholder-shown) { border-bottom-color: var(--ink); }
.pps-home-lineage-exercise__field:has(.pps-home-lineage-exercise__field-input:not(:placeholder-shown)) .pps-home-lineage-exercise__field-bullet {
  background: var(--gold-deep); border-color: var(--gold-deep); color: var(--ivory);
}
.pps-home-lineage-exercise__score {
  margin-top: 40px; padding: 28px 32px;
  background: var(--ivory-2); border: 1px solid var(--line-2);
  border-radius: var(--r-lg);
  display: flex; justify-content: space-between; align-items: center;
  gap: 24px; flex-wrap: wrap;
}
.pps-home-lineage-exercise__score-label { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--stone); }
.pps-home-lineage-exercise__score-tally { margin-top: 4px; font-family: var(--font-display); font-size: 44px; font-weight: 500; letter-spacing: -0.02em; color: var(--ink); }
.pps-home-lineage-exercise__score-num { transition: color 0.22s var(--ease-ios); }
.pps-home-lineage-exercise__score.is-complete .pps-home-lineage-exercise__score-num { color: var(--gold-deep); }
.pps-home-lineage-exercise__score-of { color: var(--stone); font-size: 24px; margin-left: 4px; }
.pps-home-lineage-exercise__score-hint { flex: 1; max-width: 440px; font-size: 14px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
@media (prefers-reduced-motion: reduce) {
  .pps-home-lineage-exercise__score-num { transition: none; }
}
@media (max-width: 720px) {
  .pps-home-lineage-exercise { padding: 80px 0; }
  .pps-home-lineage-exercise__cols { grid-template-columns: 1fr; gap: 40px; }
  .pps-home-lineage-exercise__score { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
 * 13. DIASPORA VOICES — 3 stacked NRI testimonies on ivory-2
 *  Port: ORG components/HomeDeep.jsx DiasporaVoices (200-269)
 * ============================================================ */
.pps-home-diaspora-voices { padding: 120px 0; background: var(--ivory-2); border-top: 1px solid var(--line-2); }
.pps-home-diaspora-voices__head { max-width: 720px; margin-bottom: 56px; }
.pps-home-diaspora-voices__title {
  font-family: var(--font-display); font-size: clamp(42px, 5.5vw, 72px);
  letter-spacing: -0.02em; line-height: 1.04;
  margin: 10px 0 0; font-weight: 500;
}
.pps-home-diaspora-voices__title em { font-style: italic; color: var(--gold-deep); }
.pps-home-diaspora-voices__list { display: flex; flex-direction: column; gap: 80px; max-width: 920px; }
.pps-home-diaspora-voices__voice { display: grid; grid-template-columns: 280px 1fr; gap: 48px; align-items: start; }
.pps-home-diaspora-voices__voice-head {
  padding: 24px 26px; background: var(--paper);
  border: 1px solid var(--line); border-radius: var(--r-md);
}
.pps-home-diaspora-voices__voice-name { font-family: var(--font-display); font-size: 20px; font-weight: 500; letter-spacing: -0.01em; color: var(--ink); }
.pps-home-diaspora-voices__voice-age { margin-top: 6px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; color: var(--stone); }
.pps-home-diaspora-voices__voice-place { margin-top: 4px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.1em; color: var(--ink-soft); }
.pps-home-diaspora-voices__voice-context { margin-top: 14px; font-size: 13px; line-height: 1.5; color: var(--ink-soft); }
.pps-home-diaspora-voices__voice-body { position: relative; }
.pps-home-diaspora-voices__voice-mark {
  font-family: var(--font-display); font-size: 160px; font-style: italic;
  color: var(--gold); line-height: 0.5; margin-bottom: -30px;
}
.pps-home-diaspora-voices__voice-para {
  font-family: var(--font-body); font-size: 19px; line-height: 1.75;
  color: var(--ink-2); margin: 0 0 22px;
}
.pps-home-diaspora-voices__voice-pull {
  margin: 32px 0 0; padding: 24px;
  background: var(--paper); border-left: 2px solid var(--gold);
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.pps-home-diaspora-voices__voice-pull-text {
  font-family: var(--font-display); font-size: 26px; font-style: italic;
  color: var(--ink); line-height: 1.4;
}
.pps-home-diaspora-voices__voice-pull-attribution {
  margin-top: 14px; font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.14em; color: var(--stone);
}
@media (max-width: 900px) {
  .pps-home-diaspora-voices { padding: 80px 0; }
  .pps-home-diaspora-voices__list { gap: 56px; }
  .pps-home-diaspora-voices__voice { grid-template-columns: 1fr; gap: 24px; }
  .pps-home-diaspora-voices__voice-mark { font-size: 110px; margin-bottom: -22px; }
  .pps-home-diaspora-voices__voice-para { font-size: 17px; }
  .pps-home-diaspora-voices__voice-pull-text { font-size: 22px; }
}

/* ----- 13b. DIASPORA VOICES — rail + progressive enhancement (B3 follow-up #8) ----
 * No-JS: rail is hidden, all three voices stack as before.
 * JS-enhanced (.pps-swap-enhanced): two-column grid with rail of clickable
 * cards on the left (paper -> ink on .is-active), single visible body
 * on the right; the per-voice identity header is suppressed because the
 * rail card already carries that info.
 * --------------------------------------------------------------------------- */
.pps-home-diaspora-voices__layout { display: block; }
.pps-home-diaspora-voices__rail   { display: none; }

.pps-home-diaspora-voices__rail-item {
  display: block; padding: 20px 22px;
  background: var(--paper); color: var(--ink);
  border: 1px solid var(--line); border-radius: var(--r-md);
  text-decoration: none;
  transition: background 0.24s var(--ease-ios),
              color 0.24s var(--ease-ios),
              border-color 0.24s var(--ease-ios),
              transform 0.24s var(--ease-ios);
}
.pps-home-diaspora-voices__rail-item:hover {
  border-color: var(--ink-soft);
  transform: translateY(-1px);
}
.pps-home-diaspora-voices__rail-item.is-active {
  background: var(--ink); color: var(--paper); border-color: var(--ink);
}
.pps-home-diaspora-voices__rail-name {
  display: block; font-family: var(--font-display);
  font-size: 18px; font-weight: 500; letter-spacing: -0.01em;
}
.pps-home-diaspora-voices__rail-meta {
  display: flex; gap: 10px; align-items: baseline;
  margin-top: 6px;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em;
}
.pps-home-diaspora-voices__rail-age   { color: var(--stone); }
.pps-home-diaspora-voices__rail-place { color: inherit; opacity: 0.78; }
.pps-home-diaspora-voices__rail-item.is-active .pps-home-diaspora-voices__rail-age   { color: var(--paper); opacity: 0.6; }
.pps-home-diaspora-voices__rail-item.is-active .pps-home-diaspora-voices__rail-place { opacity: 0.85; }
.pps-home-diaspora-voices__rail-context {
  display: block; margin-top: 12px;
  font-size: 13px; line-height: 1.5; color: var(--ink-soft);
}
.pps-home-diaspora-voices__rail-item.is-active .pps-home-diaspora-voices__rail-context {
  color: var(--paper); opacity: 0.78;
}

/* JS-enhanced layout */
.pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__layout {
  display: grid; grid-template-columns: 1fr 1.6fr; gap: 56px; align-items: start;
  max-width: none;
}
.pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__rail {
  display: flex; flex-direction: column; gap: 10px;
  position: sticky; top: 88px;
}
.pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__list {
  display: block; max-width: none; gap: 0;
}
.pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__voice {
  display: block;
}
.pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__voice:not(.is-active) {
  display: none;
}
.pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__voice-head {
  display: none;
}

@media (max-width: 900px) {
  .pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__layout {
    grid-template-columns: 1fr; gap: 32px;
  }
  .pps-home-diaspora-voices.pps-swap-enhanced .pps-home-diaspora-voices__rail {
    position: static;
  }
}

/* ============================================================
 * 14. CLOSING INVOCATION — ink panel benediction
 *  Port: ORG components/HomeDeep.jsx ClosingInvocation (344-end)
 * ============================================================ */
.pps-home-closing-invocation {
  position: relative; overflow: hidden;
  padding: 160px 0 140px;
  background: var(--ink); color: var(--ivory); text-align: center;
}
.pps-home-closing-invocation__wash {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, color-mix(in srgb, var(--gold) 12%, transparent), transparent 70%);
  pointer-events: none;
}
.pps-home-closing-invocation__mandala {
  position: absolute; top: 60px; left: 50%; transform: translateX(-50%);
  opacity: 0.08; color: var(--gold-soft); pointer-events: none;
}
.pps-home-closing-invocation__inner { position: relative; max-width: 820px; margin: 0 auto; }
.pps-home-closing-invocation__flame { display: inline-flex; color: var(--gold-soft); margin-bottom: 28px; }
.pps-home-closing-invocation__quote {
  margin: 0; font-family: var(--font-display);
  font-size: clamp(46px, 6vw, 84px); font-style: italic;
  line-height: 1.12; letter-spacing: -0.02em;
  color: var(--ivory); font-weight: 500;
}
.pps-home-closing-invocation__attribution {
  margin-top: 32px; display: flex; align-items: center; justify-content: center;
  gap: 16px; color: color-mix(in srgb, var(--ivory) 50%, transparent);
}
.pps-home-closing-invocation__rule { width: 40px; height: 1px; background: currentColor; }
.pps-home-closing-invocation__source { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.2em; }
.pps-home-closing-invocation__actions {
  margin-top: 64px; display: flex; justify-content: center; gap: 16px; flex-wrap: wrap;
}
.pps-home-closing-invocation__cta-primary.btn-primary {
  padding: 18px 32px; font-size: 15px;
  background: var(--gold-soft); color: var(--ink); border-color: var(--gold-soft);
}
.pps-home-closing-invocation__cta-primary.btn-primary:hover {
  background: var(--ivory); border-color: var(--ivory); color: var(--ink);
}
.pps-home-closing-invocation__cta-ghost.btn-ghost {
  padding: 18px 32px; font-size: 15px;
  color: var(--ivory); border-color: color-mix(in srgb, var(--ivory) 30%, transparent);
}
.pps-home-closing-invocation__cta-ghost.btn-ghost:hover {
  background: color-mix(in srgb, var(--ivory) 8%, transparent);
  border-color: color-mix(in srgb, var(--ivory) 50%, transparent);
}
.pps-home-closing-invocation__phone {
  margin-top: 40px; font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.2em;
  color: color-mix(in srgb, var(--ivory) 40%, transparent);
}
@media (max-width: 720px) { .pps-home-closing-invocation { padding: 96px 0 80px; } }

/* B3: progressive-enhancement hide of non-active swap panels (JS adds .pps-swap-enhanced) */
.pps-home-mythic-origin[data-pps-swap].pps-swap-enhanced .pps-home-mythic-origin__chapter:not(.is-active) { display: none; }
.pps-home-concepts[data-pps-swap].pps-swap-enhanced .pps-home-concepts__card:not(.is-active) { display: none; }
.pps-home-what-is[data-pps-swap].pps-swap-enhanced .pps-home-what-is__step:not(.is-active) { display: none; }
