As a expert pulmonologist and yoga therapist guide help me create a in depth blue print for a online webinar on pranayama/ breath work. Keep it highly professional yet simple to understand for a common man

Asking for Preferences
Reading File
Reading File
Reading File
Reading File
Searching PubMed

pranayama breathing exercises clinical benefits

Finding Sources
Searching the Web

pranayama webinar structure pulmonology breathwork science 2024 2025

Searching PubMed

pranayama yoga respiratory cardiovascular autonomic nervous system

Finding Sources
Finding Sources
Searching PubMed

yoga breathing interventions hypertension anxiety COPD

Finding Sources
Searching PubMed

pranayama OR yoga breathing blood pressure heart rate variability

general-purpose

Create a professional Word document (.docx) blueprint for a half-day online webinar on Pranayama/Breathwork from the perspective of an expert pulmonologist and yoga therapist. The audience is mixed (general public, healthcare professionals, yoga practitioners). Save the file to: /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Blueprint.docx Read the DOCX skill first at /home/daytona/skills/docx/SKILL.md (limit=1000) to understand how to create the document, then read the docx-js creation guide. The document must include: # TITLE: "The Science & Soul of Breath: A Pulmonologist's Guide to Pranayama" ## Subtitle: Half-Day Online Webinar Blueprint | Mixed Audience Edition Use professional formatting: cover page, table of contents, numbered sections, callout boxes (styled tables), headers/footers with page numbers. ## COMPLETE CONTENT TO INCLUDE: ### SECTION 1: WEBINAR AT A GLANCE - Title: "The Science & Soul of Breath" - Tagline: "Ancient Wisdom. Modern Science. One Breath at a Time." - Duration: 4.5 hours (with breaks) - Format: Online (Zoom/Teams/Google Meet) - Audience: General public, healthcare professionals, yoga practitioners - Facilitators: Expert Pulmonologist + Certified Yoga Therapist (co-facilitated) - Max participants: 100-150 (breakout rooms for practice) - Platform Requirements: Webcam recommended, quiet space, yoga mat/cushion optional - CE Credits: Available for healthcare professionals (1 CME/CNE credit per hour) ### SECTION 2: LEARNING OBJECTIVES By end of webinar, participants will be able to: 1. Explain the anatomy and physiology of the respiratory system in simple terms 2. Understand how pranayama influences the autonomic nervous system (vagal tone, HRV) 3. Describe at least 8 classical pranayama techniques with their physiological effects 4. Identify clinical evidence supporting pranayama for hypertension, anxiety, COPD, insomnia, and stress 5. Safely practice 5 core pranayama techniques under live guidance 6. Recognize contraindications and when NOT to practice certain techniques 7. Apply a personalised breath prescription framework to their own health needs ### SECTION 3: DETAILED AGENDA (4.5 HOURS) **MODULE 1: WELCOME & FOUNDATIONS (0:00-0:45)** - 0:00-0:10 → Welcome, housekeeping, participant introductions (poll: why are you here?) - 0:10-0:25 → "What IS pranayama?" - Etymology (Prana = life force, Ayama = expansion/regulation), Historical roots (Yoga Sutras of Patanjali, Hatha Yoga Pradipika), Modern scientific context - 0:25-0:35 → Respiratory Anatomy Made Simple (lungs, diaphragm, alveoli, gas exchange — explained with everyday analogies) - 0:35-0:45 → LIVE PRACTICE: Baseline breath awareness (3 min) + Nostril hygiene tips + Setting up your practice space **MODULE 2: THE SCIENCE OF BREATH (0:45-1:45)** - 0:45-1:00 → How the nervous system talks to your lungs: Sympathetic (fight-or-flight) vs Parasympathetic (rest-and-digest) explained with "stress traffic light" analogy - 1:00-1:15 → Heart Rate Variability (HRV) decoded: What it is, why it matters, how breath controls it. Research: slow breathing (5-6 breaths/min) maximizes HRV (Lehrer et al.) - 1:15-1:30 → Biochemistry of breath: O2/CO2 balance, pH regulation, Bohr Effect (why over-breathing is counterproductive), CO2 tolerance testing - 1:30-1:40 → LIVE PRACTICE: CO2 tolerance test (BOLT score) + Resonance frequency breathing (5-6 breaths/min for 5 min) - 1:40-1:45 → Q&A + Quick poll **BREAK 1: 10 MINUTES (1:45-1:55)** **MODULE 3: THE PRANAYAMA PHARMACOPOEIA (1:55-3:00)** Subtitle: "8 Techniques, 8 Prescriptions" For each technique include: Sanskrit name + meaning, Technique instructions (step by step), Physiological mechanism, Clinical indications, Contraindications, Dose (duration/ratio) 1. NADI SHODHANA (Alternate Nostril Breathing) - Meaning: "Channel cleansing" - Technique: Close right nostril, inhale left → close both → exhale right → inhale right → close both → exhale left = 1 cycle - Mechanism: Activates nasal cycle regulation, balances hemispheric brain activity, reduces sympathetic tone - Indications: Anxiety, hypertension, migraine, pre-sleep, cognitive performance - Contraindication: Severe nasal congestion, recent nasal surgery - Dose: 5-10 cycles, 1:1 ratio, progress to 1:2 (inhale:exhale) 2. BHRAMARI (Humming Bee Breath) - Meaning: "Humming bee" - Technique: Plug ears with thumbs, eyes with index fingers, hum on exhale creating vibration - Mechanism: Generates endogenous nitric oxide (NO) in nasal sinuses; vagal activation via vibration; reduces cortisol - Indications: Anxiety, tinnitus, insomnia, hypertension, thyroid health - Contraindication: Ear infection, perforated eardrum - Dose: 5-10 cycles before bed or during stress 3. BHASTRIKA (Bellows Breath) - Meaning: "Bellows" (like a blacksmith's bellows) - Technique: Rapid, forceful inhalation AND exhalation through nose, 1:1 ratio, 30-60 breaths/min - Mechanism: Hyperventilation effect, thoracic pump activation, sympathoadrenal stimulation followed by deep calm - Indications: Fatigue, sluggishness, low mood, pre-performance activation - Contraindication: Hypertension, epilepsy, cardiac arrhythmias, pregnancy, glaucoma - Dose: 3 rounds of 10-20 breaths with rest between 4. KAPALBHATI (Skull-Shining Breath) - Meaning: "Skull brightening/shining" - Technique: Passive inhalation + sharp, forceful EXHALATION only (abdominal pump), inhalation is passive recoil - Mechanism: Abdominal organ massage, lymphatic stimulation, CO2 purging, activates rectus abdominis - Indications: Digestive health, sinus clearing, weight management support, energy - Contraindication: Hypertension, hernia, recent abdominal surgery, pregnancy, GERD - Dose: 30 pumps x 3 rounds, gradually increase 5. UJJAYI (Victorious/Ocean Breath) - Meaning: "Victorious" or "ocean sound" - Technique: Slight constriction at glottis creating soft ocean/Darth Vader sound, nasal breathing only - Mechanism: Increases airway resistance, activates baroreceptors, prolongs exhalation, reduces respiratory rate to 2-4 breaths/min in advanced practice - Indications: COPD (pursed lip breathing analog), anxiety, improving breath endurance, meditation, asthma - Contraindication: None significant; avoid in acute respiratory distress - Dose: Used throughout yoga practice; 5-10 min standalone 6. SITALI / SITKARI (Cooling Breath) - Meaning: "Cooling/hissing" - Technique: Sitali - roll tongue into tube, inhale through tongue, exhale nose. Sitkari - teeth together, inhale through teeth making "sss" sound, exhale nose - Mechanism: Evaporative cooling effect, pitta-pacifying, reduces body temperature - Indications: Excess heat, fever, acid reflux, anger/irritability, pitta imbalance (Ayurvedic) - Contraindication: Cold climate, asthma (cold air trigger), low blood pressure - Dose: 8-16 rounds in summer/heat 7. SAMA VRITTI (Box/Equal Breathing) - Meaning: "Equal fluctuation" - Technique: Inhale 4 counts → Hold 4 counts → Exhale 4 counts → Hold 4 counts (box pattern) - Mechanism: Activates prefrontal cortex via breath-brain coupling, reduces amygdala reactivity, balances ANS - Indications: Panic attacks, exam/performance anxiety, insomnia, PTSD, emotional dysregulation - Contraindication: Severe asthma (breath holds), advanced COPD - Dose: 5-10 cycles; used in military (US Navy SEALs protocol) 8. DIRGHA PRANAYAMA (Three-Part Breath) - Meaning: "Complete/long breath" - Technique: 1) Fill belly first → 2) Expand ribcage → 3) Lift chest/clavicles → reverse on exhale - Mechanism: Maximizes tidal volume, activates all three lobes of lungs, stimulates diaphragm fully - Indications: Beginners, COPD, post-COVID breathlessness, anxiety, atelectasis prevention - Contraindication: Very few; progress slowly in elderly - Dose: 5-10 cycles as foundation practice, morning and evening **LIVE PRACTICE SEGMENT (2:45-3:00)** - Guided practice of 3 techniques: Nadi Shodhana (5 cycles) + Bhramari (5 cycles) + Sama Vritti (5 cycles) - Participants check in: How do you feel? (poll) **BREAK 2: 15 MINUTES (3:00-3:15) — MINDFUL MOVEMENT BREAK** **MODULE 4: CLINICAL APPLICATIONS & EVIDENCE (3:15-3:55)** - 3:15-3:25 → Evidence Overview: What the research says * Hypertension: Meta-analysis shows slow pranayama reduces SBP by 5-8 mmHg (comparable to one antihypertensive) * Anxiety/Stress: RCTs show Nadi Shodhana, Bhramari reduce salivary cortisol, HAM-A scores * COPD: Pursed lip breathing + Ujjayi improve exercise tolerance, reduce dyspnea (Borg scale) * Post-COVID: Pranayama improves SpO2, dyspnea, fatigue in long COVID (PMID: 38137060 framework) * Insomnia: Bhramari + Nadi Shodhana before sleep improve sleep onset and quality * Cancer care: Pranayama reduces chemotherapy-related fatigue, improves QoL * Cardiovascular: Yoga breathing improves HRV, reduces LDL, improves endothelial function (PMID: 37582455) * Surgical recovery: Pranayama post-laparoscopic surgery reduces pain and improves sleep (PMID: 39870367) - 3:25-3:35 → Condition-specific breath prescriptions (table): | Condition | First Choice | Second Choice | Avoid | |-----------|-------------|---------------|-------| | Hypertension | Nadi Shodhana | Bhramari | Bhastrika, Kapalbhati | | Anxiety/Panic | Sama Vritti | Bhramari | Bhastrika | | COPD/Asthma | Ujjayi + Dirgha | Pursed lip | Bhastrika, Kapalbhati | | Insomnia | Bhramari | Nadi Shodhana | Bhastrika | | Fatigue/Low energy | Bhastrika (mild) | Kapalbhati | None with caution | | Post-COVID | Dirgha | Ujjayi | Bhastrika initially | | Diabetes | Kapalbhati | Nadi Shodhana | - | | Mental fog | Nadi Shodhana | Bhastrika (mild) | - | - 3:35-3:45 → Special Populations: Pregnancy (avoid Bhastrika, Kapalbhati; Nadi Shodhana safe), Children (simplified), Elderly (slower ratios), Post-surgical (Dirgha only initially) - 3:45-3:55 → When NOT to practice: Red flags, warning signs, medical clearance criteria **MODULE 5: BUILDING YOUR BREATH PRACTICE (3:55-4:30)** - 3:55-4:05 → The BREATH Framework for Self-Prescription: B - Baseline assessment (BOLT score, respiratory rate, HRV) R - Recognize your pattern (shallow/fast/nasal/mouth breather?) E - Establish a routine (morning activation vs evening restoration) A - Apply the right technique for your condition T - Track your progress (diary, wearables) H - Habit stack with existing routines - 4:05-4:15 → Designing your personal 21-day pranayama program: * Week 1: Awareness only (Dirgha 5 min + 5-min Nadi Shodhana) * Week 2: Add one condition-specific technique * Week 3: Full sequence 20 min/day (warm-up + main + cool-down) - 4:15-4:25 → FINAL GUIDED PRACTICE: Full 10-minute sequence * 2 min Dirgha (warm-up) * 3 min Nadi Shodhana * 3 min Bhramari * 2 min Sama Vritti (cool-down) - 4:25-4:30 → Closing: Key takeaways, resources, Q&A **BREAK 3 / OPEN Q&A: 4:30-4:30 (last 30 min flex)** ### SECTION 4: FACILITATOR PREPARATION CHECKLIST Pre-webinar (1 week before): - [ ] Confirm co-facilitator schedule and role division - [ ] Test all tech (Zoom/Teams, screen share, polls, breakout rooms) - [ ] Prepare slide deck (sent to participants 24h before) - [ ] Create participant workbook PDF - [ ] Set up registration with intake form (health conditions, goals) - [ ] Prepare emergency protocol (participant medical event during practice) - [ ] Brief all participants: medical disclaimer, when to stop practicing Day of webinar: - [ ] Login 30 min early - [ ] Test audio, video, screen share - [ ] Load all polls - [ ] Prepare water, timer - [ ] Have participant list ready for attendance Post-webinar: - [ ] Send recording link within 24h - [ ] Share resource PDF (technique reference card) - [ ] 3-day and 21-day follow-up email sequence - [ ] Collect feedback (NPS survey) - [ ] Issue CE certificates ### SECTION 5: PARTICIPANT WORKBOOK OUTLINE - Personal breath baseline (BOLT score worksheet) - Technique quick-reference table (all 8 techniques on one page) - My breath prescription worksheet - 21-day practice tracker - Recommended reading & apps (Breathwrk, BreathPacer, Welltory for HRV) - Emergency contacts / when to seek medical help ### SECTION 6: MEDICAL DISCLAIMER & SAFETY FRAMEWORK Full medical disclaimer text, safety guidelines, red flags to stop practicing, when to seek medical clearance, emergency protocol during live sessions. ### SECTION 7: RESOURCES & REFERENCES - Key PubMed references: PMID 38137060, PMID 37582455, PMID 39870367, PMID 34812995 - Recommended textbooks: Fishman's Pulmonary Diseases, Murray & Nadel's Textbook of Respiratory Medicine - Classic yoga texts: Yoga Sutras of Patanjali, Hatha Yoga Pradipika, Light on Pranayama (BKS Iyengar) --- FORMAT REQUIREMENTS: - Use professional navy blue (#1B3A6B) for headings - Include a styled cover page - Use tables for the condition-specific prescriptions and checklist sections - Add page numbers in footer - Add "CONFIDENTIAL - FACILITATOR COPY" in header - Document should be ~20-25 pages when rendered - Use the docx npm library as instructed in the skill After creating, validate the file and return the exact file path.

general-purpose

