Back to Big Rig Rush
SOURCE / PINNED RELEASE

Made of little things.

Big Rig Rush

Release
ec9b6549f752…
Author-recorded commit
74b729258b1a…
License
LICENSE
Author’s source reference
nostr://npub1sj2vketepqw9v6fmge5fdzuj7atj9sv6qv2jss05n2z6rl64lcfqumdsnt/wss%3A%2F%2Fgit.napplet.soy%2F/n-0a99f0cae40

Archive hash verified: 900e22810340ccb1…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

docs/brief.md
# Big Rig Rush — design brief

**Job:** drive a semi-truck through a busy top-down city, picking up cargo in
downtown and delivering it uptown, to the hood or across downtown, using the Loop
highway, while rude drivers get in the way. There is no clock.

## Must-have flows

- The BULLDOZER (3): about 28 tonnes on tracks. W drives forward and S stops then backs
  up (no gears to shift), A/D spin it on its tracks even standing still, and it never
  slides sideways. Brisker than a real dozer: about 40 km/h flat out (30 on grass),
  24 in reverse, taking a couple of seconds to get there and stopping almost
  dead when you let go. It's armour plate (about a tenth of the damage) and shoves cars,
  wrecks and service units aside. Its blade grinds into any building it's pushed
  against: a timber house goes in well under a second, a big stone block in a few
  seconds of shoving (backing into one works too, slower).
