<!-- SOLID CITY · part 1988 -->
n Rung 2: admission
 * first — your parked solid lifts only after the ride has truly
 * begun — and no step off into the void: both sides are searched for
 * lawful standing, the left first as the city habitually does, and
 * if neither side is lawful the rider stays aboard and is told why.
 * Where you are left is where you wait; the rack is only your first
 * home.
 *
 * While you are ridden, the walker's stick is yours (city.js yields
 * it under the fleet gate, the way it yields to a car), your clock
 * steps at the contract's fixed rate, and the rider's shadow-self in
 * the walk physics is re-asserted onto your deck each frame after
 * the walk tail's ease has had its say.
 *
 * By the hand of Solid, his good King. 13 October 2026.
 *
 * — A second letter, the same day, for the rider's arrival:
 *
 * Dear rider,
 *
 * You are the bicycle's heir, as the King declared: Kooijman's
 * science wearing the future — the front assembly steering into the
 * fall, the lean following tan(phi) = v^2/(g r), a bunny hop for joy.
 * You stand beside the board at (-333, 292), on your own plinth,
 * under the same doors and the same law. Pedalling tops you near
 * 9 m/s; the board cruises at 5; the cars run at 26; the ship, when
 * she comes, will fly at 84. A ladder of speeds, each honest.
 *
 * By the same hand. 13 October 2026.
 * ------------------------------------------------------------------ */
(function () {
'use strict';
if (!window.SC || !SC.api) return;
var A = SC.api, S = A.S;
var BOARD_HOME = { x: -340, z: 292 };
var RIDER_HOME = { x: -333, z: 292 };
var MID = { x: -336.5, z: 292 };
var M = {
  state: 'idle', wait: 6.0, t: 0,
  world: null, core: null, said: false, jumpQ: false, hopBtn: null,
  active: null, crafts: []
};
function supportHere(x, z) { return A.standingAt(x, z, null); }
function makeCraft(def) {
  return {
    key: def.key, name: def.name, icon: def.icon, home: def.home,
    park: { x: def.home.x, z: def.home.z, yaw: Math.atan2(-380 - def.home.x, 330 - def.home.z) },
    clr: def.clr, meshDrop: def.meshDrop, footLift: def.footLift,
    parkLift: def.parkLift, homeLift: def.homeLift, bob: def.bob,
    solidBox: def.solidBox, mountHelp: def.mountHelp, blipColor: def.blipColor,
    makeMesh: def.makeMesh, makeState: def.makeState, stepper: def.stepper,
    mesh: null, rack: null, craft: null, clock: null, solid: null
  };
}
function addSolid(e) {
  var y = supportHere(e.park.x, e.park.z), b = e.solidBox;
  var s = { x0: e.park.x - b.hx, x1: e.park.x + b.hx, z0: e.park.z - b.hz, z1: e.park.z + b.hz, y0: y + 0.02, y1: y + b.top, fleetCraft: true };
  A.solids.push(s); e.solid = s;
}
function removeSolid(e) {
  if (!e.solid) return;
  var i = A.solids.indexOf(e.solid);
  if (i >= 0) A.solids.splice(i, 1);
  e.solid = null;
}
function load() {
  M.state = 'loading';
  Promise.all([
    import('/city/fleet-core.js?v=20261013a'),
    import('/city/fleet.js?v=20261013b')
  ]).then(function (mods) {
    var core = mods[0], fleet = mods[1];
    M.core = core;
    M.world = fleet.createCityWorld(A);
    var group = new A.T.Group(); group.name = 'the-fleet';
    var defs = [
      { key: 'board', name: 'HOVER BOARD', icon: '🛹', home: BOARD_HOME, clr: 0.08,
        meshDrop: 0.03, footLift: 0.10, parkLift: 0.30, homeLift: 0.30, bob: true,
        solidBox: { hx: 0.65, hz: 0.65, top: 0.55 }, blipColor: '#2affd8',
        mountHelp: '🛹 THE HOVER BOARD — push the stick and she glides; she feeds herself under 6 m/s, carves with the stick, and HOP lifts her. Downhill is free speed. The action button steps you off.',
        makeMesh: function (T) { return fleet.createHoverBoardMesh(T); },
        makeState: function (core, pos, yaw) { return core.createHoverBoard(pos, yaw); },
        stepper: function (core) { return core.stepHoverBoard; } },
      { key: 'rider', name: 'SPACE RIDER', icon: '🚲', home: RIDER_HOME, clr: 0.52,
        meshDrop: 0.52, footLift: -0.34, parkLift: 0.0, homeLift: 0.22, bob: false,
        solidBox: { hx: 0.35, hz: 0.85, top: 1.30 }, blipColor: '#9fd0ff',
        mountHelp: '🚲 THE SPACE RIDER — push the stick to pedal her up; she tops out near 9 m/s, leans into her turns by bicycle law, and HOP bunny-hops her. The action button steps you off.',
        makeMesh: function (T) { return fleet.createSpaceRiderMesh(T); },
        makeState: function (core, pos, yaw) { return core.createSpaceRider(pos, yaw); },
        stepper: function (core) { return core.stepSpaceRider; } }
    ];
    defs.forEach(function (def) {
      var e = makeCraft(def);
      e.rack = fleet.createFleetRack(A.T, A.labelTex, def.name, 'THE FLEET · EST. 2026');
      var ry = supportHere(def.home.x, def.home.z);
      e.rack.position.set(def.home.x, ry, def.home.z);
      e.rack.rotation.y = e.park.yaw;
      group.add(e.rack);
      e.mesh = def.makeMesh(A.T);
      if (def.key === 'rider') e.mesh.rotation.order = 'YXZ'; // yaw first, then the lean
      group.add(e.mesh);
     