Add a custom intro page

Yes, you should put everything in the theme you’re using. A lot depends on it’s file organization. Basically you can put it anywhere in theme’s scope, but it’s good practice to maintain order in themes files, like have specific folder for images, scripts, views and other file types. Usually this structure is recognizable in the theme itself, so I advice you to hold to the structure.

But as I don’t know your theme – for sake of this question lets create a folder called intro where you put all files related to intro. Then you might want to redirect to it from functions.php level. In very beginning of functions.php file I’d paste following code:

if (!isset($_COOKIE['visited'])) /* if the visitor is a new */
{
    setcookie('visited', true, time() + 3600 * 24);
    include( 'intro/index.html');
    exit();
}

Where index.html or index.php would be file with animation you’ve created.

I must mention, though, that redirections and animations on the main page are bad practice from UX and SEO point of view as it will make waiting period for main content even longer. If an animation is truly needed then I’d rather try to fix it throught javascript, for example a div which would dissapear after few seconds instead of making redirection.