- The A-10 WARTHOG (4): level flight at a fixed working height (about 40 m) over the
  map, with a steady camera that hangs above the jet and leads it.
  - Flight (src/game/a10.ts): two TF34s (40.3 kN each) that spool with a lag against
    parasite and lift-induced drag from the 47 m² wing, so the speed settles where
    thrust meets drag (about 720 km/h flat out, never below about 245 km/h). A / D
    roll it into a bank (let go and the wings level) and the bank turns it, tighter
    than real for the map's scale; turning costs lift and bleeds speed. W / S, the
    arrows or N / M move the throttle lever (hold, or tap N / M to nudge). The
    autopilot turns it back at the map edge. Stores lighten it as they go.
  - The jet (src/game/a10-model.ts) is drawn in the game's vehicle style on the real
    airframe's proportions, with the stores still aboard; banking shows which way:
    the low wing shortens and darkens, the high wing catches the light and the fins
    lean into the turn. Its shadow races over the ground below.
  - GAU-8 (hold G): 1,150 rounds at 3,900 a minute after a 0.5 s spin-up, the 5:1
    armour-piercing / high-explosive mix, a stream walking across the ground ahead of
    the nose with real spread, about 45 kN of recoil, gun gas from the nose.
    Armour-piercing rounds spark, hole and only kill a car through its engine or fuel
    tank; explosive ones burst and can set alight what they bring down.
  - Bombs (B, hold to ripple at 0.12 s; V picks the mode): 6 × Mk 82 AIR (high drag:
    the ballute pops and the bomb drops steeply behind the jet; low drag: it flies on
    ahead) and 1 × GBU-31 JDAM steered onto the pipper. About 1.3 s to fall.
  - AGM-65 Maverick (Space, 2): locks the vehicle nearest the line of flight within
    15° and dives onto it, smoke trail and all. R re-arms (5 s, weapons cold).
  - HUD (src/game/hud.ts): airspeed, g and Mach, heading tape, throttle lever and
    spool, stores, the bomb pipper with its fall line and the gun cross.
  - Screen shake from explosions is cut to a fifth from the air (it's far below).
  - The city fights back (src/game/civil.ts): anti-aircraft guns and SAM sites round
    Fort Dunmore and the vital sites go weapons free once it's under attack, and the
    National Guard brings mobile ones as it escalates. F pops flares (30; each pair
    decoys most missiles tracking the jet). Hits damage the jet (DMG); at 100 % it rolls
    over and goes in: SHOT DOWN. R re-arms and the ground crew patch 40 % of the damage.
  - The goal is to leave the city in ruins: CITY IN RUINS gauge, destruction points
    (car 25, service unit 60, building 120, tree 5, infrastructure 500, air defences
    250). On touch: THR+ / THR− (the
    pedals), ◀ ▶, GUN, BOMB, FIRE, WPN and ARM.
  Every explosion depends on what it hits: grass and dirt erupt in a column of soil,
  clods and torn turf (a brown-rimmed crater); tarmac throws broken asphalt, grit and
  sparks (a dark pit); sidewalks and concrete a pale dust; water a geyser of spray and
  steam (no crater, nothing burning); timber buildings splinters and a blaze; stone
  ones masonry chunks and grey dust; vehicles torn metal, a shower of sparks and a fuel
  fireball with oily black smoke. Cannon rounds likewise gouge earth, pock tarmac, spout
  water or chip buildings. Fire only starts where something burns: dry grass, timber,
  trees and spilt fuel (which burns out quickly). Bare dirt, tarmac, concrete and water
  don't burn, grass fires only creep across grass, and brick and stone buildings catch
  only rarely.
  Smoke climbs and is carried off downwind; dust is heavy, billowing out fast then
  hanging low and settling, coloured by its source (grey masonry, brown timber, earth).
  The A-10 trails subtle streaks: vapour off the wingtips that thickens as it pulls hard,
  and a heat shimmer behind each engine.
  Explosions are layered fireballs drawn as soft glowing particles: a white flash and
  shock ring, flame that rolls out and cools from yellow to orange to deep red, black
  smoke rolling in behind and hanging, burning embers and debris trailing smoke,
  sparks, a crater, ground fires. Bombs add a ring of dust racing outward along the
  ground, a dark mushroom of smoke, an APOCALYPSE shockwave that flings every car and
  person nearby, most buildings in reach flattened and set alight, and a 24-second
  smoke column. Buildings visibly cave in (the roof slumps and cracks apart over about
  a second) inside a billowing dust cloud, throwing out big slabs of wall and roof that
  stay as rubble, and the falling masonry batters whatever stands right next door
  (stone hardest). Trees fall away from whatever knocked them down. Bombs freeze the
  frame for an instant as they go off (hit-stop; close collapses too), fling cars high,
  and leave a wide charred blast mark that fades over minutes; burning buildings throw
  up drifting embers.
  Sounds follow the real aircraft: twin TF34 turbofans (a broad roar under a high
  fan whine and a hollow "hog whistle", all lagging the throttle as they spool, with
  the rush of air swelling with speed and in hard banks), the GAU-8's continuous tearing
  BRRRRT (its pitch is the firing rate, rising as the barrels spin up) with the shells'
  crackle a beat behind, a bomb's crack, deep boom, rolling rumble and falling debris,
  Explosions are kept simple and punchy: a noise burst whose filter sweeps from bright
  to dark plus a sub-bass thump falling in pitch (a crack when close); collapses are a
  dark rumble with a few heavy thuds and snapping timber or masonry. They're heard
  where they happen: sound takes about a second to cross 1,000 units, and distance
  dulls the top end and adds echo. Fires add a steady roar that grows with how much is
  burning around you, over the crackle. The A-10 has its own jet voice: a deep rumble, a
  broad exhaust roar, the TF34 fan whine as two slightly detuned tones beating into a
  hollow, wavering whistle, and air rush that swells with speed and in hard banks, all
  spooling up with lag (with a rising whoosh when the throttle is slammed open). Also
  a missile's ignition crack and rocket roar falling away as it streaks off, its
  warhead's crack and boom, a bomb's clunk off the rack and whistle growing as it
  falls, and the roar
  and pop of fires nearby.
- Air raid (src/game/raider.ts): for the rig, sports car and dozer, a switch on the
  title sign (key 5) sends in a computer-flown A-10 a few seconds into the shift. It
  flies the player's flight model and weapons, hunting round wherever the player is:
  infrastructure first (the JDAM for power stations, waterworks and shelters), then
  buildings (Mk 82 ripples, high or low drag, aimed with its own pipper), Mavericks at
  service vehicles and gun runs on the traffic, swinging wide when a target's inside
  its turn and leaving to re-arm when it's out. Its bombs and rounds hurt the player's
  ride too. The air defences target it; shot down, it rolls over and crashes, and
  another comes in 40 s later. A flyby roar and its delayed BRRRT are heard from the
  ground; the city panel shows during the raid.
- The living city (src/game/civil.ts), modelled on real incident command (life safety,
  then incident stabilisation, then property) and on how cities have burned and
  failed after bombing and earthquakes:
  - Critical infrastructure: three power stations (the Steelworks plant, Bayside and
    the dam's hydro) feed a substation in every district; when capacity falls short
    the grid sheds load, keeping hospital and City Hall districts lit first. A dark
    district has no street lamps or window lights, and dead traffic signals that
    drivers treat as all-way stops. Two waterworks pump only with power; water towers
    drain without them, hydrant pressure falls (more with fires to fight and burst
    mains), and fire crews on low pressure take far longer. Three masts and City Hall's
    emergency operations centre set how fast the city can coordinate anything. Shelters
    (the stadium, schools, halls) hold the evacuated, so hitting one is a massacre.
  - People: each district has its population; buildings that come down kill and trap
    the people inside (more by night in homes, by day in offices and shops, fewer once
    evacuated). Heavy rescue units (one per fire station) dig out the trapped, who go to
    the ambulances; the trapped not reached within four minutes are lost. Districts
    under sustained attack are evacuated to the shelters. The panel shows power, water,
    comms, hospitals, engines, fires, evacuated, trapped, rescued and killed.
  - Escalation: ELEVATED (air-raid sirens, air defences weapons free), EMERGENCY
    (evacuations, mutual aid and water-bombing helicopters that fill at the bay, the
    lakes and the reservoir and drop on the biggest fires), DISASTER (National Guard
    mobile air defence) and CATASTROPHE; mutual aid keeps coming in waves while the
    city's units are run ragged, to surviving stations or a staging area.
- Fire only where something that burns is destroyed by an explosion: a tree, a
  building (timber always, brick and stone usually, on what was inside), a vehicle's
  fuel. Anything else an explosion hits is left cratered, scorched, littered with
  debris and smoking, not burning; grass doesn't catch. Then fire spreads the way it
  does through a city: flames and radiant heat to the buildings next door, more
  readily downwind; embers on the wind start spot fires well ahead of the front; and
  where ten or more fires merge they feed each other in a FIRESTORM that spreads
  faster and further with whirling columns of flame. Gas mains rupture in collapsed
  buildings (jets of flame), bombs in the road burst water mains (fountains, and the
  pressure goes), wrecked substations and power stations arc. With enough of the city
  burning a smoke pall darkens the sky and ash drifts across. Burning ruins throw thick
  smoke downwind and smoulder for a while after. Fuel tanks, tank cars, aircraft, tanks, ammunition bunkers and the
  tanker go up when they're destroyed, and can set off their neighbours (a tank farm
  chain-reacts). Fire trucks go to every blaze and hose it out. At night burning
  buildings light up the dark.
- Explosions (from the research): a white-hot core, the fireball, fragments
  peppering the ground far beyond it, the ejecta cone raining back as a ring of dirt,
  the dust column slumping into a low rolling skirt, a vapour ring in damp air, a
  crater and blast mark, and plenty of dust and smoke: thick smoke rolling away, a
  smoke column, and a haze of dust that hangs over the site for a long time.
- Everything is destructible: every building including the stations (a destroyed
  station's fleet and helicopter are out of action until it's rebuilt), every tree
  (felled to a scorched stump; they stay down), cars, service units, street furniture,
  stalls and party gear, roads (craters).
- Ground matters, felt under each axle: asphalt grips; sidewalks nearly as well, with a
  jolt off the curbs; packed dirt lots are loose, draggy and rutted; grass is slippery,
  soft and lumpy; the shallows at the shore bog you down. Soft ground drags harder the
  faster you go and kicks up dust or spray. Measured on each: the rig does 191 km/h on
  road, 111 on dirt, 85 on grass (stopping from 100 in 21 / 35 / 38 m); the sports car
  does 261 / 168 / 77 km/h (15 / 23 / 23 m) and is a handful off the tarmac: its track
  tyres lose most of their grip and its low nose ploughs. The interstate deck is always
  asphalt.
- Pick your ride on the title (and end-of-shift) sign: the BIG RIG (articulated, manual
  8-speed, rolls over) or a SPORTS CAR (1 or 2, or tap). The sports car is a light
  rear-drive coupe with traction control and sticky tyres: a six-speed automatic
  (it holds gears to near the redline under full throttle, short-shifts when cruising,
  kicks down, and drops through the gears when braking; N/M do nothing and the touch shift
  pads hide) that revs to 7,600 (0-100 km/h in about 2 s, top
  speed about 260 km/h), sticky tyres (about 2.5 g before they let go), quick steering,
  strong brakes, wheelspin and oversteer under power in the low gears, no rollover, and
  a snarling engine instead of the diesel. It's fragile: crashes hurt it about twice as
  much, it needs real speed to smash through a wall, and its cargo is a parcel on the
  passenger seat (no extra weight). It carries missiles: Space (or the red FIRE pad)
  launches one from the nose about every half second; it locks on to the nearest car or
  service unit in a narrow cone ahead and homes in a little, and explodes on whatever it
  hits (or after about 2 s): a fireball, wrecked and flung cars, burning fuel tanks, a
  scorched crater, and a bite out of any building.

- Title → drive → pick up cargo downtown (stop in the green LOAD zone; the trailer
  gets heavier) → deliver uptown, to the hood, the port or across downtown → repeat
  until the truck is totaled. No timer; deliveries score base + distance + a
  clean-delivery bonus. Hitting a pedestrian costs a $50 insurance claim.
- Driving: articulated rigid-body physics (cab + trailer joined at the fifth wheel),
  tyre grip with a friction circle, wheelspin, sliding, jackknifing. Manual 8-speed
  gearbox: N shifts down, M shifts up, W is the throttle and S brakes; hold S at a standstill
  and it drops into reverse and backs up, and W in reverse brakes and then pulls away in first. Rev limiter, engine braking, refused/grinding over-rev shifts.
- Crashes are impulse-based and scale with closing speed, and differ every time:
  each model has its own mass, fragility, rollover stability and fire/explosion risk,
  each car its own build quality, and the material hit (truck, car, concrete,
  barrier, shoreline) changes debris, dust and sparks. Outcomes run from scuffs to
  dents and glass, torn-off wheels and panels, alarms, physics-based rollovers
  (tripping when sliding sideways, tumbling until friction stops it), fires, fuel-tank
  explosions with shockwaves, and slow motion. Smoke only comes from engine damage
  (radiator steam or oily black smoke). Wrecks drift on locked wheels. Wrecks,
  debris, skid marks and blood stay on the road; wrecks cause pileups.
- The rig can roll over: cornering beyond about 0.45 g loaded (0.7 g empty) lifts the
  wheels (warning), then it goes onto its side and slides; the shift ends.
- Map (16,400 × 29,200, ten times the old area; src/game/expansion.ts adds the new
  country): the old city in the north-west, with the elevated six-lane I-90 and its
  diamond interchanges at Route 9 (ground expressway), Grand Avenue and Harbor Road,
  plus the I-190 spur to the port; downtown, uptown, the hood, the port, the lakeside
  park, the farms and the bay. Across the bay the docks (quays, gantry cranes, moored
  container ships and a tanker, container stacks), north-east the steelworks (cooling
  towers, refinery tank farms, a steel mill, a gas holder), the rail yard the width of
  the map (fourteen tracks of standing trains, an engine shed), Maple Grove (suburb),
  the Strip (big stores and the stadium), Fort Dunmore (runway, taxiway, apron with
  hangars and parked jets, barracks and HQ, a tank park, ammunition bunkers, a fuel
  depot, the control tower and radar, a perimeter fence), and the backcountry: farms
  in clusters, wide woods, rolling hills, the reservoir and its dam, a wind farm, the
  market town of Harlan, all joined by Route 9 south, Route 50, Route 101 and long
  country roads. The truck and traffic drive under and over the deck on separate layers.
- Countryside: winding country roads (Old Mill Road through the north-west woods and
  round the lake, Ridge Road to uptown, Farm Road to the port), dense forests with
  solid trunks, farmsteads (house, red barn, silo) and fields.
- Wildlife (deer, moose, bears, foxes, raccoons, rabbits) grazes by country roads and
  crosses them; deer freeze in headlights. Struck animals fly, bleed and stay dead
  by the road; moose and bears slow and damage the truck.
- Vehicle types: sedan, taxi, sports, SUV, beater, compact, pickup (cargo), van,
  city bus, motorcycle (rider is thrown), police (lightbar), limo and ice-cream
  truck, mixed per district. Each has its own crash debris and sound layer.
- Venues: farmer's markets (smashable stalls, produce everywhere) and wild parties
  (disco lights, speakers, music you can hear nearby); shoppers carry bags.
- Day/night: a 4-minute day with a HUD clock, warm dawn/dusk and dark nights lit by
  street lamps, headlights, taillights, fires and venue lights. Traffic, pedestrians
  and wildlife follow the clock (rush hours, empty small hours). Markets open by day,
  parties in the evening and raves (port warehouse, forest clearing) through the night.
- Groups: joggers, dog walkers, tour groups, protest marches, buskers, picnics, yoga
  classes and late-night bar crawls, scheduled by hour.
- Pedestrian hits are physical: contact point and vehicle velocity decide the throw;
  low car noses scoop people up, flat truck/bus fronts shove them down and can run
  them over; bodies bounce off walls and slide, smearing blood.
- The south of the map is rural: Millbrook village, orchards, pastures with cows,
  hay and crop fields, Mirror Lake, a quarry, forests and Orchard, Quarry and Pine
  Hollow roads.
- A stable city: traffic and city crews are careful drivers who never injure anyone
  (people and animals jump clear), never wreck each other and only bump stopped wrecks,
  service units or a parked rig. Without the player the city has essentially no
  accidents; the player (and what the player sets off) is the source of chaos.
- Calm, cautious drivers: they cruise below the limit, accelerate gently, leave long
  gaps, take turns slowly and look far ahead; rude drivers are rare and rarely act up.
  Everyone ahead of a siren (same way, oncoming or at the next junction) pulls right
  over and waits.
- Traffic lights at every town junction where three or more streets meet: 9 s green,
  2.5 s amber, all-red, then the cross street. Drivers stop on red (and on amber when
  they can), queue behind each other, and don't enter a junction unless there's room
  on the far side. Emergency units and the player can run reds.
- The city monitors every accident and emergency and works each scene in stages:
  1. Police and paramedics first (and the fire brigade for fires): police pull across
     the lane and close the road (traffic detours, changes lane or is waved slowly
     past); ambulances load the injured and take them to hospital (the medevac
     helicopter for the badly hurt or when no ambulance is free).
  2. Once the scene is secure and the injured are gone, tow trucks hook every wreck
     and haul it to the junkyard in the industrial park.
  3. Only once emergency response and towing are finished do cleanup and repair
     crews enter the scene. Sweepers back up road crews and wait for 12 seconds
     without fresh debris; scene margins stay clear, and renewed danger cancels
     cleanup assignments. A new wreck returns the scene to towing.
     Garbage collection waits until the scene reopens; new emergencies cancel
     nearby pickup assignments, while collections elsewhere continue.
     A road crew sweeps up the debris, glass and blood and
     patches the road (sweepers help when no road crew is free).
  4. The road reopens: the police leave. Toasts report each stage near the player.
  Elsewhere crews still handle breakdowns, stray debris, holes, fixtures, roadkill,
  bins and building repairs, and the police helicopter circles the biggest disasters.
- Effective crews: a unit that finishes takes the next job of its kind nearby instead of
  driving home; a unit sent a long way starts its last stretch just out of sight (it was
  out on patrol); a unit heading home is back the moment it's out of sight (its towed
  wreck delivered). Jammed units squeeze through slowly instead of gridlocking.
