Commit Graph
65 Commits
Author SHA1 Message Date
Tim Evans 3565d7e521 Ringworld character sheets v4 — built with reportlab
Complete rebuild using reportlab for precise PDF output.
All 6 characters × 2 pages = 12 pages, A4, print-ready.

FRONT: Accent colour header + portrait slot · All 8 stats with
large values · 9 derived attributes (HP, Move, DB, Action Rank,
Dodge/Health/Reasoning/Luck%) · HP tick boxes + unconscious level
· Full skill list in 3 columns (Agility+Comm / Knowledge / Perc+Tech)
showing trained values OR base chance for all ~50 skills
· 2-3 weapons with full stats · Equipment + personality strip

BACK: Annotated body diagram (7 hit locations, HP values, D20 ranges,
AP boxes) · HP tally boxes · Location table with AP/HP fill boxes
· Combat reference (action ranking, range modifiers, combat rules)
· Event 95 + 96 scenario hooks · Equipment detail · Notes

Portraits: Mira Chen + RR'raan embedded; others: clean placeholder
Build script: build.py for future iterations
2026-05-18 14:22:29 +00:00
Tim Evans ee5783bf0a Ringworld character sheets v3 — full rebuild
Layout: Dense A4 print-ready, two-sided
- Front: stats strip + HP tracker + 18-22 skills per character (two columns,
  by category: Agility, Communication, Knowledge, Perception, Technical)
- 2-3 weapons only per character, chosen for role
- Back: hit location diagram + per-location AP/HP boxes + HP tally
  + combat reference (action ranking, range modifiers) + scenario hooks
- Smaller portrait (42mm) with placeholder for Midjourney TBD art
- Embedded Orbitron/ShareTech/Barlow fonts for print fidelity
- midjourney-portrait-prompts.md: 6 hand-drawn ink sketch prompts
2026-05-18 14:06:00 +00:00
Tim Evans 726437eec8 Ringworld character sheets v2 — more weapons, full layout, PDF output
- Added 4-6 weapons per character from Ringworld/Known Space universe:
  Sonic stunner, ARM needle gun, tangler, gravity planer, kzin beam pistol,
  kzin laser carbine, slaver disintegrator ref, variable sword, restraint field,
  stun capsules, engineering laser, survey laser, flare gun
