Can you create health education

I'd love to help you create health education content! Let me clarify what you need before diving in.
Asking for Preferences

What health topic should the content cover? · What format do you want? · Who is the target audience?

Breast cancer

Let me clarify a couple of things before I start creating!
Asking for Preferences

What format do you want for the breast cancer health education content? · Who is the target audience?

Got it - a breast cancer health education PPTX for the general public. Let me research the content from the medical library and then build the presentation.
Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Good - I have solid sources. Let me now read the key breast cancer sections for content depth.
Reading File
Reading File
Finding Sources
Reading File
Finding Sources
I now have enough medical content. Let me build the PPTX presentation.
Running Command

ls /home/daytona/workspace/ && mkdir -p /home/daytona/workspace/breast-cancer-edu

Writing File

~/breast-cancer-edu/create_pptx.js

const pptxgen = require("pptxgenjs");

let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author = "Health Education";
pres.title = "Breast Cancer Awareness";

// ─── COLOR PALETTE ───────────────────────────────────────────────
const ROSE    = "C0395A";   // dominant – warm, awareness pink-red
const CREAM   = "FDF5F7";   // light background
const DARK    = "1A0A0F";   // near-black for text
const ACCENT  = "F4A7B9";   // soft blush accent
const WHITE   = "FFFFFF";
const GRAY    = "5C4B52";   // secondary text

// ─── HELPER: banner bar ──────────────────────────────────────────
function addBanner(slide, text, y = 0, h = 0.75) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y, w: 10, h, fill: { color: ROSE } });
  slide.addText(text, { x: 0, y, w: 10, h, fontSize: 11, bold: true, color: WHITE, align: "right", valign: "middle", margin: [0, 0.2, 0, 0] });
}

// ─── HELPER: section header bar ─────────────────────────────────
function addSectionHeader(slide, title, y = 1.0) {
  slide.addShape(pres.ShapeType.rect, { x: 0.4, y, w: 9.2, h: 0.55, fill: { color: ACCENT }, line: { color: ROSE, width: 1.5 } });
  slide.addText(title, { x: 0.5, y: y + 0.03, w: 9, h: 0.5, fontSize: 16, bold: true, color: ROSE, valign: "middle", margin: 0 });
}

// ─── HELPER: icon circle bullet ──────────────────────────────────
function addIconBullet(slide, emoji, label, body, x, y, w = 4.3, h = 1.4) {
  slide.addShape(pres.ShapeType.ellipse, { x, y, w: 0.52, h: 0.52, fill: { color: ROSE } });
  slide.addText(emoji, { x, y: y + 0.04, w: 0.52, h: 0.44, fontSize: 13, align: "center", valign: "middle", margin: 0 });
  slide.addText(label, { x: x + 0.62, y, w: w - 0.62, h: 0.28, fontSize: 11, bold: true, color: ROSE, valign: "top", margin: 0 });
  slide.addText(body, { x: x + 0.62, y: y + 0.28, w: w - 0.62, h: h - 0.28, fontSize: 9.5, color: GRAY, valign: "top", margin: 0 });
}

// ─── SLIDE 1 : TITLE ─────────────────────────────────────────────
{
  let s = pres.addSlide();
  // full dark background
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "2B0A16" } });
  // decorative ribbon strip
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.35, h: 5.625, fill: { color: ROSE } });
  s.addShape(pres.ShapeType.rect, { x: 0.45, y: 0, w: 0.12, h: 5.625, fill: { color: ACCENT } });
  // ribbon bow icon (unicode ribbon)
  s.addText("🎗️", { x: 1, y: 0.6, w: 1.4, h: 1.4, fontSize: 62, align: "center" });
  // main title
  s.addText("BREAST CANCER", { x: 2.6, y: 0.85, w: 7, h: 1.1, fontSize: 44, bold: true, color: WHITE, align: "left", charSpacing: 4, margin: 0 });
  s.addText("AWARENESS & EDUCATION", { x: 2.6, y: 1.9, w: 7, h: 0.65, fontSize: 20, bold: false, color: ACCENT, align: "left", charSpacing: 2, margin: 0 });
  // divider line
  s.addShape(pres.ShapeType.rect, { x: 2.6, y: 2.65, w: 6.5, h: 0.04, fill: { color: ROSE } });
  // subtitle text
  s.addText("Know the facts · Detect early · Save lives", { x: 2.6, y: 2.8, w: 6.5, h: 0.5, fontSize: 13, italic: true, color: ACCENT, align: "left", margin: 0 });
  // audience note
  s.addText("A guide for the general public", { x: 2.6, y: 3.5, w: 6.5, h: 0.4, fontSize: 11, color: "A07080", align: "left", margin: 0 });
  // bottom bar
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: ROSE } });
  s.addText("Health Education Presentation  |  2026", { x: 0, y: 5.27, w: 10, h: 0.33, fontSize: 9, color: WHITE, align: "center", valign: "middle", margin: 0 });
}