- Stations with fixed fleets: hospitals (3 ambulances, medevac helicopter), police
  stations (3 cars; two keep a helicopter), fire stations (2 trucks), roadside depots
  (3 tow trucks, 2 roadside vans) and public works yards (2 each of garbage trucks,
  sweepers, repair trucks and road-crew dump trucks), spread over every district.
  Free units wait parked at their station.
- Service vehicles are physical: tyre grip and steering along the shortest lane route,
  collisions with walls, traffic, wrecks, each other and the rig. Sirens make traffic
  ahead pull over; units go round wrecks and jams, across the verge if they must, leave
  the road to reach a scene in a field, and back up and retry when stuck. The player
  can ram them: a unit written off becomes a wreck the city then tows, and the fleet
  gets a replacement after a while.
- Street furniture: lamp posts (lit at night), trash cans that fill through the day and
  hydrants line the sidewalks. The rig and sliding wrecks knock them over (lamps go dark,
  bins spill trash, hydrants gush) until a crew puts them right.
- Your own tow truck (R): in the rig's colours, it comes from just behind you out of
  sight, drives straight through traffic, and repairs and/or puts the rig back on the
  road in about a second, at mates' rates. Rolling the rig no longer ends the shift.
- Taxis and buses: people hail cabs, which pull over, carry the fare and drop them at
  another curb; city buses stop along the streets to let people off and take on anyone
  waiting.
