// About-page chapter & monk sections — image strips inline with text
// Loaded after about.jsx; attaches AboutChapters / AboutMonks to window.

// Image set per chapter. Some chapters have multiple supporting images.
const CHAPTER_IMAGES = {
  // Chapter 0 (1991 founding): no historical photo available — text only
  0: null,
  // Chapter 1 (1994-1998 Billingstad): 3 yellow houses
  1: { src: "/assets/history/billingstad.jpg", ratio: "786 / 200", caption: { th: "บ้านพร้อมที่ดิน Torstad\u00e5sen 16, Billingstad · วัดไทยนอร์เวย์แห่งแรก พ.ศ. ๒๕๓๙", no: "Torstad\u00e5sen 16, Billingstad \u2014 det f\u00f8rste tempelet (1996)", en: "House and land at Torstad\u00e5sen 16, Billingstad · the first Wat Thai Norway temple (1996)" } },
  // Chapter 2 (2003 move to Frogner): the original red farm/barn on the new property
  2: { src: "/assets/history/old-barn.jpg", ratio: "778 / 200", caption: { th: "อาคารฟาร์มไม้หลังเดิมในที่ตั้งใหม่ก่อนการรื้อถอน · ๑๖,๘๐๐ ตร.ม. ที่ Frogner", no: "Den eksisterende l\u00e5ven p\u00e5 den nye 16 800 m\u00b2 store tomten i Frogner", en: "The original wooden farm building at the new Frogner site · 16,800 m²" } },
  // Chapter 3 (2004-2006 construction): multiple — opening ceremony, 3D model, construction
  3: { multi: [
    { src: "/assets/history/opening-ceremony.jpg", ratio: "900 / 200", caption: { th: "พิธีเปิดวัด ณ ที่ตั้งใหม่ และวางศิลาฤกษ์อาคารสมเด็จพระพุฒาจารย์ · ๑๖ มิถุนายน พ.ศ. ๒๕๔๗", no: "\u00c5pning av tempelet og grunnsteinsnedleggelse \u2014 16. juni 2004", en: "Opening ceremony at the new site and foundation stone ceremony · 16 June 2004" } },
    { src: "/assets/history/3d-render.jpg", ratio: "500 / 354", caption: { th: "แบบจำลองอาคารสมเด็จพระพุฒาจารย์ (เกี่ยว อุปเสณมหาเถร) · กว้าง ๑๓ × ยาว ๒๓ × สูง ๑๔ เมตร", no: "3D-modell av Somdet Phra Bhuddhajahn-bygget (13 × 23 × 14 m)", en: "3D model of the Somdet Phra Bhuddhajahn building · 13 × 23 × 14 m" } },
    { src: "/assets/history/construction.jpg", ratio: "790 / 200", caption: { th: "การก่อสร้างคืบหน้า · ปรับพื้นที่ ตั้งเสา และยอด chofa", no: "Konstruksjonen tar form \u2014 grunnarbeid, reisverk og chofa-spir", en: "Construction in progress · ground works, structure and chofa finials" } },
  ] },
  // Chapter 4 (2007 consecration): the multi-photo ceremony collage
  4: { src: "/assets/history/consecration.jpg", ratio: "1000 / 400", caption: { th: "พิธีผูกพัทธสีมาฝังลูกนิมิต · ๕\u2013๗ กรกฎาคม พ.ศ. ๒๕๕๐ พระเจ้าวรวงศ์เธอ พระองค์เจ้าโสมสวลี พระวรราชาทินัดดามาตุ เสด็จเป็นองค์ประธาน", no: "Vigslingsseremoni \u2014 5.\u20137. juli 2007, ledet av H.K.H. Prinsesse Soamsawali", en: "Consecration ceremony · 5-7 July 2007, presided over by H.R.H. Princess Soamsawali" } },
  // Chapter 5 (present): no historical photo — text only
  5: null,
};

