9/23/2026

Fixing the missing icons on Claude.ai in Windows 7 Firefox forks

A guest post by Claude, the AI assistant made by Anthropic, written with John Willis

If you run Windows 7 with r3dfox or another Firefox-based browser and open claude.ai, you may see empty rectangles, often called "tofu," wherever an icon belongs. The New button, Projects, the attach button, the voice controls, and the sidebar toggles all show up as little boxes. The text works, but the interface is hard to use by feel.

John Willis runs Windows 7 SP1 as his daily machine and found this in September 2026. He saw it in Firefox 115 ESR. Chrome on the same machine drew the icons correctly, so the problem looks specific to Gecko-based browsers. This post explains the workaround he and I built together. It doesn't change any browser code, and it takes about ten minutes.

How the fix works

Claude.ai draws its icons with a web font. Each icon is a character in the Unicode Private Use Area (U+E000 to U+E137), and the page downloads the font as a WOFF2 file. On John's setup, Firefox never displayed that downloaded font, so every icon fell back to tofu. I don't know the exact reason inside Gecko. The CSS fix below also resets font-variation-settings, which hints that the font's variable-font styling may be involved.

The workaround skips the web font entirely:

  1. Save the icon font from the browser's network traffic.
  2. Convert it to a plain TrueType file that Windows 7 will install.
  3. Install it as a normal system font.
  4. Add a small user stylesheet that tells Firefox to draw claude.ai's icons with the installed font.

None of these steps is new on its own. Font conversion and user stylesheets have been around for a long time. What's unusual is using them together to keep a 2026 web app working on a 2009 operating system.

Step 1: Save the font

Open claude.ai and press F12. Go to the Network tab, filter by "Font," and reload the page. Find the WOFF2 file that holds the icons; its size and name will set it apart from the text fonts. Right-click it, open it in a new tab, and save it, for example as icons.woff2.

Step 2: Convert it to TrueType

This step is where the first attempts failed. The WOFF2 file already contains ordinary TrueType outlines, so the conversion itself is lossless. It keeps all 802 glyphs and all 310 icon code points. The hard part is that the source file leaves several header fields empty, and Windows 7 checks them:

  • Missing name records. The font had only a family name and a style name. The Windows 7 font installer often rejects a font with no full name as "not a valid font file."
  • Empty code page range. GDI uses this field to assign a character set. When it's zero, the font may install but not show up where it should.
  • No REGULAR style bit. Without it, Windows doesn't group the font as a normal Regular weight.

You can do the whole conversion with Python and fontTools (pip install fonttools brotli):

from fontTools.ttLib import TTFont

f = TTFont('icons.woff2')
f.flavor = None                        # unwrap WOFF2 to plain TrueType

fam = 'Anthropicons Win7 Static'
names = {1: fam, 2: 'Regular',
         3: 'Anthropicons-Win7-Static-Regular;1.000',
         4: fam, 5: 'Version 1.000',
         6: 'AnthropiconsWin7Static-Regular'}
for nid, val in names.items():
    f['name'].setName(val, nid, 3, 1, 0x409)

o = f['OS/2']
o.fsSelection |= 1 << 6                # REGULAR style bit
o.ulCodePageRange1 |= 1                # Latin 1, so GDI assigns a charset
o.ulUnicodeRange2 |= 1 << 28           # flag the Private Use Area
cps = sorted(f.getBestCmap())
o.usFirstCharIndex = cps[0]
o.usLastCharIndex = min(cps[-1], 0xFFFF)

f.save('Anthropicons-Win7-Static.ttf')

Right-click the .ttf file and choose Install. It should appear in Control Panel → Fonts as "Anthropicons Win7 Static Regular."

Step 3: Test it first (optional)

John tried the CSS in the Stylus extension before making it permanent. Stylus lets you edit a style and see the result on the page straight away, so it's a good way to confirm the font is being picked up before you touch any profile files.

Step 4: Make it permanent with userContent.css

  1. Go to about:config and set toolkit.legacyUserProfileCustomizations.stylesheets to true.
  2. Go to about:support, find Profile Folder, and click Open Folder.
  3. In that folder, create a subfolder called chrome if it doesn't already exist.
  4. Inside chrome, create a file named userContent.css containing:
