<!-- RUBY-BACKUP · part 219 -->
  div.style.cssText = 'position:fixed;bottom:120px;left:50%;transform:translateX(-50%);z-index:9997;background:rgba(20,30,20,0.9);border:2px solid #00ff88;border-radius:10px;padding:10px 20px;color:#fff;font-family:Arial;font-size:13px;max-width:80%;text-align:center;';
  div.innerHTML = '<div style="color:#00ff88;font-size:11px;margin-bottom:5px;">📱 OVERHEARD</div>'
    + '<div><i>"'+call.a+'"</i></div>'
    + '<div style="margin-top:5px;color:#aaa;"><i>"'+call.b+'"</i></div>'
    + '<div style="margin-top:5px;color:#888;"><i>"'+call.c+'"</i></div>';
  document.body.appendChild(div);
  setTimeout(function(){ if(div.parentElement) div.remove(); }, 7000);
}

/* RANDOM KINDNESS GENERATOR */
var KIND_OPENERS = [
  'Hey, did you need',
  'Here, take my',
  'I got extra',
  'You look like you could use',
  'I saved you',
  'Do you want',
  'I brought you',
  'Take this'
];
var KIND_ITEMS = [
  'a charger', 'a battery', 'my jacket', 'a seat',
  'some food', 'my umbrella', 'a warm drink', 'my spot in line',
  'a hand', 'some company', 'my blanket', 'a smile',
  'directions', 'a light', 'my headphones', 'a story'
];
var KIND_CONTEXTS = [
  'your pad died', 'it is cold', 'you look tired',
  'the valley is scary', 'you missed lunch', 'it is raining',
  'you seem lost', 'it has been a long day', 'the court was hard',
  'you dropped something', 'no one should walk alone'
];
var KIND_RESPONSES = [
  'Thank you. Really.',
  'You are too kind.',
  'I will pay it forward.',
  'You are a lifesaver.',
  'I needed that. Thank you.',
  'Why are you so nice?',
  'I owe you one.',
  'This city is full of good people.',
  'Thank you. I will remember this.',
  'You made my day.'
];
var KIND_FOLLOWUPS = [
  'Anytime.', 'That is what we do here.', 'We look out for each other.',
  'No problem at all.', 'I got plenty.', 'Happy to help.',
  'We are all in this together.', 'Just pass it on.'
];
function generateKindCall(){
  var opener = KIND_OPENERS[Math.floor(Math.random()*KIND_OPENERS.length)];
  var item = KIND_ITEMS[Math.floor(Math.random()*KIND_ITEMS.length)];
  var context = KIND_CONTEXTS[Math.floor(Math.random()*KIND_CONTEXTS.length)];
  var response = KIND_RESPONSES[Math.floor(Math.random()*KIND_RESPONSES.length)];
  var followup = KIND_FOLLOWUPS[Math.floor(Math.random()*KIND_FOLLOWUPS.length)];
  /* build natural phrasing */
  var a;
  if(opener.indexOf('did you need')>=0 || opener.indexOf('Do you want')>=0 || opener.indexOf('look like')>=0){
    a = opener+' '+item+'? '+context.charAt(0).toUpperCase()+context.slice(1)+'.';
  }else if(opener.indexOf('saved you')>=0){
    a = opener+' '+item+'. '+context.charAt(0).toUpperCase()+context.slice(1)+'.';
  }else{
    a = opener+' '+item+'.';
  }
  return {a: a, b: response, c: followup};
}
function overhearRandomCall(){
  var call = generateKindCall();
  var div = document.createElement('div');
  div.style.cssText = 'position:fixed;bottom:120px;left:50%;transform:translateX(-50%);z-index:9997;background:rgba(20,30,20,0.9);border:2px solid #00ff88;border-radius:10px;padding:10px 20px;color:#fff;font-family:Arial;font-size:13px;max-width:80%;text-align:center;';
  div.innerHTML = '<div style="color:#00ff88;font-size:11px;margin-bottom:5px;">📱 OVERHEARD</div>'
    + '<div><i>"'+call.a+'"</i></div>'
    + '<div style="margin-top:5px;color:#aaa;"><i>"'+call.b+'"</i></div>'
    + '<div style="margin-top:5px;color:#888;"><i>"'+call.c+'"</i></div>';
  document.body.appendChild(div);
  setTimeout(function(){ if(div.parentElement) div.remove(); }, 7000);
}

/* RANDOM KINDNESS GENERATOR */
var KIND_OPENERS = [
  'Hey, did you need',
  'Here, take my',
  'I got extra',
  'You look like you could use',
  'I saved you',
  'Do you want',
  'I brought you',
  'Take this'
];
var KIND_ITEMS = [
  'a charger', 'a battery', 'my jacket', 'a seat',
  'some food', 'my umbrella', 'a warm drink', 'my spot in line',
  'a hand', 'some company', 'my blanket', 'a smile',
  'directions', 'a light', 'my headphones', 'a story'
];
var KIND_CONTEXTS = [
  'your pad died', 'it is cold', 'you look tired',
  'the valley is scary', 'you missed lunch', 'it is raining',
  'you seem lost', 'it has been a long day', 'the court was hard',
  'you dropped something', 'no one should walk alone'
];
var KIND_RESPONSES = [
  'Thank you. Really.',
  'You are too kind.',
  'I will pay it forward.',
  'You are a lifesaver.',
  'I needed that. Thank you.',
  'Why are you so nice?',
  'I owe you one.',
  'This city is full of good people.',
  'Thank you. I will remember this.',
  'You made my day.'
];
var KIND_FOLLOWUPS = [
  'Anytime.', 'That is what we do here.', 'We look out for each other.',
  'No problem at all.', 'I got plenty.', 'Happy to help.',
  'We are all in this together.', 'Just pass it on.'
];
function generateKindCall(){
  var opener = KIND_OPENERS[Math.floor(Math.random()*KIND_OPENERS.length)];
  var item = KIND_ITEMS[Math.floor(Math.random()*KIND_ITEMS.length)];
  var context = KIND