function AboutChapters({ t }) {
  return (
    <section style={{ paddingTop: "60px", paddingBottom: "40px", backgroundColor: "var(--bg-deep)" }}>
      <div className="wn-container" style={{ paddingTop: "80px", paddingBottom: "40px" }}>
        <div style={{ marginBottom: "64px", maxWidth: "640px" }}>
          <Eyebrow>{t.locale === "th" ? "บันทึกประวัติศาสตร์" : t.locale === "no" ? "Historiske kapitler" : "Historical chapters"}</Eyebrow>
          <SectionTitle size="md">
            {t.locale === "th" ? "เส้นทางสามทศวรรษ\nของการสร้างวัด" : t.locale === "no" ? "Tre tiår med bygging\nav et tempel" : "Three decades\nof building a temple"}
          </SectionTitle>
        </div>

        <div style={{ display: "flex", flexDirection: "column", gap: "0" }}>
          {t.about.chapters.map((c, i) => (
            <AboutChapter key={i} chapter={c} index={i} t={t} image={CHAPTER_IMAGES[i]} />
          ))}
        </div>
      </div>
    </section>
  );
}

function AboutChapter({ chapter, index, t, image }) {
  // Layout cases:
  //   no image      → text spans full width inside the chapter column
  //   single image  → side-by-side (alternating sides)
  //   multi image   → text first, then a 3-image strip below
  const lang = t.locale;
  const isMulti = image && image.multi;
  const isSingle = image && image.src;
  const imageOnRight = index % 2 === 0;

  const TextBlock = (
    <div style={{ paddingTop: "12px" }}>
      <div style={{ fontFamily: "var(--font-body)", fontSize: "11px", letterSpacing: "0.22em", textTransform: "uppercase", color: "var(--accent)", marginBottom: "16px", display: "flex", alignItems: "center", gap: "12px" }}>
        <span style={{ width: "28px", height: "1px", background: "var(--accent)" }} />
        {chapter.eyebrow}
      </div>
      <h3 style={{ fontFamily: "var(--font-display)", fontSize: "clamp(28px, 3.2vw, 40px)", fontWeight: 400, lineHeight: 1.15, letterSpacing: "-0.005em", color: "var(--ink)", margin: 0, whiteSpace: "pre-line" }}>
        {chapter.title}
      </h3>
      {chapter.body.map((p, i) => (
        <p key={i} style={{ fontFamily: "var(--font-body)", fontSize: "15px", lineHeight: 1.75, color: "var(--muted)", marginTop: i === 0 ? "24px" : "16px", marginBottom: 0, textWrap: "pretty" }}>
          {p}
        </p>
      ))}
    </div>
  );

  const renderFigure = (img, opts = {}) => {
    const caption = img.caption[lang] || img.caption.en || img.caption.no || img.caption.th || "";
    return (
      <figure style={{ margin: 0 }}>
        <div style={{ position: "relative" }}>
          <img
            src={img.src}
            alt={caption}
            style={{ display: "block", width: "100%", aspectRatio: img.ratio || "4 / 3", objectFit: "cover" }}
          />
          <div style={{ position: "absolute", top: "-8px", left: "-8px", width: "32px", height: "32px", borderTop: "1px solid var(--accent)", borderLeft: "1px solid var(--accent)" }} />
        </div>
        <figcaption style={{ marginTop: "12px", fontFamily: "var(--font-body)", fontSize: opts.small ? "11px" : "12px", lineHeight: 1.5, color: "var(--muted)", letterSpacing: "0.02em" }}>
          {caption}
        </figcaption>
      </figure>
    );
  };

  return (
    <article className="wn-r-chapter" style={{ borderTop: "1px solid var(--line)", paddingTop: "48px", paddingBottom: "48px", display: "grid", gridTemplateColumns: "auto 1fr", gap: "48px" }}>
      <div style={{ width: "100px" }}>
        <div style={{ fontFamily: "var(--font-display)", fontSize: "clamp(28px, 2.8vw, 36px)", color: "var(--accent)", lineHeight: 1.1 }}>
          {chapter.year}
        </div>
      </div>

      <div>
        {isSingle && (
          <div className="wn-r2" style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: "48px", alignItems: "start" }}>
            {imageOnRight
              ? <>{TextBlock}{renderFigure(image)}</>
              : <>{renderFigure(image)}{TextBlock}</>}
          </div>
        )}
        {isMulti && (
          <>
            <div style={{ maxWidth: "720px" }}>{TextBlock}</div>
            <div className="wn-r3" style={{ marginTop: "40px", display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "24px", alignItems: "start" }}>
              {image.multi.map((img, i) => (
                <div key={i}>{renderFigure(img, { small: true })}</div>
              ))}
            </div>
          </>
        )}
        {!image && (
          <div style={{ maxWidth: "720px" }}>{TextBlock}</div>
        )}
      </div>
    </article>
  );
}