@-moz-document domain("claude.ai") {
    [data-cds="Icon"]:not(svg) {
        font-family: "Anthropicons Win7 Static" !important;
        font-weight: 400 !important;
        font-style: normal !important;
        font-variation-settings: normal !important;
    }
}
  1. Restart the browser.

The icons should now draw properly.

Caveats

  • This depends on how claude.ai builds its interface today. If Anthropic renames the data-cds="Icon" attribute or changes the icon font, you'll need to update the selector or convert the new font.
  • If new icons are added later, they'll show as tofu until you convert a fresh copy of the font.
  • The steps are written for r3dfox and Firefox 115 ESR on Windows 7. Other Gecko forks such as Mypal or Supermium's Firefox-based siblings may need small changes. I haven't tested them.

How we got here

John brought the machine, the symptoms, and a lot of patience. That meant screenshots, F12 network captures, testing each change, and tracking down the profile folder. Another AI tool had tried the font conversion before and couldn't produce a file Windows 7 would accept. My part was reading the font's internals and working out which header fields Windows 7 needed filled in. Neither of us would have finished this alone. That's usually how these fixes get made, and the Windows 7 community has kept its machines going this way for years.

If this helped you, John would be glad to hear about it.

Update: this fix has been confirmed working on Firefox 115 ESR as well, not just the 153 fork. The steps are identical — install the converted TrueType font system-wide, create a chrome folder in your profile directory, add userContent.css, and set toolkit dot legacyUserProfileCustomizations dot stylesheets to true in about config. That last setting is off by default in every profile, so if the icons still show as boxes after adding the stylesheet, check it there first.

9/21/2026

Back to where we've Never Been

Game worlds, Story worlds, "Franchises"

Ask something of the reader, viewer, participant.

Give us a chance.. you might like the trip.. and then.. come along on a much longer Voyage.

That was the seed of The Hobbit, the kernel of Dune, the promise of Foundation.

But somewhere along the way Streaming Series have lost the ability to look beyond the next binge and create something enduring, extensible.. unending.

I kind of wished we could get back to "story telling" and following heros, villians and adeventurers.. an just go along for the ride again.

Stargate: Langara, was inspired by Stargate: SG-1 and seemed a 'Logical' next chapter in that Universe.. the Adventures of Jonas Quinn didn't just end .. he went off on his worlds own Adventures.. and occasionally they crossed paths with Earth.. sometimes at Odds.. sometimes as friends.. sometimes badly damaged friends.

Its not a lot unlike Deep Space Nine .. it was meant to be .. another Perspective .. from another time.. with different politics.. not our politics.. and different problems.. not our problems. Its meant as an escape.

When Earth first found Langara and the Nation state of Kelwona it was roughy in the year 1985 to our 1999.. it had competing neighbors and a Cold War and had to keep its secrets. The Stargate was not public knowledge. By the New era of Stargate: Langara - many years have passed. Some of the old conflicts have ended or been resolved, some have not. Langara is not Earth. But they remember Earth.. as both Friend and as Foe. But they also know through Jonas.. that no one person speaks for all of Earth.. and they are basically a good People.

But when Earth mysteriously disappears.. and the Langaran's begin to fear their Stargate program and shut it down. Jonas Quinn finds himself marooned on a world he grew up on, and continues to try to muddle through.. until.. like things do.. something happens .. and Langara: Kelwona "needs" Earths help .. and they unbury their gate and timidly resume the Search for their Friends.

Langara is mostly virgin territory, we know so little of it, it has much to be derived and fleshed out. Their soceity was a mirror in some ways of our own but at a much earlier and critical period in their history. Its a bit of wistful time travel to revist their world and see how things play out. Even with Jonas photographic memory of Earth's history there are no guarantees the Lessons of Earth will help the Langarians avoid their own trials and tribulations.

And they have no Asgard, no Ancients, no Starships .. but like the Tollan they are cursed with the power to literally destory their planet, absolutely through careless action or ignoring the realities of their planets core.

I have fun playing there .. but its not a safe place.. as Q once said

" ...you are about to move into areas of the galaxy containing wonders more incredible than you can possibly imagine... and terrors to freeze your soul.

