<!-- RUBY-BACKUP · part 179 -->
utton></div>';
  DECREE.forEach(function(item){
    html += '<div style="margin-bottom:12px;padding:8px;border-left:3px solid #ff0000;background:#100000">';
    html += '<b style="color:#ff0000">'+item.t+'</b><br>';
    html += '<b style="color:#fff">'+item.d+'</b>';
    html += '</div>';
  });
  html += '<div style="margin-top:15px;padding:10px;border:2px solid #ff0000;background:#200000;text-align:center">';
  html += '<b style="color:#ff0000;font-size:15px;">PUNISHMENT: BANISHMENT TO HELL</b><br>';
  html += '<b style="color:#fff">Break the Decree, and hell is where you go.</b>';
  html += '</div>';
  d.innerHTML = html;
}
function hideDecree(){
  var d = document.getElementById('decree');
  if(d) d.style.display='none';
}
/* enforce: block building inside dome */
var origPlaceStone2 = placeStone;
placeStone = function(cx, cz, rubies, shapeKey, instant, quiet, yRubies, onLand){
  /* Decree II: no building inside the dome (except the dome itself) */
  if(typeof DOME_BUILT!=='undefined' && DOME_BUILT){
    var dx = cx - 25, dz = cz - 25;
    if(Math.sqrt(dx*dx+dz*dz) < 5 && !quiet){
      /* allow quiet (system) builds, block manual */
      codeStatus('Decree II: the dome is sacred — no building inside');
      return null;
    }
  }
  return origPlaceStone2(cx, cz, rubies, shapeKey, instant, quiet, yRubies, onLand);
};

/* AVATAR SELECTION — dignified, no funny king */
var AVATARS = [
  {id: 'sovereign', name: 'Sovereign', desc: 'Tall, armored, commands respect', color: '#ffcc00', img: '/img/avatars/sovereign-true.webp'},
  {id: 'warden', name: 'Warden', desc: 'Robed guardian, silent and strong', color: '#4444ff', img: '/img/avatars/warden-true.webp'},
  {id: 'sentinel', name: 'Sentinel', desc: 'Sleek, minimal, watchful', color: '#00ffff'},
  {id: 'circle', name: 'Circle', desc: 'The classic — Minimum, pure', color: '#ffffff'},
  {id: 'titan', name: 'Titan', desc: 'Massive, unmovable, ancient', color: '#884400'},
  {id: 'wraith', name: 'Wraith', desc: 'Shadow-like, barely there', color: '#222222'},
  {id: 'strider', name: 'Strider', desc: 'Walks — legs move, it strides', color: '#ff8800', img: '/img/avatars/strider-true.webp'},
  {id: 'dancer', name: 'Dancer', desc: 'Dances — spins and bounces to the rhythm', color: '#ff00ff', img: '/img/avatars/dancer-true.webp'},
  {id: 'swift', name: 'Swift', desc: 'Walks when you walk, runs when you run', color: '#00ff88', img: '/img/avatars/swift-true.webp'},
  {id: 'cyborg', name: 'Cyborg', desc: 'Futuristic hyper-realistic hero — carbon fiber, chrome, blue glow', color: '#0088ff', img: '/img/avatars/cyborg-true.webp'},
  {id: 'youngking', name: 'Young King', desc: 'Regal bearing, childlike wonder', color: '#ffcc00', img: '/img/avatars/youngking-true.webp'},
  {id: 'unimpressed', name: 'Unimpressed', desc: 'I am not impressed', color: '#888888', img: '/img/avatars/unimpressed-true.webp'},
  {id: 'smugbug', name: 'Smugbug', desc: 'Smug till confronted — then fearful like a child seeing a bug', color: '#ffaa00', img: '/img/avatars/smugbug-true.webp'},
  {id: 'reluctant', name: 'Reluctant', desc: 'Picks up things but looks at you like "I don\'t want to do this"', color: '#999966', img: '/img/avatars/reluctant-true.webp'},
  {id: 'matriarch', name: 'Matriarch', desc: 'She leads — grace and strength', color: '#ff66aa', img: '/img/avatars/matriarch-true.webp'},
  {id: 'ember', name: 'Ember', desc: 'Burns bright, never fades', color: '#ff4400'},
  {id: 'tide', name: 'Tide', desc: 'Flows where it wills', color: '#0088cc'},
  {id: 'stone', name: 'Stone', desc: 'Unmovable, patient', color: '#777755'},
  {id: 'gale', name: 'Gale', desc: 'Fast as wind, free', color: '#aaffee'},
  {id: 'thorn', name: 'Thorn', desc: 'Sharp, protective', color: '#228833'},
  {id: 'frost', name: 'Frost', desc: 'Cold and clear', color: '#ccffff'},
  {id: 'blaze', name: 'Blaze', desc: 'Wild fire, untamed', color: '#ff6600'},
  {id: 'mist', name: 'Mist', desc: 'There, then gone', color: '#ccccdd'},
  {id: 'root', name: 'Root', desc: 'Deep, grounded, wise', color: '#664422'},
  {id: 'spark', name: 'Spark', desc: 'Small but electric', color: '#ffff66'},
  {id: 'echo', name: 'Echo', desc: 'Repeats what matters', color: '#9977ff'},
  {id: 'joy', name: 'Joy', desc: 'Laughs at everything', color: '#ffdd00'},
  {id: 'sorrow', name: 'Sorrow', desc: 'Feels deeply', color: '#334466'},
  {id: 'anger', name: 'Anger', desc: 'Burns hot and fast', color: '#cc0000'},
  {id: 'calm', name: 'Calm', desc: 'Still water runs deep', color: '#66aaff'},
  {id: 'curious', name: 'Curious', desc: 'Must know everything', color: '#ff99ff'},
  {id: 'brave', name: 'Brave', desc: 'Fears nothing', color: '#ff3322'},
  {id: 'shy', name: 'Shy', desc: 'Quiet, watches', color: '#aaaacc'},
  {id: 'proud', name: 'Proud', desc: 'Head high always', color: '#ddaa00'},
  {id: 'humble', name: 'Humble', desc: 'Small but sure', color: '#998866'},
  {id: 'healer', name: 'Healer', desc: 'Mends what is broken', colo