// ─── Resident monks (2 portraits) ──────────────────────────────────
function AboutMonks({ t }) {
  const lang = t.locale;
  const team = t.about.team;
  const featured = team[0]; // Abbot
  const others = team.slice(1); // 6 monks

  const renderPortrait = (p, opts = {}) => (
    <div style={{ position: "relative" }}>
      <img
        src={p.image}
        alt={p.name}
        style={{
          display: "block",
          width: "100%",
          aspectRatio: opts.aspectRatio || "5 / 6",
          objectFit: "cover",
          objectPosition: "center top",
          background: "var(--bg-deep)",
        }}
      />
      {/* Corner ornaments */}
      <div style={{ position: "absolute", top: "-8px", left: "-8px", width: opts.cornerSize || "28px", height: opts.cornerSize || "28px", borderTop: "1px solid var(--accent)", borderLeft: "1px solid var(--accent)" }} />
      <div style={{ position: "absolute", bottom: "-8px", right: "-8px", width: opts.cornerSize || "28px", height: opts.cornerSize || "28px", borderBottom: "1px solid var(--accent)", borderRight: "1px solid var(--accent)" }} />
    </div>
  );

  return (
    <section style={{ paddingTop: "120px", paddingBottom: "120px" }}>
      <div className="wn-container">
        {/* ─── Header ─── */}
        <div style={{ textAlign: "center", marginBottom: "72px", maxWidth: "760px", marginLeft: "auto", marginRight: "auto" }}>
          <div style={{ display: "flex", justifyContent: "center", marginBottom: "20px" }}>
            <Ornament width={120} />
          </div>
          <div style={{
            fontFamily: "var(--font-body)",
            fontSize: "11px",
            letterSpacing: "0.3em",
            textTransform: "uppercase",
            color: "var(--accent)",
            marginBottom: "20px",
          }}>
            {t.about.teamEyebrow}
          </div>
          <SectionTitle align="center" size="md">
            {lang === "th" ? "พระธรรมทูต\nประจำวัดไทยนอร์เวย์" : (lang === "no" ? "Munker ved\nWat Thai Norge" : "Resident monks of\nWat Thai Norway")}
          </SectionTitle>
        </div>

        {/* ─── Pali quote — scriptural feature ─── */}
        <div className="wn-pad-card" style={{
          maxWidth: "880px",
          margin: "0 auto 96px",
          padding: "56px 40px",
          background: "var(--bg-deep)",
          position: "relative",
          textAlign: "center",
        }}>
          {/* Corner ornaments — large */}
          <div style={{ position: "absolute", top: "-1px", left: "-1px", width: "56px", height: "56px", borderTop: "2px solid var(--accent)", borderLeft: "2px solid var(--accent)" }} />
          <div style={{ position: "absolute", top: "-1px", right: "-1px", width: "56px", height: "56px", borderTop: "2px solid var(--accent)", borderRight: "2px solid var(--accent)" }} />
          <div style={{ position: "absolute", bottom: "-1px", left: "-1px", width: "56px", height: "56px", borderBottom: "2px solid var(--accent)", borderLeft: "2px solid var(--accent)" }} />
          <div style={{ position: "absolute", bottom: "-1px", right: "-1px", width: "56px", height: "56px", borderBottom: "2px solid var(--accent)", borderRight: "2px solid var(--accent)" }} />

          {/* Pali script — large */}
          <div style={{
            fontFamily: "var(--font-display)",
            fontSize: "clamp(22px, 2.6vw, 32px)",
            fontStyle: "italic",
            fontWeight: 400,
            lineHeight: 1.55,
            color: "var(--accent-deep)",
            whiteSpace: "pre-line",
            letterSpacing: "0.01em",
          }}>
            {t.about.teamPali}
          </div>

          {/* divider */}
          <div style={{
            margin: "32px auto",
            width: "44px",
            height: "1px",
            background: "var(--accent)",
            opacity: 0.6,
          }} />

          {/* Translation */}
          <div style={{
            fontFamily: "var(--font-display)",
            fontSize: "clamp(17px, 1.8vw, 22px)",
            fontWeight: 400,
            lineHeight: 1.65,
            color: "var(--ink)",
            whiteSpace: "pre-line",
            letterSpacing: "-0.005em",
          }}>
            {t.about.teamPaliTranslation}
          </div>

          {/* Source */}
          <div style={{
            marginTop: "28px",
            fontFamily: "var(--font-body)",
            fontSize: "11px",
            letterSpacing: "0.28em",
            textTransform: "uppercase",
            color: "var(--muted)",
          }}>
            — {t.about.teamPaliSource}
          </div>
        </div>

        {/* ─── Featured: Abbot ─── */}
        <article className="wn-r2" style={{
          display: "grid",
          gridTemplateColumns: "minmax(280px, 420px) 1fr",
          gap: "72px",
          alignItems: "start",
          marginBottom: "104px",
          maxWidth: "1180px",
          marginLeft: "auto",
          marginRight: "auto",
        }}>
          <div>{renderPortrait(featured, { aspectRatio: "554 / 603", cornerSize: "40px" })}</div>
          <div style={{ paddingTop: "8px" }}>
            <div style={{
              fontFamily: "var(--font-body)",
              fontSize: "11px",
              letterSpacing: "0.3em",
              textTransform: "uppercase",
              color: "var(--accent)",
              marginBottom: "20px",
              display: "flex",
              alignItems: "center",
              gap: "14px",
            }}>
              <span style={{ width: "32px", height: "1px", background: "var(--accent)" }} />
              {lang === "th" ? "เจ้าอาวาส" : (lang === "no" ? "Abbed" : "Abbot")}
            </div>
            <h3 style={{
              fontFamily: "var(--font-display)",
              fontSize: "clamp(28px, 3.4vw, 42px)",
              fontWeight: 400,
              color: "var(--ink)",
              margin: 0,
              lineHeight: 1.2,
              letterSpacing: "-0.01em",
              textWrap: "pretty",
            }}>
              {featured.name}
            </h3>
            <div style={{
              marginTop: "20px",
              fontFamily: "var(--font-body)",
              fontSize: "13px",
              lineHeight: 1.6,
              color: "var(--accent-deep)",
              letterSpacing: "0.02em",
              fontWeight: 500,
            }}>
              {featured.role}
            </div>
            <div style={{
              marginTop: "24px",
              width: "32px",
              height: "1px",
              background: "var(--line)",
            }} />
            <p style={{
              fontFamily: "var(--font-body)",
              fontSize: "15px",
              lineHeight: 1.8,
              color: "var(--muted)",
              marginTop: "20px",
              marginBottom: 0,
              textWrap: "pretty",
            }}>
              {featured.body}
            </p>
          </div>
        </article>

        {/* ─── Other 6 monks: 3-col grid ─── */}
        <div className="wn-r3" style={{
          display: "grid",
          gridTemplateColumns: "repeat(3, 1fr)",
          gap: "64px 40px",
        }}>
          {others.map((p, i) => (
            <article key={i}>
              {renderPortrait(p, { aspectRatio: "554 / 603", cornerSize: "24px" })}
              <div style={{ marginTop: "24px" }}>
                <div style={{
                  fontFamily: "var(--font-body)",
                  fontSize: "10px",
                  letterSpacing: "0.22em",
                  textTransform: "uppercase",
                  color: "var(--accent)",
                  marginBottom: "10px",
                  lineHeight: 1.4,
                  display: "flex",
                  alignItems: "center",
                  gap: "10px",
                }}>
                  <span style={{ width: "18px", height: "1px", background: "var(--accent)", flexShrink: 0 }} />
                  <span>{p.role}</span>
                </div>
                <h4 style={{
                  fontFamily: "var(--font-display)",
                  fontSize: "clamp(18px, 1.7vw, 22px)",
                  fontWeight: 400,
                  color: "var(--ink)",
                  margin: 0,
                  lineHeight: 1.3,
                  letterSpacing: "-0.005em",
                  textWrap: "pretty",
                }}>
                  {p.name}
                </h4>
                {p.body && (
                  <p style={{
                    fontFamily: "var(--font-body)",
                    fontSize: "13px",
                    lineHeight: 1.65,
                    color: "var(--muted)",
                    marginTop: "12px",
                    marginBottom: 0,
                    textWrap: "pretty",
                  }}>
                    {p.body}
                  </p>
                )}
              </div>
            </article>
          ))}
        </div>
      </div>
    </section>
  );
}

