<!-- SOLID CITY · part 1982 -->
 * You wait at the Orbital Spaceport's apron, north-east of the pad
 * (-340, 292), on flat capital ground — the first of the futuristic
 * fleet the King declared from the research: the skateboard's soul,
 * taught to hover. Your physics is VECTOR's hover-board controller,
 * unmodified, thinking over the city's own standing fabric through
 * the adapter in fleet.js. I add only what a placer owes: a rack to
 * wait on, a name on the radar, a door in and a door out.
 *
 * The doors follow the law the cars learned on 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.
 *
 * — A third letter, the same day, for the ship's arrival:
 *
 * Dear ship,
 *
 * You come last, as your designer ordered, and you come honestly:
 * a winged atmospheric craft on VECTOR's flight core — lift, drag,
 * thrust and gravity deciding everything, the way his packet swore
 * it must. Around his stepper stands the flight-state machine his
 * fourth correction demanded: PARKED, LAUNCH, FREE, ASSISTED,
 * APPROACH, FLARE, LANDING, and EMERGENCY — a go-around for pride,
 * a settle for mercy, and no crash anywhere in your law. The cradle
 * at Berth 1 throws you to flying speed, because the core knows no
 * ground roll; the last metres of every landing are flown by the
 * machine, because the adapter's floor holds core flight 2.2 metres
 * above the fabric. Your stall is real, your ceiling is the world's
 * own 420, and your numbers are the packet's light craft — the big
 * arcade ships elsewhere keep their own law, never conflated.
 *
 * 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 SHIP_HOME = { x: -398, z: 288 };
var SHIP_YAW = -1.72; // the departure heading: west, over the apron's edge and out
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,
  thrUp: null, thrDn: null, thrDir: 0, spacePrev: false,
  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, machine: 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=20261013c')
  ]).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