- Known Space weapons quick reference table on every back page (18 weapons)
- Hit location diagram with body outline (front/back D20 reference)
- Impulse of Completion tracker (20-box grid)
- Full rules quick reference (4 sections)
- Fonts embedded as base64 (Orbitron, Share Tech Mono, Barlow Condensed)
- PDF generated via wkhtmltopdf: 12 pages, A4, print-ready
2026-05-18 13:29:37 +00:00
Tim Evans 230a8eea46 Add Ringworld character sheets - Events 95 & 96 - first draft
Six crew of the Foolish Endeavour: Chen, Korr, RR'raan, Whisper, Veld, Reyes.
Double-sided print layout (A4), 1980s high-contrast sci-fi aesthetic.
Portraits embedded (Chen + RR'raan), SVG silhouettes for others.
Each sheet: stats, HP tracker, weapons, skills, scenario hooks for both events.
2026-05-18 13:11:33 +00:00
ChaosiumCon Prep 086b03610b Fix stat×5 overlap and cover table contrast — all three scenarios
Stat block (BRP v4 + Stormbringer):
- HDR_H reduced 20→16pt, light cell grows 10→14pt
- Value baseline moved to y=16: cap top y=26, header bottom y=28 → 1.9pt clearance
- ×5 baseline moved to y=30: cap top y=34.7, divider y=36 → 1.3pt clearance
- No overlap between main stat and ×5 percentile at any value 1-20

Cover quick-reference table:
- D1 cover_rule_body was #2A2A2A on #2A2A2A rows — 1:1 contrast, completely invisible
- NC cover_rule_body was #C0D8F0 (fine contrast but unreliable font rendering)
- Both changed to colors.white on dark rows: 14-17:1 contrast
- cover_rule style font changed to Helvetica-Bold 8.5pt for reliable glyph rendering
2026-05-18 10:19:09 +00:00
ChaosiumCon Prep 0bc8a002f5 Add stat×5 percentile to all character sheets (all three scenarios)
StatBlock updated in both BRP (v4) and Stormbringer build scripts:
- Header band now 20pt (was 12pt), split into two zones
- Upper zone: stat label (STR, CON, SIZ etc.) in white/gold
- Thin accent divider line
- Lower zone: stat×5 percentile ('55%', '80%' etc.) same style
- Main stat value in light cell unchanged
- Page budget: +8pt per character, well within buffer on all sheets

Affects all six characters in all three scenarios:
  Night Crawler, Day One, Stormbringer Kelen's Pact
2026-05-18 10:09:16 +00:00
ChaosiumCon Prep c214c1d5b9 Add Day One player character portraits + rebuild PDF with art
6 Walking Dead / Charlie Adlard ink style portraits embedded:
- d1-pc01-kira-osei-mensah.jpeg    (Black woman, lanyard, coffee, South Bank street)
- d1-pc02-dev-krishnamurthy.jpeg   (South Asian man, headphones, laptop, Borough Market)
- d1-pc03-maggie-donnelly.jpeg     (White woman 60s, Thames/Westminster, walkway)
- d1-pc04-olu-adeyemi.jpeg         (Black man, bald, security uniform, The Shard)
- d1-pc05-priya-mehta.jpeg         (South Asian woman, press lanyard, notebook, looking up)
- d1-pc06-tom-becker.jpeg          (White man, work clothes, van behind him, London street)

Build script updated: D1_PORTRAITS dict + portraits passed to Day One build.
Day One PDF: 14 pages (13 char + zombie reference page), 917KB.
2026-05-18 09:59:58 +00:00
ChaosiumCon Prep 26d2585842 BRP v4 — Day One: zombie rules, combat boosts, handout
Day One character updates:
- Kira: Brawl 25%→40%, Scalpel ATK 25%→40%
- Dev: Brawl 25%→35%, laptop improvised 20%→35%
- Priya: Brawl/improvised 20%→35%, Dodge 30%→35%
- Maggie/Olu/Tom: unchanged (already 50-65%)

Zombie combat system (inspired by TWD Free League):
- Succeed on skill roll = zombie neutralized, no HP loss
- Miss = roll D20 on attack table
- D20 table: 4 colour-coded zones
  Zone 1 (1-6): close calls, no infection
  Zone 2 (7-13): infection risk, moderate damage
  Zone 3 (14-17): serious danger, automatic infection
  Zone 4 (18-20): catastrophic/fatal (35% of results)
- Head shot rule, horde rule, approach table

Outputs:
- brp-day-one-v4.pdf: 14 pages (13 chars + zombie reference)
- day-one-zombie-attack-handout.pdf: 1-page standalone table
2026-05-18 09:41:46 +00:00
ChaosiumCon Prep f9f4db815b BRP character sheets v3 — Combat section added to all 12 characters
Added COMBAT section to front page of every character sheet:
- Weapon table: Weapon | Skill | ATK% | PAR% | Damage | Notes
- Dodge + Damage Bonus summary strip below table
- Night Crawler: all 6 operatives have firearm + melee (some have EMP/sedative as 3rd)
- Day One: all 6 survivors have contextually realistic weapons
  (Maggie: ASP baton + brawl + firearm-if-found; Tom: crowbar + hammer + brawl;
   Viktor: military sidearm + baton + brawl; Olu: security baton + brawl + sidearm-if-found)
- Dodge pulled from skills list; DB from derived stats
- Untrained weapons clearly labelled (base chance)
- Quick reference updated to include Parry and Dodge rules
2026-05-18 09:18:13 +00:00
ChaosiumCon Prep 5561a16c00 Add Night Crawler player character portraits + rebuild PDF with art
6 Midjourney portraits (Moebius/Heavy Metal style) embedded in PDF:
- nc-pc01-sable-kress.jpeg       (Sable Kress — The Fixer)
- nc-pc02-juno-rhee.jpeg         (Juno Rhee — The Ghost)
- nc-pc03-viktor-drav.jpeg       (Viktor Drav — The Muscle)
- nc-pc04-tal-morgan.jpeg        (Tal Morgan — The Tech)
- nc-pc05-reina-vasquez.jpeg     (Reina Vasquez — The Medic)
- nc-pc06-petra-amis.jpeg        (Petra Amis — The Analyst)

3 alternate images also stored (alt suffix).
Build script updated: portraits dict + RLImage swap-in.
2026-05-18 08:55:06 +00:00
ChaosiumCon Prep dbbbcabe59 Add player character portrait prompts — Night Crawler (Event 91)
6 Midjourney prompts for Sable Kress, Juno Rhee, Viktor Drav,
Tal Morgan, Reina Vasquez, Petra Amis.

Art direction: cinematic neo-noir, painterly digital oil painting,
augments subtle and grounded (NOT generic sci-fi neon-overload).
Includes PDF swap-in instructions and style drift correction notes.
2026-05-18 07:39:40 +00:00
ChaosiumCon Prep 5f5be45c95 BRP character sheets v2 — contrast fix, Rajdhani font, HP track redesign
Night Crawler:
- Rajdhani Bold font for all headers/character names
- ShareTechMono for stats/body — technical terminal aesthetic
- Complete colour audit: all contrast ratios 6:1+ (was 1.2:1 for some NC pairs)
- Cyan ONLY used on dark backgrounds; dark navy on all light backgrounds
- Dark derived-stats strip so cyan labels are always readable

Both scenarios:
- HP and SAN tracks now full-width, stacked, not side-by-side
- Box size 20pt (was 15pt), numbers 9pt bold (was 7pt)
- No milestone text below boxes (was causing 3pt clearance = visual overlap)
- Every 5th box shaded differently for quick orientation
- Portrait placeholder column (Midjourney art can be swapped in)
- Augment/What You Know moved to back page for better front-page breathing room
2026-05-18 07:26:56 +00:00
ChaosiumCon Prep bae8a04485 Add BRP character sheet PDF generator — Night Crawler & Day One
Event 91 (Night Crawler): 6 neo-noir operatives for Neo-Ashford 2087
- Sable Kress (Fixer), Juno Rhee (Ghost), Viktor Drav (Muscle)
- Tal Morgan (Tech), Reina Vasquez (Medic), Petra Amis (Analyst)
- Each with augment section, HP + Sanity tracks side by side

Event 159 (Day One): 6 London survivors for 17 May 2026
- Kira, Dev, Maggie, Olu, Priya, Tom
- Each with 'What You Know' section, HP + Sanity tracks
- Two-page layout: front (stats/skills/equip/special/tracks), back (background/hook/notes)

Theme system: night_crawler (electric cyan on dark navy) vs day_one (emergency red on near-black/parchment)
2026-05-18 07:08:13 +00:00
ChaosiumCon Prep 07e2ddae7e Add PDF build script v3 — HP tracker, two-page layout, portrait integration
- HP track Flowable with numbered boxes, milestone markers
- Front page: stats/skills/portrait/equipment/demon/HP track
- Back page: physical description/background/hook/quote/notes
- Fixed cover thumbnail overflow (95pt fixed width)
- Corrected HP formula throughout (Stormbringer 1e rule)
2026-05-18 06:59:42 +00:00
ChaosiumCon Prep 921359ec93 Fix HP calculations — correct Stormbringer 1e formula
HP = CON modified by SIZ (not CON+SIZ):
- SIZ 9-12: no modifier
- SIZ above 12: +1 per point above 12
- SIZ below 9: -1 per point below 9

Corrected HP values:
- Davin Kell: 28 -> 16 (CON 14, SIZ 14 +2)
- Ysolde:     21 -> 11 (CON 11, SIZ 10 +0)
- Cray:       21 -> 12 (CON 12, SIZ  9 +0)
- Sarath:     24 -> 13 (CON 13, SIZ 11 +0)
- Brenn:      28 -> 16 (CON 15, SIZ 13 +1)
- Lian:       22 -> 12 (CON 12, SIZ 10 +0)
2026-05-17 23:18:34 +00:00
ChaosiumCon Prep 39ca6bcad1 Add player character portrait art — The Storm of Kelen's Pact
Six Midjourney portraits for Davin Kell, Ysolde of Vilmir, Cray,
Sarath the Twice-Turned, Captain Brenn, and Lian.
2026-05-17 23:08:52 +00:00
ChaosiumCon Prep 32770d7ec5 Add Midjourney prompts for 6 player characters — The Storm of Kelen's Pact
Portraits for Davin Kell, Ysolde of Vilmir, Cray, Sarath the Twice-Turned,
Captain Brenn, and Lian. Each prompt includes demon-bound item detail and
matches the established Young Kingdoms art direction (1970s painterly,
Michael Whelan style, jewel tones and deep shadow).
2026-05-17 22:52:50 +00:00
ChaosiumCon Prep b67b773232 Add Stormbringer player character sheets — The Storm of Kelen's Pact
6 pre-generated characters with full stats, skills, equipment, backgrounds,
and demon-bound items. Characters: Davin Kell (mercenary), Ysolde of Vilmir
(scholar-sorcerer), Cray (cutpurse), Sarath the Twice-Turned (former cultist),
Captain Brenn (sailor), Lian (devotee of Law).
2026-05-17 22:35:49 +00:00
Tim Evans 984f60c633 Event 95: add GM app — A Question of Singularity 2026-05-17 22:39:13 +01:00
Tim EvansandClaude Sonnet 4.6 535999e7a1 Event 96: add art ART-09 through ART-14 (Romance batch)
New art assets for Is Love the Answer:
  09 Serenthis — second image, different pose/scene
  10 Mira Chen — NPC portrait, human xenobiologist
  11 RR'raan — player character portrait, Kzin reconnaissance
  12 Foolish Endeavour rising from Ringworld surface
  13 Survey vessel descending toward Ringworld
  14 Wide Ringworld inner surface landscape

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 21:27:27 +01:00
timevans666 0745209619 Event 95: Midjourney art batch (7 images) + GM doc illustrated
New art assets (95-ART-08 through 95-ART-14):
  08 Marr portrait — scientist surrounded by notebooks, exhausted certainty
  09 Crew — Foolish Endeavour crew, Ringworld arc behind
  10 Loop reset — figures scattered mid-gravity-inversion
  11 Ship scale — Foolish Endeavour on surface, tiny figure, Ringworld overhead
  12 Marr notebooks — hundreds of open notebooks, evidence of loops
  13 Core chamber — singularity sphere, concentric arcs, lone figure
  14 Ringworld arc — bonus scene, dramatic overhead arc (spare/handout)

GM companion doc updated:
  Cover: SVG replaced with 95-ART-11-ship-scale.png
  Act One header: 95-ART-10-loop-reset.png
  Marr NPC section: portrait + notebooks side-by-side panel
  Act Two header: 95-ART-09-crew.png
  Act Three header: 95-ART-13-core-chamber.png
2026-05-17 19:09:47 +00:00
timevans666 276dbe4470 GM apps: embed Midjourney art into Event 91 and Event 92 apps
Event 92 — Last Train to Coney Island:
- Header background: 92-ART-01-cover.png
- All 15 scene img: paths updated from 'images/' to 'assets/'
- Scene-to-art mapping:
  intro → van-cortlandt-murder | a1_cemetery → black-conductor
  a1_witness → creed-portrait | a1_butchers → platform-sprint
  a1_sweep → reflection-vision | a1_train → subway-car-interior
  a2_96th → platform-sprint | a2_wards/broadcast/unionsquare → third-rail-sigil
  a2_darkride/freeze → reflection-vision | a3_brooklyn → subway-car-interior
  a3_strike → vale-portrait | a3_terminal → stillwell-terminal

Event 91 — The Night Crawler:
- Act hero images at top of each act panel (200px banner):
  intro → 91-ART-01-cover | act1 → 91-ART-02-the-slab
  act2 → 91-ART-04-the-junction | act3 → 91-ART-06-primary-node
- Location-level artwork in detail panes:
  Room 4 (Reth's squat) → 91-ART-03-reth-squat (160px header)
  Feed Corridor (bodies) → 91-ART-05-three-bodies (160px header)
2026-05-17 19:05:25 +00:00
timevans666 2120334937 Event 91: Scene art batch (6 images) — Night Crawler now fully illustrated
Scene art added:
  91-ART-01 Cover: aerial Neo-Ashford, arcology towers / Undertow neon
  91-ART-02 The Slab: dystopian market, child and the note
  91-ART-03 Reth's squat: wall of notes, corkboard, the photograph
  91-ART-04 The Junction: filament hub, six figures tiny below
  91-ART-05 Three bodies: Feed Corridor, ribcages opened like flowers
  91-ART-06 Primary node: through gallery glass, entity spreading

Combined with existing 5 NPC portraits — scenario now has complete art coverage
2026-05-17 19:00:28 +00:00
timevans666 a3409cb331 Event 92: Full Midjourney art batch (11 images) + master prompts doc
- scenarios/art/event-92/ — all 11 images, named and indexed in README
- apps/event-92-last-train/assets/ — same set, ready for app embedding
- scenarios/midjourney-prompts-master.md — master prompts for all 8 scenarios

Art covers:
  01 Cover (tunnel run / Conductor)
  02 Van Cortlandt murder
  03 Platform sprint
  04 Reflection vision
  05 Lester Creed portrait
  06 The Black Conductor (entity)
  07 Third Rail Choir sigil
  08 Sister Marion Vale portrait
  09 Stillwell Avenue terminal
  10 Brass token (prop/handout)
  11 Subway car interior (bonus)
2026-05-17 18:50:50 +00:00
ChaosiumCon Prep 3a3c2d6170 Event 96: embed all 8 Midjourney art assets — cover, market, Serenthis, Ghresh-Ka, vault, storm, choice, woven band 2026-05-17 16:58:33 +00:00
slaguru666andClaude Sonnet 4.6 dd88c00c9a Add Storm of Kelen's Pact GM app (Stormbringer)
Single-file HTML GM tool for the Thursday 2pm ChaosiumCon UK 2026 session.
Covers timer, act pacing, NPC cards, clue tracker, handouts, player stat tracker (HP/POW/PP), reference tables, and pinboard.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 16:52:08 +01:00
slaguru666 7878f87dfb Rename scenarios/art/event-96-midjourney-prompts.md to scenarios/art/event-96/event-96-midjourney-prompts.md 2026-05-17 16:14:18 +01:00
ChaosiumCon Prep 8d7d83a83a Event 96: GM companion app (1743 lines) + Midjourney art prompts (8 assets) 2026-05-17 15:03:44 +00:00
ChaosiumCon Prep 6f2420ff79 Event 96: Is Love the Answer? - full scenario build (3-act Ringworld, Serenthis, Ghresh-Ka, moral dilemma, 6 pre-gen characters) 2026-05-17 14:52:38 +00:00
slaguru666andClaude Sonnet 4.6 45d0e07af6 Add Storm of Kelen's Pact — Stormbringer scenario for ChaosiumCon UK 2026 (Thursday 2pm)
Full scenario document with 3-act structure, 6 pre-gens, 7 NPCs with stat blocks,
clue trail, handouts, moral choice framework, and GM notes. Updated library README
and con prep doc with event details.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 15:26:03 +01:00
slaguru666andClaude Sonnet 4.6 2247286a72 Add .gitignore — exclude portable self-contained HTML builds
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 13:06:33 +01:00
tevans 0816aada90 Add Stormbringer art gallery: 39 gpt-image-2 images, HTML gallery, prompts, generator script
- scenarios/art/stormbringer/: 39 PNG images generated with gpt-image-2 at high quality
  covering locations, characters, demons, elementals, creatures, weapons, religion
- asset-library/stormbringer-1e/stormbringer_reference.html: updated with full
  image gallery section, lightbox viewer, and nav entry
- scenarios/art/stormbringer/stormbringer-art-prompts.md: full prompt library (39 prompts)
- scenarios/art/stormbringer/dalle_generate.py: queue-based DALL-E/gpt-image generator
2026-05-16 20:31:38 +00:00
tevans b1fc3810dc Add Midjourney prompt library — all NPCs, monsters, locations, items across events 91, 92, 93, 95, 159 2026-05-16 16:57:35 +00:00
tevans dcd4da2458 Add Stormbringer reference app and ChaosiumCon26 prep notes 2026-05-16 08:22:12 +00:00
timevans666 f2d9cf793f Event 93: Add all 13 artwork images — NPCs, scenes, props in GM app and scenario markdown 2026-05-15 15:01:52 +00:00
timevans666 af5626e65e Event 93: Fix contrast — all text elements now ≥4.5:1 WCAG AA on dark backgrounds 2026-05-15 14:37:59 +00:00
timevans666 a82bae1b8a Event 93: Complete GM app — Watcher stats, H5 incantation, failure states, player names, clock fix 2026-05-15 13:47:26 +00:00
timevans666 628a8589d4 Event 93: Fresh-eyes review — add failure state (midnight) + Codex destruction contingencies 2026-05-15 13:31:43 +00:00
timevans666 b2966e2c20 Event 93: Not Another Telegram — full scenario doc + GM app
- Complete scenario markdown with full stat blocks for all 6 pre-gen investigators
- Full GM companion HTML app (standalone, offline-ready)
- Manifestation meter (5-pip tracker) replacing entity presence
- Tone management guide (comedy-to-horror transition per act)
- Henderson's arc preserved as central tragic beat
- Midnight deadline clock mechanic
- All handouts embedded (H1-H4) with period-appropriate styling
- Clue tracker, SAN tracker, full NPC roster with secrets
- 11 Midjourney prompts in established style
2026-05-15 13:27:33 +00:00
timevans666 17d066a466 Event 159: Add real artwork assets + update app
Artwork (9 images — reportage ink sketch style):
- 159-ART-01: Aerial view, South Bank, figures fleeing, smoke
- 159-ART-02: Bus crash crowd scene, Southwark Street
- 159-ART-03: Market stall closing shutters, crowd panic
- 159-ART-04: Lone figure standing in river — the wrong stillness
- 159-ART-05: Narrow Bermondsey Street, survivors moving south
- 159-ART-06: Blue Anchor pub interior, crowded survivors
- 159-ART-07: Tower Bridge approach, Pete and the Bridge Group
- 159-ART-08: Bankside Pier RIB, night, fire reflections
- 159-ART-09: Character portraits sheet, 8 figures, ink sketch

App updates (index.html):
- SVG placeholder portraits replaced with real image sheet crops
  (CSS overflow:hidden + absolute positioning, 4-col×2-row grid)
- Portrait enlarged view uses same crop system at 3× scale
- Act I locations: bus crash, market, river figure images embedded
- Act II locations: Bermondsey Street, Blue Anchor images embedded
- Act III routes: Tower Bridge, Bankside Pier images embedded
- Home screen: portrait sheet as cover/hero image
- New Art Gallery screen (🖼 nav item) — all 9 images in labelled grid
- showArtwork() fullscreen viewer from any image in the app
- closeHO() resets inner panel styles correctly

Assets stored in:
  apps/event-159-day-one/assets/
  scenarios/art/event-159/
2026-05-14 23:03:28 +00:00
slaguru666 7894e56bdf Event 92: Last Train to Coney Island — full scenario doc + GM app 2026-05-14 23:02:11 +01:00
timevans666 bbeac491aa Event 159: Day One — GM companion app
- Emergency red / signal amber palette (vs Night Crawler's cyberpunk cyan)
- NHS Emergency Alert full-screen simulation (📱 ALERT button)
- Reportage ink-sketch SVG portraits for all 6 major NPCs
- Live session timer with hard deadline alerts at 1:15, 2:15, 2:30, 3:05
- 12-clue tracker with essential/optional tagging and fallback notes
- 10 handouts with act-tagged cards and ⛶ Show to Players mode
- 6 PC stat trackers: HP/SAN/MP adjusters, Bitten/Injured/Insane/Dead flags
- Acts screen: tabbed Intro/I/II/III/Epilogue with all beats, social media feeds, fast-tracks
- SAN quick-reference modal from any screen
- GM-only truth panel (Meridian Biosciences/COBR backstory)
- LocalStorage persistence for all session state
- Touch-optimised, 48px targets, responsive sidebar/bottom-nav
2026-05-14 20:07:44 +00:00
timevans666 2c53c8488e Event 159: BRP Day One — full scenario expansion
- Complete three-act structure following master template
- Overriding story: Meridian Biosciences / MX-9 / COBR containment decision
- Plot summary (GM's truth), player experience arc
- Introduction with individual character read-alouds and alert delivery
- Act One: Something Is Wrong — bus crash, first infected, market breaks
- Act Two: The Long Walk South — Blue Anchor, pharmacy, reanimation, cordon
- Act Three: Bridge or River — Tower Bridge negotiation or RIB at Bankside Pier
- Epilogue with four outcome states and closing read-aloud
- 5 major NPCs with full stat blocks (Fatima, Callum, Sharif, Marcus, Helen, Pete)
- 6 pre-generated characters with stats, hooks, and motivation
- 12-clue trail with essential/optional split and fallbacks
- 11 handouts listed with format specifications
- Zombie quick reference table
- 9 artwork assets with reportage ink sketch style and generation prompts
- The Tangent: Day Two / Meridian investigation follow-up
- Full GM notes on lethality, pacing, Helen, Marcus, and the cordon moment
2026-05-14 19:42:46 +00:00
timevans666 9296bdd467 Event 91: fix all JS errors - missing functions, duplicate declarations, malformed structure
Issues fixed:
1. buildNPCs (and 23 other functions) were missing — lost when the ACT_DATA
   block replacement accidentally deleted the switchAct→renderRefContent section
2. Duplicate const REF_DATA declaration (old literal + new JSON.parse version)
3. Stray </body></html> embedded inside the script content from prior botched edit
4. Final unescaped apostrophe: 'don\'t' in renderActContent

All 40 functions confirmed present. Node --check: ZERO SYNTAX ERRORS.
2026-05-14 19:11:57 +00:00
timevans666 84fdbfa614 Event 91 Night Crawler: fix all JavaScript syntax errors
Root cause: ACT_DATA and REF_DATA objects were built using Python
string escaping that left unescaped apostrophes in single-quoted JS
strings (Reth's, entity's, don't, it's, Jed's, Sable's etc.) and
at least one unclosed template literal causing downstream parse failures.

Fix: ACT_DATA and REF_DATA are now stored as proper JSON in
<script type='application/json'> tags and loaded via JSON.parse().
All text content uses HTML entities for apostrophes and special chars.
Zero escaping ambiguity possible.

Node.js --check confirms: NO SYNTAX ERRORS.
Backtick count now 28 (even = all template literals properly closed).
2026-05-14 15:44:09 +00:00
timevans666 8034555b37 Event 91 Night Crawler: full app rebuild v3
Complete rebuild addressing all feedback:

LAYOUT
- Two-column layout for 13" laptop/tablet (200px sidebar + content)
- Sidebar collapses to bottom nav on narrow screens (<800px)
- CSS grid with proper areas, no overflow hidden tricks
- All touch targets min 48px, adj buttons 42×42px

READABILITY
- --text: #eeeefc, --text-sub: #b8b8d8, --text-muted: #7878a0 (captions only)
- Base 15px, card body p 15px, headings 16-18px
- No dark text on dark background anywhere
- Goal boxes, callouts, pacing notes all use --text
- Stat blocks use --text-sub (not dim)
- Generous line-height 1.55-1.75 throughout

FULLSCREEN OVERLAYS (portraits + handouts)
- ALWAYS has visible '← Back' button at top-left of screen
- Back button is cyan bordered, large (min 48px), obvious
- Portrait overlay: image fills available height, centered
- Handout overlay: scrollable text, readable 17px serif
- Both have 'Mark Shown to Players' action button
- Shown state persists and shows on card

STATE TRACKING (new)
- Locations: tap to mark visited (green dot + strikethrough)
- Clues: tap cycles pending → found → missed with color
- NPCs: 'Mark Introduced' button, shows ✓ badge
- Handouts: 'Mark Shown' on card and in overlay
- Portraits: 'Mark Shown' button in overlay
- Clue progress badge on nav: X/7 essential found
- All state persists in localStorage

PINNING SYSTEM (new)
- Pin any NPC to home screen quick-access bar
- Pinned items appear as large amber buttons at top of Home
- One-tap access to most-needed items mid-session
- Unpin with ✕ button

SESSION NOTES
- Textarea per act for GM notes during session
- Persists in localStorage

ACTS
- Location items are tappable with 'Details' button
- Details panel expands inline below location
- Visited locations get checkmark + strikethrough
- Notes field at bottom of each act
2026-05-14 15:27:28 +00:00
timevans666 137a7a9d57 Event 91 Night Crawler: UI pass — readability, touch targets, portrait fullscreen
Text / colour improvements:
- --text-dim: #7070a0 → #9898bc (much more readable on dark bg)
- --text: #d0d0e0 → #e2e2f0 (brighter base text)
- --text-bright: #f0f0ff → #f5f5ff
- body font-size 14px → 15px
- goal-box text now --text (was --text-dim = near-invisible)
- stat-block-row text now --text (was --text-dim)
- san-note text: #ff4444 red raised to #ff7070 (readable on dark bg)
- All card body p: 14px, line-height 1.6
- mechanic/san-note/pacing-note: 12px → 13px
- ref-table: 12px → 13px, th colour --text-dim → --text
- handout terminal colour raised: #00bb88 → #00cc88
- handout content base colour raised: #c8c0a8 → #d4cbb0
- card-subtitle: 11px → 12px
- value: 13px → 14px

Touch target improvements:
- Nav buttons: min-height 52px → 64px, icon 18px → 22px
- Card headers: padding 12px → 16px, min-height 58px added
- Timer buttons: padding 12px → 16px, font 12px → 14px, min-height 54px
- Dashboard buttons: padding 14px → 18px, icon 22px → 28px, min-height 82px
- Clue items: padding 12px → 16px, check 24px → 32px, min-height 60px
- Stat ctrl buttons: 28×28px → 38×38px, font 14px → 18px
- Status tags: font 9px → 11px, padding 2px → 5px 10px, min-height 30px
- Act tabs: padding 6px → 10px 18px, min-height 42px
- Handout headers: padding 12px → 16px, min-height 62px
- Overlay close buttons: min-height 50px+

NPC portrait tap-to-fullscreen:
- Tap any NPC portrait to open full-screen image view
- Portrait overlay fills screen, image fills height
- Name shown in footer bar with large close button
- For showing artwork to players at the table
- portrait::after shows 'TAP TO SHOW' hint on press
2026-05-14 15:07:14 +00:00
timevans666 ea9b51a74f Event 91 Night Crawler: real NPC portrait artwork embedded
Five Midjourney-generated NPC portraits in dystopian noir illustration style
replacing previous placeholder SVG artwork.

Characters and artwork:
- Sable Morn: dramatic black/white ink wash portrait, high collar coat,
  looking past viewer, extreme chiaroscuro from above
- Damos Reth: gaunt figure in data vest, glowing eyes, underground tunnel,
  haunted expression
- Jed Osler: behind the bar, amber light, mechanical prosthetic arm on
  counter, watchful presence
- Dr Yava Chen: reading glasses, hands clasped, laboratory setting,
  analytical intensity with unsettling quality
- Scratch: young woman, glowing amber cybernetic eye, rainy dystopian
  cityscape, street fighter stance

Assets:
- Embedded as base64 JPEG data URIs in app (280x373, 14-25 KB each)
- Full-resolution versions in scenarios/art/event-91/npc-*.jpg (600px wide)
- All artwork generated with Midjourney per art direction in scenario doc

App now 225 KB total, fully self-contained.
2026-05-14 14:56:55 +00:00
timevans666 19e67919a5 Event 91 Night Crawler: NPC portraits added to app and art assets
- 5 ink sketch portrait SVGs embedded directly in app (no external files)
  - Sable Morn: silver hair, eyes looking past viewer, cyan jaw comms ridge
  - Damos Reth: sunken eyes, stubble, filament tracery on hands
  - Jed Osler: broad shoulders, chunky hydraulic prosthetic arm
  - Dr Yava Chen: reading glasses, filament bg, faint cyan iris tint
  - Scratch: amber optical replacement eye, reflex tap wrist interface
- Portrait CSS added to app: npc-portrait + npc-card-inner layout
- buildNPCs() updated to render portrait in card header
- Standalone art asset: scenarios/art/event-91/npc-portrait-gallery.svg
  per 91-ART-07 in artwork assets table
- App now 100KB, fully self-contained, no internet required
2026-05-14 14:28:35 +00:00
timevans666 188e0b0893 Event 91 Night Crawler: standalone GM companion app (HTML)
Single-file GM app per app-template spec. All data embedded, no internet required.

Screens:
- Home: session dashboard, timer, checkpoint table, player roster
- Acts: tabbed panels (Intro / Act I / Act II / Act III / Epilogue) with all
  locations, key mechanics, pacing notes, moral choice breakdown
- NPCs: all 7 NPCs with physical description, motivation, what they know,
  stat blocks, disposition colour coding (friendly/neutral/hostile/compromised)
- Clues: tap-to-cycle tracker (none/found/missed) for all 7 essential + 6
  optional clues, with fallback triggers
- Handouts: all 5 handouts with fullscreen player-facing display mode;
  styled per type (normal / handwritten / terminal)
- Players: HP/SAN/PP tracker with +/- controls and status tags for all 6 PCs
- Reference: SAN table, skill rolls, BRP quick-reference, entity mechanics

Features:
- Live session timer with hard deadline alerts at 2:15 and 3:05
- Progress bar with act labels
- SAN quick-reference modal from any screen
- LocalStorage persistence for PC stats and clue tracking
- Dark noir theme: black bg, cyan/amber neon accents
- Touch-optimised, 48px tap targets, one-hand operable
2026-05-14 13:53:11 +00:00