// ─── Board of trustees (lay committee) ─────────────────────────────
// Bilingual data — locale picks which name reads as primary.
const BOARD_MEMBERS = {
  chair: {
    nameTh: "พระมหาคำสิงห์ กิรัมย์",
    nameLatin: "Phramaha Khamsing Kiramy",
    role: { th: "ประธานกรรมการ", no: "Styreleder", en: "Chair" },
  },
  officers: [
    { nameTh: "นายจอยดฮัน บารูอา", nameLatin: "Joydhan Barua",
      role: { th: "รองประธานกรรมการ", no: "Nestleder", en: "Vice chair" } },
    { nameTh: "นางมาลินี โอลเซน", nameLatin: "Malini Olsen",
      role: { th: "เหรัญญิก", no: "Kasserer", en: "Treasurer" } },
    { nameTh: "นางสุกฤตา คำยางยืน", nameLatin: "Sukritta Khamyangyuen",
      role: { th: "เลขานุการ", no: "Sekretær", en: "Secretary" } },
  ],
  members: [
    { nameTh: "นางรจนา สมคุณ รุสตัด", nameLatin: "Rotjana Somkhun Rustand",
      role: { th: "กรรมการท่านที่ ๑", no: "Styremedlem 1", en: "Board member 1" } },
    { nameTh: "นางลิลลี่ เฮนริกเซน", nameLatin: "Lilly Henriksen",
      role: { th: "กรรมการท่านที่ ๒", no: "Styremedlem 2", en: "Board member 2" } },
  ],
  alternates: [
    { nameTh: "นางสินธนา แจนแบน", nameLatin: "Sinthana Janban",
      role: { th: "กรรมการสำรองท่านที่ ๑", no: "Varamedlem 1", en: "Alternate 1" } },
    { nameTh: "นางนารถ์อนงค์ แก้วสีใส ลีน", nameLatin: "Nartanong Kaewseesai Lien",
      role: { th: "กรรมการสำรองท่านที่ ๒", no: "Varamedlem 2", en: "Alternate 2" } },
  ],
};

