<!-- RUBY-BACKUP · part 404 -->
bject
    var tools = [['🎯','calibrate'],['🥞','layer'],['🧲','snap'],['✂️','section'],['🌊','smooth'],['⚔️','sharpen'],['🌙','bend'],['↔️','stretch'],['🔄','flip'],['🕳️','hollow'],['👥','duplicate'],['🎨','color'],['↩️','undo']];
    var radius = 110;
    for(var i=0; i<tools.length; i++){ (function(t, idx){
      var angle = (idx / tools.length) * 2 * Math.PI - Math.PI/2;
      var bx = 50 + (radius/2.5) * Math.cos(angle);
      var by = 50 + (radius/2.2) * Math.sin(angle);
      var b = document.createElement('button');
      b.textContent = t[0]; b.title = t[1];
      b.style.cssText = 'position:absolute;left:'+bx+'%;top:'+by+'%;transform:translate(-50%,-50%);'
        + 'width:44px;height:44px;font-size:20px;background:rgba(255,215,0,0.08);'
        + 'border:1px solid #8a6a1c;border-radius:50%;cursor:pointer;';
      b.onclick = function(){
        try{ if(typeof runCodeByName==='function') runCodeByName(t[1]); }catch(e){}
        b.style.background = 'rgba(255,215,0,0.3)';
        setTimeout(function(){ b.style.background = 'rgba(255,215,0,0.08)'; }, 300);
      };
      body.appendChild(b);
    })(tools[i], i); }
    var selBar = document.createElement('div');
    selBar.style.cssText = 'padding:10px;background:rgba(255,215,0,0.05);border:1px solid #ffd700;border-radius:8px;';
    selBar.innerHTML = '<div style="color:#ffd700;font-size:11px;margin-bottom:6px;">OBJECT</div>';
    var selBtns = document.createElement('div');
    selBtns.style.cssText = 'display:grid;grid-template-columns:repeat(4,1fr);gap:6px;';
    var selTools = [['👁️','preview'],['🔒','lock'],['🎯','isolate'],['🔄','cycle']];
    for(var j=0; j<selTools.length; j++){ (function(t){
      var b = document.createElement('button');
      b.textContent = t[0]; b.title = t[1];
      b.style.cssText = 'padding:8px;font-size:18px;background:rgba(0,0,0,0.3);border:1px solid #666;border-radius:6px;cursor:pointer;';
      b.onclick = function(){
        try{ codeStatus(t[1] + '.'); }catch(e){}
        if(t[1]==='lock'){ b.style.borderColor = b.style.borderColor==='rgb(255, 215, 0)' ? '#666' : '#ffd700'; }
      };
      selBtns.appendChild(b);
    })(selTools[j]); }
    selBar.appendChild(selBtns);
    body.appendChild(selBar);
    // LINEWORK — choose the dimensions of the linework (icons only, no numbers)
    var lwBar = document.createElement('div');
    lwBar.style.cssText = 'padding:10px;background:rgba(0,0,0,0.05);border:1px solid #333;border-radius:8px;margin-top:8px;';
    lwBar.innerHTML = '<div style="color:#333;font-size:11px;margin-bottom:6px;">LINEWORK</div>';
    var lwBtns = document.createElement('div');
    lwBtns.style.cssText = 'display:grid;grid-template-columns:repeat(3,1fr);gap:6px;';
    // grid density: sparse, medium, dense
    var lwTools = [
      ['▦','sparse', '40px'],
      ['▦','medium', '20px'],
      ['▦','dense', '10px']
    ];
    var lwSizes = ['40px', '20px', '10px'];
    var lwIcons = ['▦', '▦', '▦'];
    for(var k=0; k<3; k++){ (function(idx){
      var b = document.createElement('button');
      b.textContent = lwIcons[idx];
      b.title = ['sparse','medium','dense'][idx];
      b.style.cssText = 'padding:8px;font-size:18px;background:#fff;border:1px solid #333;border-radius:6px;cursor:pointer;color:#000;';
      // visual density cue via font-size
      b.style.fontSize = (22 - idx*4) + 'px';
      b.onclick = function(){
        try{
          var sz = lwSizes[idx];
          body.style.background = 'repeating-linear-gradient(0deg,transparent,transparent ' + (parseInt(sz)-1) + 'px,rgba(0,0,0,0.3) ' + sz + '),'
            + 'repeating-linear-gradient(90deg,transparent,transparent ' + (parseInt(sz)-1) + 'px,rgba(0,0,0,0.3) ' + sz + '),'
            + '#ffffff;';
          codeStatus('Linework: ' + ['sparse','medium','dense'][idx] + '.');
        }catch(e){}
      };
      lwBtns.appendChild(b);
    })(k); }
    lwBar.appendChild(lwBtns);
    // BACKGROUND OPTIONS — faded layers, white, and more
    var bgRow = document.createElement('div');
    bgRow.style.cssText = 'display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px;';
    var bgs = [
      {icon:'⬜', name:'white', bg:'#ffffff'},
      {icon:'🔲', name:'faded', bg:'linear-gradient(180deg,#ffffff 0%,#f0f0f0 50%,#e0e0e0 100%)'},
      {icon:'⬛', name:'black', bg:'#0a0a0a'},
      {icon:'🟨', name:'gold', bg:'linear-gradient(180deg,#fffbe6 0%,#fff5cc 100%)'}
    ];
    bgs.forEach(function(bgo){
      var b = document.createElement('button');
      b.textContent = bgo.icon; b.title = bgo.name;
      b.style.cssText = 'padding:8px;font-size:18px;background:#fff;border:1px solid #333;border-radius:6px;cursor:pointer;';
      b.onclick = function(){
        try{
          var sz = '20px';
          /* keep current grid size */
          var m = body.style.background.match(/(\d+)px/);
          if(m) sz = m[1]+'px';
          var lineCol = bgo.name==='black' ? 'rgba(255,255,255,0.3)' : 'rgba(0,0,0,0.