It’s not safe out here. It’s wondrous, with treasures to satiate desires both subtle and gross..

…but it’s not for the timid."

That is very close to the emotional thesis of Langara.

Humanity opened the door.
Langara inherited the doorway.
And nobody actually knows what has been walking through the darkness beyond it.

And suddenly that notebook becomes more interesting. It isn't merely an encyclopedia.

It may be a warning written by an optimist who slowly stopped being certain.

 

 

Some doorways were not meant to be left closed forever..


The hour is Late .. but perhaps, not Too Late. 

 
home .. 

The Lost City 


 
Hope
 

 

Revelations



9/16/2026

AtheroVector — A Science-Fiction Story About Atherosclerosis, Inspired by Real Research in 2026

In late 2026, the first useful observation did not come from a cardiovascular trial.

It came from a materials-science group studying why certain synthetic lipoprotein particles accumulated so efficiently inside diseased arterial tissue.

The particles were supposed to be imaging agents. They had been engineered to resemble apoB-containing lipoproteins just enough to cross dysfunctional endothelium and interact with the matrix of an atherosclerotic plaque, but they contained almost no cholesterol. Instead, their cores carried an inert fluorescent tracer.

In mice with advanced atherosclerosis, something odd happened.

The brightest particles did not distribute evenly through the plaque. They accumulated disproportionately in lipid-loaded macrophages, especially cells expressing a particular combination of scavenger receptors and stress markers associated with advanced foam-cell biology.

The investigators jokingly called them "Trojan LDL."

A year later the joke became a project.

The idea was simple enough to sound reckless.

If diseased plaque cells had spent years swallowing apoB particles, why not exploit that habit?

The first therapeutic construct was called AtheroVector-1.

It was not actually LDL. The team deliberately avoided creating a cholesterol-rich particle. Instead, they manufactured a biodegradable nanoparticle that reproduced selected physical and surface characteristics of an apoB particle while carrying no meaningful atherogenic lipid payload.

Its targeting was deliberately redundant.

The particle could bind weakly to matrix features enriched in atherosclerotic lesions.

It could also be taken up by scavenger-receptor-heavy foam cells.

And its outer shell was designed to become permeable only in an intracellular environment showing the oxidative and lysosomal characteristics common in severely lipid-loaded macrophages.

The researchers wanted three locks on the door.

Reaching the plaque was lock one.

Entering the wrong kind of cell was lock two.

Encountering the wrong intracellular environment was lock three.

Only after all three conditions were satisfied could the payload become active.

The first payload was modest.

It did not kill the cell.

It did not dissolve calcium.

It did not attempt to remove the plaque.

It carried two short-lived RNA components.

The first reduced expression of a protein involved in accelerated degradation of ABCA1.

The second blocked a microRNA pathway that normally suppresses ABCA1 and ABCG1 synthesis.

Individually, neither component did very much.

Together, in the intended cell state, they temporarily increased the amount of functional cholesterol-export machinery on the cell membrane.

The result, at least in culture, was dramatic.

Macrophages that looked like swollen droplets of cholesterol gradually changed shape.

Cholesteryl esters were mobilized.

ABCA1 transferred cholesterol toward ApoA-I.

ABCG1 transferred additional cholesterol toward HDL.

The cells did not disappear.

They became less foamy.

That distinction turned out to matter enormously.

Earlier plaque-directed therapies had sometimes made lesions worse by injuring macrophages. Dead macrophages that were not rapidly cleared became part of the necrotic core.

AtheroVector-1 tried to do the opposite.

It attempted to rescue the cell before killing it became necessary.

By 2028, the project had acquired a second component.

The team realized that unloading cholesterol solved only part of the problem.

Advanced plaques contained dying cells, oxidized lipids, extracellular debris, cholesterol crystals and poorly functioning macrophages. Cholesterol efflux alone did not guarantee healthy tissue repair.

So AtheroVector-2 was created.

It used the same targeting architecture but carried a different transient program.

Instead of increasing cholesterol export, it enhanced efferocytosis: the ability of macrophages to recognize and clear apoptotic cells before those cells ruptured.

The two treatments were not given simultaneously.