// ─── SLIDE 2 : WHAT IS BREAST CANCER ────────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM } });
  addBanner(s, "Slide 2 of 10");
  s.addText("What Is Breast Cancer?", { x: 0.4, y: 0.2, w: 9, h: 0.6, fontSize: 26, bold: true, color: ROSE, margin: 0 });
  // large definition box
  s.addShape(pres.ShapeType.rect, { x: 0.4, y: 0.95, w: 9.2, h: 1.35, fill: { color: ROSE } });
  s.addText(
    "Breast cancer occurs when cells in the breast grow out of control and form a tumour. " +
    "It is the most common cancer in women worldwide and can, rarely, also affect men.",
    { x: 0.6, y: 1.0, w: 8.8, h: 1.2, fontSize: 13, color: WHITE, valign: "middle", margin: 0 }
  );
  // three info boxes
  const boxes = [
    { title: "Where it starts", body: "Usually in the milk-producing ducts (ductal carcinoma) or lobules (lobular carcinoma) of the breast." },
    { title: "How common", body: "More than 50% of cases are diagnosed in women aged 65 and over. Under 30 accounts for <1% of all cases." },
    { title: "Is it curable?", body: "When detected early, breast cancer is highly treatable. Survival rates are best at Stage I and II." },
  ];
  boxes.forEach((b, i) => {
    let x = 0.4 + i * 3.1;
    s.addShape(pres.ShapeType.rect, { x, y: 2.5, w: 2.9, h: 2.7, fill: { color: WHITE }, line: { color: ACCENT, width: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y: 2.5, w: 2.9, h: 0.45, fill: { color: ACCENT } });
    s.addText(b.title, { x: x + 0.1, y: 2.52, w: 2.7, h: 0.41, fontSize: 11, bold: true, color: ROSE, valign: "middle", margin: 0 });
    s.addText(b.body, { x: x + 0.15, y: 3.05, w: 2.6, h: 2.0, fontSize: 10, color: GRAY, valign: "top", margin: 0 });
  });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: ROSE } });
}

// ─── SLIDE 3 : RISK FACTORS ──────────────────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: WHITE } });
  // left accent column
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 3.2, h: 5.625, fill: { color: ROSE } });
  s.addText("RISK\nFACTORS", { x: 0.1, y: 1.0, w: 3.0, h: 2.0, fontSize: 32, bold: true, color: WHITE, align: "center", valign: "middle", lineSpacingMultiple: 1.1 });
  s.addText("Understanding your risk\nhelps you take action early.", { x: 0.15, y: 3.2, w: 2.9, h: 1.0, fontSize: 10, italic: true, color: ACCENT, align: "center", valign: "top" });
  // top label
  s.addText("Risk Factors for Breast Cancer", { x: 3.4, y: 0.15, w: 6.4, h: 0.5, fontSize: 20, bold: true, color: ROSE, margin: 0 });
  // risk items
  const risks = [
    ["👩", "Being female", "The strongest risk factor — female gender accounts for the vast majority of cases."],
    ["🎂", "Increasing age", "Over 50% of breast cancers occur in women ≥65 years of age."],
    ["🧬", "Family history / BRCA", "Having a first-degree relative with breast cancer or carrying BRCA1/BRCA2 gene mutations raises risk significantly."],
    ["👶", "Reproductive factors", "Delayed childbearing (after age 30), never breastfeeding, early menarche, or late menopause."],
    ["🔬", "Previous benign biopsy", "Atypical hyperplasia on prior breast biopsy increases risk."],
    ["☢️", "Chest radiation", "Previous chest irradiation (e.g. for Hodgkin lymphoma) is a known risk factor."],
  ];
  risks.forEach((r, i) => {
    let row = Math.floor(i / 2);
    let col = i % 2;
    let x = 3.4 + col * 3.15;
    let y = 0.8 + row * 1.5;
    s.addShape(pres.ShapeType.rect, { x, y, w: 2.95, h: 1.35, fill: { color: CREAM }, line: { color: ACCENT, width: 1 } });
    s.addText(r[0], { x, y: y + 0.1, w: 0.55, h: 0.55, fontSize: 18, align: "center" });
    s.addText(r[1], { x: x + 0.58, y: y + 0.1, w: 2.3, h: 0.3, fontSize: 9.5, bold: true, color: ROSE, margin: 0 });
    s.addText(r[2], { x: x + 0.58, y: y + 0.42, w: 2.3, h: 0.85, fontSize: 8.5, color: GRAY, valign: "top", margin: 0 });
  });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: ROSE } });
}

