## July 28, 2026 (All 101 remaining charms regenerated — bold-icon 古惑仔) - The 101 charm icons that predated the locked bold-icon style (the original generic batch + the muddy full-scene batch) are all regenerated in the house style: one centred subject, high contrast, readable at 26px. Every charm, consumable, voucher, pack, bane and hot zone now shares one visual language. ## July 13, 2026 (Title 歲 · tall tile faces · bamboo 6/7/8 · boss-card Close · UI glyph art) - TITLE FIX: the landing title's second character 歲 was mis-drawn (missing the 止 radical — read like 威). Replaced with the true DFKai-SB (kaiu.ttf) glyph rendered in the same red-with-black-outline style. Structurally correct by construction. - TILE FACES are now TALL (100×135 face area, was a 37px square): dots, bamboo, and the White Dragon all fill the tile's portrait aspect. - WHITE DRAGON 白板: frame pattern is now a tall rectangle matching the tile aspect (never a square). - BAMBOO 6/7/8 fixed to traditional stick arrangements: 6 = 3+3, 7 = 1/3/3, 8 = 4+4 (previously reused the dot grids: 2×3 / 1+2×3 / 2×4). - BOSS CARD from the cheat menu's boss list is a preview — its button now says "✖ Close 關閉" instead of the misleading "⚔ Fight 開戰" (real boss intros still say Fight). - NEW ART: WALL button (tile-wall icon), Dragon TAIL button (dragon-tail icon), and all 8 flower/season tile faces (梅蘭菊竹春夏秋冬) — emoji only as fallback. DRAW button bird now uses the sparrow art. ## July 13, 2026 (Flower reveal — duplicate flower fix) - FIX: at blind start you could see a flower already sitting on the board while "another one" animated toward it. Cause: when the opening hand had no valid start group, the anti-dead-hand redeal (_ensurePlayableHand) created tile divs AND laid the flowers out — then the dealer (init) unconditionally created a second div for every tile, orphaning the first set in the DOM. The orphaned flower stayed visibly parked at the flower row underneath its animated twin, and survived across blinds (init only removed meshMap-tracked divs). - _ensurePlayableHand is now data-only (no divs, no layout — the dealer builds all visuals), init() removes a stale div before creating a tile's new one, and blind start sweeps ALL .tile2d from the scene so no untracked orphan can ever persist. ## July 13, 2026 (Packs & everything else — emoji fully replaced with art) - All remaining emoji item-surfaces now render generated 古惑仔 art (emoji only as missing-file fallback): - Pack draft screen: pack chest icons + every item preview line; pack opening overlay (title, item cards, bane card, bane notice); Devil's Bargain confirm dialog. - Shop: booster-pack cards and the sell-a-charm cards. - Discard-a-charm picker, dice hot zones, Next Challenge stake card/button, and the ⓘ card-info popup (now shows the item's art large). - NEW ART (22 icons, house 古惑仔 bold-icon style): 7 pack chests (Copper Chest, Gilded Coffer, Treasure Trove, Bronze Vault, Silver Archive, Golden Hoard, Cursed Tomb), 9 banes (Blood Tax, Heavy Air, Dry Well, Cracked Tile, Short Table, Stuck, Fading, Rent Due, Loan Shark 大耳窿), 5 dice hot zones (Flower Garden, Dragon's Nest, Honour Vein, Cursed Stretch, Golden Seam), and the Wild Tile pack item. - Pack defs + the Wild Tile pack item gained ids (pack_, wild_tile) so the shared _icHTML image pipeline keys them. - Not converted (by design):