<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <title>Practy</title>

    <!-- Primary Meta Tags (non-SEO — SEO tags set dynamically by SEOHead per page) -->
    <meta name="application-name" content="Practy" />
    <meta name="apple-mobile-web-app-title" content="Practy" />
    <meta name="keywords" content="language learning, verb conjugation, conjugation practice, verb tenses, irregular verbs, conjugation charts, online conjugator, free language learning, how to conjugate verbs, learn Spanish verbs, learn French verbs, learn Portuguese verbs, learn Italian verbs, learn Hebrew verbs, learn Arabic verbs, learn Chinese, language practice, listening comprehension, pronunciation practice, vocabulary practice, vocabulary lists, phonetics, audio exercises, accent improvement, language pronunciation, interactive exercises, conjugation trainer, verb forms, spaced repetition, vocabulary games, phonetic training" />
    <meta name="author" content="Practy" />
    <meta name="theme-color" content="#1A5FBA" />
    <meta name="color-scheme" content="light dark" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="msapplication-TileColor" content="#1A5FBA" />
    <meta name="msapplication-tap-highlight" content="no" />
    <meta name="HandheldFriendly" content="true" />
    <meta name="MobileOptimized" content="width" />

    <!-- Favicon and Icons -->
    <link rel="icon" type="image/x-icon" href="/favicon.ico" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
    <link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png" />
    <link rel="icon" type="image/png" sizes="512x512" href="/android-chrome-512x512.png" />
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
    <link rel="manifest" href="/site.webmanifest" />

    <!-- Resource hints: preconnect for origins hit during app boot, dns-prefetch for rarely-used origins -->
    <link rel="preconnect" href="https://firestore.googleapis.com" crossorigin />
    <link rel="preconnect" href="https://identitytoolkit.googleapis.com" crossorigin />
    <link rel="preconnect" href="https://pub-6e75db8de2394a4f9ae65b28c9d1fe81.r2.dev" crossorigin />
    <link rel="dns-prefetch" href="//js.stripe.com" />

    <!-- Structured Data: WebApplication -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebApplication",
      "name": "Practy",
      "alternateName": "Practy App",
      "description": "Master languages with Practy. Interactive conjugation and listening practice for English, Spanish, French, Portuguese, Italian, Hebrew, and Arabic. Practice verb conjugation forms, letters, sounds, and more.",
      "url": "https://my.practy.app",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Any",
      "offers": {
        "@type": "AggregateOffer",
        "availability": "https://schema.org/OnlineOnly",
        "lowPrice": "0",
        "priceCurrency": "USD",
        "offerCount": 2
      },
      "featureList": [
        "Interactive conjugation exercises",
        "Multiple language support",
        "Audio pronunciation",
        "Progress tracking",
        "Dialect variations",
        "Right-to-left language support"
      ],
      "browserRequirements": "Requires modern web browser (Chrome, Firefox, Safari - latest 2 versions)",
      "creator": {
        "@type": "Organization",
        "name": "Practy",
        "url": "https://my.practy.app"
      }
    }
    </script>

    <!-- Structured Data: EducationalOrganization -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "EducationalOrganization",
      "name": "Practy",
      "url": "https://my.practy.app",
      "description": "Master languages with Practy. Interactive conjugation and listening practice for English, Spanish, French, Portuguese, Italian, Hebrew, and Arabic. Practice verb conjugation forms, letters, sounds, and more.",
      "educationalUse": ["Practice", "Training", "Self-Study", "Skill Development"],
      "teaches": [
        "English language learning",
        "Spanish language learning",
        "French language learning",
        "Portuguese language learning",
        "Italian language learning",
        "Hebrew language learning",
        "Arabic language learning",
        "Chinese language learning",
        "Verb conjugation",
        "Listening practice",
        "Letters and sounds",
        "Phonetics",
        "Vocabulary"
      ],
      "inLanguage": ["en", "es", "fr"],
      "audience": {
        "@type": "EducationalAudience",
        "educationalRole": "student"
      },
      "isAccessibleForFree": true,
      "typicalAgeRange": "13-99",
      "educationalLevel": "Beginner to Advanced"
    }
    </script>

    <!-- Structured Data: WebSite -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "@id": "https://my.practy.app/#website",
      "url": "https://my.practy.app",
      "name": "Practy"
    }
    </script>

    <!-- Structured Data: Organization -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "Practy",
      "url": "https://my.practy.app",
      "logo": "https://my.practy.app/apple-touch-icon.png",
      "sameAs": ["https://practy.app"]
    }
    </script>

    <!-- Tell Netlify prerender to wait for app to signal readiness -->
    <script>window.prerenderReady=false</script>

    <!-- Unregister any stale service worker from a previous app version -->
    <script>if('serviceWorker' in navigator){navigator.serviceWorker.getRegistrations().then(function(r){r.forEach(function(reg){reg.unregister()})})}</script>

    <!-- Expo reset styles -->
    <style id="expo-reset">
      html, body { height: 100%; }
      body { overflow: hidden; }
      #root { display: flex; height: 100%; flex: 1; }
    </style>
  <link rel="preload" href="/_expo/static/css/web-31514bfbab4adab24e4fb6d85c405fb4.css" as="style"><link rel="stylesheet" href="/_expo/static/css/web-31514bfbab4adab24e4fb6d85c405fb4.css"></head>

  <body>
    <noscript>
      <h1>Practy - Language Learning Practice</h1>
      <p>Master languages with Practy. Interactive conjugation, listening, and vocabulary practice for Spanish, French, Portuguese, Italian, English, Hebrew, Arabic, and Chinese.</p>
      <p>Practice verb conjugation, improve listening comprehension, and build vocabulary with interactive exercises and spaced repetition.</p>
    </noscript>
    <div id="root"></div>
  <script src="/_expo/static/js/web/__expo-metro-runtime-46ac14f77b8d07852b02d57eb3e5b645.js" defer></script><script src="/_expo/static/js/web/__common-47540ca90cbb8df2fe76550948ff8f79.js" defer></script><script src="/_expo/static/js/web/entry-852ae1272d8e9166d2d119c694607483.js" defer></script>
</body>
</html>