Create a professional PowerPoint presentation (.pptx) for a half-day online webinar on Pranayama/Breathwork, titled "The Science & Soul of Breath" from the perspective of an expert pulmonologist and yoga therapist. Save the file to: /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Slides.pptx First, read the PPTX skill at /home/daytona/skills/pptx/SKILL.md (limit=1000), then read /home/daytona/skills/pptx/pptxgenjs.md (limit=1000) to understand how to create the file using pptxgenjs. DESIGN REQUIREMENTS: - Color palette: Deep navy (#0D2137) as dominant background for title/section slides, warm white (#F8F5EE) for content slides, teal accent (#2BBFB3), gold accent (#E8B84B) - Font: Use "Calibri" or "Arial" - Each slide should be visually distinct with a clear hierarchy - NO plain white-text-on-white-background slides - Use shapes, accent bars, and color blocks to make slides visually rich - 16:9 layout CREATE THESE 30 SLIDES: SLIDE 1 - TITLE SLIDE (dark navy bg #0D2137) - Main title: "The Science & Soul of Breath" - Subtitle: "A Pulmonologist's Guide to Pranayama" - Tag: "Half-Day Online Webinar | Mixed Audience" - Bottom accent bar in teal SLIDE 2 - AGENDA OVERVIEW (white bg with navy sidebar) - Title: "Today's Journey" - 5 modules listed with teal bullet circles and time stamps - Module 1: Welcome & Foundations (0:00-0:45) - Module 2: Science of Breath (0:45-1:45) - Module 3: Pranayama Pharmacopoeia (1:55-3:00) - Module 4: Clinical Applications (3:15-3:55) - Module 5: Your Breath Practice (3:55-4:30) SLIDE 3 - LEARNING OBJECTIVES (teal accent left bar, white bg) - Title: "What You'll Take Home" - 6 objectives in clean bullet list with checkmark icons (use ✓ symbol) - Keep text concise SLIDE 4 - SECTION DIVIDER: MODULE 1 (full navy bg) - Large text: "MODULE 1" - Sub: "Welcome & Foundations" - Time: "0:00 – 0:45" SLIDE 5 - WHAT IS PRANAYAMA? (white bg) - Title: "What Is Pranayama?" - Left column: Etymology box (Prana = Life Force + Ayama = Expansion/Regulation) - Right column: Historical context (Patanjali 400 BCE, Hatha Yoga Pradipika 15th CE, Modern science 21st CE) - Bottom: "The 4th limb of Patanjali's 8-limbed yoga path" SLIDE 6 - RESPIRATORY ANATOMY SIMPLIFIED (white bg with diagram description) - Title: "Your Breathing Machine - Simplified" - 4 key components in colored boxes: Nose/Airway (filter & humidify) → Trachea & Bronchi (highways) → Lungs/Alveoli (gas exchange) → Diaphragm (the engine) - Fun analogy text: "Think of your lungs as a sponge and your diaphragm as a piston pump" SLIDE 7 - BASELINE BREATH AWARENESS PRACTICE (dark teal bg #1B7A74) - Title: "LIVE PRACTICE: Breath Awareness" - Big text center: "3 Minutes" - Instructions listed: 1. Sit comfortably, spine tall 2. Close your eyes 3. Simply observe your natural breath 4. Count your breaths per minute - Bottom: "No changing, no controlling. Just witnessing." SLIDE 8 - SECTION DIVIDER: MODULE 2 (full navy bg) - Large text: "MODULE 2" - Sub: "The Science of Breath" - Time: "0:45 – 1:45" SLIDE 9 - THE AUTONOMIC NERVOUS SYSTEM (white bg) - Title: "Your Internal Autopilot" - Two columns side by side: LEFT (red toned box): SYMPATHETIC "Fight or Flight" - Fast breathing, shallow, chest, pupils dilate, heart races RIGHT (green toned box): PARASYMPATHETIC "Rest & Digest" - Slow breathing, deep, belly, heart calms, digestion activates - Center: Arrow showing "BREATH IS THE BRIDGE" SLIDE 10 - HEART RATE VARIABILITY (white bg) - Title: "HRV: Your Stress Fingerprint" - Simple definition: "The variation in time between heartbeats. Higher HRV = greater resilience & health" - Key finding box (gold): "Slow breathing at 5-6 breaths/min maximizes HRV and activates the vagus nerve" - Bottom: "Reference: Lehrer & Gevirtz, Applied Psychophysiology 2014" SLIDE 11 - BIOCHEMISTRY OF BREATH (white bg with accent) - Title: "O2, CO2, and the Bohr Effect" - 3 key facts in numbered boxes: 1. "CO2 is NOT just waste - it regulates oxygen release from hemoglobin" 2. "Over-breathing lowers CO2 → blood vessels constrict → less O2 to brain" 3. "Optimal breathing = nasal, slow, diaphragmatic, 8-12 breaths/min" - Bohr Effect explained simply: "More CO2 = more O2 released to tissues" SLIDE 12 - BOLT SCORE TEST (teal bg) - Title: "LIVE TEST: Your BOLT Score" - Steps: 1. Breathe normally through nose for 1 min 2. Take a normal exhale 3. Pinch your nose 4. Count seconds until FIRST urge to breathe 5. That's your BOLT score! - Score guide: <10 sec = poor | 10-20 = average | 20-40 = good | >40 = excellent SLIDE 13 - SECTION DIVIDER: MODULE 3 (full navy bg) - Large text: "MODULE 3" - Sub: "The Pranayama Pharmacopoeia" - Tagline: "8 Techniques. 8 Prescriptions." - Time: "1:55 – 3:00" SLIDE 14 - NADI SHODHANA (white bg, teal left bar) - Title: "1. Nadi Shodhana | Alternate Nostril Breathing" - Meaning: "'Channel Cleansing'" - 4 sections: Technique | Mechanism | Indications | Dose - Technique: R hand, close right nostril → inhale left → close both → exhale right → inhale right → exhale left - Mechanism: Balances brain hemispheres, reduces sympathetic tone - Indications: Anxiety, hypertension, migraine, pre-sleep - Dose: 5-10 cycles | Ratio 1:2 (inhale:exhale) - Contraindication badge (red): Severe nasal congestion SLIDE 15 - BHRAMARI (white bg, gold left bar) - Title: "2. Bhramari | Humming Bee Breath" - Meaning: "'The Humming Bee'" - Science highlight: "Generates endogenous Nitric Oxide in nasal sinuses" - Technique: Plug ears, hum on exhale - Indications: Insomnia, anxiety, tinnitus, hypertension - Dose: 5-10 cycles before bed SLIDE 16 - BHASTRIKA & KAPALBHATI (white bg split layout) - Left half: "3. Bhastrika | Bellows Breath" - Rapid forced IN and OUT, sympathoadrenal activation, energy booster - Right half: "4. Kapalbhati | Skull-Shining" - Passive in + sharp out, abdominal pump, digestive stimulation - Red warning bar at bottom: "AVOID in: hypertension, epilepsy, pregnancy, GERD, cardiac conditions" SLIDE 17 - UJJAYI (white bg, teal accent) - Title: "5. Ujjayi | The Victorious Breath" - Subtitle: "The 'Ocean Sound' Breath" - Key feature: Glottal constriction creating resistance - Benefits callout: "Clinical analog to Pursed Lip Breathing in COPD" - Rate: "Reduces RR to 2-4 breaths/min in advanced practitioners" - Dose: Throughout yoga practice or 5-10 min standalone SLIDE 18 - SITALI/SITKARI & SAMA VRITTI (white bg split) - Left: "6. Sitali/Sitkari | Cooling Breath" - Rolled tongue or teeth inhalation, evaporative cooling, pitta-balancing - Right: "7. Sama Vritti | Box Breathing" - 4-4-4-4 pattern, prefrontal cortex activation, used by US Navy SEALs - Box Breathing visual diagram (draw a box with arrows using shapes) SLIDE 19 - DIRGHA PRANAYAMA (white bg, gold accent) - Title: "8. Dirgha Pranayama | Three-Part Breath" - Subtitle: "The Foundation Practice" - Three zones diagram: Zone 1: BELLY (diaphragm) → fills first Zone 2: RIBCAGE (intercostals) → expands second Zone 3: CHEST/CLAVICLES → lifts last - Best for: Beginners, COPD, Post-COVID, Anxiety, Morning practice SLIDE 20 - LIVE PRACTICE: TRIO SESSION (dark teal bg) - Title: "LIVE PRACTICE: The Calming Trio" - 3 techniques with timings: 🌀 Nadi Shodhana - 5 cycles (3 min) 🐝 Bhramari - 5 cycles (3 min) ⬜ Sama Vritti - 5 cycles (3 min) - Bottom: "How do you feel now? Take the poll ↓" SLIDE 21 - SECTION DIVIDER: MODULE 4 (full navy bg) - Large text: "MODULE 4" - Sub: "Clinical Applications & Evidence" - Time: "3:15 – 3:55" SLIDE 22 - EVIDENCE OVERVIEW (white bg) - Title: "What Does the Research Say?" - 6 condition bubbles or boxes (can use colored rectangles): 💊 Hypertension: Slow pranayama reduces SBP 5-8 mmHg 🧠 Anxiety/Stress: Reduces cortisol, HAM-A scores (RCTs) 🫁 COPD: Ujjayi improves exercise tolerance, reduces dyspnea 😴 Insomnia: Bhramari + Nadi Shodhana improve sleep onset 🦠 Post-COVID: Improves SpO2, dyspnea, fatigue ❤️ Cardiovascular: Improves HRV, reduces LDL SLIDE 23 - CONDITION-SPECIFIC PRESCRIPTION TABLE (white bg) - Title: "Your Breath Prescription" - Clean table with 4 columns: Condition | First Choice | Second Choice | Avoid - 8 conditions: Hypertension, Anxiety/Panic, COPD/Asthma, Insomnia, Fatigue, Post-COVID, Diabetes, Mental Fog - Use alternating row colors (white and light teal) SLIDE 24 - SPECIAL POPULATIONS (white bg with 4 color boxes) - Title: "Special Considerations" - 4 boxes: 🤰 Pregnancy: Nadi Shodhana safe | AVOID: Bhastrika, Kapalbhati, breath holds 👶 Children: Bhramari + Dirgha only | Simplified counting, game-based 👴 Elderly: Slower ratios, seated, no retentions initially 🏥 Post-surgical: Dirgha only initially | build gradually over 4-6 weeks SLIDE 25 - RED FLAGS (dark red/maroon bg #8B0000) - Title: "STOP Practicing If..." - White text, 6 red flags: 🚨 Dizziness or lightheadedness 🚨 Chest pain or tightness 🚨 Palpitations or irregular heartbeat 🚨 Numbness or tingling in face/hands 🚨 Fainting or near-fainting 🚨 Uncontrolled hypertension (SBP >160) - Bottom: "Always seek medical clearance if you have a chronic condition" SLIDE 26 - SECTION DIVIDER: MODULE 5 (full navy bg) - Large text: "MODULE 5" - Sub: "Building Your Breath Practice" - Time: "3:55 – 4:30" SLIDE 27 - THE BREATH FRAMEWORK (white bg with teal accent) - Title: "The B.R.E.A.T.H. Framework" - Acronym breakdown in colored boxes: B - Baseline (assess BOLT score, RR, HRV) R - Recognize your pattern (mouth/chest/fast breather?) E - Establish routine (AM activation vs PM restoration) A - Apply right technique for your condition T - Track progress (journal, wearables) H - Habit stack with existing routines SLIDE 28 - 21-DAY PROGRAM (white bg, timeline layout) - Title: "Your 21-Day Breath Journey" - 3 week phases: WEEK 1 (teal box): Awareness | Dirgha 5 min + Nadi Shodhana 5 min | Goal: establish habit WEEK 2 (gold box): Application | Add condition-specific technique | 15 min/day WEEK 3 (navy box): Integration | Full 20-min sequence | Morning + evening SLIDE 29 - FINAL PRACTICE (dark teal bg) - Title: "FINAL LIVE PRACTICE: 10 Minutes Together" - Sequence: 2 min → Dirgha Pranayama (warm up) 3 min → Nadi Shodhana (balance) 3 min → Bhramari (calm) 2 min → Sama Vritti (integrate) - "Close your eyes. Trust your breath." SLIDE 30 - CLOSING SLIDE (full navy bg) - Title: "Key Takeaways" - 5 takeaways in gold: ✓ Breath is the only autonomic function you can consciously control ✓ Pranayama changes your brain, heart, and lungs - backed by science ✓ Right technique for right condition = safe & effective ✓ Start slow: 5 minutes daily is enough to begin ✓ Your breath is always with you - use it - Bottom: "Thank you | Q&A | Resources" - Teal accent bar at bottom with: "© 2026 | Certificate of completion available" --- TECHNICAL NOTES: - Use pptxgenjs as instructed in the skill - Color all section divider slides with full dark navy background and light text - Content slides have white/cream backgrounds with accent bars - Practice slides have dark teal backgrounds - Keep font sizes: Title 36-44pt, body 16-20pt, notes 12-14pt - Save to /home/daytona/workspace/pranayama-webinar/ directory (create it if needed) - After creating, confirm file path and file size Return the exact file path when done.

Reading File
Reading File
Reading File
Running Command

mkdir -p /home/daytona/workspace/pranayama-webinar && npm list -g docx 2>/dev/null | head -5 || npm install -g docx 2>&1 | tail -5

Running Command

mkdir -p /home/daytona/workspace/pranayama-webinar && ls /home/daytona/workspace/pranayama-webinar

Writing File

~/pranayama-webinar/generate.js

"use strict";
const fs = require("fs");
const {
  Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
  Header, Footer, AlignmentType, LevelFormat, HeadingLevel, BorderStyle,
  WidthType, ShadingType, VerticalAlign, PageNumber, PageBreak,
  TableOfContents, TabStopType, TabStopPosition
} = require("docx");

// ─── Colour palette ──────────────────────────────────────────────────────────
const NAVY   = "1B3A6B";   // primary heading colour
const TEAL   = "1B7A8A";   // secondary / module headers
const GOLD   = "C8952A";   // accent (callout borders)
const LTBLUE = "D6E4F0";   // header cell fill
const LTGOLD = "FFF8E7";   // callout box fill
const LTGRN  = "E8F5E9";   // tip / green callout
const LTRED  = "FDEDEC";   // warning / red callout
const WHITE  = "FFFFFF";
const LGRAY  = "F2F2F2";   // alternate row fill

// ─── Reusable border helpers ──────────────────────────────────────────────────
const border     = (color="CCCCCC", size=6) => ({ style: BorderStyle.SINGLE, size, color });
const noBorder   = () => ({ style: BorderStyle.NONE, size: 0, color: "FFFFFF" });
const allBorders = (color="CCCCCC", size=6) => ({ top: border(color,size), bottom: border(color,size), left: border(color,size), right: border(color,size) });
const noBorders  = () => ({ top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder() });

// ─── Page / content metrics (US Letter, 1" margins) ──────────────────────────
const PAGE_W = 12240;
const PAGE_H = 15840;
const MARGIN = 1440;
const CONTENT_W = PAGE_W - 2 * MARGIN;  // 9360 DXA

// ─── Shared run helpers ───────────────────────────────────────────────────────
const run  = (text, opts={}) => new TextRun({ text, font:"Arial", ...opts });
const bold = (text, opts={}) => run(text, { bold:true, ...opts });

// ─── Paragraph helpers ────────────────────────────────────────────────────────
const para = (children, opts={}) =>
  new Paragraph({ children: Array.isArray(children)?children:[children], font:"Arial", ...opts });

const spacer = (before=120, after=120) =>
  new Paragraph({ children:[run("")], spacing:{before,after} });

const h1 = (text) => new Paragraph({
  heading: HeadingLevel.HEADING_1,
  children: [new TextRun({ text, bold:true, color: NAVY, font:"Arial", size:36 })],
  spacing: { before: 360, after: 180 },
  border: { bottom: { style: BorderStyle.SINGLE, size: 8, color: NAVY, space: 4 } }
});

const h2 = (text) => new Paragraph({
  heading: HeadingLevel.HEADING_2,
  children: [new TextRun({ text, bold:true, color: NAVY, font:"Arial", size:28 })],
  spacing: { before: 300, after: 120 },
});

const h3 = (text) => new Paragraph({
  heading: HeadingLevel.HEADING_3,
  children: [new TextRun({ text, bold:true, color: TEAL, font:"Arial", size:24 })],
  spacing: { before: 240, after: 80 },
});

const h4 = (text) => new Paragraph({
  heading: HeadingLevel.HEADING_4,
  children: [new TextRun({ text, bold:true, color: TEAL, font:"Arial", size:22 })],
  spacing: { before: 180, after: 60 },
});

const bodyPara = (text, opts={}) => new Paragraph({
  children: [run(text, { size:22 })],
  spacing: { before:60, after:80 },
  ...opts
});

const bulletItem = (text, level=0) => new Paragraph({
  numbering: { reference:"bullets", level },
  children: [run(text, { size:22 })],
  spacing: { before:40, after:40 }
});

const numberedItem = (text, ref="numbers") => new Paragraph({
  numbering: { reference: ref, level:0 },
  children: [run(text, { size:22 })],
  spacing: { before:60, after:60 }
});

const checkItem = (text) => new Paragraph({
  numbering: { reference:"checks", level:0 },
  children: [run(text, { size:22 })],
  spacing: { before:40, after:40 }
});

const pageBreak = () => new Paragraph({ children:[new PageBreak()] });

// ─── Callout box (single-cell table) ─────────────────────────────────────────
function callout(children, bgColor=LTBLUE, borderColor=NAVY, label=null) {
  const cellChildren = [];
  if (label) {
    cellChildren.push(new Paragraph({
      children:[new TextRun({ text: label, bold:true, color: NAVY, font:"Arial", size:22 })],
      spacing:{ before:0, after:80 }
    }));
  }
  cellChildren.push(...children);
  return new Table({
    width: { size: CONTENT_W, type: WidthType.DXA },
    columnWidths: [CONTENT_W],
    rows: [
      new TableRow({ children:[
        new TableCell({
          borders: allBorders(borderColor, 12),
          width: { size: CONTENT_W, type: WidthType.DXA },
          shading: { fill: bgColor, type: ShadingType.CLEAR },
          margins: { top:160, bottom:160, left:200, right:200 },
          children: cellChildren
        })
      ]})
    ]
  });
}

// ─── Standard data table helper ───────────────────────────────────────────────
function makeTable(headers, rows, colWidths) {
  const total = colWidths.reduce((a,b)=>a+b,0);
  const hdrRow = new TableRow({
    tableHeader: true,
    children: headers.map((h,i) =>
      new TableCell({
        borders: allBorders(NAVY, 8),
        width: { size: colWidths[i], type: WidthType.DXA },
        shading: { fill: LTBLUE, type: ShadingType.CLEAR },
        margins: { top:100, bottom:100, left:120, right:120 },
        verticalAlign: VerticalAlign.CENTER,
        children: [new Paragraph({ children:[new TextRun({ text:h, bold:true, font:"Arial", size:20, color: NAVY })], spacing:{before:0,after:0} })]
      })
    )
  });
  const dataRows = rows.map((row, ri) =>
    new TableRow({ children: row.map((cell,ci) =>
      new TableCell({
        borders: allBorders("CCCCCC", 4),
        width: { size: colWidths[ci], type: WidthType.DXA },
        shading: { fill: ri%2===0? WHITE: LGRAY, type: ShadingType.CLEAR },
        margins: { top:80, bottom:80, left:120, right:120 },
        children: [new Paragraph({ children:[run(cell, { size:20 })], spacing:{before:0,after:0} })]
      })
    )})
  );
  return new Table({
    width: { size: total, type: WidthType.DXA },
    columnWidths: colWidths,
    rows: [hdrRow, ...dataRows]
  });
}

// ─── Section divider ─────────────────────────────────────────────────────────
function sectionDivider(title) {
  return [
    spacer(240,0),
    new Paragraph({
      children: [new TextRun({ text: title, bold:true, color:WHITE, font:"Arial", size:26 })],
      shading: { fill: NAVY, type: ShadingType.CLEAR },
      alignment: AlignmentType.LEFT,
      spacing: { before:0, after:0 },
      indent: { left:200 },
    }),
    spacer(0,120)
  ];
}

// ─── Pranayama technique card ─────────────────────────────────────────────────
function techniqueCard(num, name, meaning, technique, mechanism, indications, contraindication, dose) {
  const labelCell = (label) => new TableCell({
    borders: allBorders(NAVY,6),
    width: { size: 1800, type: WidthType.DXA },
    shading: { fill: LTBLUE, type: ShadingType.CLEAR },
    margins: { top:80, bottom:80, left:120, right:120 },
    children: [new Paragraph({ children:[new TextRun({ text:label, bold:true, font:"Arial", size:20, color:NAVY })], spacing:{before:0,after:0} })]
  });
  const valueCell = (text, w=7560) => new TableCell({
    borders: allBorders("CCCCCC",4),
    width: { size: w, type: WidthType.DXA },
    shading: { fill: WHITE, type: ShadingType.CLEAR },
    margins: { top:80, bottom:80, left:120, right:120 },
    children: [new Paragraph({ children:[run(text,{size:20})], spacing:{before:0,after:0} })]
  });
  const rows = [
    new TableRow({ children:[
      new TableCell({
        borders: allBorders(NAVY,8),
        width: { size: CONTENT_W, type: WidthType.DXA },
        columnSpan: 2,
        shading: { fill: NAVY, type: ShadingType.CLEAR },
        margins: { top:100, bottom:100, left:160, right:160 },
        children: [new Paragraph({ children:[
          new TextRun({ text:`${num}. ${name}`, bold:true, font:"Arial", size:24, color:WHITE })
        ], spacing:{before:0,after:0} })]
      })
    ]}),
    new TableRow({ children:[ labelCell("Meaning"),       valueCell(meaning) ]}),
    new TableRow({ children:[ labelCell("Technique"),     valueCell(technique) ]}),
    new TableRow({ children:[ labelCell("Mechanism"),     valueCell(mechanism) ]}),
    new TableRow({ children:[ labelCell("Indications"),   valueCell(indications) ]}),
    new TableRow({ children:[ labelCell("Avoid If"),      valueCell(contraindication) ]}),
    new TableRow({ children:[ labelCell("Dose"),          valueCell(dose) ]}),
  ];
  return new Table({ width:{size:CONTENT_W,type:WidthType.DXA}, columnWidths:[1800,7560], rows });
}

// ═══════════════════════════════════════════════════════════════════════════════
//  BUILD DOCUMENT
// ═══════════════════════════════════════════════════════════════════════════════

const doc = new Document({
  // ─── Styles ───────────────────────────────────────────────────────────────
  styles: {
    default: {
      document: { run:{ font:"Arial", size:22 } }
    },
    paragraphStyles: [
      { id:"Heading1", name:"Heading 1", basedOn:"Normal", next:"Normal", quickFormat:true,
        run:{ size:36, bold:true, font:"Arial", color: NAVY },
        paragraph:{ spacing:{before:360,after:180}, outlineLevel:0 } },
      { id:"Heading2", name:"Heading 2", basedOn:"Normal", next:"Normal", quickFormat:true,
        run:{ size:28, bold:true, font:"Arial", color: NAVY },
        paragraph:{ spacing:{before:300,after:120}, outlineLevel:1 } },
      { id:"Heading3", name:"Heading 3", basedOn:"Normal", next:"Normal", quickFormat:true,
        run:{ size:24, bold:true, font:"Arial", color: TEAL },
        paragraph:{ spacing:{before:240,after:80}, outlineLevel:2 } },
      { id:"Heading4", name:"Heading 4", basedOn:"Normal", next:"Normal", quickFormat:true,
        run:{ size:22, bold:true, font:"Arial", color: TEAL },
        paragraph:{ spacing:{before:180,after:60}, outlineLevel:3 } },
    ]
  },

  // ─── Numbering ────────────────────────────────────────────────────────────
  numbering: {
    config: [
      { reference:"bullets",
        levels:[
          { level:0, format:LevelFormat.BULLET, text:"\u2022", alignment:AlignmentType.LEFT,
            style:{ paragraph:{ indent:{ left:720, hanging:360 } }, run:{ font:"Arial", size:22 } } },
          { level:1, format:LevelFormat.BULLET, text:"\u25E6", alignment:AlignmentType.LEFT,
            style:{ paragraph:{ indent:{ left:1080, hanging:360 } }, run:{ font:"Arial", size:22 } } },
        ]},
      { reference:"numbers",
        levels:[{ level:0, format:LevelFormat.DECIMAL, text:"%1.", alignment:AlignmentType.LEFT,
          style:{ paragraph:{ indent:{ left:720, hanging:360 } }, run:{ font:"Arial", size:22 } } }]},
      { reference:"numbers2",
        levels:[{ level:0, format:LevelFormat.DECIMAL, text:"%1.", alignment:AlignmentType.LEFT,
          style:{ paragraph:{ indent:{ left:720, hanging:360 } }, run:{ font:"Arial", size:22 } } }]},
      { reference:"checks",
        levels:[{ level:0, format:LevelFormat.BULLET, text:"\u25A1", alignment:AlignmentType.LEFT,
          style:{ paragraph:{ indent:{ left:720, hanging:360 } }, run:{ font:"Arial", size:22 } } }]},
    ]
  },

  // ─── Sections ─────────────────────────────────────────────────────────────
  sections: [

    // ══════════════════════════════════════════════════════════════════════════
    // SECTION A — COVER PAGE
    // ══════════════════════════════════════════════════════════════════════════
    {
      properties: {
        page: {
          size: { width: PAGE_W, height: PAGE_H },
          margin: { top: MARGIN, right: MARGIN, bottom: MARGIN, left: MARGIN }
        }
      },
      children: [
        // Top decorative band
        new Paragraph({
          children: [run(" ", { size:4 })],
          shading: { fill: NAVY, type: ShadingType.CLEAR },
          spacing: { before:0, after:0 }
        }),
        spacer(400,0),

        // Title
        new Paragraph({
          alignment: AlignmentType.CENTER,
          children: [new TextRun({ text:"The Science & Soul of Breath:", bold:true, color: NAVY, font:"Arial", size:64 })],
          spacing: { before:0, after:80 }
        }),
        new Paragraph({
          alignment: AlignmentType.CENTER,
          children: [new TextRun({ text:"A Pulmonologist's Guide to Pranayama", bold:true, color: NAVY, font:"Arial", size:52 })],
          spacing: { before:0, after:240 }
        }),

        // Gold rule
        new Paragraph({
          children:[run("")],
          border:{ bottom:{ style:BorderStyle.SINGLE, size:12, color:GOLD, space:1 } },
          spacing:{ before:0, after:240 }
        }),

        // Tagline
        new Paragraph({
          alignment: AlignmentType.CENTER,
          children: [new TextRun({ text:'"Ancient Wisdom. Modern Science. One Breath at a Time."', italics:true, color: TEAL, font:"Arial", size:30 })],
          spacing: { before:0, after:360 }
        }),

        // Subtitle badge
        new Table({
          width:{ size:6000, type:WidthType.DXA },
          columnWidths:[6000],
          rows:[new TableRow({ children:[new TableCell({
            borders: allBorders(GOLD,12),
            width:{ size:6000, type:WidthType.DXA },
            shading:{ fill: LTGOLD, type:ShadingType.CLEAR },
            margins:{ top:160, bottom:160, left:200, right:200 },
            children:[
              new Paragraph({ alignment:AlignmentType.CENTER,
                children:[new TextRun({ text:"Half-Day Online Webinar Blueprint", bold:true, color:NAVY, font:"Arial", size:28 })],
                spacing:{before:0,after:60} }),
              new Paragraph({ alignment:AlignmentType.CENTER,
                children:[new TextRun({ text:"Mixed Audience Edition", italics:true, color:GOLD, font:"Arial", size:24 })],
                spacing:{before:0,after:0} }),
            ]
          })]})]
        }),
        spacer(360,0),

        // Quick-stats row
        new Table({
          width:{ size:CONTENT_W, type:WidthType.DXA },
          columnWidths:[2340,2340,2340,2340],
          rows:[new TableRow({ children:[
            ...[
              ["Duration","4.5 Hours"],
              ["Format","Online / Virtual"],
              ["Max Participants","100–150"],
              ["CE Credits","1 CME/CNE per hour"]
            ].map(([label,val]) => new TableCell({
              borders: allBorders(NAVY,8),
              width:{ size:2340, type:WidthType.DXA },
              shading:{ fill:LTBLUE, type:ShadingType.CLEAR },
              margins:{ top:120,bottom:120,left:120,right:120 },
              children:[
                new Paragraph({ alignment:AlignmentType.CENTER,
                  children:[new TextRun({ text:label, bold:true, color:NAVY, font:"Arial", size:18 })], spacing:{before:0,after:40} }),
                new Paragraph({ alignment:AlignmentType.CENTER,
                  children:[new TextRun({ text:val, color:TEAL, font:"Arial", size:20 })], spacing:{before:0,after:0} }),
              ]
            }))
          ]})]
        }),

        spacer(600,0),

        // Footer credits on cover
        new Paragraph({
          alignment: AlignmentType.CENTER,
          children:[new TextRun({ text:"Co-facilitated by: Expert Pulmonologist + Certified Yoga Therapist", bold:false, color:"666666", font:"Arial", size:20 })],
          spacing:{before:0,after:80}
        }),
        new Paragraph({
          alignment: AlignmentType.CENTER,
          children:[new TextRun({ text:"CONFIDENTIAL — FACILITATOR COPY", bold:true, color: NAVY, font:"Arial", size:20 })],
          spacing:{before:0,after:0}
        }),
        spacer(240,0),
        new Paragraph({
          children:[run("")],
          border:{ top:{ style:BorderStyle.SINGLE, size:12, color: NAVY, space:1 } },
          spacing:{before:0,after:0}
        }),

        pageBreak()
      ]
    },

    // ══════════════════════════════════════════════════════════════════════════
    // SECTION B — MAIN DOCUMENT (TOC + all sections)
    // ══════════════════════════════════════════════════════════════════════════
    {
      properties: {
        page: {
          size: { width: PAGE_W, height: PAGE_H },
          margin: { top: 1300, right: MARGIN, bottom: 1300, left: MARGIN }
        }
      },

      // ── Header ──────────────────────────────────────────────────────────────
      headers: {
        default: new Header({
          children: [
            new Paragraph({
              children: [
                new TextRun({ text:"CONFIDENTIAL — FACILITATOR COPY", bold:true, color: NAVY, font:"Arial", size:18 }),
                new TextRun({ text:"\t", font:"Arial", size:18 }),
                new TextRun({ text:"The Science & Soul of Breath | Pranayama Webinar Blueprint", color:"666666", font:"Arial", size:18 }),
              ],
              tabStops:[{ type:TabStopType.RIGHT, position: TabStopPosition.MAX }],
              border:{ bottom:{ style:BorderStyle.SINGLE, size:6, color: NAVY, space:2 } },
              spacing:{ before:0, after:80 }
            })
          ]
        })
      },

      // ── Footer ──────────────────────────────────────────────────────────────
      footers: {
        default: new Footer({
          children: [
            new Paragraph({
              children:[
                new TextRun({ text:"Page ", font:"Arial", size:18, color:"666666" }),
                new TextRun({ children:[PageNumber.CURRENT], font:"Arial", size:18, color:"666666" }),
                new TextRun({ text:" of ", font:"Arial", size:18, color:"666666" }),
                new TextRun({ children:[PageNumber.TOTAL_PAGES], font:"Arial", size:18, color:"666666" }),
                new TextRun({ text:"\t", font:"Arial", size:18 }),
                new TextRun({ text:"© 2025 | For Facilitator Use Only", color:"999999", font:"Arial", size:18, italics:true }),
              ],
              tabStops:[{ type:TabStopType.RIGHT, position:TabStopPosition.MAX }],
              border:{ top:{ style:BorderStyle.SINGLE, size:6, color: NAVY, space:2 } },
              spacing:{ before:80, after:0 }
            })
          ]
        })
      },

      children: [

        // ─────────────────────────────────────────────────────────────────────
        // TABLE OF CONTENTS PAGE
        // ─────────────────────────────────────────────────────────────────────
        h1("Table of Contents"),
        new TableOfContents("Table of Contents", { hyperlink:true, headingStyleRange:"1-3" }),
        pageBreak(),

        // ─────────────────────────────────────────────────────────────────────
        // SECTION 1: WEBINAR AT A GLANCE
        // ─────────────────────────────────────────────────────────────────────
        h1("Section 1: Webinar At a Glance"),

        callout([
          new Paragraph({ children:[new TextRun({ text:"Quick-Reference Overview", bold:true, color:NAVY, font:"Arial", size:24 })], spacing:{before:0,after:120} }),
          makeTable(
            ["Field","Details"],
            [
              ["Webinar Title",    "The Science & Soul of Breath: A Pulmonologist's Guide to Pranayama"],
              ["Tagline",         "Ancient Wisdom. Modern Science. One Breath at a Time."],
              ["Duration",        "4.5 hours (including breaks)"],
              ["Format",          "Online — Zoom / Microsoft Teams / Google Meet"],
              ["Target Audience", "General public, healthcare professionals, yoga practitioners"],
              ["Facilitators",    "Expert Pulmonologist + Certified Yoga Therapist (co-facilitated)"],
              ["Max Participants","100–150 (breakout rooms for guided practice sessions)"],
              ["Platform Needs",  "Webcam recommended, quiet space, yoga mat/cushion optional"],
              ["CE Credits",      "Available for healthcare professionals — 1 CME/CNE credit per hour"],
            ],
            [2800, 6560]
          )
        ], LTBLUE, NAVY),

        spacer(),

        h2("Platform & Technical Requirements"),
        makeTable(
          ["Requirement","Specification"],
          [
            ["Video Platform",  "Zoom / Microsoft Teams / Google Meet (host licence required)"],
            ["Participant Cam", "Webcam recommended but not mandatory"],
            ["Audio",           "Headset/earbuds preferred for guided breathwork; quiet environment essential"],
            ["Practice Space",  "Yoga mat, cushion, or chair; loose comfortable clothing"],
            ["Polls & Chat",    "Platform polling feature (Mentimeter/Slido as backup)"],
            ["Breakout Rooms",  "Up to 25 rooms of 4–6 participants for practice segments"],
            ["Recording",       "Session recorded for CE credit documentation and replay access"],
            ["Bandwidth",       "Minimum 10 Mbps download / 3 Mbps upload recommended"],
          ],
          [3200, 6160]
        ),

        spacer(240, 120),
        pageBreak(),

        // ─────────────────────────────────────────────────────────────────────
        // SECTION 2: LEARNING OBJECTIVES
        // ─────────────────────────────────────────────────────────────────────
        h1("Section 2: Learning Objectives"),

        bodyPara("By the end of this webinar, participants will be able to:"),
        spacer(40,40),

        ...[
          "Explain the anatomy and physiology of the respiratory system in simple, accessible terms",
          "Understand how pranayama influences the autonomic nervous system — specifically vagal tone and Heart Rate Variability (HRV)",
          "Describe at least 8 classical pranayama techniques, including their physiological mechanisms and clinical effects",
          "Identify clinical evidence supporting pranayama for hypertension, anxiety, COPD, insomnia, post-COVID recovery, and stress management",
          "Safely practice 5 core pranayama techniques under live expert guidance",
          "Recognise contraindications and identify when NOT to practise specific techniques (special populations and medical conditions)",
          "Apply a personalised Breath Prescription Framework (the BREATH model) to their own health needs and goals",
        ].map((obj, i) => new Paragraph({
          numbering:{ reference:"numbers", level:0 },
          children:[run(obj,{size:22})],
          spacing:{before:80,after:80}
        })),

        spacer(120,40),

        callout([
          new Paragraph({ children:[new TextRun({ text:"CE Credit Note for Healthcare Professionals", bold:true, color:NAVY, font:"Arial", size:22 })], spacing:{before:0,after:80} }),
          bodyPara("Continuing Education (CE) credits are available at 1 CME/CNE credit per contact hour (up to 4.5 credits). Participants must: (1) attend the full session, (2) complete the post-webinar assessment, and (3) submit the online feedback form. Certificates will be issued within 5 business days via email."),
        ], LTGRN, TEAL, null),

        spacer(200,120),
        pageBreak(),

        // ─────────────────────────────────────────────────────────────────────
        // SECTION 3: DETAILED AGENDA
        // ─────────────────────────────────────────────────────────────────────
        h1("Section 3: Detailed Agenda (4.5 Hours)"),

        callout([
          new Paragraph({ children:[new TextRun({ text:"Agenda at a Glance", bold:true, color:NAVY, font:"Arial", size:24 })], spacing:{before:0,after:100} }),
          makeTable(
            ["Time","Module","Duration"],
            [
              ["0:00 – 0:45",  "Module 1: Welcome & Foundations",            "45 min"],
              ["0:45 – 1:45",  "Module 2: The Science of Breath",            "60 min"],
              ["1:45 – 1:55",  "Break 1",                                    "10 min"],
              ["1:55 – 3:00",  "Module 3: The Pranayama Pharmacopoeia",      "65 min"],
              ["3:00 – 3:15",  "Break 2 — Mindful Movement",                 "15 min"],
              ["3:15 – 3:55",  "Module 4: Clinical Applications & Evidence", "40 min"],
              ["3:55 – 4:30",  "Module 5: Building Your Breath Practice",    "35 min"],
              ["4:30 onwards", "Open Q&A / Flex Time",                        "30 min"],
            ],
            [2000, 5600, 1760]
          )
        ], LTGOLD, GOLD, null),

        spacer(200,0),

        // MODULE 1
        ...sectionDivider("MODULE 1: WELCOME & FOUNDATIONS  |  0:00 – 0:45"),
        h2("Module 1: Welcome & Foundations (0:00 – 0:45)"),

        h3("0:00 – 0:10 | Welcome & Housekeeping"),
        bulletItem("Facilitator introductions (pulmonologist + yoga therapist backgrounds)"),
        bulletItem("Technical housekeeping: muting, chat, poll access, breakout rooms"),
        bulletItem("Participant introductions via poll: \"Why are you here today?\" (options: Health interest / Professional development / Yoga practice / Other)"),
        bulletItem("Community agreements: confidentiality, non-judgement, medical disclaimer"),
        spacer(80,0),

        h3("0:10 – 0:25 | What IS Pranayama?"),
        bulletItem("Etymology: Prana (life force / vital energy) + Ayama (expansion, regulation, control)"),
        bulletItem("Historical roots: Yoga Sutras of Patanjali (c. 400 CE) — 4th of the 8 limbs of yoga"),
        bulletItem("Classical texts: Hatha Yoga Pradipika (15th century) — systematic pranayama catalogue"),
        bulletItem("Modern scientific context: pranayama as a psychophysiological intervention with measurable outcomes"),
        bulletItem("The breath as the only autonomic function under voluntary control — its unique therapeutic leverage"),
        spacer(80,0),

        h3("0:25 – 0:35 | Respiratory Anatomy Made Simple"),
        bodyPara("Key structures explained with everyday analogies for mixed audiences:"),
        bulletItem("Lungs as \"two sponge-like trees\" with 300 million alveoli — total surface area = a tennis court"),
        bulletItem("Diaphragm as the \"engine of breathing\" — responsible for 70% of resting ventilation"),
        bulletItem("The airways: trachea → bronchi → bronchioles → alveolar sacs (the \"branching river delta\" analogy)"),
        bulletItem("Gas exchange: O2 in, CO2 out — driven by partial pressure gradients (diffusion, not pumping)"),
        bulletItem("Respiratory rate: normal 12–16 breaths/min; untrained anxious adults often 18–22 breaths/min"),
        spacer(80,0),

        h3("0:35 – 0:45 | LIVE PRACTICE: Baseline Breath Awareness"),
        callout([
          new Paragraph({ children:[new TextRun({ text:"Guided Practice Segment", bold:true, color:NAVY, font:"Arial", size:22 })], spacing:{before:0,after:80} }),
          bulletItem("3 minutes — natural breath observation: count breaths, notice nose/mouth, chest/belly"),
          bulletItem("Nostril hygiene tips: Jala Neti (nasal irrigation) for chronic congestion — ENT perspective"),
          bulletItem("Setting up your practice space: seated on chair or floor, spine erect but not rigid"),
          bulletItem("Facilitator demonstrates both chair-seated and floor-cross-legged setup on screen"),
        ], LTGRN, TEAL, null),
        spacer(160,0),

        // MODULE 2
        ...sectionDivider("MODULE 2: THE SCIENCE OF BREATH  |  0:45 – 1:45"),
        h2("Module 2: The Science of Breath (0:45 – 1:45)"),

        h3("0:45 – 1:00 | The Nervous System & Your Lungs"),
        bodyPara("The \"Stress Traffic Light\" Analogy:"),
        bulletItem("RED — Sympathetic (fight-or-flight): fast, shallow chest breathing; adrenaline/cortisol; heart rate up; pupils dilated; digestion OFF"),
        bulletItem("AMBER — Transition zone: controlled breathing begins to shift the balance"),
        bulletItem("GREEN — Parasympathetic (rest-and-digest): slow diaphragmatic breathing; vagal activation; heart rate down; digestion ON; repair mode"),
        bodyPara("Mechanism: The vagus nerve (CN X) is the largest parasympathetic nerve — it monitors lung stretch receptors and sends \"calm\" signals to the brain. Slow, deep exhalations directly stimulate vagal tone."),
        spacer(80,0),

        h3("1:00 – 1:15 | Heart Rate Variability (HRV) Decoded"),
        bulletItem("What is HRV? The beat-to-beat variation in heart rate — a direct measure of ANS flexibility"),
        bulletItem("Why it matters: Higher HRV = better stress resilience, lower cardiovascular risk, better cognitive function"),
        bulletItem("The breath-HRV connection: Respiratory Sinus Arrhythmia (RSA) — heart accelerates on inhale, decelerates on exhale"),
        bulletItem("Research highlight: Slow breathing at 5–6 breaths/min (resonance frequency) maximises HRV — Lehrer et al., Applied Psychophysiology and Biofeedback"),
        bulletItem("Practical tools: Polar H10, Apple Watch, Garmin, Whoop, Welltory app (smartphone camera-based HRV)"),
        spacer(80,0),

        h3("1:15 – 1:30 | Biochemistry of Breath"),
        bulletItem("O2/CO2 balance: We breathe to eliminate CO2 (acid), not to get more O2 — common misconception"),
        bulletItem("The Bohr Effect: CO2 facilitates O2 release from haemoglobin to tissues — over-breathing reduces tissue oxygenation paradoxically"),
        bulletItem("pH regulation: Normal arterial pH 7.35–7.45; hyperventilation raises pH (respiratory alkalosis) → vasoconstriction, dizziness, tingling"),
        bulletItem("CO2 tolerance: Modern chronic stress = habitual over-breathing = reduced CO2 tolerance = anxiety feedback loop"),
        bulletItem("Clinical relevance: \"Feel the urge to breathe\" in breath holds = CO2 rise, not O2 depletion — retraining tolerance is therapeutic"),
        spacer(80,0),

        h3("1:30 – 1:40 | LIVE PRACTICE: CO2 Tolerance & Resonance Breathing"),
        callout([
          new Paragraph({ children:[new TextRun({ text:"Guided Practice Segment — Two Exercises", bold:true, color:NAVY, font:"Arial", size:22 })], spacing:{before:0,after:80} }),
          new Paragraph({ children:[new TextRun({ text:"Exercise 1 — BOLT Score (Body Oxygen Level Test)", bold:true, color:TEAL, font:"Arial", size:20 })], spacing:{before:0,after:60} }),
          bulletItem("Take a normal breath in, exhale normally, pinch nose, count seconds to first definite urge to breathe"),
          bulletItem("Score interpretation: <10s = very low tolerance; 10–20s = low; 20–40s = good; >40s = excellent"),
          new Paragraph({ children:[new TextRun({ text:"Exercise 2 — Resonance Frequency Breathing", bold:true, color:TEAL, font:"Arial", size:20 })], spacing:{before:80,after:60} }),
          bulletItem("Inhale 5 seconds, exhale 5 seconds = 6 breaths/min for 5 minutes"),
          bulletItem("Participants track their breathing with a visual pacer on screen or Breathwrk app"),
        ], LTGRN, TEAL, null),
        spacer(80,0),

        h3("1:40 – 1:45 | Q&A + Quick Poll"),
        bulletItem("Poll: \"How was your BOLT score?\" — collect anonymous data for group discussion"),
        bulletItem("Top 2–3 participant questions from chat addressed"),
        spacer(80,0),

        callout([
          new Paragraph({ children:[new TextRun({ text:"BREAK 1 — 10 Minutes  (1:45 – 1:55)", bold:true, color:WHITE, font:"Arial", size:24 })], spacing:{before:0,after:60} }),
          bodyPara("Suggested: Stand, stretch, hydrate. Avoid screens. Return at [time]."),
        ], NAVY, NAVY, null),
        spacer(200,0),
        pageBreak(),

        // MODULE 3
        ...sectionDivider("MODULE 3: THE PRANAYAMA PHARMACOPOEIA  |  1:55 – 3:00"),
        h2("Module 3: The Pranayama Pharmacopoeia (1:55 – 3:00)"),
        new Paragraph({
          alignment: AlignmentType.CENTER,
          children:[new TextRun({ text:"\"8 Techniques, 8 Prescriptions\"", italics:true, color:TEAL, font:"Arial", size:24 })],
          spacing:{before:40,after:200}
        }),

        techniqueCard("1","NADI SHODHANA — Alternate Nostril Breathing",
          "Nadi = channel/nerve; Shodhana = cleansing, purification",
          "Close right nostril with right thumb, inhale fully through left nostril; close both nostrils; exhale fully through right; inhale right; close both; exhale left. This completes 1 cycle.",
          "Activates nasal cycle regulation; balances hemispheric brain activity (left-right EEG synchronisation); reduces sympathetic tone; enhances parasympathetic activity; improves respiratory efficiency.",
          "Anxiety, hypertension, migraine, pre-sleep use, cognitive performance, examination stress",
          "Severe nasal congestion, recent nasal or sinus surgery, acute sinusitis",
          "5–10 cycles at 1:1 (inhale:exhale) ratio; progress to 1:2 ratio as tolerance builds; 5–10 min daily"
        ),
        spacer(160,0),

        techniqueCard("2","BHRAMARI — Humming Bee Breath",
          "Bhramari = large black bee (named for humming sound)",
          "Sit comfortably; plug ears with thumbs; rest fingers lightly over closed eyes; inhale deeply through nose; on exhale, produce a low humming 'mmmm' sound, feeling vibration in skull and chest.",
          "Generates endogenous nitric oxide (NO) in nasal sinuses (up to 15-fold increase per Patrick McKeown); vagal activation via vibration sensation; reduces salivary cortisol; induces alpha/theta brainwave shift.",
          "Anxiety, tinnitus management, insomnia, hypertension, post-thyroidectomy vocal support, emotional dysregulation",
          "Active ear infection, perforated eardrum, very low blood pressure",
          "5–10 cycles before bed or during acute stress; 5–10 min daily as maintenance practice"
        ),
        spacer(160,0),

        techniqueCard("3","BHASTRIKA — Bellows Breath",
          "Bhastrika = bellows (as used by blacksmiths to fan fire)",
          "Sit upright; take a forceful, rapid inhalation through nose expanding chest fully, immediately followed by a forceful, rapid exhalation. Both inhalation AND exhalation are active and powerful. Rhythm: 1:1 at 30–60 breaths per minute.",
          "Controlled hyperventilation effect; thoracic pump activation (increases venous return); sympathoadrenal stimulation followed by profound rebound parasympathetic calm; increases blood oxygenation acutely.",
          "Fatigue, low mood, sluggishness, pre-performance activation, mental clarity, chronic cold or damp feeling",
          "Hypertension (>160/100 uncontrolled), epilepsy, cardiac arrhythmias, pregnancy, glaucoma, detached retina, recent abdominal surgery, anxiety disorders (may worsen acutely)",
          "3 rounds of 10–20 breaths with 30–60 seconds rest between rounds; always under supervision initially"
        ),
        spacer(160,0),
        pageBreak(),

        techniqueCard("4","KAPALBHATI — Skull-Shining Breath",
          "Kapal = skull/forehead; Bhati = shining, brightening, illuminating",
          "Sit comfortably with spine erect; take a normal passive inhalation; perform a sharp, rapid, forceful exhalation by quickly contracting the lower abdominal muscles; inhalation is entirely passive recoil. All effort is on the exhalation pump.",
          "Vigorous abdominal organ massage via rapid diaphragmatic/abdominal movement; lymphatic stimulation; CO2 purging and rapid ventilation; activates rectus abdominis and transverse abdominis; increases core temperature.",
          "Digestive health, sinus congestion, weight management support, energy enhancement, constipation",
          "Hypertension (>160/100), abdominal hernia, recent abdominal or pelvic surgery, pregnancy, GERD/acid reflux, epilepsy",
          "Begin with 30 pumps x 3 rounds; gradually increase to 60–120 pumps per round; morning practice preferred"
        ),
        spacer(160,0),

        techniqueCard("5","UJJAYI — Victorious / Ocean Breath",
          "Ujjayi = victorious, uplifting; also called 'ocean breath' for the wave-like sound",
          "Breathe exclusively through nose; create a slight constriction at the back of the throat (glottis) as if fogging a mirror, but with mouth closed — producing a soft, continuous ocean-wave or Darth Vader-like sound on both inhale and exhale.",
          "Increases upper airway resistance → slows respiratory rate; activates laryngeal/pharyngeal baroreceptors sending parasympathetic signals; prolongs exhalation naturally; reduces respiratory rate to 2–4 breaths/min in advanced practice; improves interoceptive awareness.",
          "COPD (functional equivalent of pursed-lip breathing), anxiety disorders, improving breath endurance, yoga and meditation practice, asthma (mild-moderate), sleep apnoea adjunct",
          "No significant contraindications; avoid in acute respiratory distress, severe laryngitis, or acute asthma attack",
          "Used throughout yoga practice as baseline technique; 5–10 min standalone; can be practised continuously during exercise"
        ),
        spacer(160,0),

        techniqueCard("6","SITALI / SITKARI — Cooling Breath",
          "Sitali = cooling, soothing; Sitkari = hissing (named for the sound)",
          "SITALI: Roll tongue into a tube (genetic ability required); inhale slowly through rolled tongue as through a straw; close mouth and exhale through nose. SITKARI (for those unable to roll tongue): Press teeth lightly together; inhale through teeth making a soft 'sss' sound; exhale through nose.",
          "Evaporative cooling of air on inhale reduces body temperature measurably (0.5–1°C in studies); calms pitta (heat/fire energy, per Ayurveda); slows heart rate; reduces excess body heat and inflammatory symptoms.",
          "Excess body heat, fever, acid reflux (cooling effect), anger and irritability, menopause hot flushes, post-exercise cooling, pitta imbalance (Ayurvedic framework)",
          "Cold climate (contraproductive), asthma (cold air can trigger bronchospasm), low blood pressure, chronic sinus congestion",
          "8–16 rounds; best practised in summer or during heat; not recommended as daily winter practice"
        ),
        spacer(160,0),
        pageBreak(),

        techniqueCard("7","SAMA VRITTI — Box / Equal Breathing",
          "Sama = equal, same; Vritti = movement, fluctuation — equal rhythm in all four phases",
          "Inhale slowly for 4 counts; hold breath in (kumbhaka) for 4 counts; exhale slowly for 4 counts; hold breath out (bahya kumbhaka) for 4 counts. Repeat, maintaining equal count in all four phases. Visualise tracing a square/box.",
          "Activates prefrontal cortex via breath-brain coupling, reducing amygdala reactivity; the retained breath phases create CO2 tolerance training; balances both branches of ANS; entrains brainwave activity to calm focus state.",
          "Panic attacks, performance and examination anxiety, insomnia (sleep onset), PTSD (used in military trauma programmes), emotional dysregulation, pre-surgery anxiety",
          "Severe asthma (breath holds may trigger bronchospasm), advanced COPD (breath holds contraindicated), uncontrolled hypertension",
          "5–10 cycles; widely used in military protocols (US Navy SEALs use box breathing as standard acute stress protocol); progress to 6-count then 8-count with experience"
        ),
        spacer(160,0),

        techniqueCard("8","DIRGHA PRANAYAMA — Three-Part Breath",
          "Dirgha = long, complete, thorough — referring to complete use of lung capacity",
          "Place one hand on belly, one on chest. Phase 1: Inhale expanding belly forward (diaphragmatic). Phase 2: Continue inhaling expanding ribcage laterally (mid-lung). Phase 3: Continue inhaling lifting chest and clavicles (upper lung). Exhale in reverse order: chest drops, ribs fall, belly contracts. Full 3-part cycle.",
          "Maximises tidal volume and engages all three lobes of both lungs; fully activates diaphragm; stimulates all lung stretch receptors; reduces dead space ventilation; teaches foundational diaphragmatic breathing mechanics.",
          "Beginners learning diaphragmatic breathing, COPD (restores diaphragm dominance), post-COVID breathlessness and dyspnoea, anxiety, atelectasis prevention post-surgery, trauma-informed breathwork foundation",
          "Very few; progress slowly in elderly patients; avoid forced effort with rib fractures or pleurisy",
          "5–10 cycles as foundational morning and evening practice; recommended as first technique for all new practitioners"
        ),
        spacer(200,0),

        h3("2:45 – 3:00 | LIVE GUIDED PRACTICE Session"),
        callout([
          new Paragraph({ children:[new TextRun({ text:"Guided Practice: Three Techniques in Sequence", bold:true, color:NAVY, font:"Arial", size:22 })], spacing:{before:0,after:100} }),
          bulletItem("Nadi Shodhana — 5 complete cycles (approximately 5 minutes)"),
          bulletItem("Bhramari — 5 cycles (approximately 3–4 minutes)"),
          bulletItem("Sama Vritti — 5 cycles at 4-count box breathing (approximately 3 minutes)"),
          spacer(80,0),
          new Paragraph({ children:[new TextRun({ text:"Post-Practice Poll: How do you feel?", bold:true, color:TEAL, font:"Arial", size:20 })], spacing:{before:0,after:60} }),
          bulletItem("Options: Calmer / More alert / Sleepy / Anxious / No change / Lightheaded"),
          bulletItem("Debrief responses live — normalise varied reactions; explain physiological basis"),
        ], LTGRN, TEAL, null),

        spacer(200,0),

        callout([
          new Paragraph({ children:[new TextRun({ text:"BREAK 2 — 15 Minutes: Mindful Movement Break  (3:00 – 3:15)", bold:true, color:WHITE, font:"Arial", size:24 })], spacing:{before:0,after:60} }),
          bodyPara("Guided by yoga therapist: 5 min gentle neck/shoulder rolls → 5 min standing forward fold and side stretch → 5 min seated spinal twist. Screen-share optional movement guide."),
        ], NAVY, NAVY, null),
        spacer(200,0),
        pageBreak(),

        // MODULE 4
        ...sectionDivider("MODULE 4: CLINICAL APPLICATIONS & EVIDENCE  |  3:15 – 3:55"),
        h2("Module 4: Clinical Applications & Evidence (3:15 – 3:55)"),

        h3("3:15 – 3:25 | Evidence Overview: What Does the Research Say?"),

        makeTable(
          ["Condition","Key Evidence","Notes"],
          [
            ["Hypertension",        "Meta-analysis: slow pranayama reduces SBP by 5–8 mmHg (comparable to one antihypertensive agent)",                             "Robust RCT evidence; most benefit with Nadi Shodhana & Bhramari"],
            ["Anxiety & Stress",    "RCTs show Nadi Shodhana and Bhramari reduce salivary cortisol and HAM-A (Hamilton Anxiety) scores significantly",             "Effects detectable after single session; cumulative with practice"],
            ["COPD",                "Pursed-lip breathing + Ujjayi improve exercise tolerance and reduce dyspnoea on Borg scale; improve FEV1/FVC ratio",           "Comparable to bronchodilator augmentation in mild-moderate COPD"],
            ["Post-COVID Recovery", "Pranayama improves SpO2, dyspnoea score, fatigue in Long COVID — PMID: 38137060 framework",                                    "Dirgha + Ujjayi recommended; avoid Bhastrika in early recovery"],
            ["Insomnia",            "Bhramari + Nadi Shodhana before sleep improve sleep onset latency and subjective sleep quality in RCTs",                       "Mechanism: nitric oxide release, vagal activation, cortisol reduction"],
            ["Cancer Care",         "Pranayama reduces chemotherapy-related fatigue and improves quality of life (QoL) scores in breast and lung cancer RCTs",      "Adjunct — does not replace medical treatment"],
            ["Cardiovascular",      "Yoga breathing improves HRV, reduces LDL cholesterol, improves endothelial function — PMID: 37582455",                        "6-month yoga breathing intervention shows sustained benefit"],
            ["Surgical Recovery",   "Pranayama post-laparoscopic surgery reduces pain scores and improves sleep quality — PMID: 39870367",                         "Dirgha pranayama safe 24–48h post-surgery"],
          ],
          [2000, 4400, 2960]
        ),
        spacer(200,0),

        h3("3:25 – 3:35 | Condition-Specific Breath Prescriptions"),

        makeTable(
          ["Condition","First Choice","Second Choice","Avoid"],
          [
            ["Hypertension",       "Nadi Shodhana",          "Bhramari",              "Bhastrika, Kapalbhati"],
            ["Anxiety / Panic",    "Sama Vritti",            "Bhramari",              "Bhastrika"],
            ["COPD / Asthma",      "Ujjayi + Dirgha",        "Pursed-lip breathing",  "Bhastrika, Kapalbhati"],
            ["Insomnia",           "Bhramari",               "Nadi Shodhana",         "Bhastrika (activating)"],
            ["Fatigue / Low energy","Bhastrika (mild)",      "Kapalbhati",            "None (use with caution)"],
            ["Post-COVID",         "Dirgha",                 "Ujjayi",                "Bhastrika initially"],
            ["Diabetes",           "Kapalbhati",             "Nadi Shodhana",         "—"],
            ["Mental Fog",         "Nadi Shodhana",          "Bhastrika (mild)",      "—"],
          ],
          [2100, 2100, 2100, 3060]
        ),
        spacer(200,0),

        h3("3:35 – 3:45 | Special Populations"),

        makeTable(
          ["Population","Safe Techniques","Modifications","Avoid"],
          [
            ["Pregnancy",           "Nadi Shodhana, Dirgha, Ujjayi, Bhramari, Sitali",       "Slower pace; no breath holds; lateral position in late pregnancy",         "Bhastrika, Kapalbhati, prolonged kumbhaka (breath holds)"],
            ["Children (>8 yrs)",   "Dirgha, Sama Vritti, Sitali, simplified Bhramari",        "Shorter ratios (4-count max); gamify instructions; seated on chair",        "Bhastrika, Kapalbhati; no breath holds <12 yrs"],
            ["Elderly (>70 yrs)",   "Dirgha, Ujjayi, Bhramari, Nadi Shodhana, Sitali",        "Slower ratios; chair-seated; shorter sessions (15–20 min); monitor BP",    "Vigorous Bhastrika; prolonged breath holds; inversions"],
            ["Post-surgical",       "Dirgha (incentive spirometry equivalent), Ujjayi",        "Begin 24–48h post-surgery with clearance; avoid abdominal bracing",        "All forceful techniques until 6-week clearance; Kapalbhati"],
            ["Cardiovascular disease","Nadi Shodhana, Dirgha, Bhramari, Sama Vritti",          "Medical clearance required; no Valsalva-like holds; HR monitoring",        "Bhastrika, Kapalbhati; prolonged breath holds"],
          ],
          [1800, 2300, 2700, 2560]
        ),
        spacer(200,0),

        h3("3:45 – 3:55 | When NOT to Practise — Red Flags & Safety"),
        callout([
          new Paragraph({ children:[new TextRun({ text:"STOP practising immediately if you experience:", bold:true, color:"C0392B", font:"Arial", size:22 })], spacing:{before:0,after:100} }),
          bulletItem("Chest pain, tightness, or palpitations"),
          bulletItem("Severe dizziness, fainting, or loss of orientation"),
          bulletItem("Shortness of breath significantly worse than baseline"),
          bulletItem("Severe headache or visual disturbance"),
          bulletItem("Tingling or numbness in face, hands, or feet (hyperventilation — breathe into cupped hands)"),
          bulletItem("Nausea or vomiting"),
          spacer(80,0),
          new Paragraph({ children:[new TextRun({ text:"Medical Clearance Required Before Starting:", bold:true, color:NAVY, font:"Arial", size:22 })], spacing:{before:0,after:80} }),
          bulletItem("Uncontrolled hypertension (>160/100 mmHg)"),
          bulletItem("Severe or uncontrolled asthma / COPD"),
          bulletItem("Recent myocardial infarction, stroke, or TIA (within 6 months)"),
          bulletItem("Detached retina or glaucoma (increased intraocular pressure risk with forceful breathing)"),
          bulletItem("Psychiatric conditions (psychosis, severe PTSD) — specialist input required for breath holds"),
          bulletItem("Any condition where Valsalva manoeuvre is contraindicated"),
        ], LTRED, "C0392B", null),
        spacer(200,0),
        pageBreak(),

        // MODULE 5
        ...sectionDivider("MODULE 5: BUILDING YOUR BREATH PRACTICE  |  3:55 – 4:30"),
        h2("Module 5: Building Your Breath Practice (3:55 – 4:30)"),

        h3("3:55 – 4:05 | The BREATH Framework for Self-Prescription"),

        callout([
          new Paragraph({ children:[new TextRun({ text:"The BREATH Framework — Your Personal Breathwork Prescription Model", bold:true, color:NAVY, font:"Arial", size:24 })], spacing:{before:0,after:160} }),
          makeTable(
            ["Letter","Stands For","Action Step"],
            [
              ["B","Baseline Assessment",    "Measure BOLT score, count resting respiratory rate, use HRV app. Establish your starting point."],
              ["R","Recognise Your Pattern",  "Are you a shallow breather? Mouth breather? Fast breather? Chest breather? Self-awareness precedes change."],
              ["E","Establish a Routine",     "Decide: morning activation (energising techniques) vs. evening restoration (calming techniques). Consistency beats intensity."],
              ["A","Apply the Right Technique","Match technique to your condition using the Breath Prescription table. Start with Dirgha as foundation."],
              ["T","Track Your Progress",     "Keep a breath diary: BOLT score weekly, resting HR, HRV, sleep quality. Use apps: Breathwrk, Welltory, BreathPacer."],
              ["H","Habit Stack",             "Attach practice to existing habits: morning coffee, post-commute, pre-sleep routine. Link new behaviour to existing anchor."],
            ],
            [900, 2400, 6060]
          )
        ], LTBLUE, NAVY, null),
        spacer(200,0),

        h3("4:05 – 4:15 | Designing Your Personal 21-Day Programme"),

        makeTable(
          ["Week","Focus","Daily Practice","Duration"],
          [
            ["Week 1","Awareness Only",       "Dirgha Pranayama (belly breathing) + 5 min Nadi Shodhana. Observe and journal breath patterns.",                        "10–12 min/day"],
            ["Week 2","Add Condition-Specific","Continue Week 1 foundation + add one technique matched to your primary health concern (use Prescription Table).",      "15–18 min/day"],
            ["Week 3","Full Sequence",         "Complete 20-min sequence: 3 min warm-up Dirgha → 8 min main technique(s) → 5 min Nadi Shodhana → 4 min Sama Vritti cool-down.", "20–25 min/day"],
          ],
          [1200, 2100, 4500, 1560]
        ),
        spacer(200,0),

        h3("4:15 – 4:25 | FINAL GUIDED PRACTICE — Full 10-Minute Sequence"),
        callout([
          new Paragraph({ children:[new TextRun({ text:"Full Closing Sequence — Facilitator-Led", bold:true, color:NAVY, font:"Arial", size:22 })], spacing:{before:0,after:100} }),
          bulletItem("2 minutes — Dirgha Pranayama (warm-up: establish belly-rib-chest 3-part breath)"),
          bulletItem("3 minutes — Nadi Shodhana at 1:2 inhale:exhale ratio (channel cleansing, balance)"),
          bulletItem("3 minutes — Bhramari (5 cycles; feel the vibration; cortisol clearing)"),
          bulletItem("2 minutes — Sama Vritti 4-count box breathing (cool-down; return to stillness)"),
          spacer(80,0),
          bodyPara("End with 1 minute of silent natural breath — simply observe the quality of breath after practice."),
        ], LTGRN, TEAL, null),
        spacer(160,0),

        h3("4:25 – 4:30 | Closing & Key Takeaways"),
        bulletItem("Breath is the only autonomic function under voluntary control — its therapeutic power is unparalleled"),
        bulletItem("Slow, diaphragmatic, nasal breathing is the biological default — modern stress has hijacked it"),
        bulletItem("Pranayama has measurable, evidence-based benefits for cardiovascular, respiratory, and mental health"),
        bulletItem("Start slow: 10 minutes daily of Dirgha + Nadi Shodhana transforms respiratory health within 3 weeks"),
        bulletItem("Always match technique to condition; respect contraindications; progress gradually"),
        bulletItem("The best pranayama practice is the one you will actually do — consistency over complexity"),
        spacer(80,0),

        callout([
          new Paragraph({ children:[new TextRun({ text:"Open Q&A / Flex Time  (4:30 onwards — 30 min)", bold:true, color:WHITE, font:"Arial", size:24 })], spacing:{before:0,after:60} }),
          bodyPara("Facilitators take questions from chat. Complex individual health questions directed to private consultation. Unmute participants with specific practice questions for live demonstration."),
        ], NAVY, NAVY, null),
        spacer(200,0),
        pageBreak(),

        // ─────────────────────────────────────────────────────────────────────
        // SECTION 4: FACILITATOR CHECKLIST
        // ─────────────────────────────────────────────────────────────────────
        h1("Section 4: Facilitator Preparation Checklist"),

        h2("Pre-Webinar — 1 Week Before"),
        checkItem("Confirm co-facilitator schedule and clearly divide roles (who leads which modules)"),
        checkItem("Test all technology: Zoom/Teams, screen share, polls, breakout rooms, recording"),
        checkItem("Prepare and finalise slide deck; send to participants 24 hours before as reference"),
        checkItem("Create and distribute participant workbook PDF (Section 5 outline)"),
        checkItem("Set up registration with intake form capturing: health conditions, medications, goals, experience level"),
        checkItem("Prepare emergency protocol: participant medical event during live practice session"),
        checkItem("Brief all registered participants: medical disclaimer, when to stop practising, CE credit requirements"),
        checkItem("Prepare polls in advance: Mentimeter / Slido / Zoom Polls — import all 5 planned polls"),
        checkItem("Create breakout room assignments (random groups of 4–6 for practice segments)"),
        checkItem("Prepare technique reference cards for screen-share during Module 3"),
        spacer(120,0),

        h2("Day of Webinar"),
        checkItem("Log in 30 minutes early; confirm both facilitators are connected and audio/video tested"),
        checkItem("Test audio quality (headset vs. built-in mic comparison), video lighting"),
        checkItem("Test screen-share with slide deck and technique demonstration setup"),
        checkItem("Load and test all polls — confirm they appear correctly for participants"),
        checkItem("Prepare water, timer/stopwatch for practice segments"),
        checkItem("Have participant registration list ready for attendance verification (CE purposes)"),
        checkItem("Confirm breakout room host assignments; test co-host permissions"),
        checkItem("Verify recording is set to start automatically; check cloud storage space"),
        spacer(120,0),

        h2("Post-Webinar"),
        checkItem("Send recording link and access code to all registrants within 24 hours"),
        checkItem("Share resource PDF: technique reference card, 21-day programme template"),
        checkItem("Send 3-day follow-up email: key takeaways, recommended resources, practice reminder"),
        checkItem("Send 21-day follow-up email: check-in on BOLT score progress, habit formation questions"),
        checkItem("Collect participant feedback via NPS survey (Net Promoter Score + specific technique questions)"),
        checkItem("Issue CE certificates to qualifying healthcare professionals (copy attendance logs)"),
        checkItem("Review recording for quality assurance and edit for replay distribution"),
        checkItem("Document any adverse events or concerns raised during practice sessions"),
        spacer(200,0),
        pageBreak(),

        // ─────────────────────────────────────────────────────────────────────
        // SECTION 5: PARTICIPANT WORKBOOK
        // ─────────────────────────────────────────────────────────────────────
        h1("Section 5: Participant Workbook Outline"),
        bodyPara("The Participant Workbook is distributed as a separate PDF prior to the webinar. It contains the following sections:"),
        spacer(120,0),

        h2("Workbook Component 1: Personal Breath Baseline"),
        bulletItem("BOLT Score Worksheet: step-by-step instructions, score recording, weekly tracking grid"),
        bulletItem("Resting Respiratory Rate counter (60-second count, morning and evening)"),
        bulletItem("Mouth vs. Nasal Breathing self-assessment checklist"),
        bulletItem("Body tension map: where do you hold tension? Jaw, shoulders, chest, belly?"),
        spacer(120,0),

        h2("Workbook Component 2: Technique Quick-Reference Card (All 8 Techniques)"),
        makeTable(
          ["Technique","Meaning","How To","Good For","Avoid If","Daily Dose"],
          [
            ["Nadi Shodhana","Channel cleansing","Alt nostril: L in, both hold, R out, R in, both hold, L out","Anxiety, BP, migraine","Nasal blockage","5–10 cycles"],
            ["Bhramari","Humming bee","Ears plugged, hum on exhale","Anxiety, insomnia, tinnitus","Ear infection","5–10 cycles"],
            ["Bhastrika","Bellows","Forceful IN + OUT, 30–60/min","Energy, mood, fatigue","Hypertension, pregnancy","3 x 10–20 rounds"],
            ["Kapalbhati","Skull shining","Passive IN, forceful OUT only","Digestion, sinus, energy","Hernia, pregnancy, GERD","3 x 30–120 pumps"],
            ["Ujjayi","Ocean/Victorious","Glottic constriction, nasal only","COPD, anxiety, yoga","Acute distress","5–10 min"],
            ["Sitali/Sitkari","Cooling","Inhale through rolled tongue/teeth","Heat, fever, irritability","Cold climate, asthma","8–16 rounds"],
            ["Sama Vritti","Equal rhythm","In 4, hold 4, out 4, hold 4","Panic, insomnia, PTSD","Severe asthma","5–10 cycles"],
            ["Dirgha","Three-part breath","Belly, then ribs, then chest","Beginners, COPD, post-COVID","Very few","5–10 cycles"],
          ],
          [1500, 1200, 2200, 1500, 1400, 1560]
        ),
        spacer(120,0),

        h2("Workbook Component 3: My Breath Prescription Worksheet"),
        bulletItem("My primary health goal: _______________________________________________"),
        bulletItem("My BOLT score on Day 1: _____  Target by Day 21: _____"),
        bulletItem("My chosen morning technique: _________________________________________"),
        bulletItem("My chosen evening technique: _________________________________________"),
        bulletItem("My habit anchor (when I will practise): ________________________________"),
        spacer(120,0),

        h2("Workbook Component 4: 21-Day Practice Tracker"),
        bodyPara("A daily grid for participants to record: technique practised, duration, BOLT score (weekly), subjective energy/anxiety score (1–10), sleep quality (1–10), and free notes."),
        spacer(120,0),

        h2("Workbook Component 5: Recommended Resources & Apps"),

        makeTable(
          ["Category","Resource","Notes"],
          [
            ["Apps","Breathwrk","Guided breathwork app; visual breath pacers; multiple technique library"],
            ["Apps","BreathPacer","Simple pacing tool; customisable inhale/hold/exhale timers"],
            ["Apps","Welltory","Smartphone camera-based HRV measurement; trend tracking"],
            ["Apps","Insight Timer","Free guided meditations with pranayama sections"],
            ["Books","Light on Pranayama — BKS Iyengar","Definitive classical guide to pranayama technique and theory"],
            ["Books","The Oxygen Advantage — Patrick McKeown","Modern science of nasal breathing and CO2 tolerance"],
            ["Books","Breath — James Nestor","Accessible narrative science of breath for general readers"],
            ["Books","Anatomy of Breathing — Blandine Calais-Germain","Detailed anatomical guide to respiratory mechanics"],
            ["Online","Buteyko Clinic (buteykoclinic.com)","Evidence-based nasal breathing training resources"],
          ],
          [1600, 2800, 4960]
        ),
        spacer(120,0),

        h2("Workbook Component 6: Emergency Contacts & When to Seek Help"),
        callout([
          new Paragraph({ children:[new TextRun({ text:"Seek immediate medical attention if you experience:", bold:true, color:"C0392B", font:"Arial", size:22 })], spacing:{before:0,after:80} }),
          bulletItem("Chest pain or pressure during or after practice"),
          bulletItem("Sudden severe shortness of breath not relieved by sitting quietly"),
          bulletItem("Loss of consciousness or near-fainting during practice"),
          bulletItem("Heart palpitations that persist more than 5 minutes after stopping"),
          spacer(80,0),
          bodyPara("National Emergency: 911 (US) / 999 (UK) / 112 (EU) | Your GP / Primary Care Physician"),
        ], LTRED, "C0392B", null),
        spacer(200,0),
        pageBreak(),

        // ─────────────────────────────────────────────────────────────────────
        // SECTION 6: MEDICAL DISCLAIMER & SAFETY FRAMEWORK
        // ─────────────────────────────────────────────────────────────────────
        h1("Section 6: Medical Disclaimer & Safety Framework"),

        h2("Full Medical Disclaimer"),
        callout([
          new Paragraph({ children:[new TextRun({ text:"IMPORTANT MEDICAL DISCLAIMER — READ BEFORE PARTICIPATING", bold:true, color:"C0392B", font:"Arial", size:22 })], spacing:{before:0,after:120} }),
          bodyPara("The information, techniques, and guidance presented in this webinar are for EDUCATIONAL PURPOSES ONLY and do not constitute medical advice, diagnosis, or treatment. Pranayama and breathwork practices carry inherent physiological effects that may not be appropriate for all individuals."),
          spacer(80,0),
          bodyPara("CONSULT YOUR PHYSICIAN before beginning any pranayama practice if you have: cardiovascular disease, uncontrolled hypertension, respiratory disorders (COPD, severe asthma), epilepsy or seizure disorders, psychiatric conditions, are pregnant, have had recent surgery, or have any other medical condition that may affect your ability to safely practise breathwork."),
          spacer(80,0),
          bodyPara("The facilitators are providing this webinar in an educational capacity. Neither the presenters, their affiliated institutions, nor the hosting organisation shall be liable for any adverse events, injuries, or outcomes arising from the application of techniques demonstrated in this webinar. By participating, attendees acknowledge this disclaimer and accept personal responsibility for their practice."),
          spacer(80,0),
          bodyPara("HEALTHCARE PROFESSIONALS: Information presented is intended as educational continuing professional development. Clinical decisions should always be made in accordance with current evidence-based guidelines and individual patient circumstances."),
        ], LTRED, "C0392B", null),
        spacer(200,0),

        h2("Safety Guidelines for Live Practice Segments"),
        bulletItem("Always begin in a seated, stable position — never practise while driving or operating machinery"),
        bulletItem("If you feel lightheaded or dizzy at any point: stop the technique, return to normal natural breathing, open eyes"),
        bulletItem("For forceful techniques (Bhastrika, Kapalbhati): begin at 50% effort and intensity; build gradually"),
        bulletItem("Breath holds (kumbhaka): NEVER force beyond comfortable capacity; always err on the side of less"),
        bulletItem("If you have a respiratory condition: use the LEAST forceful techniques only; do not attempt advanced breath holds"),
        bulletItem("Children under 8 years: not recommended to participate in formal pranayama practice"),
        bulletItem("Pregnant participants: attend for education only; do not participate in active practice segments"),
        spacer(120,0),

        h2("Emergency Protocol — Live Session"),
        makeTable(
          ["Scenario","Facilitator Action","Follow-Up"],
          [
            ["Participant reports chest pain",         "Immediately stop all practice; direct participant to call emergency services or go to nearest ED; document incident",        "File incident report; follow up within 24h"],
            ["Participant faints or loses consciousness","Direct nearest participant/family member to call emergency services; stay on screen if possible; do not resume practice",  "Notify platform host; document; debrief"],
            ["Hyperventilation tetany (tingling/spasm)","Instruct participant to breathe into cupped hands or paper bag; reassure; slow breathing to normal rate",                    "Check in privately after session"],
            ["Severe anxiety/panic attack",            "Guide back to simple belly breathing; offer private chat support; suggest ending session for that participant",             "Follow-up email with mental health resources"],
            ["Technical failure during practice",      "Co-facilitator takes over; backup meeting link pre-distributed; participants continue independently if safe to do so",     "Apologise; offer replay access"],
          ],
          [2000, 3800, 3560]
        ),
        spacer(200,0),
        pageBreak(),

        // ─────────────────────────────────────────────────────────────────────
        // SECTION 7: RESOURCES & REFERENCES
        // ─────────────────────────────────────────────────────────────────────
        h1("Section 7: Resources & References"),

        h2("Key PubMed References"),

        makeTable(
          ["PMID","Citation","Relevance"],
          [
            ["PMID: 38137060","Framework for pranayama in post-COVID recovery — improvement in SpO2, dyspnoea, and fatigue outcomes in Long COVID patients","Post-COVID breathwork; Dirgha and Ujjayi protocol basis"],
            ["PMID: 37582455","Yoga breathing intervention: cardiovascular outcomes — HRV improvement, LDL reduction, endothelial function enhancement over 6 months","Cardiovascular benefits; HRV evidence base"],
            ["PMID: 39870367","Pranayama post-laparoscopic surgery: pain reduction and sleep quality improvement — RCT evidence","Surgical recovery; Dirgha post-operative protocol"],
            ["PMID: 34812995","Systematic review: pranayama for hypertension — meta-analysis of SBP/DBP reduction across 15 RCTs","Hypertension prescription; antihypertensive equivalence data"],
          ],
          [1800, 4800, 2760]
        ),
        spacer(120,0),

        callout([
          new Paragraph({ children:[new TextRun({ text:"Note for Healthcare Professionals", bold:true, color:NAVY, font:"Arial", size:20 })], spacing:{before:0,after:80} }),
          bodyPara("Full-text articles available via PubMed (pubmed.ncbi.nlm.nih.gov). Search by PMID for direct access. OpenDOAJ and PubMed Central provide free full-text access for many cited papers."),
        ], LTBLUE, NAVY, null),
        spacer(120,0),

        h2("Recommended Textbooks — Pulmonary & Respiratory Medicine"),
        bulletItem("Fishman AP et al. Fishman's Pulmonary Diseases and Disorders. 5th ed. McGraw-Hill, 2015."),
        bulletItem("Murray JF, Nadel JA. Murray & Nadel's Textbook of Respiratory Medicine. 7th ed. Elsevier, 2022."),
        bulletItem("West JB, Luks AM. West's Pulmonary Pathophysiology. 9th ed. Wolters Kluwer, 2017."),
        bulletItem("Berne RM, Levy MN. Physiology. 6th ed. Mosby, 2008. (Chapter: Respiratory Physiology)"),
        spacer(120,0),

        h2("Classic Yoga & Pranayama Texts"),
        bulletItem("Patanjali. The Yoga Sutras of Patanjali (c. 400 CE). Multiple translations — Iyengar, Satchidananda recommended."),
        bulletItem("Svatmarama. Hatha Yoga Pradipika (15th century CE). Translation by Brian Dana Akers. YogaVidya.com, 2002."),
        bulletItem("Iyengar BKS. Light on Pranayama: The Yogic Art of Breathing. Crossroad Publishing, 1981."),
        bulletItem("Muktibodhananda Saraswati. Hatha Yoga Pradipika: Commentary. Bihar School of Yoga, 1998."),
        spacer(120,0),

        h2("Modern Science of Breathing"),
        bulletItem("McKeown P. The Oxygen Advantage. William Morrow, 2015."),
        bulletItem("Nestor J. Breath: The New Science of a Lost Art. Riverhead Books, 2020."),
        bulletItem("Lehrer PM, Gevirtz R. Heart rate variability biofeedback: how and why does it work? Front Psychol. 2014."),
        bulletItem("Zaccaro A et al. How breath-control can change your life: a systematic review. Front Hum Neurosci. 2018."),
        spacer(200,0),

        callout([
          new Paragraph({ children:[new TextRun({ text:"DOCUMENT INFORMATION", bold:true, color:NAVY, font:"Arial", size:22 })], spacing:{before:0,after:100} }),
          makeTable(
            ["Field","Details"],
            [
              ["Document Title",   "The Science & Soul of Breath: A Pulmonologist's Guide to Pranayama — Webinar Blueprint"],
              ["Version",         "1.0 — Initial Release"],
              ["Classification",  "CONFIDENTIAL — FACILITATOR COPY"],
              ["Intended Audience","Webinar Facilitators; Co-presenters; Event Coordinators"],
              ["Last Updated",    "2025"],
              ["Review Cycle",    "Annual — update evidence base and PMID references"],
            ],
            [2400, 6960]
          )
        ], LTBLUE, NAVY, null),

        spacer(200,0),

        new Paragraph({
          alignment: AlignmentType.CENTER,
          children:[new TextRun({ text:"— End of Document —", italics:true, color:"999999", font:"Arial", size:20 })],
          spacing:{before:0,after:0}
        }),

      ]
    }
  ]
});

// ═══════════════════════════════════════════════════════════════════════════════
//  WRITE TO FILE
// ═══════════════════════════════════════════════════════════════════════════════
Packer.toBuffer(doc).then(buffer => {
  fs.writeFileSync("/home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Blueprint.docx", buffer);
  console.log("SUCCESS: Document written to /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Blueprint.docx");
}).catch(err => {
  console.error("ERROR:", err);
  process.exit(1);
});
Writing File

~/pranayama-webinar/build_pranayama.js

"use strict";
const pptxgen = require("pptxgenjs");

// ─── COLOR PALETTE ──────────────────────────────────────────────────────────
const C = {
  navy:      "0D2137",
  navyDark:  "081525",
  white:     "F8F5EE",
  teal:      "2BBFB3",
  tealDark:  "1B7A74",
  gold:      "E8B84B",
  goldLight: "F5D98A",
  red:       "C0392B",
  maroon:    "8B0000",
  grayLight: "E8E4DC",
  gray:      "8A8A8A",
  textDark:  "1A2B3C",
  textMid:   "3A4A5C",
  sympa:     "7D2D2D",  // sympathetic (red-toned)
  parasym:   "1D5C36",  // parasympathetic (green-toned)
  sympaFill: "FDECEA",
  parasymFill:"E8F5EC",
  tealLight: "D6F5F3",
  goldFill:  "FDF3DC",
  rowAlt:    "E8F7F6",
};

let pres = new pptxgen();
pres.layout = "LAYOUT_16x9"; // 10" x 5.625"
pres.title = "The Science & Soul of Breath";
pres.author = "Pranayama Webinar";

// ─── HELPERS ────────────────────────────────────────────────────────────────

function navySlide(pres) {
  let s = pres.addSlide();
  s.background = { color: C.navy };
  return s;
}

function whiteSlide(pres) {
  let s = pres.addSlide();
  s.background = { color: C.white };
  return s;
}

function tealSlide(pres) {
  let s = pres.addSlide();
  s.background = { color: C.tealDark };
  return s;
}

// Full-width accent bar
function accentBar(slide, y, color, h=0.07) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y, w:10, h, fill:{color}, line:{color} });
}

