diff --git a/frontend/src/index.css b/frontend/src/index.css index 4f69c0c5..21d79e7f 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -288,7 +288,11 @@ html[data-theme="light"] { } html { - font-size: calc(16px * var(--font-scale)); + /* Snap the scaled root font-size to a whole pixel. The base is rem-derived app-wide, so a fractional + root (e.g. 16px * 1.02 = 16.32px) makes every box height fractional — and when a reflow changes a + section's row count, the sub-pixel remainder shifts everything below it by ~0.5px, a visible 1px + jitter at DPR=1. round() keeps the font-scale feature but quantises to crisp integer metrics. */ + font-size: round(calc(16px * var(--font-scale)), 1px); background: var(--bg); }