// ─── SLIDE 4 : WARNING SIGNS ─────────────────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "FEF0F3" } });
  addBanner(s, "Slide 4 of 10");
  s.addText("⚠️  Warning Signs & Symptoms", { x: 0.4, y: 0.2, w: 9, h: 0.6, fontSize: 24, bold: true, color: ROSE, margin: 0 });
  s.addText("Cancers are often asymptomatic early on — that is why screening matters. But these signs should prompt immediate medical review:", {
    x: 0.4, y: 0.85, w: 9.2, h: 0.45, fontSize: 10.5, color: GRAY, margin: 0
  });

  const signs = [
    ["🔵", "New lump or thickening", "A painless lump in the breast or armpit is the most common presenting sign."],
    ["🔵", "Change in breast size/shape", "Unexplained change in the size or contour of one breast."],
    ["🔵", "Skin dimpling", "Puckering or dimpling of the skin over the breast."],
    ["🔵", "Nipple changes", "Inversion, retraction, ulceration, or bleeding from the nipple."],
    ["🔵", "Nipple discharge", "Spontaneous discharge, especially if blood-stained, requires investigation."],
    ["🔵", "Redness or rash", "Persistent redness, warmth, or rash over the breast (may suggest inflammatory breast cancer)."],
    ["🔵", "Axillary swelling", "Enlarged lymph nodes in the armpit area."],
    ["🔵", "Upper outer quadrant mass", "~50% of breast cancers originate in the upper outer quadrant — pay special attention here."],
  ];
  signs.forEach((sg, i) => {
    let col = Math.floor(i / 4);
    let row = i % 4;
    let x = 0.4 + col * 4.65;
    let y = 1.45 + row * 0.98;
    s.addShape(pres.ShapeType.rect, { x, y, w: 4.45, h: 0.88, fill: { color: WHITE }, line: { color: ACCENT, width: 1 } });
    s.addText("●", { x: x + 0.1, y: y + 0.1, w: 0.3, h: 0.3, fontSize: 13, color: ROSE, margin: 0 });
    s.addText(sg[1], { x: x + 0.45, y: y + 0.08, w: 3.9, h: 0.28, fontSize: 10, bold: true, color: DARK, margin: 0 });
    s.addText(sg[2], { x: x + 0.45, y: y + 0.38, w: 3.9, h: 0.44, fontSize: 8.8, color: GRAY, valign: "top", margin: 0 });
  });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: ROSE } });
}

// ─── SLIDE 5 : TYPES OF BREAST CANCER ───────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: WHITE } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: ROSE } });
  s.addText("Types of Breast Cancer", { x: 0.4, y: 0.2, w: 9, h: 0.65, fontSize: 26, bold: true, color: WHITE, margin: 0 });
  addBanner(s, "Slide 5 of 10", 0, 0);

  const types = [
    { name: "Invasive Ductal\nCarcinoma (IDC)", pct: "~70–80%", desc: "Most common type. Cancer starts in milk ducts and invades surrounding tissue." },
    { name: "Invasive Lobular\nCarcinoma (ILC)", pct: "~10–15%", desc: "Starts in milk-producing lobules. Can be harder to detect on mammography." },
    { name: "Ductal Carcinoma\nIn Situ (DCIS)", pct: "Non-invasive", desc: "Early-stage, confined to ducts. Highly treatable; may progress if untreated." },
    { name: "Inflammatory\nBreast Cancer", pct: "~1–3%", desc: "Rapid onset with skin redness, warmth, and swelling. Aggressive; needs prompt treatment." },
    { name: "Triple-Negative\nBreast Cancer", pct: "~15–20%", desc: "Lacks ER, PR, and HER2 receptors. Harder to treat; chemo is the main approach." },
    { name: "HER2-Positive\nBreast Cancer", pct: "~15–20%", desc: "Overexpresses HER2 protein. Targeted therapies (e.g. trastuzumab) are very effective." },
  ];
  types.forEach((t, i) => {
    let col = i % 3;
    let row = Math.floor(i / 3);
    let x = 0.3 + col * 3.2;
    let y = 1.25 + row * 2.05;
    s.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 1.85, fill: { color: CREAM }, line: { color: ROSE, width: 1.5 } });
    s.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 0.38, fill: { color: "F7C5D2" } });
    s.addText(t.pct, { x: x + 0.05, y: y + 0.04, w: 2.9, h: 0.32, fontSize: 9, bold: true, color: ROSE, align: "right", margin: 0 });
    s.addText(t.name, { x: x + 0.12, y: y + 0.44, w: 2.8, h: 0.62, fontSize: 10.5, bold: true, color: DARK, valign: "top", margin: 0, lineSpacingMultiple: 1.1 });
    s.addText(t.desc, { x: x + 0.12, y: y + 1.08, w: 2.8, h: 0.72, fontSize: 8.8, color: GRAY, valign: "top", margin: 0 });
  });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: ROSE } });
}