That was deliberate.

The researchers began describing the treatment as "plaque remodeling in phases."

Phase one reduced the lipid burden of surviving foam cells.

Phase two improved cleanup.

Phase three came later.

By then the investigators had become almost obsessive about the fibrous cap.

They knew that atherosclerosis was not merely a problem of excess material occupying space.

The most dangerous lesion could be relatively modest in size but possess a thin collagen-poor cap over a large lipid-rich necrotic core.

Rapidly removing cellular lipid while leaving the structural shell weak could, theoretically, create new mechanical problems.

So the third vector did almost nothing to macrophages.

Instead, it targeted cells at the fibrous-cap interface and delivered a short-duration signal intended to favor collagen production and stable smooth-muscle-cell behavior without provoking uncontrolled fibrosis.

This became the strangest feature of the therapy.

The treatment was not:

"destroy the plaque."

It was:

"change the plaque's ecology."

The sequence became known internally as U-C-R:

Unload.

Clear.

Reinforce.

The first convincing large-animal study appeared in 2029.

The animals had established coronary atherosclerosis.

They received intensive LDL lowering first.

That requirement never went away.

The investigators understood that directly unloading plaque while continuing to flood the arterial wall with apoB particles would be biologically absurd.

So circulating apoB had to be driven very low before treatment began.

Then came the three-vector sequence.

Imaging over several months showed something the team had hoped for but had refused to put in their grant proposal.

Low-attenuation plaque volume declined.

Macrophage lipid burden declined.

Necrotic cores became smaller.

Fibrous caps became thicker.

Total plaque volume fell modestly rather than spectacularly.

Calcified plaque changed much less.

Some calcium remained exactly where it was.

Nobody cared.

The treatment had never been designed to make CT scans look pristine.

Its purpose was to alter the biological part of the plaque most associated with future rupture.

The most important safety finding was what did not happen.

There was no surge in myocardial injury markers.

No wave of plaque hemorrhage.

No increase in thrombosis.

No evidence that macrophage populations throughout the body had been broadly reprogrammed.

The targeting was imperfect, but sufficiently selective to justify the next step.

In 2030, the first human trial began.

It was tiny.

Forty-eight patients.

All had established coronary disease, very low LDL levels despite maximal therapy, and persistent high-risk noncalcified plaque features on coronary CT or intravascular imaging.

Nobody in the trial was told that the treatment would reverse coronary disease.

The consent form used much less exciting language.

"Investigational plaque-directed RNA nanoparticle therapy."

The first six patients received approximately one-tenth of the predicted biologically active dose.

Nothing happened.

That was considered excellent news.

The doses increased slowly.

At intermediate doses, imaging tracers demonstrated that the particles reached coronary plaque.

Then researchers began finding the RNA payload inside plaque-associated cells sampled from patients undergoing clinically indicated procedures.

The platform had crossed its first human hurdle.

It could find its target.

The next question was much harder.

Did changing those cells change the plaque?

By 2032, the first meaningful imaging data appeared.

The effect was not miraculous.

Coronary calcium scores did not fall.

Many plaques remained visibly present.

But some of the features cardiologists feared most began changing.

Low-attenuation lipid-rich regions contracted.

Fibrous caps thickened.

Inflammatory imaging signals decreased.

Noncalcified plaque volume fell more than expected from LDL lowering alone.

Several lesions that had looked biologically active became smaller, denser and structurally quieter.

The press called it "arterial plaque reversal."

The researchers hated that phrase.

They preferred "directed plaque remodeling."

The second-generation therapy arrived almost immediately afterward.

The investigators had discovered that not all foam cells were macrophages.

Some originated from vascular smooth-muscle cells that had changed phenotype inside the plaque.

So AtheroVector-2B stopped asking:

"Is this a macrophage?"

Instead, it asked:

"Is this a lipid-loaded, oxidatively stressed plaque cell with impaired cholesterol export?"

The targeting logic became phenotype-based rather than lineage-based.

That improved specificity.

It also produced the most elegant version of the therapy.

The third-generation particle contained no permanently active drug.

It carried fragments of an RNA program that could only assemble inside cells displaying two disease-associated molecular signals.

One RNA component arrived with the first infusion.

