<!doctype html>
<html>
  <head>
    <meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="description" name="description" content="Free Online Touch Typing Tutor and Typing Test application with finger guiding"><meta data-n-head="1" name="google-adsense-account" content="ca-pub-6902567019114460"><title>Typing Tom | Typing Tom</title><link data-n-head="1" rel="icon" type="image/x-icon" href="/favicon.ico"><script data-n-head="1" data-hid="clarity" type="text/javascript">!function(t,e,n,c,r,s,a){t[n]=t[n]||function(){(t[n].q=t[n].q||[]).push(arguments)},(s=e.createElement(c)).async=1,s.src="https://www.clarity.ms/tag/rsbwno9tqh",(a=e.getElementsByTagName(c)[0]).parentNode.insertBefore(s,a)}(window,document,"clarity","script")</script><script data-n-head="1" data-hid="adsbygoogle" async crossorigin="anonymous" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6902567019114460"></script><script data-n-head="1" data-hid="hotjar" type="text/javascript">!function(t,e,n,h,s,c,i){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:6370489},c=e.getElementsByTagName("head")[0],(i=e.createElement("script")).async=!0,i.src="https://static.hj.contentsquare.net/c/csq-"+t._hjSettings.hjid+".js",c.appendChild(i)}(window,document)</script><script data-n-head="1" src="https://www.googletagmanager.com/gtag/js?id=G-XS83CCWCGZ" async></script><link rel="preload" href="/_nuxt/7f5898b.js" as="script"><link rel="preload" href="/_nuxt/5f28f26.js" as="script"><link rel="preload" href="/_nuxt/css/8d598d7.css" as="style"><link rel="preload" href="/_nuxt/4624009.js" as="script"><link rel="preload" href="/_nuxt/css/1702d13.css" as="style"><link rel="preload" href="/_nuxt/1992463.js" as="script">
  <link href="/_nuxt/css/8d598d7.css" rel="stylesheet"><link href="/_nuxt/css/1702d13.css" rel="stylesheet"></head>
  <body>
    <div id="__nuxt"><style>#nuxt-loading{background:#fff;visibility:hidden;opacity:0;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;flex-direction:column;animation:nuxtLoadingIn 10s ease;-webkit-animation:nuxtLoadingIn 10s ease;animation-fill-mode:forwards;overflow:hidden}@keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}@-webkit-keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}#nuxt-loading>div,#nuxt-loading>div:after{border-radius:50%;width:5rem;height:5rem}#nuxt-loading>div{font-size:10px;position:relative;text-indent:-9999em;border:.5rem solid #f5f5f5;border-left:.5rem solid #fff;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:nuxtLoading 1.1s infinite linear;animation:nuxtLoading 1.1s infinite linear}#nuxt-loading.error>div{border-left:.5rem solid #ff4500;animation-duration:5s}@-webkit-keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}</style> <script>window.addEventListener("error",(function(){var e=document.getElementById("nuxt-loading");e&&(e.className+=" error")}))</script> <div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div> </div><script>window.__NUXT__={config:{_app:{basePath:"/",assetsPath:"/_nuxt/",cdnURL:null}},staticAssetsBase:"/_nuxt/static/1779554204"}</script>
  <script src="/_nuxt/7f5898b.js"></script><script src="/_nuxt/5f28f26.js"></script><script src="/_nuxt/4624009.js"></script><script src="/_nuxt/1992463.js"></script></body>
</html>