// Left sidebar accent bar
function leftBar(slide, color, x=0.45, y=0.9, h=4.2) {
  slide.addShape(pres.shapes.RECTANGLE, { x, y, w:0.12, h, fill:{color}, line:{color} });
}

// Section divider slide
function sectionDivider(num, title, time, tagline=null) {
  let slide = navySlide(pres);
  // Left teal accent bar
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.35, h:5.625, fill:{color:C.teal}, line:{color:C.teal} });
  // Decorative circle
  slide.addShape(pres.shapes.OVAL, { x:7.8, y:0.4, w:2.5, h:2.5, fill:{color:C.teal, transparency:85}, line:{color:C.teal, transparency:70} });
  slide.addShape(pres.shapes.OVAL, { x:8.2, y:0.8, w:1.6, h:1.6, fill:{color:C.teal, transparency:70}, line:{color:C.teal, transparency:50} });
  // MODULE number
  slide.addText(`MODULE ${num}`, {
    x:0.65, y:1.2, w:7, h:0.8,
    fontSize:16, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:8
  });
  // Title
  slide.addText(title, {
    x:0.65, y:1.9, w:8, h:1.3,
    fontSize:42, fontFace:"Calibri", color:C.white, bold:true
  });
  // Tagline (optional)
  if (tagline) {
    slide.addText(tagline, {
      x:0.65, y:3.1, w:8, h:0.5,
      fontSize:18, fontFace:"Calibri", color:C.gold, italic:true
    });
  }
  // Time badge
  slide.addShape(pres.shapes.RECTANGLE, { x:0.65, y:tagline?3.65:3.2, w:2.8, h:0.42,
    fill:{color:C.gold}, line:{color:C.gold} });
  slide.addText(time, {
    x:0.65, y:tagline?3.65:3.2, w:2.8, h:0.42,
    fontSize:14, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0
  });
  return slide;
}

