Found reviewing #50.
The fix sets a:visited { color: var(--accent) }, which is the same colour a already declares. That is what makes a visited link readable on the dark theme, and it also removes the only signal that a link has been followed. Nothing else carries it: the neon underline grows on hover, not on visit, and no other property varies by state.
This matters most on /publications/ and /resources/, which are long lists of outbound links that a reader works through over several visits.
Options: give visited links a distinct but still readable tone, for example color-mix(in oklab, var(--accent) 70%, var(--muted)), checked against both themes with the palette validator; or accept the loss and close this, since a single-accent palette has little room for a second link colour that stays above 4.5:1 on both surfaces.
Also noted while reading: .site-footer a:visited at assets/custom.css:566 sets the same var(--accent) the new global rule now sets, so it is redundant and can go whichever way this is decided.
🤖 Generated with Claude Code
https://claude.ai/code/session_01BXHrBTSU8fU4Zg7HfaMKs9
Found reviewing #50.
The fix sets
a:visited { color: var(--accent) }, which is the same colouraalready declares. That is what makes a visited link readable on the dark theme, and it also removes the only signal that a link has been followed. Nothing else carries it: the neon underline grows on hover, not on visit, and no other property varies by state.This matters most on
/publications/and/resources/, which are long lists of outbound links that a reader works through over several visits.Options: give visited links a distinct but still readable tone, for example
color-mix(in oklab, var(--accent) 70%, var(--muted)), checked against both themes with the palette validator; or accept the loss and close this, since a single-accent palette has little room for a second link colour that stays above 4.5:1 on both surfaces.Also noted while reading:
.site-footer a:visitedatassets/custom.css:566sets the samevar(--accent)the new global rule now sets, so it is redundant and can go whichever way this is decided.🤖 Generated with Claude Code
https://claude.ai/code/session_01BXHrBTSU8fU4Zg7HfaMKs9