- Blood is finite: each person only has so much to lose. Once it's gone they lie still,
  can no longer be run over, and wait for the paramedics (who top them back up).
- The family (mob) runs the hood: their black cars cruise it, goons stand on the corners
  and at their social club, and the police don't come in. With cargo loaded, the club is
  an alternative drop (purple zone and arrow): delivering there earns a favor (max 3)
  instead of the delivery fee. Wrecking a family car or running down a goon costs a
  favor. F (or tapping the FAVORS chip) calls in a favor:
  - Hit a car: pick a car on screen; a black sedan comes after it (it's marked with
    crosshairs and panics), shoots out its glass, rams it, and it goes up in a chain of
    explosions (APOCALYPSE tier, police helicopter).
  - Blow up a building: the family's van crew drives to the nearest building on screen
    and plants a bomb (6-second countdown, or goons on foot if the van's held up); every
    wall is blown out, fireballs at each corner, a shockwave, fires; it stays a gutted,
    smoking ruin until a repair crew rebuilds it.
- Workplaces: farmers in fields, orchards and pastures; tractors ploughing (and
  wreckable); construction sites with tower cranes and hard-hat crews; the industrial
  park (south-east) with factories, smokestacks, tank farms, a scrapyard, rail yard,
  cooling towers, forklifts and workers. The player always starts in the country or
  the industrial park; pickups come from farms, factories, the port and downtown.
- Buildings take damage: cracks, knocked-in holes with rubble and dust, and fires on
  the hardest hits, from the truck, from wrecks or from a service unit sliding into them.
- Buildings can be destroyed, depending on construction: timber houses, barns and shops
  (hood, village, country) give way to the rig at speed, and it smashes straight
  through in a burst of planks; brick, stone and concrete (downtown, uptown, port,
  industry) take several flat-out hits or explosions. A collapsed building is rubble you
  can drive across until a repair crew rebuilds it. Everything is destroyable,
  stations, hangars, cranes, ships, rail cars and the stadium included.
  Explosions blast holes in the road and fires leave scorch marks.
- Severe crashes always catch fire; fuel-tank fireballs leave spilt fuel burning briefly.
- Crash drama tiers by closing speed: CRUNCH! → WRECKED! → CARNAGE!! (shockwave) →
  APOCALYPSE!!! (chain explosions), with slow motion, flashes and a camera punch.
- Pedestrians walk sidewalks and crosswalks, flee speeding trucks and the horn, and
  are knocked flying, leaving red blood splats on the road, then get up limping.
- Minimap on frames of at least 480×400.
- Keys: 1-4 pick the ride on the title sign, Space fires missiles (sports car) or a Maverick (A-10), B bombs (hold to ripple), V bomb mode and hold G for the gun (A-10), W/S/A/D (in the A-10 Up/W climb, Down/S dive), N/M shift (the A-10's throttle), H horn, R tow, F mob favor, K mute, P/Esc pause. Touch: steering, pedals,
  shift and horn buttons on coarse pointers (configurable).
## Optional flows

- Best score is saved through `@napplet/sdk` storage when the `storage` domain is
  present; otherwise it lasts for the session only.
- Settings through the optional `config` domain: traffic density, rude-driver
  share, touch controls, screen shake.

No Nostr reads or publishes. No hard `requires`.

## Visual direction

- **Character:** late-afternoon rush hour drawn as smooth, flat vector art. The
  distinguishing idea is that all UI is road furniture: menus are green interstate
  signs, buttons are yellow warning plates, the HUD is a dashboard of asphalt chips.
  It keeps the player "on the road" even in menus.
- **Main surface:** a device-resolution canvas; the static city is painted in
  cached vector chunks matched to the zoom, which pulls back at highway speed.
  Grey asphalt with yellow centre lines, white lane dashes and crosswalks, warm
  sidewalks, varied rooftops with AC units and drop shadows, parks and parking lots.
  Bright red cab with a white trailer; traffic styled per district.
- **Interface:** bold uppercase monospace, hard 2–3px borders, hard offset shadows
  instead of soft blurs. Semantic colours: green = pickup, orange = drop-off,
  red = damage/danger, yellow = timer/score. Status also uses text labels.
- **Theme policy:** app-owned. `FOLLOW_HOST_THEME` stays off; the host theme never
  recolours the city, vehicles or signs.
- **Proof:** a truck mid-turn at an intersection with a rude driver's speech bubble
  and the delivery arrow visible, at 200×160, 320×560, 900×600 and full screen, plus
  touch portrait/landscape. Listing cover: mid-delivery in traffic at 1200×750.