// Practice slide helper (teal bg)
function practiceSlide(titleText) {
  let slide = tealSlide(pres);
  // Dark overlay strip at top
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:1.15, fill:{color:C.navyDark}, line:{color:C.navyDark} });
  slide.addText("LIVE PRACTICE", {
    x:0.5, y:0.08, w:4, h:0.4,
    fontSize:11, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:5
  });
  slide.addText(titleText, {
    x:0.5, y:0.42, w:9, h:0.65,
    fontSize:26, fontFace:"Calibri", color:C.white, bold:true
  });
  return slide;
}

// Small colored card helper
function card(slide, x, y, w, h, bgColor, lineColor=null) {
  slide.addShape(pres.shapes.RECTANGLE, {
    x, y, w, h,
    fill:{color:bgColor},
    line:{ color: lineColor||bgColor },
    shadow:{ type:"outer", blur:4, offset:2, angle:135, color:"000000", opacity:0.10 }
  });
}

// ─── SLIDE 1: TITLE ─────────────────────────────────────────────────────────
{
  let slide = navySlide(pres);
  // Background decorative circles
  slide.addShape(pres.shapes.OVAL, { x:6.8, y:-0.8, w:4.5, h:4.5, fill:{color:C.teal, transparency:88}, line:{color:C.teal, transparency:80} });
  slide.addShape(pres.shapes.OVAL, { x:7.5, y:0.1, w:2.8, h:2.8, fill:{color:C.gold, transparency:90}, line:{color:C.gold, transparency:82} });
  slide.addShape(pres.shapes.OVAL, { x:-1.2, y:3.2, w:3.5, h:3.5, fill:{color:C.teal, transparency:90}, line:{color:C.teal, transparency:82} });

  // Top tiny teal bar
  slide.addShape(pres.shapes.RECTANGLE, { x:0.6, y:0.9, w:1.1, h:0.07, fill:{color:C.teal}, line:{color:C.teal} });

  // Main title
  slide.addText("The Science &", {
    x:0.6, y:1.05, w:8.5, h:0.9,
    fontSize:52, fontFace:"Calibri", color:C.white, bold:true
  });
  slide.addText("Soul of Breath", {
    x:0.6, y:1.85, w:8.5, h:0.9,
    fontSize:52, fontFace:"Calibri", color:C.teal, bold:true
  });

  // Subtitle
  slide.addText("A Pulmonologist's Guide to Pranayama", {
    x:0.6, y:2.9, w:8.5, h:0.5,
    fontSize:20, fontFace:"Calibri", color:C.grayLight, italic:true
  });

  // Tag badge
  slide.addShape(pres.shapes.RECTANGLE, { x:0.6, y:3.55, w:4.2, h:0.42,
    fill:{color:C.gold, transparency:15}, line:{color:C.gold} });
  slide.addText("Half-Day Online Webinar  |  Mixed Audience", {
    x:0.6, y:3.55, w:4.2, h:0.42,
    fontSize:13, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0
  });

  // Bottom teal accent bar
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.42, w:10, h:0.2, fill:{color:C.teal}, line:{color:C.teal} });
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.37, w:3.5, h:0.07, fill:{color:C.gold}, line:{color:C.gold} });
}

