<!-- SAGA-SOLID · part 12 -->
reL.clone(); foreR.position.y = -0.65; armR.add(foreR);
  var handR = handL.clone(); handR.position.y = -0.95; armR.add(handR);
  g.add(armR);

  // Head — forward, focused (looking ahead, not at viewer)
  var neck = M(new THREE.CylinderGeometry(0.09, 0.10, 0.15, 8), MAT.blackCloth);
  neck.position.set(0, 2.58, 0.12); neck.rotation.x = 0.2; g.add(neck);
  var head = M(new THREE.SphereGeometry(0.16, 10, 8), MAT.skinTone);
  head.position.set(0, 2.72, 0.18); head.scale.set(0.9, 1.05, 0.95); g.add(head);
  // Aerodynamic hood — swept back
  var hood = M(new THREE.ConeGeometry(0.14, 0.3, 10), MAT.darkMetal);
  hood.position.set(0, 2.78, 0.05); hood.rotation.x = -1.1; g.add(hood);

  g.userData.avatarId = 'courier';
  g.userData.avatarName = 'THE COURIER';
  g.userData.legL = legL; g.userData.legR = legR;
  g.userData.armL = armL; g.userData.armR = armR;
  return g;
}


/* ============================================================
   7. THE MENDER — Healer who repairs bodies and broken things (MACRO)
   Gentle, grounded presence. Someone you trust with fragile things.
   Height: ~1.9 units (not imposing, approachable)
   Craft language: Organic scrollwork, warm materials — NOT hard lines
   Who you become: The one others come to when something breaks
   ============================================================ */
function buildMender() {
  initMaterials();
  var g = new THREE.Group();

  // === MACRO: Soft, approachable masses ===

  // Feet — bare or soft-soled (quiet steps)
  var footL = M(new THREE.BoxGeometry(0.24, 0.12, 0.36), MAT.tanCloth);
  footL.position.set(-0.20, 0.06, 0.04); g.add(footL);
  var footR = footL.clone(); footR.position.x = 0.20; g.add(footR);

  // Legs — sturdy but not armored (can kneel beside someone)
  var legL = new THREE.Group(); legL.position.set(-0.20, 0.12, 0);
  var shinL = M(new THREE.CylinderGeometry(0.11, 0.13, 0.70, 8), MAT.tanCloth);
  shinL.position.y = 0.35; legL.add(shinL);
  var thighL = M(new THREE.CylinderGeometry(0.14, 0.12, 0.60, 8), MAT.tanCloth);
  thighL.position.y = 0.95; legL.add(thighL);
  g.add(legL);
  var legR = new THREE.Group(); legR.position.set(0.20, 0.12, 0);
  var shinR = shinL.clone(); shinR.position.y = 0.35; legR.add(shinR);
  var thighR = thighL.clone(); thighR.position.y = 0.95; legR.add(thighR);
  g.add(legR);

  // Hips — wrapped in soft cloth
  var pelvis = M(new THREE.CylinderGeometry(0.28, 0.32, 0.35, 10), MAT.brownCloth);
  pelvis.position.set(0, 1.35, 0); g.add(pelvis);

  // Torso — robed with scrollwork texture (Mender MICRO)
  var scrollTex = generateScrollwork({size: 1024, seed: 21});
  var torsoMat = new THREE.MeshStandardMaterial({
    map: scrollTex.map,
    bumpMap: scrollTex.bumpMap,
    bumpScale: 0.01,
    roughness: 0.85,
    metalness: 0.05
  });
  var torso = new THREE.Mesh(new THREE.CylinderGeometry(0.30, 0.35, 0.85, 12), torsoMat);
  torso.position.set(0, 1.90, 0); g.add(torso);
  // Sash — diagonal wrap (the mender's mark, like a bandage)
  var sash = M(new THREE.BoxGeometry(0.12, 0.90, 0.02), MAT.leafGreen);
  sash.position.set(0, 1.90, 0.28); sash.rotation.z = 0.5; g.add(sash);

  // Shoulders — soft, slightly rounded (not squared for battle)
  var shoulderL = M(new THREE.SphereGeometry(0.14, 10, 8), MAT.tanCloth);
  shoulderL.position.set(-0.36, 2.28, 0); shoulderL.scale.set(1, 0.8, 1); g.add(shoulderL);
  var shoulderR = shoulderL.clone(); shoulderR.position.x = 0.36; g.add(shoulderR);

  // Arms — open posture (hands visible, ready to help)
  var armL = new THREE.Group(); armL.position.set(-0.38, 2.25, 0);
  armL.rotation.z = 0.25; armL.rotation.x = -0.15;  // Slightly open, palms forward
  var upperL = M(new THREE.CylinderGeometry(0.09, 0.10, 0.45, 8), MAT.tanCloth);
  upperL.position.y = -0.22; armL.add(upperL);
  var foreL = M(new THREE.CylinderGeometry(0.08, 0.09, 0.40, 8), MAT.skinTone);
  foreL.position.y = -0.60; armL.add(foreL);  // Bare forearms (working hands)
  var handL = M(new THREE.SphereGeometry(0.09, 8, 6), MAT.skinTone);
  handL.position.y = -0.88; handL.scale.set(0.8, 1.2, 0.6); armL.add(handL);
  g.add(armL);

  var armR = new THREE.Group(); armR.position.set(0.38, 2.25, 0);
  armR.rotation.z = -0.25; armR.rotation.x = -0.15;
  var upperR = upperL.clone(); upperR.position.y = -0.22; armR.add(upperR);
  var foreR = foreL.clone(); foreR.position.y = -0.60; armR.add(foreR);
  var handR = handL.clone(); handR.position.y = -0.88; armR.add(handR);
  // Cloth wraps on forearms (bandage-like, white-ish)
  var wrapL = M(new THREE.CylinderGeometry(0.095, 0.10, 0.25, 8), MAT.whiteGlow);
  wrapL.position.y = -0.55; armL.add(wrapL);
  var wrapR = M(new THREE.CylinderGeometry(0.095, 0.10, 0.25, 8), MAT.whiteGlow);
  wrapR.position.y = -0.55; armR.add(wrapR);
  g.add(armR);

  // Head — gentle, attentive (looking AT you, not past you)
  var neck = M(new THREE.CylinderGeometry(0.10, 0.11, 0.15, 8), MAT.skinTone);
  neck.position.set(0, 2.45, 0); g.add(neck);
  var head = M(ne