<!-- RUBY-BACKUP · part 245 -->
be — strong, masculine */
  var robeM = new THREE.Mesh(new THREE.CylinderGeometry(0.3, 0.38, 1.1, 14), robe);
  robeM.position.y = 0.65;
  group.add(robeM);
  /* broad shoulders */
  var shoulders = new THREE.Mesh(new THREE.BoxGeometry(0.7, 0.25, 0.35), robe);
  shoulders.position.y = 1.25;
  group.add(shoulders);
  /* gold clasp */
  var clasp = new THREE.Mesh(new THREE.SphereGeometry(0.06, 12, 12), gold);
  clasp.position.set(0, 1.25, 0.19);
  group.add(clasp);
  /* head — strong jaw */
  var head = new THREE.Mesh(new THREE.SphereGeometry(0.19, 18, 18), skin);
  head.position.y = 1.6;
  group.add(head);
  var jaw = new THREE.Mesh(new THREE.BoxGeometry(0.22, 0.1, 0.18), skin);
  jaw.position.set(0, 1.5, 0.04);
  group.add(jaw);
  /* crown — bold, masculine */
  var band = new THREE.Mesh(new THREE.CylinderGeometry(0.2, 0.2, 0.1, 14), gold);
  band.position.y = 1.72;
  group.add(band);
  for(var i=0; i<6; i++){
    var spike = new THREE.Mesh(new THREE.ConeGeometry(0.045, 0.14, 8), gold);
    var ang = (i/6)*Math.PI*2;
    spike.position.set(Math.cos(ang)*0.17, 1.82, Math.sin(ang)*0.17);
    group.add(spike);
  }
  var gem = new THREE.Mesh(new THREE.SphereGeometry(0.04, 10, 10),
    new THREE.MeshStandardMaterial({color: 0x0066ff, emissive: 0x0066ff, emissiveIntensity: 1.0}));
  gem.position.set(0, 1.73, 0.19);
  group.add(gem);
  /* eyes — steady, wise */
  [-1,1].forEach(function(s){
    var eye = new THREE.Mesh(new THREE.SphereGeometry(0.032, 10, 10), dark);
    eye.position.set(s*0.075, 1.62, 0.16);
    group.add(eye);
  });
  /* beard — distinguished */
  var beard = new THREE.Mesh(new THREE.BoxGeometry(0.18, 0.15, 0.08),
    new THREE.MeshStandardMaterial({color: 0x555555, roughness: 0.8}));
  beard.position.set(0, 1.45, 0.14);
  group.add(beard);
  /* arms — strong */
  [-1,1].forEach(function(s){
    var arm = new THREE.Mesh(new THREE.CylinderGeometry(0.07, 0.07, 0.5, 10), robe);
    arm.position.set(s*0.38, 1.0, 0);
    group.add(arm);
    var hand = new THREE.Mesh(new THREE.SphereGeometry(0.07, 10, 10), skin);
    hand.position.set(s*0.38, 0.72, 0);
    group.add(hand);
  });
  return group;
}
function startPatriarch(){
  stopSwift(); stopDancer(); stopStrider(); stopYoungKing(); stopUnimpressed(); stopSmugbug(); stopReluctant(); stopMatriarch(); stopGeneric();
  if(typeof playerMesh!=='undefined' && playerMesh && typeof scene!=='undefined'){
    try{ scene.remove(playerMesh); }catch(e){}
  }
  PAT_MESH = buildPatriarch();
  if(PAT_MESH && typeof scene!=='undefined'){
    if(typeof mePos!=='undefined'){
      PAT_MESH.position.set(mePos.x*0.13, 0, mePos.z*0.13);
    }
    scene.add(PAT_MESH);
    if(typeof playerMesh!=='undefined') playerMesh = PAT_MESH;
  }
  var t = 0;
  PAT_ANIM = setInterval(function(){
    t += 0.1;
    if(!PAT_MESH) return;
    /* steady, grounded, unwavering */
    PAT_MESH.rotation.y = Math.sin(t*0.2)*0.08;
    PAT_MESH.position.y = Math.sin(t*0.5)*0.015;
  }, 60);
  codeStatus('Patriarch — he stands with strength and wisdom');
}
function stopPatriarch(){
  if(PAT_ANIM){ clearInterval(PAT_ANIM); PAT_ANIM = null; }
}
function startMatriarch(){
  stopSwift(); stopDancer(); stopStrider(); stopYoungKing(); stopUnimpressed(); stopSmugbug(); stopReluctant();
  if(typeof playerMesh!=='undefined' && playerMesh && typeof scene!=='undefined'){
    scene.remove(playerMesh);
  }
  MAT_MESH = buildMatriarch();
  if(MAT_MESH && typeof scene!=='undefined'){
    if(typeof mePos!=='undefined'){
      MAT_MESH.position.set(mePos.x*0.13, 0, mePos.z*0.13);
    }
    scene.add(MAT_MESH);
    if(typeof playerMesh!=='undefined') playerMesh = MAT_MESH;
  }
  /* animation: graceful, composed, subtle power */
  var t = 0;
  MAT_ANIM = setInterval(function(){
    t += 0.1;
    if(!MAT_MESH) return;
    /* gentle sway, regal stillness */
    MAT_MESH.rotation.y = Math.sin(t*0.25)*0.15;
    MAT_MESH.position.y = Math.sin(t*0.6)*0.02;
    /* hair flows */
  }, 60);
  codeStatus('Matriarch — she leads with grace and strength');
}
function stopMatriarch(){
  if(MAT_ANIM){ clearInterval(MAT_ANIM); MAT_ANIM = null; }
}
function startReluctant(){
  stopSwift(); stopDancer(); stopStrider(); stopYoungKing(); stopUnimpressed(); stopSmugbug();
  if(typeof playerMesh!=='undefined' && playerMesh && typeof scene!=='undefined'){
    scene.remove(playerMesh);
  }
  REL_MESH = buildReluctant();
  if(REL_MESH && typeof scene!=='undefined'){
    if(typeof mePos!=='undefined'){
      REL_MESH.position.set(mePos.x*0.13, 0, mePos.z*0.13);
    }
    scene.add(REL_MESH);
    if(typeof playerMesh!=='undefined') playerMesh = REL_MESH;
  }
  var t = 0;
  REL_ANIM = setInterval(function(){
    t += 0.1;
    if(!REL_MESH) return;
    /* check if holding something (MOVE_HELD) */
    var holding = (typeof MOVE_HELD!=='undefined' && MOVE_HELD!==null);
    var rf = REL_MESH.getObjectByName('relface');
    if(holding){
      /* RELUCTANT: eye roll, looks at others, "I don't want to do this" */
      if