pub fn alpha_at(elapsed: f32) -> f32
The envelope: ramp in, hold, ramp out, then nothing. A pure function of elapsed seconds, which is what makes it identical at any refresh rate and testable without a device.