// ─── SLIDE 2: AGENDA ─────────────────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  // Navy left sidebar
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:2.3, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
  // Sidebar label
  slide.addText("TODAY'S\nJOURNEY", {
    x:0, y:1.8, w:2.3, h:1.2,
    fontSize:18, fontFace:"Calibri", color:C.teal, bold:true, align:"center",
    charSpacing:3
  });
  slide.addShape(pres.shapes.RECTANGLE, { x:0.3, y:3.1, w:1.7, h:0.04, fill:{color:C.teal}, line:{color:C.teal} });
  slide.addText("Half-Day\nWebinar", {
    x:0, y:3.3, w:2.3, h:0.7,
    fontSize:11, fontFace:"Calibri", color:C.grayLight, align:"center", italic:true
  });

  // Title
  slide.addText("Today's Journey", {
    x:2.6, y:0.28, w:7, h:0.65,
    fontSize:32, fontFace:"Calibri", color:C.navy, bold:true
  });

  // Modules
  const modules = [
    { n:"01", label:"Welcome & Foundations", time:"0:00 – 0:45" },
    { n:"02", label:"Science of Breath", time:"0:45 – 1:45" },
    { n:"03", label:"Pranayama Pharmacopoeia", time:"1:55 – 3:00" },
    { n:"04", label:"Clinical Applications", time:"3:15 – 3:55" },
    { n:"05", label:"Your Breath Practice", time:"3:55 – 4:30" },
  ];
  modules.forEach((m, i) => {
    const yPos = 1.05 + i * 0.87;
    // Teal circle
    slide.addShape(pres.shapes.OVAL, { x:2.6, y:yPos+0.08, w:0.52, h:0.52, fill:{color:C.teal}, line:{color:C.teal} });
    slide.addText(m.n, { x:2.6, y:yPos+0.08, w:0.52, h:0.52,
      fontSize:13, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    // Module name
    slide.addText(`MODULE ${m.n}  `, {
      x:3.28, y:yPos+0.04, w:1.5, h:0.25,
      fontSize:10, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:2
    });
    slide.addText(m.label, {
      x:3.28, y:yPos+0.26, w:4.8, h:0.28,
      fontSize:17, fontFace:"Calibri", color:C.textDark, bold:true
    });
    // Time badge
    slide.addShape(pres.shapes.RECTANGLE, { x:8.3, y:yPos+0.1, w:1.45, h:0.36,
      fill:{color:C.grayLight}, line:{color:C.grayLight} });
    slide.addText(m.time, { x:8.3, y:yPos+0.1, w:1.45, h:0.36,
      fontSize:11, fontFace:"Calibri", color:C.textMid, align:"center", valign:"middle", margin:0 });
  });
}

// ─── SLIDE 3: LEARNING OBJECTIVES ────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.teal, 0.42, 0.72, 4.6);

  slide.addText("What You'll Take Home", {
    x:0.75, y:0.28, w:8.8, h:0.58,
    fontSize:34, fontFace:"Calibri", color:C.navy, bold:true
  });

  const objectives = [
    "Explain the anatomical and physiological basis of pranayama",
    "Identify the autonomic nervous system effects of specific breathing techniques",
    "Understand the CO2/O2 relationship and the Bohr Effect in breathing",
    "Apply condition-specific pranayama prescriptions safely and effectively",
    "Recognize contraindications and red flags for advanced techniques",
    "Design a personalized 21-day breath practice using the B.R.E.A.T.H. framework",
  ];

  objectives.forEach((obj, i) => {
    const yPos = 1.12 + i * 0.7;
    // Check circle
    slide.addShape(pres.shapes.OVAL, { x:0.75, y:yPos, w:0.46, h:0.46, fill:{color:C.teal}, line:{color:C.teal} });
    slide.addText("✓", { x:0.75, y:yPos, w:0.46, h:0.46,
      fontSize:16, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(obj, {
      x:1.35, y:yPos+0.03, w:8.3, h:0.42,
      fontSize:16, fontFace:"Calibri", color:C.textDark
    });
  });

  // Gold bottom tag
  slide.addShape(pres.shapes.RECTANGLE, { x:0.42, y:5.18, w:5, h:0.28, fill:{color:C.gold}, line:{color:C.gold} });
  slide.addText("Blending Evidence-Based Medicine with Ancient Wisdom", {
    x:0.42, y:5.18, w:5, h:0.28,
    fontSize:11, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0
  });
}

// ─── SLIDE 4: SECTION DIVIDER MODULE 1 ───────────────────────────────────────
sectionDivider("1", "Welcome & Foundations", "0:00 – 0:45");

// ─── SLIDE 5: WHAT IS PRANAYAMA ───────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  // Top navy header band
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.95, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("What Is Pranayama?", {
    x:0.5, y:0.15, w:9, h:0.65,
    fontSize:30, fontFace:"Calibri", color:C.white, bold:true
  });

  // Etymology box - LEFT
  card(slide, 0.4, 1.1, 4.4, 2.2, C.tealDark);
  slide.addText("ETYMOLOGY", {
    x:0.55, y:1.18, w:4.1, h:0.38,
    fontSize:12, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:4, margin:0
  });
  slide.addText([
    { text:"PRANA", options:{ bold:true, color:C.gold } },
    { text:" = Life Force / Vital Energy\n", options:{ color:C.white } },
    { text:"+\n", options:{ color:C.grayLight, fontSize:22, bold:true } },
    { text:"AYAMA", options:{ bold:true, color:C.gold } },
    { text:" = Expansion / Regulation", options:{ color:C.white } },
  ], {
    x:0.55, y:1.55, w:4.1, h:1.45,
    fontSize:17, fontFace:"Calibri", valign:"middle"
  });

  // Historical context box - RIGHT
  card(slide, 5.1, 1.1, 4.4, 2.2, C.white);
  slide.addShape(pres.shapes.RECTANGLE, { x:5.1, y:1.1, w:0.1, h:2.2, fill:{color:C.gold}, line:{color:C.gold} });
  slide.addText("HISTORICAL CONTEXT", {
    x:5.32, y:1.18, w:4, h:0.38,
    fontSize:12, fontFace:"Calibri", color:C.navy, bold:true, charSpacing:4, margin:0
  });
  const history = [
    { year:"~400 BCE", label:"Patanjali's Yoga Sutras" },
    { year:"15th CE", label:"Hatha Yoga Pradipika" },
    { year:"21st CE", label:"Modern Neuroscience & Medicine" },
  ];
  history.forEach((h, i) => {
    const yPos = 1.6 + i * 0.58;
    slide.addShape(pres.shapes.OVAL, { x:5.32, y:yPos, w:0.32, h:0.32, fill:{color:C.teal}, line:{color:C.teal} });
    slide.addText(h.year, { x:5.32, y:yPos, w:0.32, h:0.32,
      fontSize:7, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(h.label, {
      x:5.78, y:yPos+0.02, w:3.5, h:0.3,
      fontSize:14, fontFace:"Calibri", color:C.textDark
    });
  });

  // Bottom callout
  slide.addShape(pres.shapes.RECTANGLE, { x:0.4, y:3.55, w:9.2, h:0.68,
    fill:{color:C.goldFill}, line:{color:C.gold} });
  slide.addText("The 4th Limb of Patanjali's 8-Limbed Yoga Path (Ashtanga Yoga)", {
    x:0.55, y:3.6, w:8.9, h:0.58,
    fontSize:17, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", italic:true
  });

  // 8 limbs row
  const limbs = ["Yama","Niyama","Asana","PRANAYAMA","Pratyahara","Dharana","Dhyana","Samadhi"];
  limbs.forEach((l, i) => {
    const isActive = l === "PRANAYAMA";
    slide.addShape(pres.shapes.RECTANGLE, {
      x: 0.38 + i * 1.16, y:4.42, w:1.1, h:0.72,
      fill:{color: isActive ? C.teal : C.grayLight},
      line:{color: isActive ? C.teal : C.grayLight}
    });
    slide.addText(l, {
      x: 0.38 + i * 1.16, y:4.42, w:1.1, h:0.72,
      fontSize: isActive ? 11 : 10, fontFace:"Calibri",
      color: isActive ? C.white : C.textMid,
      bold: isActive, align:"center", valign:"middle", margin:0
    });
  });
}

// ─── SLIDE 6: RESPIRATORY ANATOMY ─────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.95, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Your Breathing Machine — Simplified", {
    x:0.5, y:0.15, w:9, h:0.65,
    fontSize:28, fontFace:"Calibri", color:C.white, bold:true
  });

  const components = [
    { icon:"👃", title:"Nose & Airway", desc:"Filters, warms &\nhumidifies incoming air", color:C.teal },
    { icon:"🌀", title:"Trachea & Bronchi", desc:"Airways — the\nhighways of airflow", color:C.gold },
    { icon:"🫁", title:"Lungs & Alveoli", desc:"Gas exchange:\nO₂ in, CO₂ out", color:C.tealDark },
    { icon:"⚙️", title:"Diaphragm", desc:"The engine —\nprimary breathing muscle", color:C.navy },
  ];

  components.forEach((c, i) => {
    const x = 0.35 + i * 2.35;
    card(slide, x, 1.15, 2.15, 2.5, c.color);
    slide.addText(c.icon, { x, y:1.2, w:2.15, h:0.7, fontSize:32, align:"center", valign:"middle", margin:0 });
    slide.addText(c.title, {
      x, y:1.88, w:2.15, h:0.42,
      fontSize:13, fontFace:"Calibri", color:C.white, bold:true, align:"center", margin:0
    });
    slide.addText(c.desc, {
      x, y:2.28, w:2.15, h:0.72,
      fontSize:12, fontFace:"Calibri", color:C.grayLight, align:"center"
    });
    // Arrow between cards
    if (i < 3) {
      slide.addShape(pres.shapes.LINE, { x: x+2.15, y:2.35, w:0.2, h:0,
        line:{ color:C.teal, width:3 } });
      slide.addText("→", { x: x+2.13, y:2.15, w:0.25, h:0.4,
        fontSize:18, color:C.teal, align:"center", margin:0 });
    }
  });

  // Analogy box
  slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:3.88, w:9.3, h:0.68,
    fill:{color:C.goldFill}, line:{color:C.gold} });
  slide.addText("💡  Analogy: Think of your lungs as a sponge and your diaphragm as a piston pump", {
    x:0.5, y:3.9, w:9, h:0.64,
    fontSize:16, fontFace:"Calibri", color:C.navy, italic:true, align:"center", valign:"middle"
  });

  // Lung volumes mini-info
  const vols = [
    { label:"Tidal Volume", val:"~500 mL" },
    { label:"Total Lung Capacity", val:"~6 L" },
    { label:"FRC", val:"~2.5 L" },
    { label:"Normal RR", val:"12–20/min" },
  ];
  vols.forEach((v, i) => {
    const x = 0.55 + i * 2.3;
    slide.addShape(pres.shapes.RECTANGLE, { x, y:4.73, w:2.1, h:0.65,
      fill:{color:C.tealLight}, line:{color:C.teal} });
    slide.addText(v.label, { x, y:4.75, w:2.1, h:0.28,
      fontSize:10, fontFace:"Calibri", color:C.tealDark, bold:true, align:"center", margin:0 });
    slide.addText(v.val, { x, y:5.0, w:2.1, h:0.3,
      fontSize:14, fontFace:"Calibri", color:C.navy, bold:true, align:"center", margin:0 });
  });
}

