<!DOCTYPE html>
<html lang="en" suppresshydrationwarning="true">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    
    <!-- Theme initialization - sets CSS custom properties before render to prevent FOUC -->
    <script>
      (function() {
        // Theme detection: localStorage > system preference
        var storedTheme = localStorage.getItem('theme');
        var systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
        var theme = storedTheme || systemTheme;
        // Use CSS custom property for instant theme application without class manipulation
        document.documentElement.style.setProperty('--initial-theme', theme);
        document.documentElement.style.colorScheme = theme;
        // Store for React to pick up
        window.__INITIAL_THEME__ = theme;
      })();
    </script>
    
    <!-- Preconnect to critical origins for faster loading -->
    <link rel="preconnect" href="https://pdf-privacy.pro" crossorigin />
    <link rel="preconnect" href="https://pagead2.googlesyndication.com" crossorigin />
    <link rel="dns-prefetch" href="https://googleads.g.doubleclick.net" />
    <link rel="dns-prefetch" href="https://www.googletagservices.com" />
    <link rel="dns-prefetch" href="https://fundingchoicesmessages.google.com" />
    
    <!-- Preload critical resources to break dependency chain -->
    <link rel="preload" href="/fonts/inter-cyrillic.woff2" as="font" type="font/woff2" crossorigin />
    <link rel="preload" href="/fonts/inter-latin.woff2" as="font" type="font/woff2" crossorigin />
    
    <!-- Non-render-blocking CSS - media print trick with onload swap -->
    <link rel="stylesheet" href="/assets/index-1y_kbsjL.css" media="print" onload="this.media='all'" />
    <noscript></noscript>
    
    <!-- Google AdSense - deferred for non-blocking load -->
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3504352491305262" crossorigin="anonymous"></script>
    
    <!-- Language alternates for SEO -->
    <link rel="alternate" hreflang="en" href="https://pdf-privacy.pro/" />
    <link rel="alternate" hreflang="uk" href="https://pdf-privacy.pro/" />
    <link rel="alternate" hreflang="x-default" href="https://pdf-privacy.pro/" />
    
    <!-- SEO Meta Tags -->
    <title>PDF Privacy.pro — Free & Private Online PDF Converter</title>
    <meta name="description" content="Convert PDF to Excel, text, or JSON in seconds. 100% private — files are processed locally in your browser. Free, no registration, no limits." />
    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
    <meta name="author" content="PDF Privacy.pro" />
    <meta name="theme-color" content="#3b82f6" media="(prefers-color-scheme: light)" />
    <meta name="theme-color" content="#1e40af" media="(prefers-color-scheme: dark)" />
    <link rel="canonical" href="https://pdf-privacy.pro/" />
    
    <!-- Open Graph -->
    <meta property="og:title" content="PDF Privacy.pro — Free & Private Online PDF Converter" />
    <meta property="og:description" content="Convert PDF to Excel, text, or JSON in seconds. 100% private — files are processed locally in your browser, no server uploads." />
    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://pdf-privacy.pro/" />
    <meta property="og:image" content="https://pdf-privacy.pro/og-image.png" />
    <meta property="og:image:width" content="1200" />
    <meta property="og:image:height" content="630" />
    <meta property="og:image:alt" content="PDF Privacy.pro — Free online PDF converter" />
    <meta property="og:locale" content="en_US" />
    <meta property="og:locale:alternate" content="uk_UA" />
    <meta property="og:site_name" content="PDF Privacy.pro" />
    
    <!-- Twitter Card -->
    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:title" content="PDF Privacy.pro — Free & Private PDF Converter" />
    <meta name="twitter:description" content="Convert PDF to Excel, text, or JSON. 100% private — processing in your browser." />
    <meta name="twitter:image" content="https://pdf-privacy.pro/og-image.png" />
    <meta name="twitter:image:alt" content="PDF Privacy.pro — Free online PDF converter" />
    
    <!-- Favicon & App Icons -->
    <link rel="icon" type="image/x-icon" href="/favicon.ico" />
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.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="manifest" href="/site.webmanifest" />
    
    <!-- Structured Data - Organization -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "PDF Privacy.pro",
      "url": "https://pdf-privacy.pro/",
      "logo": "https://pdf-privacy.pro/android-chrome-512x512.png",
      "description": "Free online PDF converter with local browser-based processing",
      "sameAs": [],
      "contactPoint": {
        "@type": "ContactPoint",
        "email": "support@pdf-privacy.pro",
        "contactType": "customer support",
        "availableLanguage": ["English", "Ukrainian"]
      }
    }
    </script>

    <!-- Structured Data - WebSite with SearchAction -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "name": "PDF Privacy.pro",
      "url": "https://pdf-privacy.pro/",
      "description": "Free online PDF converter to Excel, text, and JSON formats",
      "inLanguage": ["en", "uk"],
      "publisher": {
        "@type": "Organization",
        "name": "PDF Privacy.pro"
      }
    }
    </script>

    <!-- Structured Data - SoftwareApplication -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "SoftwareApplication",
      "name": "PDF Privacy.pro",
      "url": "https://pdf-privacy.pro/",
      "description": "Convert PDF to Excel, text, or JSON. 100% private — files are processed locally in your browser.",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Web Browser",
      "browserRequirements": "Requires JavaScript, WebAssembly support",
      "softwareVersion": "1.0",
      "datePublished": "2024-01-01",
      "inLanguage": ["en", "uk"],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      },
      "featureList": [
        "PDF to Excel/CSV conversion",
        "PDF to Text extraction",
        "PDF to JSON parsing",
        "Client-side processing",
        "No server uploads",
        "100% Privacy",
        "Free, no registration required"
      ],
      "screenshot": "https://pdf-privacy.pro/screenshot.png",
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.8",
        "ratingCount": "1250",
        "bestRating": "5",
        "worstRating": "1"
      }
    }
    </script>
    
    <!-- FAQ Structured Data -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Is it safe to convert PDF files online?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes, PDF Privacy.pro processes all files locally in your browser. Your files are never uploaded to any server, ensuring complete privacy."
          }
        },
        {
          "@type": "Question",
          "name": "What formats does PDF Privacy.pro support?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "PDF Privacy.pro converts PDF files to Excel (CSV), plain text, and JSON formats. Each format is optimized for different use cases."
          }
        },
        {
          "@type": "Question",
          "name": "Is this service free?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes, PDF Privacy.pro is completely free with no limits on the number of conversions."
          }
        },
        {
          "@type": "Question",
          "name": "Can I use the tool offline?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes! Once the page is loaded, you can work without an internet connection. All conversion features work locally."
          }
        },
        {
          "@type": "Question",
          "name": "What is the file size limit?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "The recommended maximum file size is 50 MB. Since processing happens on your device, performance depends on your computer's power."
          }
        }
      ]
    }
    </script>
    
    <!-- HowTo Structured Data -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "HowTo",
      "name": "How to Convert PDF to Excel, Text, or JSON",
      "description": "Step-by-step guide to convert PDF files for free with complete privacy",
      "totalTime": "PT1M",
      "tool": {
        "@type": "HowToTool",
        "name": "PDF Privacy.pro"
      },
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Upload your PDF file",
          "text": "Drag and drop your PDF file into the upload zone or click to select. Files up to 50 MB are supported.",
          "url": "https://pdf-privacy.pro/#upload"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Choose output format",
          "text": "Select your desired output format: Excel/CSV for tables, text for plain content, or JSON for structured data.",
          "url": "https://pdf-privacy.pro/#format"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Convert locally",
          "text": "Click the convert button. Your file is processed entirely in your browser — no data is sent to any server.",
          "url": "https://pdf-privacy.pro/#convert"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Download the result",
          "text": "Copy the result to your clipboard or download the converted file to your device.",
          "url": "https://pdf-privacy.pro/#download"
        }
      ]
    }
    </script>
    
    <link rel="icon" type="image/svg+xml" href="/favicon.ico" />
    
    <!-- Critical CSS for instant render - comprehensive above-the-fold styles -->
    <style>
      /* Critical above-the-fold styles - expanded to eliminate render-blocking */
      :root{--background:210 20% 98%;--foreground:220 25% 10%;--primary:221 83% 53%;--primary-foreground:0 0% 100%;--card:0 0% 100%;--card-foreground:220 25% 10%;--border:214 20% 90%;--muted:210 15% 94%;--muted-foreground:215 16% 47%;--accent:210 40% 96%;--radius:0.75rem;--success:142 76% 36%;--secondary:210 20% 96%;--secondary-foreground:220 25% 25%;--ring:221 83% 53%;--input:214 20% 90%}
      .dark{--background:220 25% 8%;--foreground:210 20% 98%;--card:220 20% 12%;--card-foreground:210 20% 98%;--border:220 15% 20%;--muted:220 15% 18%;--muted-foreground:215 20% 65%;--accent:220 20% 18%;--primary:217 91% 60%;--secondary:220 20% 16%;--ring:217 91% 60%;--input:220 15% 20%}
      *{margin:0;padding:0;box-sizing:border-box;border-color:hsl(var(--border))}
      body{font-family:Inter,system-ui,-apple-system,sans-serif;background:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}
      #root{min-height:100vh;display:flex;flex-direction:column}
      .skeleton{background:linear-gradient(90deg,hsl(var(--muted)) 25%,hsl(var(--background)) 50%,hsl(var(--muted)) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
      @keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
      .init-header{height:64px;background:hsl(var(--card));border-bottom:1px solid hsl(var(--border))}
      .init-container{max-width:1200px;margin:0 auto;padding:1rem}
      .init-hero{text-align:center;padding:2rem 1rem}
      .init-dropzone{height:200px;border-radius:16px;border:2px dashed hsl(var(--border));display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,background .2s}
      .init-dropzone:hover{border-color:hsl(var(--primary));background:hsl(var(--accent))}
      .gradient-text{background:linear-gradient(135deg,hsl(221,83%,53%),hsl(200,85%,55%));-webkit-background-clip:text;background-clip:text;color:transparent}
      .fade-in{animation:fadeIn .3s ease-out}
      @keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
      .glass-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 4px 6px -1px rgb(0 0 0/.1)}
      /* Additional Tailwind utilities for hydration */
      .flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}
      .gap-2{gap:0.5rem}.gap-4{gap:1rem}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
      .rounded-lg{border-radius:0.5rem}.rounded-xl{border-radius:0.75rem}.rounded-2xl{border-radius:1rem}
      .text-sm{font-size:0.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}
      .font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}
      .bg-primary{background-color:hsl(var(--primary))}.bg-card{background-color:hsl(var(--card))}.bg-background{background-color:hsl(var(--background))}
      .text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}
      .border{border-width:1px}.border-border{border-color:hsl(var(--border))}
      .shadow-sm{box-shadow:0 1px 2px 0 rgb(0 0 0/.05)}.shadow{box-shadow:0 1px 3px 0 rgb(0 0 0/.1),0 1px 2px -1px rgb(0 0 0/.1)}
      .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
      .w-full{width:100%}.max-w-2xl{max-width:42rem}.mx-auto{margin-left:auto;margin-right:auto}
      .min-h-screen{min-height:100vh}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}
      .opacity-0{opacity:0}.opacity-100{opacity:1}
    </style>
    <script type="module" crossorigin src="/assets/index-AT3uxyKt.js"></script>
    <link rel="modulepreload" crossorigin href="/assets/react-vendor-BWhOvvk9.js">
    <link rel="modulepreload" crossorigin href="/assets/router-ckm5jcoa.js">
    <link rel="stylesheet" crossorigin href="/assets/index-FdLmwE8X.css">
  </head>
  <body>
    <!-- Real content for instant LCP - replaced by React on hydration -->
    <div id="root">
      <header class="init-header" role="banner" style="display:flex;align-items:center;justify-content:space-between;padding:0 1rem">
        <a href="/" style="font-weight:600;font-size:1.25rem;color:hsl(var(--foreground));text-decoration:none">PDF Privacy.pro</a>
      </header>
      <main class="init-container" role="main">
        <article class="init-hero">
          <h1 style="font-size:clamp(1.875rem,5vw,3rem);font-weight:700;color:hsl(var(--foreground));margin-bottom:1rem;line-height:1.2">
            Convert PDF <span style="background:linear-gradient(135deg,hsl(221,83%,53%),hsl(200,85%,55%));-webkit-background-clip:text;background-clip:text;color:transparent">securely and privately</span>
          </h1>
          <p style="font-size:1.125rem;color:hsl(var(--muted-foreground));max-width:42rem;margin:0 auto 2rem">
            100% local processing in your browser. Your files are never uploaded to any server. Free, no registration required.
          </p>
          <div class="skeleton init-dropzone" role="button" tabindex="0" aria-label="Upload PDF file for conversion"></div>
        </article>
      </main>
    </div>
  <!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "a278f70f960e4ec8b74a73a3109d0b93"}'></script><!-- Cloudflare Pages Analytics --></body>
</html>
