pause and resume counter on seven segment display

Libraries used in IDE: bounce2 & Sevseg
board used:arduino nano v3

push button is connected at analog A1 (15th pin) using analog pin as digital input.

i want to use push button to start or pause countdown from 60 to 0
when i press push button then timer can start. when i press push button again then it can pause seven segment digits but it still counting at background. so when i resume counting , its cant start where it was pause last time.

#include "SevSeg.h"
#include <Bounce2.h>
#define BUTTON_PIN 15
#define LED_PIN 13
int ledState = LOW;
SevSeg sevseg; //Instantiate a seven segment controller object
Bounce debouncer = Bounce();
void setup() {


  byte numDigits = 4;
  byte digitPins[] = {2, 3, 4, 5};
  byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};

  sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins);
  sevseg.setBrightness(90);


  pinMode(BUTTON_PIN, INPUT_PULLUP);

  // After setting up the button, setup the Bounce instance :
  debouncer.attach(BUTTON_PIN);
  debouncer.interval(500);

  // Setup the LED :
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, ledState);
}

void loop() {
  debouncer.update();

  // Call code if Bounce fell (transition from HIGH to LOW) :
  if ( debouncer.fell() ) {

    // Toggle LED state :
    ledState = !ledState;
    digitalWrite(LED_PIN, ledState);
  }

  pinMode(13, OUTPUT);
  pinMode(18, OUTPUT);
  pinMode(19, OUTPUT);
  digitalWrite(18, LOW);
  digitalWrite(19, HIGH);
  int value = debouncer.read();



  static unsigned long timer = millis();
  static int deciSeconds = 60;
  if ( ledState == HIGH ) {
    if (millis() >= timer) {
      deciSeconds--; // 100000 milliSeconds is equal to 1 Min
      timer += 1000;
      //    digitalWrite(13, HIGH);
      if (deciSeconds <= 0) { // Reset to 0 after counting for 1000 seconds.
        deciSeconds = 0;
        //  digitalWrite(13, LOW);
      }
      sevseg.setNumber(deciSeconds, 1);
    }

    sevseg.refreshDisplay(); // Must run repeatedly
  }
  else {
    deciSeconds;
    timer ;
    sevseg.setNumber(deciSeconds, 1);
    sevseg.refreshDisplay(); // Must run repeatedly
    //   digitalWrite(13, LOW);

  }
  }

  /// END ///

// 100000 milliSeconds is equal to 1 MinNothing to do with your problem, but where is this true ? Maybe in some decimal galaxy far, far away, but not here.

  static unsigned long timer = millis();

You don't have a timer. You have a time.

 else {
    deciSeconds;
    timer ;

I think what you wanted here was:

 else {
    22;
    47;

That code is, of course, as useless as what you wrote.

 int value = debouncer.read();

What is the point of this? You never use value.

Why do you have the same code (to write a value to the display and to update the display) in both the if body and the else body?

If you want the countdown to continue, regardless of the state of the switch, don't put that code in the if body.