`document.fonts.ready` resolved before the 4MB Material Symbols woff2 even started loading — it runs in <head>, ahead of any element that would trigger the lazy fetch. The `fonts-loaded` class landed early, so icons rendered blank until a second load served the font from disk cache. Load the face explicitly and swap visibility for opacity, with a 3s fallback so icons never stay hidden if the font fails. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>