// ─── SLIDE 6 : SCREENING & EARLY DETECTION ──────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "2B0A16" } });
  // subtle pattern strip
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ROSE } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.545, w: 10, h: 0.08, fill: { color: ROSE } });
  s.addText("Screening & Early Detection", { x: 0.5, y: 0.2, w: 9, h: 0.65, fontSize: 26, bold: true, color: WHITE, margin: 0 });
  s.addText("Mammography screening reduces breast cancer mortality by 15–30%.", {
    x: 0.5, y: 0.85, w: 9, h: 0.4, fontSize: 12, color: ACCENT, italic: true, margin: 0
  });

  const methods = [
    { icon: "🔬", title: "Breast Self-Exam (BSE)", desc: "All women should perform BSE monthly. Breast cancers are more frequently found by women themselves than by a physician. Begin in your 20s." },
    { icon: "👩‍⚕️", title: "Clinical Breast Exam", desc: "A healthcare provider examines the breasts. Recommended at least every 3 years for women in their 20s–30s, and annually from age 40+." },
    { icon: "📷", title: "Mammography", desc: "Most sensitive method. Biennial screening for women 50–74 years is recommended (USPSTF). Women 40–49 should discuss individual risk with their doctor." },
    { icon: "🧪", title: "Genetic Testing", desc: "BRCA1/BRCA2 testing for women with a family history of breast, ovarian, tubal, or peritoneal cancer. Refer for genetic counselling if at risk." },
  ];
  methods.forEach((m, i) => {
    let x = 0.3 + (i % 2) * 4.85;
    let y = 1.45 + Math.floor(i / 2) * 1.95;
    s.addShape(pres.ShapeType.rect, { x, y, w: 4.55, h: 1.75, fill: { color: "3D0F1E" }, line: { color: ROSE, width: 1 } });
    s.addText(m.icon, { x: x + 0.1, y: y + 0.1, w: 0.65, h: 0.65, fontSize: 22, align: "center" });
    s.addText(m.title, { x: x + 0.82, y: y + 0.1, w: 3.6, h: 0.38, fontSize: 11, bold: true, color: ACCENT, margin: 0 });
    s.addText(m.desc, { x: x + 0.82, y: y + 0.5, w: 3.6, h: 1.15, fontSize: 9.2, color: "D4A0B0", valign: "top", margin: 0 });
  });
}

