<!-- SOLID CITY · part 2268 -->
 the sand off the First City.',
        'Charging the Octahedron. It hums when it is ready.',
        'Come on, island. UP. UP!',
        'I am pushing the progress bar with BOTH hands!',
        'Teaching the mountains to sit still.',
        'Almost there. Probably. Keep smiling.'
      ];
      var slow = [
        'Okay. This is personal now.',
        'I tried turning the island off and on again.',
        'If anyone asks, YOU held the ladder.',
        'Requesting a bigger engine. Denied. Pedaling harder.'
      ];
      var qi = 0, pct = 4, target = 4, done = false, born = Date.now();
      function say(t) { bubble.textContent = t; }
      function setPct(p) { target = Math.max(target, Math.min(100, p)); }
      var quoteTimer = setInterval(function () {
        if (done) return;
        var pool = (Date.now() - born > 14000) ? slow : quotes;
        say(pool[qi % pool.length]); qi++;
      }, 1700);
      say(quotes[0]); qi = 1;
      var tick = setInterval(function () {
        if (bootEl && bootEl.hidden) { clearInterval(tick); clearInterval(quoteTimer); return; }
        var stage = loadEl.textContent || '';
        if (stage.indexOf('Raising') >= 0) setPct(34);
        else if (stage.indexOf('Generating') >= 0) setPct(72);
        else if (stage.indexOf('Ready') >= 0) setPct(100);
        else if (target < 22) target += 0.35;   // scripts still arriving: honest creep, capped until the first real stage
        if (pct < target) { pct = Math.min(target, pct + Math.max(0.4, (target - pct) * 0.16)); }
        fill.style.width = pct.toFixed(0) + '%';
        pctEl.textContent = pct.toFixed(0) + '%';
        if (target >= 100 && pct > 99 && !done) {
          done = true;
          clearInterval(quoteTimer);
          bot.classList.add('done');
          say('DONE! The city is yours — hit ENTER 👇');
          setTimeout(function () { bot.classList.remove('done'); bot.classList.add('resting'); }, 1700);
        }
      }, 120);
    })();
    </script>
    <a class="sc-back" href="/">← back to epistles</a>
  </div>

  <div id="sc-hud" hidden>
    <div class="sc-top">
      <div class="sc-stat"><b id="h-mode">ON FOOT</b><span id="h-where">FORUM PLAZA</span></div>
      <div class="sc-stat"><b id="h-spd">0</b><span>KM/H</span></div>
      <div class="sc-stat"><b id="h-alt">0</b><span>ALT M</span></div>
      <div class="sc-stat"><b id="h-dist">0.0</b><span>KM TO CITY</span></div>
      <a class="sc-exit" href="/" title="Leave Solid City">✕</a>
    </div>
    <canvas id="sc-radar" width="240" height="240"></canvas>
    <div class="sc-warn" id="h-warn" hidden></div>
    <div class="sc-thr" id="sc-thr" hidden><div class="sc-thr-fill" id="sc-thr-fill"></div><span>THR</span></div>
    <div class="sc-btns" id="sc-fbtns" hidden>
      <button type="button" class="sc-b" id="b-boost">BOOST</button>
      <button type="button" class="sc-b is-on" id="b-level">AUTO-LEVEL</button>
      <button type="button" class="sc-b" id="b-rtc">RETURN TO CITY</button>
      <button type="button" class="sc-b sc-gold" id="b-land" hidden>LAND</button>
    </div>
    <button type="button" id="sc-act" class="sc-act" hidden></button>
    <button type="button" id="sc-launch" class="sc-launch" hidden>LAUNCH</button>
    <div id="sc-count" class="sc-count" hidden></div>
    <div id="sc-stick" class="sc-stick"><i></i></div>
    <div id="sc-help" class="sc-help"></div>
    <div id="sc-perf" class="sc-perf" hidden></div>
  </div>

  <div id="sc-talk" class="sc-talk" hidden>
    <div class="sc-talk-h"><b>SABLE</b><span>Forum Plaza · AI guide</span><button type="button" id="t-close" aria-label="Close">✕</button></div>
    <div id="t-settings" hidden>
    <div class="sc-voice-speed"><span>VOICE</span><button type="button" id="vs-fast" aria-pressed="true">FAST</button><button type="button" id="vs-slow" aria-pressed="false">SLOW</button></div>
    <div class="sc-receive"><span>RECEIVE</span><button type="button" id="rc-text" aria-pressed="false">TEXT</button><button type="button" id="rc-audio" aria-pressed="false">AUDIO</button><button type="button" id="rc-both" aria-pressed="true">BOTH</button></div></div>
    <div class="sc-talk-log" id="t-log"></div>
    <div class="sc-talk-login" id="t-login" hidden>Talking to SABLE needs an epistles account. <a href="/login">Log in</a> or <a href="/register">register</a>, then come back to /city.</div>
    <form class="sc-talk-in" id="t-form">
      <button type="button" id="t-ptt" class="sc-ptt" title="Hold to talk">🎙</button>
      <input id="t-msg" maxlength="400" placeholder="Say something to SABLE…" autocomplete="off">
      <button type="submit" id="t-send">SEND</button><button type="button" id="t-gear" class="sc-sbtn" title="Settings">⚙</button>
    </form>
  </div>

  <div id="sp-talk" class="sc-talk sp-talk" hidden>
    <div class="sc-talk-h"><b>SOUL PRINT</b><span id="sp-status">Soul Print Tower · <i class="sp-live">LIVE</i></span><button type="button" id="sp-close