<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Privacy Policy — Speak to Spell</title>
  <meta name="description" content="Privacy Policy for speaktospell.com — how we handle data, cookies, and advertising." />
  <link rel="canonical" href="https://speaktospell.com/privacy/" />

  <!-- Google Fonts -->
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap" rel="stylesheet" />

  <!-- AdSense -->
  <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8610229087227212" crossorigin="anonymous"></script>

  <style>
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --bg:         #0f0f14;
      --surface:    #1a1a24;
      --border:     #2e2e3e;
      --text:       #f0eef8;
      --text-sec:   #b0adc4;
      --text-faint: #7a7890;
      --coral:      #e8445a;
      --font: 'Nunito', sans-serif;
    }

    body.light {
      --bg:       #f5f3ff;
      --surface:  #ffffff;
      --border:   #d8d3f0;
      --text:     #1a1830;
      --text-sec: #4a4668;
      --text-faint: #8a86a8;
    }

    body {
      font-family: var(--font);
      background: var(--bg);
      color: var(--text);
      min-height: 100vh;
      transition: background 0.3s, color 0.3s;
    }

    .topbar {
      max-width: 760px;
      margin: 0 auto;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 18px 24px 0;
    }

    .back-link {
      font-size: 0.9rem;
      font-weight: 700;
      color: var(--text-sec);
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 6px;
      transition: color 0.2s;
    }
    .back-link:hover { color: var(--text); }

    .theme-btn {
      width: 36px;
      height: 36px;
      border-radius: 10px;
      background: var(--surface);
      border: 1px solid var(--border);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .icon-moon { display: block; }
    .icon-sun  { display: none; }
    body.light .icon-moon { display: none; }
    body.light .icon-sun  { display: block; }

    .content {
      max-width: 760px;
      margin: 0 auto;
      padding: 40px 24px 60px;
    }

    h1 {
      font-size: 2rem;
      font-weight: 900;
      margin-bottom: 8px;
    }

    .updated {
      font-size: 0.85rem;
      color: var(--text-faint);
      margin-bottom: 36px;
    }

    h2 {
      font-size: 1.15rem;
      font-weight: 800;
      margin: 32px 0 10px;
      color: var(--coral);
    }

    p, li {
      font-size: 0.95rem;
      line-height: 1.75;
      color: var(--text-sec);
      margin-bottom: 10px;
    }

    ul {
      padding-left: 20px;
      margin-bottom: 10px;
    }

    a {
      color: var(--coral);
      text-decoration: none;
    }
    a:hover { text-decoration: underline; }

    footer {
      text-align: center;
      padding: 24px;
      font-size: 0.8rem;
      color: var(--text-faint);
      border-top: 1px solid var(--border);
      max-width: 760px;
      margin: 0 auto;
    }
  </style>
</head>
<body>

  <div class="topbar">
    <span class="back-link" onclick="window.location.href='/'">
      <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
        <polyline points="15 18 9 12 15 6"/>
      </svg>
      Back to Speak to Spell
    </span>
    <button class="theme-btn" onclick="toggleTheme()" aria-label="Toggle theme">
      <svg class="icon-moon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#b0adc4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>
      </svg>
      <svg class="icon-sun" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#4a4668" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/>
        <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/>
        <line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/>
        <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>
      </svg>
    </button>
  </div>

  <div class="content">
    <h1>Privacy Policy</h1>
    <p class="updated">Last updated: 11 June 2026</p>

    <p>
      This Privacy Policy explains how Speak to Spell ("we", "us", "our") collects, uses, and protects
      information when you use <strong>speaktospell.com</strong> (the "Service").
    </p>

    <h2>1. Information We Collect</h2>
    <p>
      Speak to Spell is designed to be a frictionless, no-sign-up tool. We do not require you to create
      an account or provide any personal information to use the Service.
    </p>
    <p>
      <strong>Speech data:</strong> When you use the microphone feature, your speech is processed
      locally in your browser using the Web Speech API. We do not store, record, or transmit your
      voice recordings to our servers. Note that the Web Speech API may send audio data to your
      browser provider (e.g., Google) for processing — please refer to your browser's privacy policy
      for details.
    </p>
    <p>
      <strong>Usage data:</strong> We use Google Analytics to collect anonymised information about
      how visitors use the Service, including pages viewed, time on site, and general location
      (country/region level). This data does not identify you personally.
    </p>

    <h2>2. Cookies</h2>
    <p>
      We use cookies and similar tracking technologies for the following purposes:
    </p>
    <ul>
      <li><strong>Preference storage:</strong> We store your theme preference (light/dark mode) in your browser's local storage. This data stays on your device and is never transmitted to us.</li>
      <li><strong>Analytics cookies:</strong> Google Analytics sets cookies to help us understand site usage.</li>
      <li><strong>Advertising cookies:</strong> Google AdSense may set cookies to serve personalised or contextual advertisements.</li>
    </ul>
    <p>
      You can manage or disable cookies through your browser settings. Note that disabling cookies
      may affect the functionality of the Service.
    </p>

    <h2>3. Google AdSense &amp; Advertising</h2>
    <p>
      We use Google AdSense to display advertisements on the Service. Google AdSense may use cookies
      and web beacons to collect data and serve ads based on your prior visits to this and other websites.
    </p>
    <p>
      Google's use of advertising cookies enables it and its partners to serve ads based on your visit
      to our site and/or other sites on the internet. You may opt out of personalised advertising by
      visiting <a href="https://www.google.com/settings/ads" target="_blank" rel="noopener">Google Ad Settings</a>
      or <a href="https://www.aboutads.info" target="_blank" rel="noopener">www.aboutads.info</a>.
    </p>
    <p>
      For users in the EEA, UK, and Switzerland, we display a consent notice on your first visit
      in compliance with applicable regulations.
    </p>

    <h2>4. Third-Party Services</h2>
    <p>
      The Service uses the following third-party services, each subject to their own privacy policies:
    </p>
    <ul>
      <li><strong>Google Fonts</strong> — to load the Nunito typeface. <a href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Privacy Policy</a></li>
      <li><strong>Google Analytics</strong> — for anonymised usage analytics. <a href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Privacy Policy</a></li>
      <li><strong>Google AdSense</strong> — for advertising. <a href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Privacy Policy</a></li>
      <li><strong>Web Speech API</strong> — for speech recognition (processed by your browser).</li>
    </ul>

    <h2>5. Data Retention</h2>
    <p>
      We do not store any personal data on our servers. Any preference data (such as theme choice)
      is stored solely in your browser's local storage and can be cleared at any time by clearing
      your browser data.
    </p>

    <h2>6. Your Rights</h2>
    <p>
      Depending on your location, you may have rights under applicable data protection laws,
      including the Australian Privacy Act 1988, the UK GDPR, and the EU GDPR. These include
      rights to access, correct, or delete personal information we hold about you.
    </p>
    <p>
      As we do not collect personally identifiable information, most of these rights are satisfied
      by default. If you have any questions or concerns, please contact us.
    </p>

    <h2>7. Children's Privacy</h2>
    <p>
      The Service is intended to be safe and useful for all ages, including children. We do not
      knowingly collect personal information from anyone. The Service does not require any
      personal information to function. Parents and guardians should be aware that the Web Speech
      API is handled by the user's browser provider.
    </p>

    <h2>8. Changes to This Policy</h2>
    <p>
      We may update this Privacy Policy from time to time. Any changes will be posted on this page
      with an updated date. Continued use of the Service after changes constitutes acceptance of
      the revised policy.
    </p>

    <h2>9. Contact</h2>
    <p>
      For any privacy-related questions or requests, please contact us at:
      <a href="mailto:hello@speaktospell.com">hello@speaktospell.com</a>
    </p>
  </div>

  <footer>
    © <span id="footerYear"></span> Speak to Spell
    &nbsp;·&nbsp;
    <a href="/">Back to app</a>
  </footer>

<script>
  document.getElementById('footerYear').textContent = new Date().getFullYear();

  (function() {
    var saved = localStorage.getItem('sts-theme');
    if (saved === 'light') document.body.classList.add('light');
  })();

  function toggleTheme() {
    document.body.classList.toggle('light');
    localStorage.setItem('sts-theme', document.body.classList.contains('light') ? 'light' : 'dark');
  }
</script>

</body>
</html>