// ─── SLIDE 7 : STAGES OF BREAST CANCER ──────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM } });
  addBanner(s, "Slide 7 of 10");
  s.addText("Stages of Breast Cancer", { x: 0.4, y: 0.2, w: 9, h: 0.6, fontSize: 24, bold: true, color: ROSE, margin: 0 });

  const stages = [
    { stage: "0", label: "In Situ", color: "A8D5A2", desc: "Non-invasive. Abnormal cells confined to ducts/lobules. Highly curable (DCIS/LCIS)." },
    { stage: "I", label: "Early", color: "F4C542", desc: "Tumour ≤2 cm, no or minimal lymph node involvement. Excellent prognosis." },
    { stage: "II", label: "Localised", color: "F4A742", desc: "Tumour 2–5 cm or spread to 1–3 axillary lymph nodes. Good outcomes with treatment." },
    { stage: "III", label: "Locally Advanced", color: "E8724A", desc: "Tumour >5 cm, or spread to multiple lymph nodes, chest wall, or skin. Needs multimodal treatment." },
    { stage: "IV", label: "Metastatic", color: ROSE, desc: "Cancer has spread to distant organs (bone, lung, liver, brain). Treatment focuses on prolonging life and quality." },
  ];

  // progress bar
  stages.forEach((st, i) => {
    let x = 0.3 + i * 1.88;
    // circle
    s.addShape(pres.ShapeType.ellipse, { x: x + 0.44, y: 1.1, w: 1.0, h: 1.0, fill: { color: st.color } });
    s.addText("Stage\n" + st.stage, { x: x + 0.44, y: 1.1, w: 1.0, h: 1.0, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle", lineSpacingMultiple: 1.0 });
    // connector arrow (not last)
    if (i < 4) {
      s.addShape(pres.ShapeType.rect, { x: x + 1.44, y: 1.56, w: 0.44, h: 0.08, fill: { color: GRAY } });
    }
    // label
    s.addText(st.label, { x, y: 2.2, w: 1.88, h: 0.3, fontSize: 9, bold: true, color: ROSE, align: "center" });
    // description card
    s.addShape(pres.ShapeType.rect, { x: x + 0.05, y: 2.6, w: 1.78, h: 2.6, fill: { color: WHITE }, line: { color: st.color, width: 1.5 } });
    s.addText(st.desc, { x: x + 0.12, y: 2.7, w: 1.6, h: 2.4, fontSize: 8.5, color: GRAY, valign: "top", margin: 0 });
  });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: ROSE } });
}

// ─── SLIDE 8 : DIAGNOSIS ─────────────────────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: WHITE } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.1, fill: { color: ROSE } });
  s.addText("Diagnosis — How Is It Confirmed?", { x: 0.4, y: 0.22, w: 9, h: 0.65, fontSize: 22, bold: true, color: WHITE, margin: 0 });

  const diag = [
    { icon: "📡", title: "Mammography / Ultrasound", body: "First-line imaging. Detects tumours as small as a few mm. Ultrasound is useful in younger women with dense breasts." },
    { icon: "🧲", title: "MRI", body: "Used for high-risk women, pre-surgery staging, and evaluating implants. Higher sensitivity than mammography." },
    { icon: "🔬", title: "Core Needle Biopsy (CNB)", body: "Gold standard for tissue diagnosis. A needle removes a small tissue sample for pathological analysis." },
    { icon: "🧬", title: "Receptor Testing", body: "Tumour tissue tested for ER, PR, and HER2 status — determines treatment type and guides prognosis." },
    { icon: "🩻", title: "Sentinel Node Biopsy", body: "First lymph node examined to determine if cancer has spread to axillary nodes. Avoids full axillary dissection." },
    { icon: "📊", title: "Genomic Tests", body: "Tests like Oncotype DX predict risk of recurrence and help decide whether chemotherapy is needed after surgery." },
  ];
  diag.forEach((d, i) => {
    let col = i % 3;
    let row = Math.floor(i / 3);
    let x = 0.3 + col * 3.2;
    let y = 1.25 + row * 2.1;
    s.addShape(pres.ShapeType.rect, { x, y, w: 3.05, h: 1.9, fill: { color: CREAM }, line: { color: ACCENT, width: 1 } });
    s.addText(d.icon, { x: x + 0.1, y: y + 0.15, w: 0.65, h: 0.65, fontSize: 22, align: "center" });
    s.addText(d.title, { x: x + 0.78, y: y + 0.15, w: 2.15, h: 0.45, fontSize: 9.5, bold: true, color: ROSE, valign: "top", margin: 0 });
    s.addText(d.body, { x: x + 0.78, y: y + 0.62, w: 2.15, h: 1.1, fontSize: 8.8, color: GRAY, valign: "top", margin: 0 });
  });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 5.25, w: 10, h: 0.375, fill: { color: ROSE } });
}

