Smarter Way to Code to Save Storage Space

Hey all!
I am a novice with Arduino (~2 weeks) and I need some help laying out my code more efficiently to save storage space as I have much more code to write. I am using an Arduino Uno board and I am already at 38% of storage capacity. The code below works just fine, but I feel like it's bulky and needs to be more efficient. So I was hoping someone out there smarter than me can help me lay it out in a better way! - Thanks.

#include <LiquidCrystal.h>
#include <Servo.h>
#include <IRremote.h>


//define global variables
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Servo RemoteMot; 
const int RECV_PIN=7;  
IRrecv irrecv(RECV_PIN);    
decode_results results; 
unsigned long key_value1 = 0;
int pos = 0;
char counter[16];
signed short seconds;

void setup() 
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true); 
  RemoteMot.attach(8); 
  lcd.begin(16,2);
  lcd.setCursor(0,0);
  lcd.clear();
  lcd.print("Welcome to");
  lcd.setCursor(0,1);
  lcd.print("event1");
  delay(2000);
  lcd.clear();
  lcd.setCursor(0,0);
  delay(1000);
  lcd.print("Choose speed");
  lcd.setCursor(0,1);
  lcd.print("of event");

  delay(3000);
}
void loop() 
{
  if(irrecv.decode(&results))
  {
    if(results.value == 0xFFFFFFFF)//if a continuous key is pressed it looks at previously stored value
      results.value = key_value1;
    
    switch(results.value)
    {
      case 0x9716BE3F: //HEX for when "1" is pressed on remote -- Slow event
      delay(500);
      lcd.clear();
      lcd.print("Get Ready!");
        seconds = 5;
              while (seconds>0){
              lcd.clear();
              lcd.setCursor(8,0);
              sprintf(counter,"%.d",seconds);
              lcd.print(counter);
              delay(1000);
              seconds--;
                if(seconds==0){
                lcd.clear();
                lcd.setCursor(7,0);
                lcd.print("GO!");
                delay(2000);
                lcd.clear();}
              }
        for (pos = 0; pos <= 179; pos += 1) {// goes from 0 degrees to 180 degrees in steps of 1 degree
          RemoteMot.write(pos);              // tell servo to go to position in variable 'pos'
          delay(100);}            // waits 100ms for the servo to reach the position    
        for (pos = 179; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
          RemoteMot.write(pos);              // tell servo to go to position in variable 'pos'
          delay(100); }                      // waits 15ms for the servo to reach the position
     break;            
    }
    switch(results.value){
      case 0x3D9AE3F7: //HEX for when "2" is pressed - Medium Event
      delay(500);
      lcd.clear();
      lcd.print("Get Ready!");
        seconds = 5;
              while (seconds>0){
              lcd.clear();
              lcd.setCursor(8,0);
              sprintf(counter,"%.d",seconds);
              lcd.print(counter);
              delay(1000);
              seconds--;
                if(seconds==0){
                lcd.clear();
                lcd.setCursor(7,0);
                lcd.print("GO!");
                delay(2000);
                lcd.clear();}
              }
        for (pos = 0; pos <= 179; pos += 1){ 
          RemoteMot.write(pos);              
          delay(60);}            
        for (pos = 179; pos >= 0; pos -= 1){ 
         RemoteMot.write(pos);              
         delay(60);}   
      break;
    }
    switch(results.value){
      case 0x6182021B: //HEX for when "3" is pressed - Fast Event
      delay(500);
      lcd.clear();
      lcd.print("Get Ready!");
        seconds = 5;
              while (seconds>0){
              lcd.clear();
              lcd.setCursor(8,0);
              sprintf(counter,"%.d",seconds);
              lcd.print(counter);
              delay(1000);
              seconds--;
                if(seconds==0){
                lcd.clear();
                lcd.setCursor(7,0);
                lcd.print("GO!");
                delay(2000);
                lcd.clear();}
              }
        for (pos = 0; pos <= 179; pos += 1){ 
          RemoteMot.write(pos);              
          delay(20);}            
        for (pos = 179; pos >= 0; pos -= 1){ 
         RemoteMot.write(pos);              
         delay(20);}   
      break;
    }
    switch(results.value)
    {
      case 0x8C22657B: //HEX for when "4" is pressed - Very Fast Event
      delay(500);
      lcd.clear();
      lcd.print("Get Ready!");
        seconds = 5;
              while (seconds>0){
              lcd.clear();
              lcd.setCursor(8,0);
              sprintf(counter,"%.d",seconds);
              lcd.print(counter);
              delay(1000);
              seconds--;
                if(seconds==0){
                lcd.clear();
                lcd.setCursor(7,0);
                lcd.print("GO!");
                delay(2000);
                lcd.clear();}
              }
              seconds=5;
              for (pos = 0; pos <= 179; pos += 1){ 
              RemoteMot.write(pos);              
              delay(10);}            
              for (pos = 179; pos >= 0; pos -= 1){ 
              RemoteMot.write(pos);              
              delay(10);}   
              break;
    }
    key_value1 = results.value; //resets the key value to last stored result value
    irrecv.resume();//prepares IR receiver for new signal
  }
}

Do you mean SRAM usage or flash usage. One way to use less SRAM is to use the F macro when printing string literals.
For instance:

lcd.print(F("Welcome to"));

Read the how to use this forum-please read sticky to see how to properly post code and some advice on how to ask an effective question. Remove useless white space and format the code with the IDE autoformat tool (crtl-t or Tools, Auto Format) before posting code.

Yes, you're right. I should have been more specific. Question was to save SRAM and thanks for the tips. I'll be sure to read up on how to use the forum.

I do have another question. After the user selects the speed of the event, I would then like to ask the user "Are You Ready?" and then begin the countdown timer after they have selected yes (i.e. play button on remote - HEX is D7E84B1B). If no buttons are pressed I want the program to pause and wait for user input. I have played around with this for awhile now and I cannot seem to get it to work. After I prompt the user "Are you Ready?" and I select yes (play), nothing seems to happen. And I cannot exit out or select a different speed. Any help would be greatly appreciated!

You have 4 switch statements each with just 1 case. That is not how to use the switch statement See the reference for the switch statement.

Your Arduino spends 99% of its time doing absolutely nothing but waiting on blocking delay() calls to run. Try to use millis() to do non-blocking timing.
Non-blocking timing tutorials:
Several things at a time.
Beginner's guide to millis().
Blink without delay().

The several things at a time tutorial has an example of waiting for user input without blocking.

Much appreciated. I will check those out. Thank you