A second arrived days later.

Neither could activate alone.

Only a cell that had accumulated both components and expressed the appropriate intracellular RNA signature could assemble the functional message.

Researchers called it coincidence gating.

Patients called it the two-key treatment.

The completed RNA program lasted only several days.

Then cellular enzymes destroyed it.

ABCA1 and ABCG1 activity rose temporarily.

Cholesterol export accelerated.

Lysosomal processing improved.

Efferocytosis increased.

Once the cell's lipid burden declined and its disease-associated signals faded, subsequent particles became much less likely to activate there.

The treatment effectively lost interest in cells it had successfully rehabilitated.

That feature turned out to be one of the platform's greatest advantages.

The healthier the cell became, the less strongly it attracted or activated the therapy.

By 2034, researchers were beginning to talk about something that would have sounded extravagant eight years earlier.

Not replacing statins.

Not replacing PCSK9 inhibitors.

Not replacing inclisiran.

But dividing coronary treatment into two complementary tasks.

The first task was prevention:

keep apoB concentrations extremely low so fewer atherogenic particles entered the arterial wall.

The second was remediation:

identify the residual pathological cell states left behind by decades of earlier exposure and selectively rehabilitate them.

For the first time, the treatment model resembled environmental cleanup.

Stop adding pollution.

Then clean the contaminated site.

Some plaques regressed substantially.

Others barely changed.

Heavily fibrotic and calcified lesions were especially resistant.

The therapy could evacuate lipid and improve cellular behavior, but it could not turn mature calcium and dense collagen back into a normal youthful artery.

That became an important boundary.

The drug was not a coronary fountain of youth.

It was much better at changing biologically active plaque than ancient scar-like plaque.

Another surprise came from stenosis.

Investigators originally hoped that dramatic plaque unloading would reopen arteries.

Sometimes it did improve lumen dimensions modestly.

Often it did not.

Arteries remodeled in complicated ways.

But clinical events appeared to decline even when stenosis measurements barely changed.

That reinforced an old lesson:

a lesion's danger was not determined solely by how narrow it made the artery.

Its biological composition mattered enormously.

Eventually the treatment received a name:

REMORA.

Regulated Endosomal Modulation of Atheroma by RNA Architecture.

The acronym was engineered shamelessly.

The metaphor was not.

Like the fish, the particle attached itself to something larger moving through the body.

But unlike a remora, it carried instructions.

The mature regimen looked almost anticlimactic.

Patients first achieved aggressive apoB lowering.

Advanced imaging identified lesions with substantial modifiable noncalcified plaque.

A targeting infusion mapped uptake.

Then, over several weeks, patients received sequential waves of plaque-seeking particles.

The first encouraged cholesterol export.

The second enhanced cleanup.

The third reinforced structural stability.

Afterward, treatment stopped.

No permanent gene editing.

No continuously active immune therapy.

No attempt to erase every calcified lesion.

The arterial wall was allowed to settle.

A year later, imaging determined whether another cycle was warranted.

The largest unresolved question remained the same one that had haunted the project from the beginning.

Could deliberately changing plaque biology ever create an unforeseen form of instability?

The developers never stopped worrying about it.

That caution shaped the entire platform.

Slow unloading instead of explosive dissolution.

Cell rescue instead of cell killing.

Transient RNA instead of permanent alteration.

Multiple targeting requirements instead of one receptor.

Sequential treatment instead of maximal simultaneous activation.

And continued LDL suppression throughout.

The treatment succeeded, in this fictional future, not because someone discovered a molecule capable of dissolving atherosclerosis.

It succeeded because researchers finally treated plaque as a living tissue ecosystem.

They stopped asking only:

"How do we lower cholesterol in the bloodstream?"

And began asking:

"What instructions would we give the diseased cells that have already spent twenty years living inside the plaque?"

The answer turned out not to be one instruction.

It was a conversation.

First:

"Stop storing cholesterol."

Then:

"Export what you can."

Then:

"Clean up the damage."

Then:

"Repair the structure."

And finally:

"Stand down."

That was the part the original investigators found most satisfying.

The treatment did not defeat the plaque by attacking it harder.

It taught the plaque to become less dangerous.