Wenn Du die nirgendwoanders brauchst, ist der globale Ansatz der falsche.
Das ist wie mit:
if (fadebrightness > brightness) fadebrightness = brightness; // Zwischenspeicher zum Helligkeitsfaden auf maximale Helligkeit begrenzen
Allein die Zeile aus dem loop raus und in fadeinout rein, macht - auf den Code von oben - 7060
Und so kommt ein byte auf das nächste. Nur mit den kleinen Änderungen waren es bisher 34 bytes...