The About page numbers do not animate smoothly from 0 to their final values (the requested 0-to-100% progression).
js/about-numbers.js.node --check js/about-numbers.js passes.jekyll build --trace passes.Math.floor(...), so the browser could only display integer steps. The shortest counter (6+) had very few visible states, which explained the perceived jumpiness.The root cause was integer-only rendering via Math.floor(...); the shortest counter had too few visible states to look smooth. The counter now keeps every visible value as an integer using Math.round(...), while the eased requestAnimationFrame timeline provides the smoothest possible transitions between whole-number states. It starts at zero before the section enters view, restores the exact target on the final frame, triggers once when any part of the numbers section enters the viewport, and gives reduced-motion users the final values immediately.
.blog-entry.signal-row:hover and :focus-within rule in css/style.css originally set background: rgba(255, 51, 75, 0.08) !important, which made the grid-backed #fh5co-main / .fh5co-narrow-content visible through hovered Blog and Stuff rows.blog.html entries and stuff.html entries, matching the reported scope.The translucent hover background was replaced with opaque var(--surface-crimson-hover) (#241417), preserving the original red highlight while preventing the page grid/background from showing through Blog and Stuff entries. git diff --check and bundle exec jekyll build --trace both pass.
</div> was restored after the Deezer card, making Deezer and Last.fm sibling columns in the Music Platforms row.git diff --check and bundle exec jekyll build --trace pass.The layout regression was caused by malformed HTML nesting from the original insertion, not by the Last.fm URL or CSS. The Last.fm card now has the same outer column structure as the other platform cards.
On the About page, the final o in the large Umberto heading appears slightly cropped at its right edge. The expected result is that the complete glyph remains visible without changing the heading’s intended visual scale or layout.
After adding padding-inline-end: 0.04em to .name-reveal, the crop was reduced but remained visible. The initial allowance was therefore insufficient to clear the glyph’s ink from the wrapper’s clipping edge.
max-width or the inline-grid name-reveal wrapper may clip the final glyph..name-reveal clips animated vertical content, horizontal clipping may be the wrong mechanism; a directional overflow rule may preserve the animation while allowing the final glyph to render fully.Umberto in .name-reveal, and that wrapper now uses a directional clip-path to contain the animated default/alias text vertically without clipping the right edge.letter-spacing: -0.09em; together with the inline-grid wrapper, the final glyph’s right-side ink can extend beyond the clipping edge..name-reveal.padding-inline-end: 0.04em adjustment reduced but did not eliminate the crop, confirming that padding alone was too fragile for the wrapper’s four-sided overflow clip.git diff --check and bundle exec jekyll build --trace both pass after the directional clip fix.Replaced the wrapper’s four-sided overflow: hidden with clip-path: inset(0 -0.15em 0 0). The top and bottom edges still contain the vertical name-reveal animation, while the negative right inset expands the horizontal paint area so the final glyph cannot be cut off.