https://i.imgur.com/FQQIt20.jpg
PLEASE NOTE: I made an error: The ATTiny IC pin 1 should be IC pin 6
Here you go. Using an ATTiny is enough, and very cheap. You'll need a step-up boost converter for the fans in case it isn't 5v rated but rather 12v or 9v. Make sure the power source is 5V (like a powerbank) otherwise you'll burn the chip. You can just use the internal oscillator on whatever frequency you want, it isn't that intensive either way.
Since the ATTiny can only provide 80mA per pin, and you need to power a lot of leds with that pin for the pulsing effect (PWM- pulse width modulation) which require more amperage than that you'll need a pin protection circuit with either an optocoupler IC or a transistor. The leds can run on 5V. Don't allow the leds to burn out! Use a proper resistor after them. There are plenty of online calculators to calculate the exact resistance needed at a given voltage after a given amount of leds.
As for the arduino code to run on the attiny, it isn't anything too hard, so I've written it for you:
#define pwmpin 1 //Change this in case you used a different DIGITAL PWM pin other than IC pin 6
byte pulse = 0; //This'll keep record of the intensity
bool pulse_side = 1; //This variable will keep record of to count up or down
setup(){
pinMode(pwnpin,OUTPUT);//We need to set our PWM pin to output first
}
loop(){
pulse+=(pulse_side*2-1); //Simply count up or down depending on the side
if (pulse==0||pulse==255){ //If the pulse has reached one of it's limits...
pulse_side=!pulse_side; //Flip the up/downcount boolean
}
analogWrite(pwnpin,pulse); //Set the pulsevalue to the PWM pin to actually drive the leds
}
A nicer effect would be to use a sin-wave and it isn't too hard to write code for that either, but I'll leave that up to you for a challenge