// ─── SLIDE 7: LIVE PRACTICE: BREATH AWARENESS ─────────────────────────────────
{
  let slide = practiceSlide("Breath Awareness");

  // Big 3 minutes
  slide.addShape(pres.shapes.OVAL, { x:3.5, y:1.1, w:3, h:3, fill:{color:C.navy, transparency:40}, line:{color:C.teal, transparency:0} });
  slide.addText("3", {
    x:3.5, y:1.4, w:3, h:1.5,
    fontSize:96, fontFace:"Calibri", color:C.gold, bold:true, align:"center", valign:"middle", margin:0
  });
  slide.addText("MINUTES", {
    x:3.5, y:2.85, w:3, h:0.45,
    fontSize:16, fontFace:"Calibri", color:C.teal, bold:true, align:"center", charSpacing:6, margin:0
  });

  // Instructions
  const steps = [
    "Sit comfortably, spine tall",
    "Close your eyes",
    "Simply observe your natural breath",
    "Count your breaths per minute",
  ];
  steps.forEach((s, i) => {
    const yPos = 1.28 + i * 0.72;
    slide.addShape(pres.shapes.OVAL, { x:6.9, y:yPos, w:0.38, h:0.38, fill:{color:C.gold}, line:{color:C.gold} });
    slide.addText(String(i+1), { x:6.9, y:yPos, w:0.38, h:0.38,
      fontSize:13, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(s, {
      x:7.4, y:yPos+0.04, w:2.3, h:0.35,
      fontSize:14, fontFace:"Calibri", color:C.white
    });
  });

  // Bottom bar
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.2, w:10, h:0.43, fill:{color:C.navy, transparency:30}, line:{color:C.navy, transparency:30} });
  slide.addText("No changing, no controlling. Just witnessing.", {
    x:0.3, y:5.23, w:9.4, h:0.38,
    fontSize:14, fontFace:"Calibri", color:C.gold, italic:true, align:"center", valign:"middle"
  });
}

// ─── SLIDE 8: SECTION DIVIDER MODULE 2 ───────────────────────────────────────
sectionDivider("2", "The Science of Breath", "0:45 – 1:45");

// ─── SLIDE 9: AUTONOMIC NERVOUS SYSTEM ──────────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.95, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Your Internal Autopilot", {
    x:0.5, y:0.15, w:9, h:0.65,
    fontSize:32, fontFace:"Calibri", color:C.white, bold:true
  });

  // LEFT: Sympathetic
  card(slide, 0.35, 1.1, 4.0, 3.8, C.sympaFill);
  slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:1.1, w:4.0, h:0.55, fill:{color:C.sympa}, line:{color:C.sympa} });
  slide.addText("SYMPATHETIC", {
    x:0.35, y:1.1, w:4.0, h:0.32,
    fontSize:14, fontFace:"Calibri", color:C.white, bold:true, align:"center", charSpacing:4, margin:0
  });
  slide.addText("Fight or Flight ⚡", {
    x:0.35, y:1.38, w:4.0, h:0.28,
    fontSize:13, fontFace:"Calibri", color:C.grayLight, align:"center", italic:true, margin:0
  });
  const sympItems = ["Fast, shallow breathing","Chest-dominant","Pupils dilate","Heart rate increases","Digestion suppressed"];
  sympItems.forEach((item, i) => {
    slide.addShape(pres.shapes.RECTANGLE, { x:0.55, y:1.79+i*0.55, w:0.08, h:0.28, fill:{color:C.sympa}, line:{color:C.sympa} });
    slide.addText(item, { x:0.75, y:1.78+i*0.55, w:3.4, h:0.32,
      fontSize:14, fontFace:"Calibri", color:C.textDark });
  });

  // CENTER: Bridge
  slide.addShape(pres.shapes.RECTANGLE, { x:4.55, y:2.2, w:0.9, h:1.8, fill:{color:C.teal, transparency:85}, line:{color:C.teal} });
  slide.addText("BREATH\nIS THE\nBRIDGE", {
    x:4.4, y:2.3, w:1.2, h:1.6,
    fontSize:11, fontFace:"Calibri", color:C.tealDark, bold:true, align:"center", charSpacing:1
  });
  slide.addText("⟵", { x:4.22, y:2.75, w:0.45, h:0.5, fontSize:22, color:C.teal, align:"center", margin:0 });
  slide.addText("⟶", { x:5.33, y:2.75, w:0.45, h:0.5, fontSize:22, color:C.teal, align:"center", margin:0 });

  // RIGHT: Parasympathetic
  card(slide, 5.65, 1.1, 4.0, 3.8, C.parasymFill);
  slide.addShape(pres.shapes.RECTANGLE, { x:5.65, y:1.1, w:4.0, h:0.55, fill:{color:C.parasym}, line:{color:C.parasym} });
  slide.addText("PARASYMPATHETIC", {
    x:5.65, y:1.1, w:4.0, h:0.32,
    fontSize:14, fontFace:"Calibri", color:C.white, bold:true, align:"center", charSpacing:3, margin:0
  });
  slide.addText("Rest & Digest 🌿", {
    x:5.65, y:1.38, w:4.0, h:0.28,
    fontSize:13, fontFace:"Calibri", color:C.grayLight, align:"center", italic:true, margin:0
  });
  const paraItems = ["Slow, deep breathing","Belly-dominant","Pupils constrict","Heart rate calms","Digestion activates"];
  paraItems.forEach((item, i) => {
    slide.addShape(pres.shapes.RECTANGLE, { x:5.82, y:1.79+i*0.55, w:0.08, h:0.28, fill:{color:C.parasym}, line:{color:C.parasym} });
    slide.addText(item, { x:6.02, y:1.78+i*0.55, w:3.4, h:0.32,
      fontSize:14, fontFace:"Calibri", color:C.textDark });
  });

  // Bottom key message
  slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:5.1, w:9.3, h:0.38,
    fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Pranayama gives us conscious control over the autonomic nervous system", {
    x:0.35, y:5.1, w:9.3, h:0.38,
    fontSize:14, fontFace:"Calibri", color:C.gold, italic:true, bold:true, align:"center", valign:"middle", margin:0
  });
}

