Embers & Scanlines
Grading a static landing page until it feels like the moment before the horde hits the wall.
A landing page out of the box looks like a brochure. Clean, lit, confident. None of those are words I want anywhere near this project. The site is supposed to be a transmission from a dead planet, and dead planets do not have good color balance.
So I spent the day building the grade. Not the game's grade — the website's. The thing that hits your eyes before you've read a single word of copy.
Started with the color. Everything gets pushed into an amber-and-teal split: warm sodium-light orange in the highlights, sick cyan in the shadows. It reads as toxic without being literal about it. The frozen are sleeping under that light. I keep it in a CSS filter layer and one full-bleed gradient overlay set to multiply, so the whole page sits under it like smoke under a ceiling.
Then the texture passes. A tileable film-grain PNG at low opacity, animated with a few stepped background-position frames so it crawls instead of sitting dead. A vignette, heavy in the corners, to pull your eye to the countdown and keep the edges feeling like something is closing in. And scanlines — a repeating linear-gradient, one-pixel dark bands, barely there. Up close it's an artifact. From a couch it's a CRT in a bunker that still, somehow, has power.
Making it breathe
Static is the enemy. A held image reads as a screenshot; I needed it to read as a held breath. Two things did the work. A slow Ken-Burns push on the hero — a fifty-second scale-and-drift transform, so subtle you don't catch it moving, you just feel the room tightening. And the embers.
The embers are a canvas sitting above the hero: a few hundred particles, each a dim orange dot drifting up and sideways on a little sine wobble, fading as they rise. Cheap to run, throttled when the tab loses focus so I'm not cooking anyone's battery to show them ash. But that's the piece that sells it. Once specks of fire are drifting up past the Starship, the page stops being a page. It becomes a window onto somewhere it's always slightly too late.
None of this is load-bearing engineering. No physics, no backend, no Draco budget to fight. It's mood — twenty opacity values and an easing curve, tuned until the whole thing feels cold. But mood is the first promise the site makes, and a broken promise on the hero means nobody scrolls down to the part where I ask them to sign up and be counted.
The horde isn't in any of these shaders. It doesn't need to be. You're supposed to feel it in the corners, in the flicker, in the way the light's gone wrong. Worked late getting the ember count right. It's snowing fire on the homepage now, and it looks exactly like the end of the world should: quiet, warm, and absolutely not okay.
Grade locked. Embers drifting. The page holds its breath. — A.