// ─── SLIDE 9 : TREATMENT OPTIONS ────────────────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "2B0A16" } });
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: ROSE } });
  s.addText("Treatment Options", { x: 0.4, y: 0.15, w: 9, h: 0.65, fontSize: 26, bold: true, color: WHITE, margin: 0 });
  s.addText("Treatment depends on the stage, type, receptor status, and the patient's overall health.", {
    x: 0.4, y: 0.78, w: 9, h: 0.38, fontSize: 10.5, color: ACCENT, italic: true, margin: 0
  });

  const treats = [
    { icon: "🔪", title: "Surgery", items: ["Lumpectomy (breast-conserving)", "Mastectomy (full breast removal)", "Sentinel/axillary node dissection"] },
    { icon: "☢️", title: "Radiation Therapy", items: ["Usually after lumpectomy", "Targets residual cancer cells", "Reduces local recurrence risk"] },
    { icon: "💊", title: "Chemotherapy", items: ["Pre-op (neoadjuvant) to shrink tumour", "Post-op (adjuvant) to prevent recurrence", "Backbone for triple-negative cancer"] },
    { icon: "🎯", title: "Targeted Therapy", items: ["Trastuzumab (Herceptin) for HER2+", "CDK4/6 inhibitors for HR+ disease", "PARP inhibitors for BRCA mutations"] },
    { icon: "🧬", title: "Hormone Therapy", items: ["Tamoxifen for ER/PR+ cancers", "Aromatase inhibitors (postmenopausal)", "Reduces risk of recurrence by ~40%"] },
    { icon: "🛡️", title: "Immunotherapy", items: ["Pembrolizumab for triple-negative", "Combined with chemo in early-stage", "Growing role in advanced disease"] },
  ];
  treats.forEach((t, i) => {
    let col = i % 3;
    let row = Math.floor(i / 3);
    let x = 0.25 + col * 3.18;
    let y = 1.28 + row * 2.05;
    s.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 1.85, fill: { color: "3D0F1E" }, line: { color: ROSE, width: 1 } });
    s.addText(t.icon + "  " + t.title, { x: x + 0.12, y: y + 0.1, w: 2.8, h: 0.38, fontSize: 11, bold: true, color: ACCENT, margin: 0 });
    s.addShape(pres.ShapeType.rect, { x: x + 0.12, y: y + 0.52, w: 2.75, h: 0.03, fill: { color: ROSE } });
    s.addText(
      t.items.map(it => "• " + it).join("\n"),
      { x: x + 0.12, y: y + 0.62, w: 2.8, h: 1.12, fontSize: 8.8, color: "D4A0B0", valign: "top", margin: 0 }
    );
  });
}

// ─── SLIDE 10 : PREVENTION & CALL TO ACTION ──────────────────────
{
  let s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: ROSE } });
  // white content area
  s.addShape(pres.ShapeType.rect, { x: 0.4, y: 1.0, w: 9.2, h: 4.2, fill: { color: WHITE } });

  s.addText("🎗️  Prevention & What You Can Do", { x: 0.4, y: 0.1, w: 9.2, h: 0.75, fontSize: 22, bold: true, color: WHITE, margin: 0 });

  const tips = [
    { icon: "✅", text: "Maintain a healthy weight and exercise regularly — obesity is a modifiable risk factor." },
    { icon: "🍷", text: "Limit alcohol intake — even moderate consumption modestly raises risk." },
    { icon: "🤱", text: "Breastfeed if possible — breastfeeding has a mild protective effect." },
    { icon: "💊", text: "Discuss hormone therapy risks with your doctor — postmenopausal HRT may raise risk." },
    { icon: "🧬", text: "Know your family history — if first-degree relatives had breast/ovarian cancer, seek genetic counselling." },
    { icon: "📅", text: "Keep up with recommended screening — mammograms save lives through early detection." },
  ];
  tips.forEach((tip, i) => {
    let row = Math.floor(i / 2);
    let col = i % 2;
    let x = 0.6 + col * 4.6;
    let y = 1.15 + row * 1.08;
    s.addShape(pres.ShapeType.ellipse, { x, y: y + 0.1, w: 0.42, h: 0.42, fill: { color: ROSE } });
    s.addText(tip.icon, { x, y: y + 0.1, w: 0.42, h: 0.42, fontSize: 11, align: "center", valign: "middle" });
    s.addText(tip.text, { x: x + 0.52, y, w: 4.0, h: 0.9, fontSize: 9.5, color: DARK, valign: "middle", margin: 0 });
  });
  // CTA box
  s.addShape(pres.ShapeType.rect, { x: 0.6, y: 4.35, w: 8.8, h: 0.55, fill: { color: ROSE } });
  s.addText("If you notice any changes in your breast — see a doctor promptly. Early detection saves lives. 🎗️", {
    x: 0.6, y: 4.37, w: 8.8, h: 0.52, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0
  });
}

// ─── WRITE FILE ───────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/breast-cancer-edu/Breast_Cancer_Health_Education.pptx" })
  .then(() => console.log("DONE: Breast_Cancer_Health_Education.pptx created"))
  .catch(e => { console.error("ERROR:", e); process.exit(1); });
This is a shared conversation. Sign in to Orris to start your own chat.