// ─── SLIDE 10: HRV ────────────────────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.teal, 0.42, 0.72, 4.6);

  slide.addText("HRV: Your Stress Fingerprint", {
    x:0.75, y:0.22, w:8.8, h:0.6,
    fontSize:32, fontFace:"Calibri", color:C.navy, bold:true
  });

  // Definition
  slide.addShape(pres.shapes.RECTANGLE, { x:0.75, y:1.0, w:5.2, h:1.35,
    fill:{color:C.tealLight}, line:{color:C.teal} });
  slide.addText("DEFINITION", { x:0.9, y:1.05, w:3, h:0.3,
    fontSize:10, fontFace:"Calibri", color:C.tealDark, bold:true, charSpacing:3, margin:0 });
  slide.addText("The variation in time between consecutive heartbeats.\nHigher HRV = greater physiological resilience & health.", {
    x:0.9, y:1.35, w:4.9, h:0.85,
    fontSize:15, fontFace:"Calibri", color:C.textDark
  });

  // HRV scale visualization
  slide.addText("LOW HRV", { x:0.75, y:2.55, w:2, h:0.3, fontSize:12, color:C.red, bold:true, fontFace:"Calibri" });
  slide.addShape(pres.shapes.RECTANGLE, { x:0.75, y:2.85, w:5.2, h:0.3, fill:{color:C.grayLight}, line:{color:C.grayLight} });
  slide.addShape(pres.shapes.RECTANGLE, { x:0.75, y:2.85, w:1.5, h:0.3, fill:{color:C.red, transparency:30}, line:{color:C.red, transparency:30} });
  slide.addShape(pres.shapes.RECTANGLE, { x:2.25, y:2.85, w:1.5, h:0.3, fill:{color:C.gold, transparency:20}, line:{color:C.gold, transparency:20} });
  slide.addShape(pres.shapes.RECTANGLE, { x:3.75, y:2.85, w:2.2, h:0.3, fill:{color:C.teal, transparency:20}, line:{color:C.teal, transparency:20} });
  slide.addText("HIGH HRV", { x:4.0, y:2.55, w:2, h:0.3, fontSize:12, color:C.teal, bold:true, fontFace:"Calibri", align:"right" });
  slide.addText("Stressed", { x:0.75, y:3.15, w:1.8, h:0.28, fontSize:11, color:C.red, fontFace:"Calibri" });
  slide.addText("Optimal Zone →", { x:3.2, y:3.15, w:2.8, h:0.28, fontSize:11, color:C.teal, fontFace:"Calibri" });

  // Key finding box (gold)
  card(slide, 0.75, 3.6, 5.2, 1.3, C.goldFill);
  slide.addShape(pres.shapes.RECTANGLE, { x:0.75, y:3.6, w:0.12, h:1.3, fill:{color:C.gold}, line:{color:C.gold} });
  slide.addText("KEY FINDING", { x:0.98, y:3.67, w:4.8, h:0.28,
    fontSize:11, fontFace:"Calibri", color:C.gold, bold:true, charSpacing:3, margin:0 });
  slide.addText("Slow breathing at 5–6 breaths/min maximizes HRV\nand powerfully activates the vagus nerve.", {
    x:0.98, y:3.96, w:4.8, h:0.8,
    fontSize:15, fontFace:"Calibri", color:C.navy, bold:true
  });

  // Reference
  slide.addText("Reference: Lehrer & Gevirtz, Applied Psychophysiology & Biofeedback, 2014", {
    x:0.75, y:5.2, w:5.5, h:0.28,
    fontSize:10, fontFace:"Calibri", color:C.gray, italic:true
  });

  // Right side visual - HRV diagram
  slide.addShape(pres.shapes.RECTANGLE, { x:6.3, y:0.85, w:3.3, h:4.5, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("COHERENCE\nBREATHING", { x:6.3, y:0.92, w:3.3, h:0.6,
    fontSize:13, fontFace:"Calibri", color:C.teal, bold:true, align:"center", charSpacing:2 });
  const waves = [
    {y:1.65, w:1.1}, {y:2.05, w:1.5}, {y:2.45, w:2.2}, {y:2.85, w:2.8}, {y:3.25, w:3.0},
  ];
  waves.forEach((wv, i) => {
    slide.addShape(pres.shapes.RECTANGLE, { x:6.65, y:wv.y, w:wv.w, h:0.28, fill:{color:C.teal, transparency:30+i*5}, line:{color:C.teal, transparency:20} });
  });
  slide.addText("5–6 breaths/min", { x:6.3, y:3.65, w:3.3, h:0.36,
    fontSize:14, fontFace:"Calibri", color:C.gold, bold:true, align:"center" });
  slide.addText("Resonance Frequency", { x:6.3, y:3.97, w:3.3, h:0.3,
    fontSize:11, fontFace:"Calibri", color:C.grayLight, align:"center" });
  slide.addText("💓 Vagus Nerve Activation\n🧠 Prefrontal Cortex\n❤️ Baroreflex Sensitivity", {
    x:6.4, y:4.32, w:3.1, h:0.85,
    fontSize:11, fontFace:"Calibri", color:C.white
  });
}

// ─── SLIDE 11: BIOCHEMISTRY OF BREATH ─────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.95, fill:{color:C.tealDark}, line:{color:C.tealDark} });
  slide.addText("O₂, CO₂ & the Bohr Effect", {
    x:0.5, y:0.15, w:9, h:0.65,
    fontSize:32, fontFace:"Calibri", color:C.white, bold:true
  });

  const facts = [
    { n:"01", title:"CO₂ Is NOT Just Waste", text:"CO₂ directly regulates O₂ release from hemoglobin via pH changes (Bohr Effect). It is a critical signaling molecule." },
    { n:"02", title:"Over-Breathing Danger", text:"Chronic hyperventilation lowers CO₂ → blood vessel constriction → paradoxically LESS oxygen delivered to brain & tissues." },
    { n:"03", title:"Optimal Breathing Pattern", text:"Nasal breathing, slow rhythm, diaphragmatic, 8–12 breaths/min preserves ideal CO₂ tolerance and tissue oxygenation." },
  ];
  facts.forEach((f, i) => {
    const yPos = 1.1 + i * 1.3;
    card(slide, 0.35, yPos, 9.3, 1.15, i===0?C.tealLight:i===1?C.sympaFill:C.goldFill);
    slide.addShape(pres.shapes.OVAL, { x:0.45, y:yPos+0.15, w:0.6, h:0.6,
      fill:{color:i===0?C.teal:i===1?C.sympa:C.gold}, line:{color:i===0?C.teal:i===1?C.sympa:C.gold} });
    slide.addText(f.n, { x:0.45, y:yPos+0.15, w:0.6, h:0.6,
      fontSize:14, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(f.title, { x:1.22, y:yPos+0.12, w:8.1, h:0.35,
      fontSize:16, fontFace:"Calibri", color:C.navy, bold:true, margin:0 });
    slide.addText(f.text, { x:1.22, y:yPos+0.46, w:8.1, h:0.55,
      fontSize:14, fontFace:"Calibri", color:C.textMid });
  });

  // Bohr Effect callout
  slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:5.05, w:9.3, h:0.45,
    fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("⚗️  Bohr Effect:  More CO₂ in tissues = lower pH = O₂ released from hemoglobin = more O₂ to cells", {
    x:0.5, y:5.07, w:9, h:0.38,
    fontSize:13, fontFace:"Calibri", color:C.gold, bold:true, align:"center", valign:"middle"
  });
}

// ─── SLIDE 12: BOLT SCORE TEST ─────────────────────────────────────────────────
{
  let slide = tealSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:1.05, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("LIVE TEST", { x:0.5, y:0.05, w:4, h:0.38,
    fontSize:11, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:6 });
  slide.addText("Your BOLT Score", { x:0.5, y:0.38, w:9, h:0.6,
    fontSize:28, fontFace:"Calibri", color:C.white, bold:true });

  // Steps
  const steps = [
    "Breathe normally through your nose for 1 minute",
    "Take a normal (not deep) exhale",
    "Gently pinch your nose closed",
    "Count the seconds until you feel the FIRST urge to breathe",
    "That number is your BOLT score!",
  ];
  steps.forEach((s, i) => {
    const yPos = 1.18 + i * 0.68;
    slide.addShape(pres.shapes.OVAL, { x:0.45, y:yPos, w:0.48, h:0.48, fill:{color:C.gold}, line:{color:C.gold} });
    slide.addText(String(i+1), { x:0.45, y:yPos, w:0.48, h:0.48,
      fontSize:15, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(s, { x:1.1, y:yPos+0.05, w:5.5, h:0.4,
      fontSize:16, fontFace:"Calibri", color:C.white });
  });

  // Score guide
  slide.addShape(pres.shapes.RECTANGLE, { x:6.9, y:1.15, w:2.8, h:3.85,
    fill:{color:C.navy, transparency:30}, line:{color:C.teal} });
  slide.addText("SCORE GUIDE", { x:6.9, y:1.22, w:2.8, h:0.38,
    fontSize:12, fontFace:"Calibri", color:C.gold, bold:true, align:"center", charSpacing:3 });
  const scores = [
    { range:"< 10 sec", level:"Poor", color:C.red },
    { range:"10–20 sec", level:"Average", color:C.gold },
    { range:"20–40 sec", level:"Good", color:C.teal },
    { range:"> 40 sec", level:"Excellent", color:"98FF98" },
  ];
  scores.forEach((sc, i) => {
    const yPos = 1.72 + i * 0.82;
    slide.addShape(pres.shapes.RECTANGLE, { x:7.05, y:yPos, w:2.5, h:0.68,
      fill:{color:sc.color, transparency:70}, line:{color:sc.color} });
    slide.addText(sc.range, { x:7.1, y:yPos+0.04, w:2.4, h:0.28,
      fontSize:14, fontFace:"Calibri", color:C.white, bold:true, align:"center", margin:0 });
    slide.addText(sc.level, { x:7.1, y:yPos+0.32, w:2.4, h:0.24,
      fontSize:12, fontFace:"Calibri", color:C.white, align:"center", margin:0 });
  });
}

// ─── SLIDE 13: SECTION DIVIDER MODULE 3 ──────────────────────────────────────
sectionDivider("3", "Pranayama Pharmacopoeia", "1:55 – 3:00", "8 Techniques. 8 Prescriptions.");

// ─── SLIDE 14: NADI SHODHANA ───────────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.teal, 0.38, 0.18, 5.3);

  slide.addText("1. Nadi Shodhana", { x:0.68, y:0.18, w:9, h:0.52,
    fontSize:30, fontFace:"Calibri", color:C.navy, bold:true });
  slide.addText("Alternate Nostril Breathing  |  'Channel Cleansing'", {
    x:0.68, y:0.66, w:8.5, h:0.35,
    fontSize:15, fontFace:"Calibri", color:C.tealDark, italic:true });

  const sections = [
    { label:"TECHNIQUE", color:C.teal, text:"R hand: close right nostril → inhale left → close both → exhale right → inhale right → exhale left. Repeat." },
    { label:"MECHANISM", color:C.navy, text:"Balances cerebral hemispheres. Reduces sympathetic tone via alternating nasal cycle and olfactory stimulation." },
    { label:"INDICATIONS", color:C.tealDark, text:"Anxiety • Hypertension • Migraine • Pre-sleep preparation • Exam / performance anxiety" },
    { label:"DOSE", color:C.gold, text:"5–10 cycles per session | Ratio 1:2 (inhale:exhale) | Can add kumbhaka (retention) 1:1:2 for advanced" },
  ];
  sections.forEach((sec, i) => {
    const col = i < 2 ? 0 : 1;
    const row = i % 2;
    const x = 0.55 + col * 4.65;
    const y = 1.15 + row * 1.85;
    card(slide, x, y, 4.45, 1.65, C.white);
    slide.addShape(pres.shapes.RECTANGLE, { x, y, w:4.45, h:0.38, fill:{color:sec.color}, line:{color:sec.color} });
    slide.addText(sec.label, { x, y, w:4.45, h:0.38,
      fontSize:12, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", charSpacing:3, margin:0 });
    slide.addText(sec.text, { x:x+0.12, y:y+0.42, w:4.22, h:1.1,
      fontSize:13, fontFace:"Calibri", color:C.textDark });
  });

  // Contraindication badge
  slide.addShape(pres.shapes.RECTANGLE, { x:0.55, y:4.88, w:9.1, h:0.52,
    fill:{color:C.red, transparency:10}, line:{color:C.red} });
  slide.addText("⛔  CONTRAINDICATION:  Severe nasal congestion, deviated septum (acute). Use Dirgha instead.", {
    x:0.7, y:4.9, w:8.8, h:0.45,
    fontSize:13, fontFace:"Calibri", color:C.white, bold:true, valign:"middle"
  });
}

// ─── SLIDE 15: BHRAMARI ────────────────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.gold, 0.38, 0.18, 5.3);

  slide.addText("2. Bhramari", { x:0.68, y:0.18, w:9, h:0.52,
    fontSize:30, fontFace:"Calibri", color:C.navy, bold:true });
  slide.addText("Humming Bee Breath  |  'The Humming Bee'  🐝", {
    x:0.68, y:0.66, w:8.5, h:0.35,
    fontSize:15, fontFace:"Calibri", color:C.tealDark, italic:true });

  // Science highlight
  card(slide, 0.55, 1.1, 9.1, 1.1, C.tealDark);
  slide.addText("🔬  SCIENCE HIGHLIGHT", { x:0.7, y:1.15, w:4, h:0.35,
    fontSize:11, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:3, margin:0 });
  slide.addText("Bhramari generates endogenous Nitric Oxide (NO) in the nasal sinuses — 15x normal levels.", {
    x:0.7, y:1.46, w:8.7, h:0.55,
    fontSize:16, fontFace:"Calibri", color:C.white, bold:true });

  // 3 columns
  const cols = [
    { label:"TECHNIQUE", color:C.teal, text:"Sit tall. Plug ears with thumbs (shanmukhi mudra). Inhale through nose. On exhale, produce a steady humming sound ('mmmm'). Feel vibration in skull." },
    { label:"INDICATIONS", color:C.gold, text:"Insomnia  •  Anxiety & panic\nTinnitus relief\nHypertension\nMigraine headache\nOCD & rumination" },
    { label:"DOSE", color:C.navy, text:"5–10 cycles before bed\nor during acute anxiety\n\nNitric Oxide effect:\nbronchodilation + vasodilation\n+ antiviral" },
  ];
  cols.forEach((col, i) => {
    const x = 0.42 + i * 3.08;
    card(slide, x, 2.35, 2.9, 2.9, C.white);
    slide.addShape(pres.shapes.RECTANGLE, { x, y:2.35, w:2.9, h:0.42,
      fill:{color:col.color}, line:{color:col.color} });
    slide.addText(col.label, { x, y:2.35, w:2.9, h:0.42,
      fontSize:12, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", charSpacing:3, margin:0 });
    slide.addText(col.text, { x:x+0.12, y:2.82, w:2.68, h:2.2,
      fontSize:13, fontFace:"Calibri", color:C.textDark });
  });
}

// ─── SLIDE 16: BHASTRIKA & KAPALBHATI ─────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.92, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Activating Pranayamas", { x:0.5, y:0.12, w:9, h:0.62,
    fontSize:30, fontFace:"Calibri", color:C.white, bold:true });

  // LEFT HALF: Bhastrika
  card(slide, 0.3, 1.05, 4.5, 3.75, C.tealLight);
  slide.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.05, w:4.5, h:0.52, fill:{color:C.teal}, line:{color:C.teal} });
  slide.addText("3. BHASTRIKA", { x:0.3, y:1.05, w:4.5, h:0.52,
    fontSize:17, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
  slide.addText("Bellows Breath  🔥", { x:0.4, y:1.63, w:4.3, h:0.32,
    fontSize:14, fontFace:"Calibri", color:C.tealDark, italic:true, align:"center" });
  const bItems = [
    "Rapid FORCED inhalation AND exhalation",
    "Equal emphasis on both in and out",
    "Sympathoadrenal activation",
    "Clears airways; energizes body",
    "Rate: 30 breaths/min in 3 rounds",
  ];
  bItems.forEach((item, i) => {
    slide.addShape(pres.shapes.OVAL, { x:0.45, y:2.05+i*0.53, w:0.22, h:0.22, fill:{color:C.teal}, line:{color:C.teal} });
    slide.addText(item, { x:0.78, y:2.02+i*0.53, w:3.9, h:0.3, fontSize:13, fontFace:"Calibri", color:C.textDark });
  });

  // RIGHT HALF: Kapalbhati
  card(slide, 5.2, 1.05, 4.5, 3.75, C.goldFill);
  slide.addShape(pres.shapes.RECTANGLE, { x:5.2, y:1.05, w:4.5, h:0.52, fill:{color:C.gold}, line:{color:C.gold} });
  slide.addText("4. KAPALBHATI", { x:5.2, y:1.05, w:4.5, h:0.52,
    fontSize:17, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0 });
  slide.addText("Skull-Shining Breath  ✨", { x:5.3, y:1.63, w:4.3, h:0.32,
    fontSize:14, fontFace:"Calibri", color:C.textMid, italic:true, align:"center" });
  const kItems = [
    "Passive inhalation, SHARP exhalation",
    "Active contraction of lower abdomen",
    "Abdominal pump stimulates digestion",
    "Clears nasal passages (kapha)",
    "Rate: 60–120 pumps/min",
  ];
  kItems.forEach((item, i) => {
    slide.addShape(pres.shapes.OVAL, { x:5.32, y:2.05+i*0.53, w:0.22, h:0.22, fill:{color:C.gold}, line:{color:C.gold} });
    slide.addText(item, { x:5.65, y:2.02+i*0.53, w:3.9, h:0.3, fontSize:13, fontFace:"Calibri", color:C.textDark });
  });

  // Warning bar
  slide.addShape(pres.shapes.RECTANGLE, { x:0.3, y:4.95, w:9.4, h:0.52,
    fill:{color:C.maroon, transparency:10}, line:{color:C.red} });
  slide.addText("⛔  AVOID in: Hypertension • Epilepsy • Pregnancy • GERD • Cardiac conditions • Glaucoma • Recent surgery", {
    x:0.4, y:4.97, w:9.1, h:0.44,
    fontSize:13, fontFace:"Calibri", color:C.white, bold:true, valign:"middle"
  });
}

// ─── SLIDE 17: UJJAYI ─────────────────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.teal, 0.38, 0.18, 5.3);

  slide.addText("5. Ujjayi", { x:0.68, y:0.18, w:9, h:0.52,
    fontSize:30, fontFace:"Calibri", color:C.navy, bold:true });
  slide.addText("The Victorious Breath  |  The 'Ocean Sound' Breath 🌊", {
    x:0.68, y:0.66, w:8.5, h:0.35,
    fontSize:15, fontFace:"Calibri", color:C.tealDark, italic:true });

  // Key feature box
  card(slide, 0.55, 1.1, 5.0, 1.5, C.navy);
  slide.addText("KEY MECHANISM", { x:0.7, y:1.17, w:4.7, h:0.3,
    fontSize:11, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:3, margin:0 });
  slide.addText("Partial glottal constriction creates airway resistance, prolonging breath, stimulating the vagus nerve, and triggering the relaxation response.", {
    x:0.7, y:1.46, w:4.7, h:0.95,
    fontSize:14, fontFace:"Calibri", color:C.white });

  // Clinical analog callout
  card(slide, 0.55, 2.75, 5.0, 1.2, C.goldFill);
  slide.addShape(pres.shapes.RECTANGLE, { x:0.55, y:2.75, w:0.12, h:1.2, fill:{color:C.gold}, line:{color:C.gold} });
  slide.addText("CLINICAL ANALOG", { x:0.8, y:2.82, w:4.6, h:0.28,
    fontSize:11, fontFace:"Calibri", color:C.gold, bold:true, charSpacing:3, margin:0 });
  slide.addText("Direct equivalent of Pursed Lip Breathing (PLB) used in COPD management — reduces air trapping and dyspnea.", {
    x:0.8, y:3.1, w:4.6, h:0.72,
    fontSize:14, fontFace:"Calibri", color:C.navy });

  // Dose + Rate
  card(slide, 0.55, 4.08, 5.0, 0.88, C.tealLight);
  slide.addText("⏱  Dose:", { x:0.7, y:4.12, w:1.5, h:0.32,
    fontSize:14, fontFace:"Calibri", color:C.tealDark, bold:true, margin:0 });
  slide.addText("Throughout yoga practice or 5–10 min standalone. RR reduces to 2–4 breaths/min in advanced practitioners.", {
    x:2.1, y:4.12, w:3.3, h:0.7,
    fontSize:13, fontFace:"Calibri", color:C.textDark });

  // Right side detail cards
  const rightCards = [
    { label:"HOW TO", text:"Slightly constrict the back of your throat (as if fogging a mirror). Breathe only through your nose. You should hear a soft 'hhh' ocean wave sound." },
    { label:"BENEFITS", text:"Reduces RR dramatically\nDecreases anxiety and stress\nImproves focus during asana\nLowers blood pressure\nRelieves mild dyspnea" },
  ];
  rightCards.forEach((rc, i) => {
    const y = 1.1 + i * 2.3;
    card(slide, 5.8, y, 3.85, 2.1, C.white);
    slide.addShape(pres.shapes.RECTANGLE, { x:5.8, y, w:3.85, h:0.42,
      fill:{color:C.tealDark}, line:{color:C.tealDark} });
    slide.addText(rc.label, { x:5.8, y, w:3.85, h:0.42,
      fontSize:12, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", charSpacing:3, margin:0 });
    slide.addText(rc.text, { x:5.95, y:y+0.48, w:3.55, h:1.5,
      fontSize:13, fontFace:"Calibri", color:C.textDark });
  });
}

// ─── SLIDE 18: SITALI/SITKARI & SAMA VRITTI ───────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.92, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Cooling & Balancing Pranayamas", { x:0.5, y:0.12, w:9, h:0.62,
    fontSize:30, fontFace:"Calibri", color:C.white, bold:true });

  // LEFT: Sitali/Sitkari
  card(slide, 0.3, 1.05, 4.5, 4.1, C.tealLight);
  slide.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.05, w:4.5, h:0.52, fill:{color:C.tealDark}, line:{color:C.tealDark} });
  slide.addText("6. SITALI / SITKARI", { x:0.3, y:1.05, w:4.5, h:0.52,
    fontSize:16, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
  slide.addText("Cooling Breath  ❄️", { x:0.4, y:1.63, w:4.3, h:0.35,
    fontSize:14, fontFace:"Calibri", color:C.tealDark, italic:true, align:"center" });
  slide.addText([
    { text:"Sitali: ", options:{ bold:true, color:C.tealDark } },
    { text:"Roll tongue into tube, inhale through it\n", options:{ color:C.textDark } },
    { text:"Sitkari: ", options:{ bold:true, color:C.tealDark } },
    { text:"(if can't roll) teeth together, inhale through sides\n\n", options:{ color:C.textDark } },
    { text:"Mechanism: ", options:{ bold:true, color:C.tealDark } },
    { text:"Evaporative cooling of inspired air\nLowers core body temperature\nBalances pitta (heat) in Ayurveda\n\n", options:{ color:C.textDark } },
    { text:"Best for: ", options:{ bold:true, color:C.tealDark } },
    { text:"Hot weather, fever (mild), excess pitta, summer practice", options:{ color:C.textDark } },
  ], { x:0.42, y:2.05, w:4.25, h:2.8, fontSize:13, fontFace:"Calibri" });

  // RIGHT: Sama Vritti (Box Breathing)
  card(slide, 5.2, 1.05, 4.5, 4.1, C.goldFill);
  slide.addShape(pres.shapes.RECTANGLE, { x:5.2, y:1.05, w:4.5, h:0.52, fill:{color:C.gold}, line:{color:C.gold} });
  slide.addText("7. SAMA VRITTI", { x:5.2, y:1.05, w:4.5, h:0.52,
    fontSize:17, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0 });
  slide.addText("Box Breathing  ⬜", { x:5.3, y:1.63, w:4.3, h:0.35,
    fontSize:14, fontFace:"Calibri", color:C.textMid, italic:true, align:"center" });

  // Box breathing diagram
  const bx = 5.7, by = 2.08, bw = 1.7, bh = 1.7;
  slide.addShape(pres.shapes.RECTANGLE, { x:bx, y:by, w:bw, h:bh,
    fill:{color:"F5D98A", transparency:60}, line:{color:C.gold, transparency:0} });
  slide.addText("INHALE\n4", { x:bx+0.02, y:by-0.42, w:bw-0.04, h:0.42,
    fontSize:12, fontFace:"Calibri", color:C.navy, bold:true, align:"center", margin:0 });
  slide.addText("HOLD\n4", { x:bx+bw+0.04, y:by+0.02, w:0.8, h:bh-0.04,
    fontSize:12, fontFace:"Calibri", color:C.navy, bold:true, align:"left", valign:"middle" });
  slide.addText("EXHALE\n4", { x:bx+0.02, y:by+bh+0.04, w:bw-0.04, h:0.42,
    fontSize:12, fontFace:"Calibri", color:C.navy, bold:true, align:"center", margin:0 });
  slide.addText("HOLD\n4", { x:bx-0.78, y:by+0.02, w:0.75, h:bh-0.04,
    fontSize:12, fontFace:"Calibri", color:C.navy, bold:true, align:"right", valign:"middle" });
  slide.addText("4-4-4-4", { x:bx, y:by, w:bw, h:bh,
    fontSize:18, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0 });

  slide.addText("Science: Activates prefrontal cortex\nUsed by US Navy SEALs for stress control\nRegulates CO₂ tolerance", {
    x:7.7, y:2.08, w:1.85, h:1.7,
    fontSize:11, fontFace:"Calibri", color:C.textDark, valign:"middle" });

  slide.addText("Indications: Acute stress, panic prevention, pre-performance, focus & clarity", {
    x:5.3, y:4.0, w:4.3, h:0.5,
    fontSize:13, fontFace:"Calibri", color:C.textDark });
  slide.addText("Dose: 5–10 cycles | Can extend to 6-6-6-6 or 8-8-8-8 as tolerance builds", {
    x:5.3, y:4.52, w:4.3, h:0.45,
    fontSize:13, fontFace:"Calibri", color:C.textDark });
}

// ─── SLIDE 19: DIRGHA PRANAYAMA ────────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.gold, 0.38, 0.18, 5.3);

  slide.addText("8. Dirgha Pranayama", { x:0.68, y:0.18, w:9, h:0.52,
    fontSize:30, fontFace:"Calibri", color:C.navy, bold:true });
  slide.addText("Three-Part Breath  |  The Foundation Practice", {
    x:0.68, y:0.66, w:8.5, h:0.35,
    fontSize:15, fontFace:"Calibri", color:C.tealDark, italic:true });

  // Three zones
  const zones = [
    { n:"Zone 1", region:"BELLY", muscle:"Diaphragm", desc:"Expands lower abdomen first. Diaphragm descends. Maximum air volume.", color:C.teal, pct:"60%" },
    { n:"Zone 2", region:"RIBCAGE", muscle:"Intercostals", desc:"Lateral rib expansion. Intercostal muscles engage. Mid-lung fills.", color:C.gold, pct:"30%" },
    { n:"Zone 3", region:"CHEST & CLAVICLES", muscle:"Accessory muscles", desc:"Subtle lift of sternum and collarbones. Upper lung fills last.", color:C.navy, pct:"10%" },
  ];
  zones.forEach((z, i) => {
    const y = 1.12 + i * 1.35;
    card(slide, 0.55, y, 6.0, 1.22, i===0?C.tealLight:i===1?C.goldFill:C.grayLight);
    // Zone number circle
    slide.addShape(pres.shapes.OVAL, { x:0.65, y:y+0.12, w:0.68, h:0.68, fill:{color:z.color}, line:{color:z.color} });
    slide.addText(String(i+1), { x:0.65, y:y+0.12, w:0.68, h:0.68,
      fontSize:20, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(z.n + "  —  " + z.region, { x:1.48, y:y+0.1, w:5, h:0.3,
      fontSize:14, fontFace:"Calibri", color:z.color, bold:true, margin:0 });
    slide.addText(z.muscle, { x:1.48, y:y+0.38, w:2.5, h:0.25,
      fontSize:12, fontFace:"Calibri", color:C.gray, italic:true, margin:0 });
    slide.addText(z.desc, { x:1.48, y:y+0.62, w:5, h:0.45,
      fontSize:13, fontFace:"Calibri", color:C.textDark });
    // Percentage
    slide.addShape(pres.shapes.RECTANGLE, { x:5.72, y:y+0.35, w:0.7, h:0.55,
      fill:{color:z.color, transparency:20}, line:{color:z.color} });
    slide.addText(z.pct, { x:5.72, y:y+0.35, w:0.7, h:0.55,
      fontSize:14, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
  });

  // Right side best-for panel
  card(slide, 6.8, 1.12, 2.85, 4.0, C.navy);
  slide.addText("BEST FOR", { x:6.95, y:1.22, w:2.55, h:0.32,
    fontSize:12, fontFace:"Calibri", color:C.teal, bold:true, charSpacing:3 });
  const bestFor = ["Beginners (start here)","COPD management","Post-COVID recovery","Anxiety & panic","Morning activation","Children & elderly","Pregnancy (safe)"];
  bestFor.forEach((item, i) => {
    slide.addShape(pres.shapes.OVAL, { x:6.95, y:1.62+i*0.48, w:0.22, h:0.22, fill:{color:C.gold}, line:{color:C.gold} });
    slide.addText(item, { x:7.28, y:1.6+i*0.48, w:2.25, h:0.28,
      fontSize:12, fontFace:"Calibri", color:C.white });
  });

  slide.addShape(pres.shapes.RECTANGLE, { x:0.55, y:5.12, w:9.1, h:0.35,
    fill:{color:C.teal}, line:{color:C.teal} });
  slide.addText("Dirgha is always the first technique prescribed. Master it before advancing.", {
    x:0.65, y:5.14, w:8.9, h:0.3,
    fontSize:12, fontFace:"Calibri", color:C.white, bold:true, align:"center", margin:0 });
}

// ─── SLIDE 20: LIVE PRACTICE — CALMING TRIO ───────────────────────────────────
{
  let slide = practiceSlide("The Calming Trio");

  const techniques = [
    { icon:"🌀", name:"Nadi Shodhana", desc:"Alternate Nostril Breathing", time:"5 cycles · ~3 min", color:C.teal },
    { icon:"🐝", name:"Bhramari", desc:"Humming Bee Breath", time:"5 cycles · ~3 min", color:C.gold },
    { icon:"⬜", name:"Sama Vritti", desc:"Box Breathing 4-4-4-4", time:"5 cycles · ~3 min", color:C.navy },
  ];

  techniques.forEach((t, i) => {
    const x = 0.45 + i * 3.1;
    card(slide, x, 1.18, 2.9, 3.6, C.navyDark);
    slide.addShape(pres.shapes.RECTANGLE, { x, y:1.18, w:2.9, h:0.52, fill:{color:t.color}, line:{color:t.color} });
    slide.addText(t.icon, { x, y:1.2, w:2.9, h:0.52,
      fontSize:20, align:"center", valign:"middle", margin:0 });
    slide.addText(t.name, { x, y:1.78, w:2.9, h:0.42,
      fontSize:15, fontFace:"Calibri", color:C.white, bold:true, align:"center", margin:0 });
    slide.addText(t.desc, { x, y:2.2, w:2.9, h:0.35,
      fontSize:12, fontFace:"Calibri", color:C.grayLight, italic:true, align:"center" });
    slide.addShape(pres.shapes.RECTANGLE, { x:x+0.35, y:2.65, w:2.2, h:0.04, fill:{color:t.color}, line:{color:t.color} });
    slide.addText("⏱  " + t.time, { x, y:2.82, w:2.9, h:0.38,
      fontSize:14, fontFace:"Calibri", color:t.color, bold:true, align:"center" });
    // Total time
    slide.addText("≈ 9 min", { x, y:4.32, w:2.9, h:0.35,
      fontSize:18, fontFace:"Calibri", color:C.gold, bold:true, align:"center" });
    slide.addText("total", { x, y:4.62, w:2.9, h:0.25,
      fontSize:11, fontFace:"Calibri", color:C.grayLight, align:"center" });
  });

  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.2, w:10, h:0.43, fill:{color:C.navy, transparency:30}, line:{color:C.navy, transparency:30} });
  slide.addText("💬  How do you feel now? Take the poll  ↓  (Relaxed / Same / More Alert)", {
    x:0.3, y:5.23, w:9.4, h:0.38,
    fontSize:14, fontFace:"Calibri", color:C.gold, align:"center", valign:"middle", bold:true
  });
}

// ─── SLIDE 21: SECTION DIVIDER MODULE 4 ──────────────────────────────────────
sectionDivider("4", "Clinical Applications\n& Evidence", "3:15 – 3:55");

// ─── SLIDE 22: EVIDENCE OVERVIEW ──────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.92, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("What Does the Research Say?", { x:0.5, y:0.12, w:9, h:0.62,
    fontSize:30, fontFace:"Calibri", color:C.white, bold:true });

  const evidence = [
    { icon:"💊", cond:"Hypertension", finding:"Slow pranayama reduces SBP by 5–8 mmHg (RCTs, meta-analysis 2019)", color:C.sympa },
    { icon:"🧠", cond:"Anxiety / Stress", finding:"Reduces cortisol, HAM-A scores; non-inferior to medication in mild-moderate anxiety", color:C.tealDark },
    { icon:"🫁", cond:"COPD", finding:"Ujjayi + Dirgha improve exercise tolerance, reduce dyspnea, improve 6MWT", color:C.teal },
    { icon:"😴", cond:"Insomnia", finding:"Bhramari + Nadi Shodhana improve sleep onset & quality (PSQI scores)", color:C.navy },
    { icon:"🦠", cond:"Post-COVID", finding:"Pranayama improves SpO₂, reduces fatigue, dyspnea at 4 weeks", color:C.gold },
    { icon:"❤️", cond:"Cardiovascular", finding:"Improves HRV, reduces LDL, lowers resting heart rate long-term", color:C.parasym },
  ];

  evidence.forEach((e, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.35 + col * 4.85;
    const y = 1.05 + row * 1.42;
    card(slide, x, y, 4.6, 1.28, C.white);
    slide.addShape(pres.shapes.RECTANGLE, { x, y, w:4.6, h:0.45, fill:{color:e.color}, line:{color:e.color} });
    slide.addText(e.icon + "  " + e.cond, { x:x+0.1, y, w:4.4, h:0.45,
      fontSize:15, fontFace:"Calibri", color:C.white, bold:true, valign:"middle", margin:0 });
    slide.addText(e.finding, { x:x+0.1, y:y+0.5, w:4.4, h:0.68,
      fontSize:12, fontFace:"Calibri", color:C.textDark });
  });

  slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:5.28, w:9.3, h:0.28, fill:{color:C.teal}, line:{color:C.teal} });
  slide.addText("Note: Evidence quality varies. Most studies are small RCTs or pilot trials. Pranayama is complementary, not replacement therapy.", {
    x:0.5, y:5.3, w:9, h:0.25,
    fontSize:10, fontFace:"Calibri", color:C.white, italic:true, align:"center", margin:0 });
}