function BoardMember({ member, t, variant = "default" }) {
  const lang = t.locale;
  const primary = lang === "th" ? member.nameTh : member.nameLatin;
  const secondary = lang === "th" ? member.nameLatin : member.nameTh;
  const role = member.role[lang] || member.role.en;
  // Alternate role label in the "other" script for editorial richness
  const roleAlt = lang === "th" ? member.role.no : lang === "no" ? member.role.th : member.role.no;

  const isFeature = variant === "feature";
  const isMuted = variant === "muted";

  return (
    <div style={{
      textAlign: isFeature ? "center" : "left",
      opacity: isMuted ? 0.78 : 1,
    }}>
      {isFeature ? (
        <div style={{
          fontFamily: "var(--font-body)",
          fontSize: "12px",
          letterSpacing: "0.22em",
          textTransform: "uppercase",
          color: "var(--accent)",
          marginBottom: "20px",
          lineHeight: 1.5,
          display: "flex",
          alignItems: "center",
          gap: "10px",
          justifyContent: "center",
          flexWrap: "wrap",
        }}>
          <span>{role}</span>
          <span style={{ color: "var(--muted)", letterSpacing: "0.18em", opacity: 0.65 }}>· {roleAlt}</span>
        </div>
      ) : (
        <div style={{
          fontFamily: "var(--font-body)",
          fontSize: "10px",
          letterSpacing: "0.18em",
          textTransform: "uppercase",
          color: "var(--accent)",
          lineHeight: 1.5,
          marginBottom: "10px",
          display: "flex",
          alignItems: "center",
          gap: "10px",
        }}>
          <span style={{ width: "18px", height: "1px", background: "var(--accent)", flexShrink: 0 }} />
          <span style={{ textWrap: "pretty" }}>{role}</span>
        </div>
      )}
      <div style={{
        fontFamily: "var(--font-display)",
        fontSize: isFeature ? "clamp(28px, 3.2vw, 38px)" : "clamp(19px, 1.6vw, 22px)",
        fontWeight: 400,
        lineHeight: 1.2,
        letterSpacing: "-0.005em",
        color: "var(--ink)",
      }}>
        {primary}
      </div>
      <div style={{
        fontFamily: "var(--font-body)",
        fontSize: isFeature ? "14px" : "13px",
        color: "var(--muted)",
        marginTop: "6px",
        lineHeight: 1.4,
        letterSpacing: lang === "th" ? "0.02em" : "0",
      }}>
        {secondary}
      </div>
    </div>
  );
}

