Accessibility in the here and now
Here Is What I Built Into This Thing
Here's the thing about accessibility: it isn't a checklist you staple to the bottom of a project and call done. It is a way of writing code that assumes the person on the other end of it is a full human being with a body that does its own thing; and those bodies may flinch at motion, or need higher contrast, or be navigating with a keyboard because a mouse stopped being an option somewhere along the way.
Life has a way of disabling us all.
Eventually
I spend my day job thinking about this for enterprise software in hospitals, clinics, systems that technically need to function for everyone but often only really function for a narrow band of everyone. So when I built this blog, the accessibility features weren't things I added. They were the first things I thought about. The things I built around.
Here's what that actually looks like.
Reduced Motion
prefers-reduced-motion is a CSS media query that checks whether someone has told their operating system they want less movement on screen. It's most relevant for people with vestibular disorders, migraines, seizure conditions, or simply a low tolerance for things that jump at them. That last category, I suspect, is larger than we talk about.
Every animation on this site respects it. The image effects calm to a glow. The breathing words go still. The various bits of haunted ambience I have buried in this CSS β more on those later β either reduce to a gentle fade or switch off entirely. The effect still exists. Just without the jitter.
This cost nothing and is the correct thing to do.
Dark Mode
There's a toggle in the nav. A real toggle β a labeled switch with a visible focus indicator β not a button that changes a classname and leaves the rest to chance.
The dark theme inverts the background and text tokens, reweights the accent to a slightly brighter magenta to maintain contrast, and strips box shadows down to transparent because they'd disappear against a dark background anyway. The transition is smooth. It doesn't flash. If your OS is already in dark mode, I haven't wired up prefers-color-scheme β the toggle is manual. That's intentional. Some people like managing modes per-site.
Focus Visibility
Every interactive element here β link, button, input, disclosure summary, social pill, theme toggle β has a focus-visible ring. Three pixels of accent color, soft halo behind it. It shows up when you're navigating by keyboard. It does not show up when you click with a mouse, because that's what focus-visible is for: keyboard users get the ring, mouse users don't get the visual noise.
The social links in the header lift slightly, gain a heavier border, and reveal a monospace network label beneath them. Hover and focus behave identically. You shouldn't be able to tell which one you're doing.
Font
The primary font stack prioritizes Atkinson Hyperlegible Next β a typeface built specifically for low-vision readers, where letterforms are distinct enough that 1, l, and I don't collapse into the same glyph in peripheral vision. It falls back cleanly through system fonts.
Headings use IBM Plex Sans Condensed or Arial Black as the fallback. Condensed, heavy, structurally distinct from body text so the hierarchy holds whether the custom font loads or not.
Structure and Contrast
The design is brutalist: 2β4px solid borders, hard offset box shadows, no rounded corners, high contrast throughout. There's a faint grid behind everything β 8% opacity at 22px β that gives spatial rhythm without competing with readable text.
Accessible contrast wasn't a constraint I worked around. It was the design.
Collapsible Sections
The blog supports native <details> / <summary> disclosure β no JavaScript, no hand-rolled ARIA. The browser's own disclosure mechanism. Screen readers and keyboard users get it for free. The marker animates on open, the shadow shifts to the accent color. Reduced motion handled.
That's the foundation. The part that has to work regardless of whether anyone notices it.
Now β the other part.
β οΈ Spoilers: the weird stuff I buried in this site
These are the easter eggs. I'm disclosing them here, in text, so that people who encounter them through screen readers or simply don't stumble on them the normal way can still know they exist. The accessible version of "there are secrets" is just: reading this paragraph.
None of them gate content. None of them are required to understand anything. They're for the people who poke at things.
Triple-Click Image Crackle
Any image wrapped in an .egg container reacts to three fast clicks. The image gets a brief energy discharge β scanlines, a chromatic glow, a flash β then returns to normal. Reduced motion users get a calm glow instead of the jitter. It doesn't reveal anything. It just behaves slightly haunted.
Breathing Words
Certain text has its letters wrapped in a breathing class. Hover the word and each character floats, letter-spacing opening and closing on a slow exhale. It's subtle until it isn't.
Phosphor Reveal
Some text is written in .phosphor β invisible at first, text color matching the background, slowly materializing as the theme transition completes. Like something rising to the surface. Switch themes quickly and you can catch it mid-rise.
The Witching Minute
There is a hidden element on certain pages β styled like a terminal readout, hidden by default, accessible only under specific conditions. What those conditions are is the part I'm not telling you here.
Sigils
On certain pages a tray of small images reveals itself in sequence. The sigils can also be purged β a shudder animation, then ash-and-dissolve. What triggers either is something you'd have to find yourself.
The ARG Modal
There's a modal. It has primary and secondary action buttons. It's styled to look like a system interrupt. This is all I'm going to say about it.
Mirror Mode
The most significant one. Somewhere on the site is a trigger that activates mirror mode. In it: the cursor becomes a crosshair; links develop chromatic aberration on hover; images gain a slow dimensional warp; the page itself breathes, expanding and contracting on a nine-second cycle with a deep accent-colored shadow growing and receding beneath the content.
Everything still works. Everything is still readable. It just feels wrong in a specific, deliberate way.
Reduced motion disables the mirror animations entirely. You can still enter the mode. It just won't make you sick. It'll make you feel watched instead.