// ─── SLIDE 23: PRESCRIPTION TABLE ─────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.teal, 0.38, 0.1, 5.42);

  slide.addText("Your Breath Prescription", { x:0.68, y:0.12, w:9, h:0.55,
    fontSize:30, fontFace:"Calibri", color:C.navy, bold:true });

  const tableRows = [
    [
      { text:"Condition", options:{ bold:true, color:C.white, fill:{color:C.navy}, align:"center" } },
      { text:"First Choice", options:{ bold:true, color:C.white, fill:{color:C.navy}, align:"center" } },
      { text:"Second Choice", options:{ bold:true, color:C.white, fill:{color:C.navy}, align:"center" } },
      { text:"AVOID", options:{ bold:true, color:C.white, fill:{color:C.red}, align:"center" } },
    ],
    [
      { text:"Hypertension", options:{ bold:true } },
      { text:"Nadi Shodhana" }, { text:"Bhramari" }, { text:"Bhastrika, Kapalbhati" }
    ],
    [
      { text:"Anxiety / Panic", options:{ bold:true, fill:{color:C.rowAlt} } },
      { text:"Sama Vritti (4-4-4-4)", options:{ fill:{color:C.rowAlt} } },
      { text:"Bhramari", options:{ fill:{color:C.rowAlt} } },
      { text:"Bhastrika", options:{ fill:{color:C.rowAlt} } }
    ],
    [
      { text:"COPD / Asthma", options:{ bold:true } },
      { text:"Ujjayi / Dirgha" }, { text:"Sama Vritti" }, { text:"Kapalbhati, Bhastrika" }
    ],
    [
      { text:"Insomnia", options:{ bold:true, fill:{color:C.rowAlt} } },
      { text:"Bhramari + Nadi Shodhana", options:{ fill:{color:C.rowAlt} } },
      { text:"4-7-8 Breath", options:{ fill:{color:C.rowAlt} } },
      { text:"Bhastrika (evening)", options:{ fill:{color:C.rowAlt} } }
    ],
    [
      { text:"Fatigue / Low Energy", options:{ bold:true } },
      { text:"Bhastrika (am)" }, { text:"Kapalbhati" }, { text:"Bhramari (morning)" }
    ],
    [
      { text:"Post-COVID", options:{ bold:true, fill:{color:C.rowAlt} } },
      { text:"Dirgha + Ujjayi", options:{ fill:{color:C.rowAlt} } },
      { text:"Nadi Shodhana", options:{ fill:{color:C.rowAlt} } },
      { text:"Bhastrika, retentions", options:{ fill:{color:C.rowAlt} } }
    ],
    [
      { text:"Diabetes (T2)", options:{ bold:true } },
      { text:"Kapalbhati" }, { text:"Bhastrika" }, { text:"None specific" }
    ],
    [
      { text:"Mental Fog / Focus", options:{ bold:true, fill:{color:C.rowAlt} } },
      { text:"Sama Vritti", options:{ fill:{color:C.rowAlt} } },
      { text:"Nadi Shodhana", options:{ fill:{color:C.rowAlt} } },
      { text:"Any retention holds", options:{ fill:{color:C.rowAlt} } }
    ],
  ];

  slide.addTable(tableRows, {
    x:0.55, y:0.82, w:9.1,
    border:{ pt:0.5, color:"CCCCCC" },
    fontSize:11, fontFace:"Calibri", color:C.textDark,
    colW:[1.9, 2.1, 2.1, 2.0],
    rowH: 0.48,
  });
}

// ─── SLIDE 24: SPECIAL POPULATIONS ────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.92, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Special Considerations", { x:0.5, y:0.12, w:9, h:0.62,
    fontSize:30, fontFace:"Calibri", color:C.white, bold:true });

  const pops = [
    {
      icon:"🤰", title:"Pregnancy", color:C.teal,
      safe:"Nadi Shodhana (all trimesters)\nDirgha / Three-Part Breath\nSitali (if overheated)",
      avoid:"Bhastrika, Kapalbhati\nBreath retentions (kumbhaka)\nIntensive pranayama >20 min"
    },
    {
      icon:"👶", title:"Children (6–12 yrs)", color:C.gold,
      safe:"Bhramari (humming games)\nDirgha with stuffed animal\nSama Vritti (counting)",
      avoid:"Kumbhaka / breath holds\nBhastrika or forceful techniques\nSessions >10 min"
    },
    {
      icon:"👴", title:"Elderly (65+)", color:C.tealDark,
      safe:"Dirgha Pranayama\nNadi Shodhana (slow ratio)\nUjjayi (seated, gentle)",
      avoid:"Retentions initially\nBhastrika at high speed\nStanding practice (fall risk)"
    },
    {
      icon:"🏥", title:"Post-Surgical", color:C.sympa,
      safe:"Dirgha only in weeks 1–2\nGentle Nadi Shodhana at week 3\nUjjayi at week 4+",
      avoid:"Any forceful techniques\nAbdominal pumping\nKumbhaka until cleared by surgeon"
    },
  ];

  pops.forEach((p, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.3 + col * 4.9;
    const y = 1.05 + row * 2.12;
    card(slide, x, y, 4.6, 1.95, C.white);
    slide.addShape(pres.shapes.RECTANGLE, { x, y, w:4.6, h:0.52, fill:{color:p.color}, line:{color:p.color} });
    slide.addText(p.icon + "  " + p.title, { x:x+0.1, y, w:4.4, h:0.52,
      fontSize:16, fontFace:"Calibri", color:C.white, bold:true, valign:"middle", margin:0 });

    // Safe sub-column
    slide.addText("✓ SAFE", { x:x+0.08, y:y+0.56, w:2.05, h:0.28,
      fontSize:10, fontFace:"Calibri", color:C.parasym, bold:true, charSpacing:2, margin:0 });
    slide.addText(p.safe, { x:x+0.08, y:y+0.82, w:2.05, h:0.98,
      fontSize:11, fontFace:"Calibri", color:C.textDark });

    // Avoid sub-column
    slide.addShape(pres.shapes.LINE, { x:x+2.22, y:y+0.56, w:0, h:1.28, line:{color:C.grayLight, width:1} });
    slide.addText("⛔ AVOID", { x:x+2.3, y:y+0.56, w:2.15, h:0.28,
      fontSize:10, fontFace:"Calibri", color:C.red, bold:true, charSpacing:2, margin:0 });
    slide.addText(p.avoid, { x:x+2.3, y:y+0.82, w:2.15, h:0.98,
      fontSize:11, fontFace:"Calibri", color:C.textDark });
  });
}

// ─── SLIDE 25: RED FLAGS ───────────────────────────────────────────────────────
{
  let slide = pres.addSlide();
  slide.background = { color: C.maroon };

  // Faint circle decoration
  slide.addShape(pres.shapes.OVAL, { x:6.5, y:-1, w:5, h:5, fill:{color:"AA0000", transparency:70}, line:{color:"AA0000", transparency:60} });

  slide.addText("STOP Practicing If...", { x:0.5, y:0.22, w:9, h:0.75,
    fontSize:36, fontFace:"Calibri", color:C.white, bold:true });
  slide.addShape(pres.shapes.RECTANGLE, { x:0.5, y:0.95, w:3, h:0.06, fill:{color:C.gold}, line:{color:C.gold} });

  const flags = [
    "Dizziness or lightheadedness",
    "Chest pain or chest tightness",
    "Palpitations or irregular heartbeat",
    "Numbness or tingling in face or hands",
    "Fainting or near-fainting episode",
    "Uncontrolled hypertension (SBP > 160 mmHg)",
  ];
  flags.forEach((flag, i) => {
    const yPos = 1.2 + i * 0.67;
    // Warning icon
    slide.addShape(pres.shapes.OVAL, { x:0.5, y:yPos+0.04, w:0.42, h:0.42, fill:{color:C.gold}, line:{color:C.gold} });
    slide.addText("!", { x:0.5, y:yPos+0.04, w:0.42, h:0.42,
      fontSize:16, fontFace:"Calibri", color:C.maroon, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(flag, { x:1.05, y:yPos+0.06, w:8.5, h:0.38,
      fontSize:18, fontFace:"Calibri", color:C.white });
  });

  // Bottom bar
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.2, w:10, h:0.43, fill:{color:"660000"}, line:{color:"660000"} });
  slide.addText("Always seek medical clearance if you have a chronic condition before starting pranayama", {
    x:0.3, y:5.23, w:9.4, h:0.38,
    fontSize:14, fontFace:"Calibri", color:C.gold, bold:true, align:"center", valign:"middle"
  });
}

// ─── SLIDE 26: SECTION DIVIDER MODULE 5 ──────────────────────────────────────
sectionDivider("5", "Building Your\nBreath Practice", "3:55 – 4:30");

// ─── SLIDE 27: B.R.E.A.T.H. FRAMEWORK ─────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  leftBar(slide, C.teal, 0.38, 0.18, 5.3);

  slide.addText("The B.R.E.A.T.H. Framework", { x:0.68, y:0.18, w:9, h:0.55,
    fontSize:30, fontFace:"Calibri", color:C.navy, bold:true });

  const letters = [
    { l:"B", word:"Baseline", desc:"Assess your BOLT score, resting RR, HRV reading — know your starting point", color:C.teal },
    { l:"R", word:"Recognize", desc:"Identify your pattern: Are you a mouth breather? Chest breather? Fast breather?", color:C.gold },
    { l:"E", word:"Establish", desc:"Build a daily routine: AM = activating techniques | PM = restoring techniques", color:C.tealDark },
    { l:"A", word:"Apply", desc:"Choose the right technique for your specific condition using the prescription guide", color:C.navy },
    { l:"T", word:"Track", desc:"Keep a breath journal: BOLT score, RR, mood, energy. Use wearables if available.", color:C.sympa },
    { l:"H", word:"Habit Stack", desc:"Attach breathwork to existing routines: morning coffee → 5 min Dirgha, bed → Bhramari", color:C.parasym },
  ];

  letters.forEach((item, i) => {
    const col = i < 3 ? 0 : 1;
    const row = i % 3;
    const x = 0.55 + col * 4.68;
    const y = 0.88 + row * 1.45;
    card(slide, x, y, 4.42, 1.28, C.white);
    // Big letter block
    slide.addShape(pres.shapes.RECTANGLE, { x, y, w:0.72, h:1.28, fill:{color:item.color}, line:{color:item.color} });
    slide.addText(item.l, { x, y, w:0.72, h:1.28,
      fontSize:40, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(item.word, { x:x+0.82, y:y+0.12, w:3.45, h:0.35,
      fontSize:16, fontFace:"Calibri", color:item.color, bold:true, margin:0 });
    slide.addText(item.desc, { x:x+0.82, y:y+0.48, w:3.45, h:0.68,
      fontSize:13, fontFace:"Calibri", color:C.textDark });
  });
}

// ─── SLIDE 28: 21-DAY PROGRAM ──────────────────────────────────────────────────
{
  let slide = whiteSlide(pres);
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:0.92, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Your 21-Day Breath Journey", { x:0.5, y:0.12, w:9, h:0.62,
    fontSize:30, fontFace:"Calibri", color:C.white, bold:true });

  const weeks = [
    {
      week:"WEEK 1", theme:"AWARENESS", color:C.teal,
      practice:"Dirgha Pranayama — 5 min\nNadi Shodhana — 5 min",
      goal:"Establish the daily habit\nLearn to breathe through nose\nObserve your natural pattern",
      days:"Days 1–7"
    },
    {
      week:"WEEK 2", theme:"APPLICATION", color:C.gold,
      practice:"Add your condition-specific\ntechnique — 5 min\nTotal: 15 min/day",
      goal:"Apply the prescription\nBuild CO₂ tolerance\nTrack BOLT score",
      days:"Days 8–14"
    },
    {
      week:"WEEK 3", theme:"INTEGRATION", color:C.navy,
      practice:"Full 20-min sequence\nMorning: activating\nEvening: restoring",
      goal:"Automate the practice\nHabit-stack with routines\nReassess & adjust",
      days:"Days 15–21"
    },
  ];

  weeks.forEach((w, i) => {
    const x = 0.3 + i * 3.17;
    // Card
    card(slide, x, 1.05, 3.0, 4.25, C.white);
    // Header
    slide.addShape(pres.shapes.RECTANGLE, { x, y:1.05, w:3.0, h:0.9, fill:{color:w.color}, line:{color:w.color} });
    slide.addText(w.week, { x, y:1.1, w:3.0, h:0.38,
      fontSize:16, fontFace:"Calibri", color:C.white, bold:true, align:"center", charSpacing:4, margin:0 });
    slide.addText(w.theme, { x, y:1.44, w:3.0, h:0.44,
      fontSize:19, fontFace:"Calibri", color:C.white, bold:true, align:"center", margin:0 });
    // Days badge
    slide.addShape(pres.shapes.RECTANGLE, { x:x+0.55, y:2.05, w:1.9, h:0.34,
      fill:{color:w.color, transparency:25}, line:{color:w.color} });
    slide.addText(w.days, { x:x+0.55, y:2.05, w:1.9, h:0.34,
      fontSize:12, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    // Practice
    slide.addText("📋 PRACTICE", { x:x+0.1, y:2.5, w:2.8, h:0.28,
      fontSize:10, fontFace:"Calibri", color:w.color, bold:true, charSpacing:2, margin:0 });
    slide.addText(w.practice, { x:x+0.1, y:2.78, w:2.8, h:0.88,
      fontSize:13, fontFace:"Calibri", color:C.textDark });
    // Goal
    slide.addShape(pres.shapes.LINE, { x:x+0.1, y:3.72, w:2.7, h:0, line:{color:C.grayLight, width:1} });
    slide.addText("🎯 GOAL", { x:x+0.1, y:3.8, w:2.8, h:0.28,
      fontSize:10, fontFace:"Calibri", color:w.color, bold:true, charSpacing:2, margin:0 });
    slide.addText(w.goal, { x:x+0.1, y:4.06, w:2.8, h:0.88,
      fontSize:12, fontFace:"Calibri", color:C.textDark });
  });

  // Arrows
  for (let i = 0; i < 2; i++) {
    slide.addText("→", { x:3.25+i*3.17, y:2.8, w:0.2, h:0.5,
      fontSize:24, color:C.teal, align:"center", margin:0 });
  }

  slide.addShape(pres.shapes.RECTANGLE, { x:0.3, y:5.35, w:9.4, h:0.2, fill:{color:C.teal}, line:{color:C.teal} });
  slide.addText("Consistency over intensity. 5 minutes daily beats 30 minutes weekly.", {
    x:0.5, y:5.37, w:9, h:0.18,
    fontSize:11, fontFace:"Calibri", color:C.white, bold:true, align:"center", margin:0 });
}

// ─── SLIDE 29: FINAL PRACTICE ──────────────────────────────────────────────────
{
  let slide = practiceSlide("10 Minutes Together");

  // Subtitle
  slide.addText("FINAL LIVE PRACTICE", { x:0.5, y:1.12, w:9, h:0.35,
    fontSize:14, fontFace:"Calibri", color:C.gold, bold:true, charSpacing:4 });

  const sequence = [
    { min:"2 min", name:"Dirgha Pranayama", role:"Warm Up", color:C.gold },
    { min:"3 min", name:"Nadi Shodhana", role:"Balance", color:C.teal },
    { min:"3 min", name:"Bhramari", role:"Calm", color:"A855F7" },
    { min:"2 min", name:"Sama Vritti", role:"Integrate", color:"34D399" },
  ];

  // Timeline bar
  const barY = 1.62;
  let barX = 0.5;
  const barWidths = [1.6, 2.4, 2.4, 1.6];
  sequence.forEach((s, i) => {
    slide.addShape(pres.shapes.RECTANGLE, { x:barX, y:barY, w:barWidths[i]-0.06, h:0.48,
      fill:{color:s.color, transparency:30}, line:{color:s.color} });
    slide.addText(s.min, { x:barX, y:barY, w:barWidths[i]-0.06, h:0.48,
      fontSize:13, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });
    barX += barWidths[i];
  });

  // Detail cards
  sequence.forEach((s, i) => {
    const x = 0.45 + i * 2.28;
    card(slide, x, 2.3, 2.15, 2.1, C.navyDark);
    slide.addShape(pres.shapes.RECTANGLE, { x, y:2.3, w:2.15, h:0.42, fill:{color:s.color}, line:{color:s.color} });
    slide.addText(s.role, { x, y:2.3, w:2.15, h:0.42,
      fontSize:12, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", charSpacing:2, margin:0 });
    slide.addText(s.min, { x, y:2.8, w:2.15, h:0.42,
      fontSize:20, fontFace:"Calibri", color:s.color, bold:true, align:"center" });
    slide.addText(s.name, { x, y:3.22, w:2.15, h:0.7,
      fontSize:13, fontFace:"Calibri", color:C.white, align:"center" });
  });

  // Bottom affirmation
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:4.58, w:10, h:1.05, fill:{color:C.navy}, line:{color:C.navy} });
  slide.addText("Close your eyes. Trust your breath.", {
    x:0.3, y:4.68, w:9.4, h:0.55,
    fontSize:24, fontFace:"Calibri", color:C.gold, italic:true, bold:true, align:"center", valign:"middle"
  });
  slide.addText("You have been breathing since your first moment. You always will.", {
    x:0.3, y:5.1, w:9.4, h:0.3,
    fontSize:13, fontFace:"Calibri", color:C.grayLight, italic:true, align:"center"
  });
}

// ─── SLIDE 30: CLOSING / KEY TAKEAWAYS ────────────────────────────────────────
{
  let slide = navySlide(pres);
  // Background shapes
  slide.addShape(pres.shapes.OVAL, { x:7.2, y:-0.5, w:4, h:4, fill:{color:C.teal, transparency:88}, line:{color:C.teal, transparency:80} });
  slide.addShape(pres.shapes.OVAL, { x:-1.5, y:3.5, w:3.5, h:3.5, fill:{color:C.gold, transparency:90}, line:{color:C.gold, transparency:82} });
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:0.35, h:5.625, fill:{color:C.teal}, line:{color:C.teal} });

  slide.addText("Key Takeaways", { x:0.65, y:0.22, w:8.8, h:0.65,
    fontSize:36, fontFace:"Calibri", color:C.white, bold:true });

  const takeaways = [
    "Breath is the only autonomic function you can consciously control",
    "Pranayama changes your brain, heart, and lungs — backed by science",
    "Right technique for right condition = safe & effective medicine",
    "Start slow: 5 minutes daily is enough to transform your practice",
    "Your breath is always with you — it is your most portable tool",
  ];

  takeaways.forEach((t, i) => {
    const yPos = 1.05 + i * 0.82;
    slide.addShape(pres.shapes.OVAL, { x:0.65, y:yPos+0.08, w:0.46, h:0.46, fill:{color:C.gold}, line:{color:C.gold} });
    slide.addText("✓", { x:0.65, y:yPos+0.08, w:0.46, h:0.46,
      fontSize:16, fontFace:"Calibri", color:C.navy, bold:true, align:"center", valign:"middle", margin:0 });
    slide.addText(t, { x:1.28, y:yPos+0.1, w:8.2, h:0.42,
      fontSize:17, fontFace:"Calibri", color:C.gold });
  });

  // Thank you + Q&A
  slide.addShape(pres.shapes.RECTANGLE, { x:0.65, y:5.0, w:5.5, h:0.42,
    fill:{color:C.tealDark}, line:{color:C.tealDark} });
  slide.addText("Thank You  |  Q & A  |  Resources", { x:0.65, y:5.0, w:5.5, h:0.42,
    fontSize:16, fontFace:"Calibri", color:C.white, bold:true, align:"center", valign:"middle", margin:0 });

  // Bottom copyright bar
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:5.42, w:10, h:0.2, fill:{color:C.teal}, line:{color:C.teal} });
  slide.addText("© 2026  |  Certificate of Completion Available  |  www.breath-science.com", {
    x:0, y:5.43, w:10, h:0.18,
    fontSize:10, fontFace:"Calibri", color:C.navy, bold:true, align:"center", margin:0 });
}

// ─── WRITE FILE ──────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Slides.pptx" })
  .then(() => {
    console.log("✅ Pranayama_Webinar_Slides.pptx created successfully!");
  })
  .catch((err) => {
    console.error("❌ Error:", err);
    process.exit(1);
  });
Running Command

cd /home/daytona/workspace/pranayama-webinar && node generate.js 2>&1

Running Command

cd /home/daytona/workspace/pranayama-webinar && node build_pranayama.js 2>&1

Running Command

ls -lh /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Slides.pptx

Running Command

python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Blueprint.docx 2>&1

Running Command

pip install lxml -q && python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Blueprint.docx 2>&1

Running Command

cd /home/daytona/workspace/pranayama-webinar && python -m markitdown Pranayama_Webinar_Slides.pptx 2>&1 | head -200

Running Command

ls -lh /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Blueprint.docx && echo "File confirmed at path."

Running Command

pip install "markitdown[pptx]" -q && python -m markitdown /home/daytona/workspace/pranayama-webinar/Pranayama_Webinar_Slides.pptx 2>&1 | head -300

This is a shared conversation. Sign in to Orris to start your own chat.