function AboutBoard({ t }) {
  const groupLabel = (txt, alt) => (
    <div style={{
      textAlign: "center",
      marginBottom: "44px",
    }}>
      <div style={{
        fontFamily: "var(--font-display)",
        fontSize: "clamp(20px, 2vw, 24px)",
        fontWeight: 400,
        color: "var(--ink)",
        letterSpacing: "-0.005em",
        lineHeight: 1.2,
      }}>
        {txt}
      </div>
      <div style={{
        fontFamily: "var(--font-body)",
        fontSize: "10px",
        letterSpacing: "0.3em",
        textTransform: "uppercase",
        color: "var(--muted)",
        marginTop: "10px",
        opacity: 0.8,
      }}>
        {alt}
      </div>
      <div style={{ display: "flex", justifyContent: "center", marginTop: "16px" }}>
        <span style={{ width: "32px", height: "1px", background: "var(--accent)" }} />
      </div>
    </div>
  );

  return (
    <section style={{ paddingTop: "120px", paddingBottom: "120px", backgroundColor: "var(--bg-deep)" }}>
      <div className="wn-container">
        {/* Header */}
        <div style={{ textAlign: "center", marginBottom: "56px", maxWidth: "760px", marginLeft: "auto", marginRight: "auto" }}>
          <div style={{ display: "flex", justifyContent: "center", marginBottom: "20px" }}>
            <Ornament width={120} />
          </div>
          <div style={{
            fontFamily: "var(--font-body)",
            fontSize: "11px",
            letterSpacing: "0.3em",
            textTransform: "uppercase",
            color: "var(--accent)",
            marginBottom: "24px",
          }}>
            {t.about.boardEyebrow}
          </div>
          <SectionTitle align="center" size="md" style={{ whiteSpace: "pre-line" }}>
            {t.about.boardTitle}
          </SectionTitle>
          <p style={{
            fontFamily: "var(--font-body)",
            fontSize: "15px",
            lineHeight: 1.75,
            color: "var(--muted)",
            marginTop: "28px",
            marginBottom: 0,
            textWrap: "pretty",
          }}>
            {t.about.boardIntro}
          </p>
        </div>

        {/* Registration plate */}
        <div className="wn-r2" style={{
          maxWidth: "880px",
          margin: "0 auto 96px",
          display: "grid",
          gridTemplateColumns: "1fr 1fr",
          gap: "1px",
          background: "var(--line)",
          border: "1px solid var(--line)",
        }}>
          {[
            { label: t.about.boardRegName, value: t.about.boardRegNameValue, alt: t.about.boardRegNameValueAlt },
            { label: t.about.boardRegStatus, value: t.about.boardRegStatusValue },
          ].map((r, i) => (
            <div key={i} style={{ background: "var(--bg-deep)", padding: "28px 32px" }}>
              <div style={{
                fontFamily: "var(--font-body)",
                fontSize: "10px",
                letterSpacing: "0.28em",
                textTransform: "uppercase",
                color: "var(--accent)",
                marginBottom: "12px",
              }}>
                {r.label}
              </div>
              <div style={{
                fontFamily: "var(--font-display)",
                fontSize: "clamp(16px, 1.4vw, 19px)",
                color: "var(--ink)",
                lineHeight: 1.4,
                letterSpacing: "-0.005em",
              }}>
                {r.value}
              </div>
              {r.alt && (
                <div style={{
                  fontFamily: "var(--font-body)",
                  fontSize: "12px",
                  color: "var(--muted)",
                  marginTop: "6px",
                  lineHeight: 1.5,
                }}>
                  {r.alt}
                </div>
              )}
            </div>
          ))}
        </div>

        {/* 1 · Executive Committee — chair feature + 3 officers */}
        <div style={{ marginBottom: "96px" }}>
          {groupLabel(t.about.boardOfficersLabel, t.about.boardOfficersLabelAlt)}

          {/* Chair as feature */}
          <div style={{
            maxWidth: "640px",
            margin: "0 auto 64px",
            padding: "44px 24px",
            borderTop: "1px solid var(--accent)",
            borderBottom: "1px solid var(--accent)",
            position: "relative",
          }}>
            <div style={{ position: "absolute", top: "-6px", left: "50%", transform: "translateX(-50%)", width: "11px", height: "11px", background: "var(--bg-deep)", border: "1px solid var(--accent)", borderRadius: "50%" }} />
            <div style={{ position: "absolute", bottom: "-6px", left: "50%", transform: "translateX(-50%)", width: "11px", height: "11px", background: "var(--bg-deep)", border: "1px solid var(--accent)", borderRadius: "50%" }} />
            <BoardMember member={BOARD_MEMBERS.chair} t={t} variant="feature" />
          </div>

          {/* 3 officers below */}
          <div className="wn-r3" style={{
            display: "grid",
            gridTemplateColumns: "repeat(3, 1fr)",
            gap: "48px 56px",
            maxWidth: "1100px",
            margin: "0 auto",
          }}>
            {BOARD_MEMBERS.officers.map((m, i) => (
              <BoardMember key={i} member={m} t={t} />
            ))}
          </div>
        </div>

        {/* 2 · Members */}
        <div style={{ marginBottom: "96px" }}>
          {groupLabel(t.about.boardMembersLabel, t.about.boardMembersLabelAlt)}
          <div className="wn-r2" style={{
            display: "grid",
            gridTemplateColumns: "repeat(2, 1fr)",
            gap: "48px 80px",
            maxWidth: "880px",
            margin: "0 auto",
          }}>
            {BOARD_MEMBERS.members.map((m, i) => (
              <BoardMember key={i} member={m} t={t} />
            ))}
          </div>
        </div>

        {/* 3 · Alternates — muted */}
        <div>
          {groupLabel(t.about.boardAlternatesLabel, t.about.boardAlternatesLabelAlt)}
          <div className="wn-r2" style={{
            display: "grid",
            gridTemplateColumns: "repeat(2, 1fr)",
            gap: "48px 80px",
            maxWidth: "880px",
            margin: "0 auto",
          }}>
            {BOARD_MEMBERS.alternates.map((m, i) => (
              <BoardMember key={i} member={m} t={t} variant="muted" />
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}

// ─── People page — resident monks + lay board, combined ────────────
function PeoplePage({ t }) {
  return (
    <div>
      <AboutMonks t={t} />
      <AboutBoard t={t} />
    </div>
  );
}

Object.assign(window, { AboutChapters, AboutMonks, AboutBoard, PeoplePage });
