Trying to get a PIR sensor to fade in/out an addressable led strip

I’m working on a project and I want to fade an led strip in when motion is detected on the PIR sensor and then when no motion is detected the leds fade out. I think I have most of the code in place but when I verify it I get a

fadewayne_test:40:21: error: expected ‘)’ before ‘red’

void FadeInOut(byte red, byte green, byte blue){

^~~

exit status 1

expected ‘)’ before ‘red’

I’m not sure what this means.

#include "FastLED.h"
#define NUM_LEDS 16
CRGB leds[NUM_LEDS];
#define Data 9
#define Clock 10
#define FadeInOut



int inputPin = 11;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status


void setup(){
int inputPin = 11;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status

  FastLED.addLeds<APA102, Data, Clock, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
}

void loop() {
   

   val = digitalRead(inputPin);  // read input value
  if (val == HIGH)    // check if the input is HIGH
      if (pirState == LOW) 
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;


     FadeInOut(0x00, 0xff, 0xff);

}


void FadeInOut(byte red, byte green, byte blue){
  float r, g, b;
     
  for(int k = 0; k < 256; k=k+1) {
    r = (k/256.0)*red;
    g = (k/256.0)*green;
    b = (k/256.0)*blue;
    setAll(r,g,b);
   
  }
   else {
  
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
     
  for(int k = 255; k >= 0; k=k-2) {
    r = (k/256.0)*red;
    g = (k/256.0)*green;
    b = (k/256.0)*blue;
    setAll(r,g,b);
    
  }
}

void showStrip() {
 #ifdef ADAFRUIT_NEOPIXEL_H
   // NeoPixel
   strip.show();
 #endif
 #ifndef ADAFRUIT_NEOPIXEL_H
   // FastLED
   FastLED.show();
 #endif
}

void setPixel(int Pixel, byte red, byte green, byte blue) {
 #ifdef ADAFRUIT_NEOPIXEL_H
   // NeoPixel
   strip.setPixelColor(Pixel, strip.Color(red, green, blue));
 #endif
 #ifndef ADAFRUIT_NEOPIXEL_H
   // FastLED
   leds[Pixel].r = red;
   leds[Pixel].g = green;
   leds[Pixel].b = blue;
 #endif
}

void setAll(byte red, byte green, byte blue) {
  for(int i = 0; i < NUM_LEDS; i++ ) {
    setPixel(i, red, green, blue);
  }
  showStrip();
}

you have “else” without 'if"