/* The snackbar - position it at the bottom and in the middle of the screen */
#snackbar {
    visibility: hidden; /* Hidden by default. Visible on click */
    min-width: 250px; /* Set a default minimum width */
    margin-left: -125px; /* Divide value of min-width by 2 */
    background-color: #333; /* Black background color */
    color: #fff; /* White text color */
    text-align: center; /* Centered text */
    border-radius: 2px; /* Rounded borders */
    padding: 16px; /* Padding */
    position: fixed; /* Sit on top of the screen */
    z-index: 1; /* Add a z-index if needed */
    left: 50%; /* Center the snackbar */
    bottom: 30px; /* 30px from the bottom */
  }
  
  /* Show the snackbar when clicking on a button (class added with JavaScript) */
  #snackbar.show {
    visibility: visible; /* Show the snackbar */
    /* Add animation: Take 0.5 seconds to fade in and out the snackbar.
    However, delay the fade out process for 2.5 seconds */
    -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
    animation: fadein 0.5s, fadeout 0.5s 2.5s;
  }
  
  /* Animations to fade the snackbar in and out */
  @-webkit-keyframes fadein {
    from {bottom: 0; opacity: 0;}
    to {bottom: 30px; opacity: 1;}
  }
  
  @keyframes fadein {
    from {bottom: 0; opacity: 0;}
    to {bottom: 30px; opacity: 1;}
  }
  
  @-webkit-keyframes fadeout {
    from {bottom: 30px; opacity: 1;}
    to {bottom: 0; opacity: 0;}
  }
  
  @keyframes fadeout {
    from {bottom: 30px; opacity: 1;}
    to {bottom: 0; opacity: 0;}
  }
  
  
  
  /* loader svg */
  * {
      border: 0;
      box-sizing: border-box;
      margin: 0;
      padding: 0;
  }
  
  .ip {
      width: 16em;
      height: 8em;
    
  }
  .ip__track {
      stroke: hsl(var(--hue),90%,90%);
      transition: stroke var(--trans-dur);
  }
  .ip__worm1,
  .ip__worm2 {
      animation: worm1 2s linear infinite;
  }
  .ip__worm2 {
      animation-name: worm2;
  }
  
  
  #progress-worm {
    visibility: hidden;
    z-index: 9999;
    position: absolute;
    top: 50%;
    left: 42%;
  }
  
  #progress-worm.show {
    visibility: visible;
  }
  
  
  
  /* Dark theme */
  @media (prefers-color-scheme: dark) {
      :root {
          --bg: hsl(var(--hue),90%,5%);
          --fg: hsl(var(--hue),90%,95%);
      }
      .ip__track {
          stroke: hsl(var(--hue),90%,15%);
      }
  }
  
  /* Animation */
  @keyframes worm1 {
      from {
          stroke-dashoffset: 0;
      }
      50% {
          animation-timing-function: steps(1);
          stroke-dashoffset: -358;
      }
      50.01% {
          animation-timing-function: linear;
          stroke-dashoffset: 358;
      }
      to {
          stroke-dashoffset: 0;
      }
  }
  @keyframes worm2 {
      from {
          stroke-dashoffset: 358;
      }
      50% {
          stroke-dashoffset: 0;
      }
      to {
          stroke-dashoffset: -358;
      }
  }
  