v0.27 — PHASES 2-5: EVENTS, MARKET, ECONOMY
New: Persistent multi-stage event threads — Rival Takeover, Cop Shadow, VIP Contact (3 stages each, ~2-3 days apart).
New: Dynamic market cycles — droughts (price x2-3.2) and floods (price x0.3-0.55) per drug, 3-5 day duration.
New: Loan shark escalation — Day 5 penalty, Day 8 collector takes 30% cash + HEAT, Day 10 death (unchanged).
New: Reputation consequences — REP 80+/150+/200+ milestones increase heat gain and police attention.
New: Price history sparklines — mini trend graph per drug in the market table (last 5 prices).
New: Quick-sell [ALL] button — instant sell of full held quantity without opening the trade modal.
New: Hideout pusher income balancing — $150k/day earnings cap, saturation penalty above 80/150 units.
New: Location event density weighting — under-visited locations get up to +60% unique event chance.
v0.26b — FONT SCALE FIX
Fix: Text Size controls now work correctly — uses CSS zoom (Chrome/Edge/Safari) with transform:scale fallback (Firefox).
Fix: Default fontScale=1.0 restored; corrupted/out-of-range settings auto-corrected on load.
New: [ RESET ALL SETTINGS ] button in Options resets everything to defaults.
New: Settings validation on load prevents corrupted scale values from breaking layout.
v0.26 — OPTIONS MENU / UI SETTINGS
Changed: Font sizes reverted to original proportions (v025 +2px bump removed).
New: OPTIONS button replaces SAVE in topbar. SAVE moved inside Options menu.
New: Text Size controls — A- / A+ / Reset (60%–180% range, persists in localStorage).
New: UI Scale controls – / + / Fit to Screen / Reset (50%–150%, transforms game viewport).
New: Resolution presets — Compact (1280×720), Standard (1920×1080), Large (2560×1440).
New: Animations toggle — disable all transitions/animations for performance.
New: Compact Market toggle — hides VS AVG and trend columns for cleaner table.
New: Log Lines control — set 5–50 max visible activity log lines.
New: All UI settings persist between sessions via localStorage.
v0.25 — READABILITY + TRAVEL POLISH
Changed: All font sizes increased +2px across the entire UI for improved readability.
Changed: Travel buttons now show location name left-aligned and cost right-aligned on one line.
Changed: Travel grid changed to 4-column layout for balanced compact display.
v0.24 — UI POLISH PASS
Fix: Hidden drugs now have a working [+] restore button — always visible and clickable.
Fix: HIGH/LOW market labels no longer clip — VS AVG column has enforced min-width.
Fix: hiddenDrugs Set now serializes/deserializes correctly in save/load.
New: Log entries animate in (slide + fade).
New: Panel toggles give brief border-flash feedback.
New: Market rows animate in when restored from hidden state.
New: Music panel open/close uses double-rAF for reliable CSS transition.
Polish: All collapsible panels use unified 350ms transition timing.
Polish: Hidden drug rows dim to 45% opacity, brighten on hover; restore btn stays full opacity.
Polish: Mini heat pips sized correctly for compact header display.
Polish: Travel buttons have :active scale feedback. Modal scrollbars unified.
New: Collapsible panels — Location, Activity, Heat/Rep, Stash, Market, Travel all collapse individually.
New: Heat mini-bar always visible even when Heat/Rep panel is collapsed.
New: Drug hide/show buttons in market — collapse individual rows to reduce clutter.
New: Music player replaced with floating FAB button (bottom-right) + expandable panel.
New: News ticker is collapsible into a thin strip.
New: Travel grid redesigned — 8-column compact layout, all locations fit one row.
Changed: Player name truncated to 8 chars in topbar to prevent layout break.
Changed: Topbar stats use fixed-width columns, never wrap or shift.
Changed: Action buttons in location panel are shorter labels (BANK, MAX, NUTBAR, etc.).
v0.23s — STABILIZATION PASS
Fix: Duplicate volatile weekend price spike removed (was ×1.44, now correct ×1.20).
Fix: Hideout robbery reduction now correctly multiplicative (-25% per hire, was flat -0.02).
Fix: Old saves missing new drug keys now auto-migrate via ensureHideoutDrugKeys().
Fix: window._hcost/_rcost global leakage replaced with G-scoped state.
Fix: Removed stale BETA/PLANNED text from title screen.
Fix: startGame log updated to v0.23.
Cleanup: Removed dead CSS (.action-btn-col, .rep-bar, .items-row, .btn-lime, .item-badge).
Cleanup: Defensive null guards in pusher sales and hideout stash access.
v0.23 — EVENT THROTTLING / NEW DRUGS / CAREER PAGE / REP TITLES
New: Event repetition throttling — recently fired events are suppressed to avoid repetition.
New: 4 new drugs: CLOVE (volatile weed), CHROMA (volatile shine), FLYTE (volatile lucy), JAFFA (stable classic).
New: Career page — browser-based run history, sorted by score with date/time.
New: Rep titles extended to Level 420. ★ THE GOAT ★ is the final title.
New: Rep title now always shown on the game-over card.
Fixed: High school ex event no longer names the ex with an NPC name.
Changed: Hideout tier rep requirements spaced out (10/30/60/90/130/175/230/300).
Changed: Mansion renamed to Mio's Mansion.
New: Rent payment section in hideout modal.
Changed: Hideout flavor text updated (removed mattress/lightbulb lines).
v0.22 — HIDEOUT SYSTEM
New: Full HIDEOUT system. Unlocks at REP 10. 8 upgrade tiers (Dark Alleyway → Mansion).
New: Stash drugs at hideout, withdraw up to your stash cap.
New: WAIT action at hideout — spends 1 day, cools HEAT 1-3, resets moves.
New: RENT system — accrues daily, deducted from final score.
New: PUSHERS — Stefan, B-Rad, Wally sell from hideout stash passively each day.
New: SECURITY — Toby (dog) and Ruby King reduce robbery chance.
New: Hideout robbery events — 8% daily base chance when stash is non-empty.
New: PUSHER EARNINGS — collected at hideout with 10% dealer cut.
New: Score bonus — +10% per hideout level (max +80% at Level 8).
New: Hideout greyed/locked in travel grid until REP Level 10.
v0.21 — VEHICLE DISPLAY / ITEMS INLINE / HONDA COST / TIPS PASS / WASHY+BISCUIT FLAVOR
New: Current vehicle shown in stash panel with bonus moves label.
New: Items inline in stash panel as an expandable button section.
Changed: Mio's Honda repair cost 3x (was $250-850, now $750-2550).
Changed: Tips and mouse whispers updated for accuracy (rep unlocks, vehicle moves, etc.).
Changed: More flavor variety for Washy poetry/advice/romance, Biscuit reactions.
Changed: Patch notes renamed to v0.xx format.
v0.20 — NEW TITLES / NEW EVENTS / BALANCE
New: 11 new rep titles (250-340), final title shifted to 350.
New: Positive events — Recognized by Old Ravers, Busker Performance, BrayCo Envelope.
New: Negative events — Teenagers Mock Your Outfit, Rival Dealer Rumors, Officer Dill Returns.
New: Neutral events — Bus Stop Stranger, Off-Duty Compliment, High School Ex, Hot Dog Chris.
New: Graveyard events — The Gnomes, Bad Energy.
Changed: Random bag upgrade now +5 stash (was +20), rarer weight.
v0.19 — 4-COL HUD / FIXED TRAVEL / AUTOSAVE / ITEMS MODAL
New: 4-column top row: Location+Actions | Activity | Heat+Rep | Stash.
New: Heat and Rep moved to own labeled panel (3rd column).
New: Travel grid positions fixed — current location shows [HERE], buttons never shuffle.
New: Autosave on every travel (silent, no popup).
New: Items shown as compact clickable button — opens modal with full effect descriptions.
New: HELP and QUIT buttons moved to topbar next to SAVE.
New: Actions embedded inside Location panel.
v0.18 — BANK SAFETY / LAYOUT / HIDEOUT / UI POLISH
New: Bank is now FULLY protected. Muggings, police fines, and debt collectors can only take cash-on-hand. Bank your money.
New: Bank access restricted to locations with no shops: Roosevelt, U Street, Dupont, Georgetown, Foggy Bottom, Navy Yard.
Changed: Activity log moved to split row alongside location box (above street market, left of stash column).
Changed: Hideout market shows ??? prices instead of a banner.
Changed: Travel section separator removed. MAP button larger with slow pulsing glow.
Changed: HOW TO PLAY fully rewritten and simplified.
v0.17 — SCORE REBALANCE / PRICE CAPS / DEATH CARD
Rep bonus reduced (÷150). Hard per-drug price caps. Night Club demand reduced. Spike probability cut 18%→10%.
Death now routes to end-game card with -50% score penalty. Rep title shown on end card.
v0.16 — POLICE REWORK / HEAT CAP 100
HEAT_MAX=100. Police tiered: minor/stop/raid/lethal. Lethal heat risks jail/death. Weapon upgrade logic.
v0.15 — SURGE REMOVAL / BALANCE
Surge system removed. CLR button in trade modal. Trade rep applies buy and sell.
v0.14 and earlier
Biscuit, Washy, vehicle overhaul, save system, pawn buyback, rep system, scoring, locations.