@mixin thinky-bot($theme) {
  $primary: map-get($theme, primary);
  $accent: map-get($theme, accent);
  $background: map-get($theme, background);
  $foreground: map-get($theme, foreground);
  $bg-color: mat-color($background, card) !default;
  $fg-color: mat-color($foreground, text) !default;

  /** THINKY FLOATING BUBBLE **/
  .thinky-guide {
    display: flex;
    flex-direction: column;
    position: fixed;
    // z-index: 1110;

    &.play {
      transition: 0.5s;
      transition-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045);

      .thinky-logo {
        background-color: $bg-color;
        box-shadow: 0 0 0 rgba($fg-color, 0.2), inset 0px 0px 10px -5px rgba($fg-color, 1);
        transition: .5s;
      }
    }

    .thinky-logo {
      align-items: center;
      background-color: rgba($bg-color, 0.25);
      border-radius: 100%;
      box-shadow: 0 0 5px 2px rgba($fg-color, 0.1);
      cursor: pointer;
      display: flex;
      justify-content: center;
      transition: .5s;
      transition: background-color 1.5s ease-in .1s;
      z-index: 1020;

      &:after {
        content: ' ';
      }
    }

    .thinky-bubbles {
      align-items: center;
      display: flex;
      flex-direction: column;
      max-width: 115px;
      min-height: 120px;
      opacity: 1;
      position: relative;

      .thinky-logo {
        &.thinky-bubble-trail {
          align-items: center;
          border-width: 2px;
          display: flex;
          font-size: 0.8em;
          height: 30px;
          justify-content: center;
          margin-top: 5px;
          opacity: 0;
          padding: 0;
          position: absolute;
          top: -75px;
          transition: width .1s ease-out .1s, height .1s ease-out .1s;
          width: 30px;
          z-index: 1015;

          &.play-bubble {
            opacity: 1;
            position: relative;
            top: 0px;
          }

          &:nth-of-type(1) {
            font-size: 0.9em;
            height: 40px;
            width: 40px;
          }

          &:nth-of-type(2) {
            height: 35px;
            width: 35px;
          }

          .mat-icon {
            color: $fg-color;
            max-width: 24px;
            opacity: 1;
            transition: max-width .1s ease-out .1s, opacity .5s ease-out .1s;
          }

          span {
            max-width: 0;
            opacity: 0;
            text-decoration: none;
          }

          &:hover {
            border-radius: 25px;
            transition: width .2s ease-in .1s,
                        height .2s ease-in .1s;
            width: 100%;

            span {
              color: mat-color($primary);
              max-width: 150px;
              opacity: 1;
              text-decoration: underline;
              transition: max-width .5s ease-out .1s, opacity .5s ease-out .3s;
            }
          }
        }
      }
    }
  }
}
