diff --git a/.github/maintainer/MAINTAINER.md b/.github/maintainer/MAINTAINER.md
index 6c02dcbe..3d4056ba 100644
--- a/.github/maintainer/MAINTAINER.md
+++ b/.github/maintainer/MAINTAINER.md
@@ -1,7 +1,7 @@
# How CleanYourTV PRs are reviewed
CleanYourTV (Gathin23/cleanyourtv) is a prompt plus tools that debloat Android TV / Google TV / Fire TV over
-ADB and a tiny native launcher (`launcher/`, plain Java, ~477 KB, for 1 GB TVs). Contributors mostly add
+ADB and a tiny native launcher (`launcher/`, plain Java, ~497 KB, for 1 GB TVs). Contributors mostly add
tested TV lists under `examples//`, translations, docs, small launcher options, themes, add-ons and tools.
## The policy: a small core plus a well-indexed hub
diff --git a/README.md b/README.md
index 7c812dc5..6332bb94 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
-
+
**The viral tweet:** [x.com/gathint/status/2111379569030939102](https://x.com/gathint/status/2111379569030939102)
@@ -426,7 +426,7 @@ tools/theme.sh themes/aurora # push a theme; --r
| [`tools/flamechart.py`](tools/flamechart.py) | Draws a before/after flame chart from those traces, for a pull request: one lane per thread on a shared time scale, the work a change targets in magenta with its total. Optional, like the trace tools. [Guide](tools/flamechart.md). |
| [`tools/screendiff.py`](tools/screendiff.py) | Compares a before and an after screenshot pixel by pixel, leaving out the clock or anything you mask, and writes the pair with your Wi-Fi name blurred. Optional, like the trace tools. [Guide](tools/screendiff.md). |
| [`tools/race_calendar.py`](tools/race_calendar.py) | Writes this season's F1 calendar into a theme for race-weekend mode, from the free Jolpica API. |
-| [`launcher/build-and-install.sh`](launcher/build-and-install.sh) | Builds a shrunk release (about 477 KB), installs it, switches Home, and rolls back if Home does not land on it. |
+| [`launcher/build-and-install.sh`](launcher/build-and-install.sh) | Builds a shrunk release (about 497 KB), installs it, switches Home, and rolls back if Home does not land on it. |
The scripts never leave the TV without a Home app: they only disable a stock launcher they recognise,
and skip the Home app in a list until another launcher answers HOME. Details below.
@@ -498,7 +498,7 @@ apps), which is why the report names that loss per package instead of calling it
## The launcher
-A small native home screen for Android TV: **about 477 KB**, plain Java, built for TVs with 1 GB of RAM.
+A small native home screen for Android TV: **about 497 KB**, plain Java, built for TVs with 1 GB of RAM.
No blur, no video, no network permission, no background services.
The **TV** needs Android 8.0 (API 26) or newer: `minSdk` is a compile-time floor in
diff --git a/docs/card.jpg b/docs/card.jpg
index dff9d427..bdaa549c 100644
Binary files a/docs/card.jpg and b/docs/card.jpg differ
diff --git a/docs/stats.png b/docs/stats.png
index b0d94a9f..84745032 100644
Binary files a/docs/stats.png and b/docs/stats.png differ
diff --git a/tools/readme_stats.py b/tools/readme_stats.py
index 94352c5d..7b236474 100644
--- a/tools/readme_stats.py
+++ b/tools/readme_stats.py
@@ -12,7 +12,7 @@ except ImportError:
sys.exit("readme_stats.py needs Pillow: tools/venv/bin/pip install -r tools/requirements-perf.txt")
FONT, OUT = sys.argv[1], sys.argv[2]
-STATS = [("260", "TV MODELS"), ("77", "BRANDS"), ("25", "LANGUAGES"), ("477 KB", "LAUNCHER")]
+STATS = [("260", "TV MODELS"), ("77", "BRANDS"), ("25", "LANGUAGES"), ("497 KB", "LAUNCHER")]
W, H = 1600, 240
img = Image.new("RGB", (W, H), "#15181e"); d = ImageDraw.Draw(img)
def f(size, wt):