<!doctype html>
<html lang="it" class="has-header fonts-ready" style="--header-offset: 0px;"><head>
  <!-- EZOIC DISABILITATO - Riabilitare Marzo 2025
  <script src="https://cmp.gatekeeperconsent.com/min.js" data-cfasync="false"></script>
  <script src="https://the.gatekeeperconsent.com/cmp.min.js" data-cfasync="false"></script>

  <script async src="//www.ezojs.com/ezoic/sa.min.js"></script>
  <script>
    window.ezstandalone = window.ezstandalone || {};
    ezstandalone.cmd = ezstandalone.cmd || [];
  </script>
  -->

  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="https://pagead2.googlesyndication.com/pagead/managed/js/adsense/m202602100101/show_ads_impl.js" defer=""></script><script async="" src="https://www.googletagmanager.com/gtag/js?id=G-5LP9JDKWGR"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'G-5LP9JDKWGR');
  </script>
  <script>
    (function(){
      var path=window.location.pathname;
      var routes=['/','/home','/vangelo','/salmi','/mishnah','/fonti'];
      var hasHeader=routes.some(function(r){return path===r||(r!=='/'&&path.startsWith(r));});
      var mq=window.matchMedia('(max-width: 767px)');
      function apply(){
        var target=document.body||document.documentElement;
        if(hasHeader){
          target.classList.add('has-header');
          document.documentElement.style.setProperty('--header-offset',mq.matches?'calc(56px + 90px + 32px)':'0px');
        }else{
          target.classList.remove('has-header');
          document.documentElement.style.setProperty('--header-offset','0px');
        }
      }
      apply();
      if(mq.addEventListener){
        mq.addEventListener('change',function(){apply();});
      }else if(mq.addListener){
        mq.addListener(function(){apply();});
      }
    })();
  </script>
  <!-- 🎯 CRITICAL CSS INLINE - Mobile FCP Optimization (0.95KB) -->
  <style>
    body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif}#root{min-height:100vh;contain:layout style}:root{}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;background-color:#fff;color:#1f2937}#root{min-height:100vh;contain:layout style paint}*{box-sizing:border-box}.min-h-screen{min-height:100vh}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.text-center{text-align:center}.px-4{padding-left:1rem;padding-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.w-full{width:100%}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.text-gray-700{color:#374151}
  </style>

  <!-- 🎯 MULTI-BOSS ATTACK #3: FONT PRECONNECT STRIKE - LCP/FCP Optimization -->
  <!-- CRITICAL: Establish early connections for Google Fonts -->
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
  <!-- Hebrew font for nikkud (vowel points) - Frank Ruhl Libre -->
  <link href="https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@400;500;700&amp;display=swap" rel="stylesheet">
  <!-- Hebrew font for nikkud (vowel points) - Frank Ruhl Libre -->
  <link href="https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@400;500;700&amp;display=swap" rel="stylesheet">

  <link rel="icon" type="image/svg+xml" href="/images/logo_teocentro.svg">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/logo_teocentro.png">
  <link rel="shortcut icon" type="image/x-icon" href="/favicon-teo.ico">
  <link rel="apple-touch-icon" href="/images/logo_teocentro.png">
  <meta name="msapplication-TileImage" content="/images/logo_teocentro.png">
  <meta name="theme-color" content="#1a1a1a">
  <meta name="google-adsense-account" content="ca-pub-5782099534387450">
  <script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5782099534387450" crossorigin="anonymous" data-checked-head="true"></script>

  <!-- PWA Meta Tags per Retention -->
  <link rel="manifest" href="/manifest.json">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  <meta name="apple-mobile-web-app-title" content="TeoCentro">
  <meta name="mobile-web-app-capable" content="yes">

  <!-- CSP moved to _headers file for complete coverage including fundingchoicesmessages.google.com -->

  <!-- Preload critical resources for LCP optimization -->
  <!-- Manual preloads removed - Vite handles automatic preloading during build -->
  <!-- FORENSIC FIX (Phase 2): Removed /src/ path preloads causing 404 errors in production -->

  <!-- DNS prefetch for external resources -->
  
  <!-- Google Fonts dns-prefetch (restored) -->
  
  <link rel="dns-prefetch" href="https://pagead2.googlesyndication.com">
  <!-- YouTube dns-prefetch -->
  <link rel="dns-prefetch" href="https://www.youtube.com">
  <link rel="dns-prefetch" href="https://i.ytimg.com">
  <link rel="dns-prefetch" href="https://s.ytimg.com">

  <!-- Preconnect for critical origins (SEO optimization) -->
  <link rel="preconnect" href="https://www.googletagmanager.com">
  <link rel="dns-prefetch" href="https://www.google-analytics.com">
  <!-- Google Fonts preconnect (restored) -->
  
  <!-- PHASE 3 OPTIMIZATION: Add preconnect for analytics domains -->
  <!-- YouTube preconnect removed - emergency fix for LCP -->
  <!-- <link rel="preconnect" href="https://www.youtube.com" crossorigin> -->
  <!-- <link rel="preconnect" href="https://i.ytimg.com" crossorigin> -->

  <!-- Hero images preload removed - emergency fix for LCP -->
  <!-- <link rel="preload" as="image" href="/images/angelologia.webp" fetchpriority="high"> -->
  <!-- <link rel="preload" as="image" href="/images/default.webp" fetchpriority="high"> -->

  <!-- Step 1: Optimized Font Preconnect (moved to top for maximum performance) -->

  <!-- Step 2: Optimized Font Preload with display=optional strategy -->
  <!-- Reduced weights from 4 to 2 (400, 600 only) for faster loading -->
  
  
  <!-- Step 3: Language-specific font subsets for international content -->
  <!-- Hebrew subset for religious texts - optimized for Biblical Hebrew (preload disabilitato) -->
  <!-- <link rel="preload"
        href="https://fonts.googleapis.com/css2?family=Noto+Sans+Hebrew:wght@400&text=%D7%90%D7%91%D7%92%D7%93%D7%94%D7%95%D7%96%D7%97%D7%98%D7%99%D7%9A%D7%9B%D7%9C%D7%9D%D7%9E%D7%9F%D7%A0%D7%A1%D7%A2%D7%A3%D7%A4%D7%A5%D7%A6%D7%A7%D7%A8%D7%A9%D7%AA&display=optional"
        as="style"
        fetchpriority="low"
        onload="this.onload=null;this.rel='stylesheet'"> -->
  
  <!-- Greek subset for biblical terms - optimized for Koine Greek (preload disabilitato) -->
  <!-- <link rel="preload"
        href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400&text=%CE%91%CE%91%CE%92%CE%93%CE%94%CE%95%CE%96%CE%97%CE%98%CE%99%CE%9A%CE%9B%CE%9C%CE%9D%CE%9E%CE%9F%CE%A0%CE%A1%CE%A3%CE%A4%CE%A5%CE%A6%CE%A7%CE%A8%CE%A9%CE%91%CE%92%CE%93%CE%94%CE%95%CE%96%CE%97%CE%98%CE%99%CE%9A%CE%9B%CE%9C%CE%9D%CE%9E%CE%9F%CE%A0%CE%A1%CE%A3%CE%A4%CE%A5%CE%A6%CE%A7%CE%A8%CE%A9&display=optional"
        as="style"
        fetchpriority="low"
        onload="this.onload=null;this.rel='stylesheet'"> -->

  <!-- Fallback for no-JS -->
  <noscript>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=optional">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+Hebrew:wght@400&text=%D7%90%D7%91%D7%92%D7%93%D7%94%D7%95%D7%96%D7%97%D7%98%D7%99%D7%9A%D7%9B%D7%9C%D7%9D%D7%9E%D7%9F%D7%A0%D7%A1%D7%A2%D7%A3%D7%A4%D7%A5%D7%A6%D7%A7%D7%A8%D7%A9%D7%AA&display=optional">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400&text=%CE%91%CE%91%CE%92%CE%93%CE%94%CE%95%CE%96%CE%97%CE%98%CE%99%CE%9A%CE%9B%CE%9C%CE%9D%CE%9E%CE%9F%CE%A0%CE%A1%CE%A3%CE%A4%CE%A5%CE%A6%CE%A7%CE%A8%CE%A9%CE%91%CE%92%CE%93%CE%94%CE%95%CE%96%CE%97%CE%98%CE%99%CE%9A%CE%9B%CE%9C%CE%9D%CE%9E%CE%9F%CE%A0%CE%A1%CE%A3%CE%A4%CE%A5%CE%A6%CE%A7%CE%A8%CE%A9&display=optional">
  </noscript>

  <!-- Critical Font Face Observer for LCP optimization -->
  <script>
    (function() {
      // Simple font loading detection for LCP optimization
      function checkFontsReady() {
        if (document.fonts && document.fonts.ready) {
          document.fonts.ready.then(function() {
            document.documentElement.classList.add('fonts-ready');
            if (location.hostname === 'localhost' || location.hostname === '127.0.0.1') { try { console.log('[Fonts] Loaded at:', performance.now()); } catch {} }
            try { window.__fontReadyTime = performance.now(); } catch {}
          });
        } else {
          // Fallback for browsers without Font Loading API
          setTimeout(function() {
            document.documentElement.classList.add('fonts-ready');
          }, 100);
        }
      }
      
      // Check fonts ready state
      if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', checkFontsReady);
      } else {
        checkFontsReady();
      }
    })();
  </script>

  <script>
    (function() {
      try {
        if ('PerformanceObserver' in window) {
          var lcpEntry = null;
          var lcpObserver = new PerformanceObserver(function(list) {
            var entries = list.getEntries();
            lcpEntry = entries[entries.length - 1];
          });
          lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });

          var fcpObserver = new PerformanceObserver(function(list) {
            var entries = list.getEntries();
            var fcp = entries.find(function(e){ return e.name === 'first-contentful-paint'; });
            if (fcp && (location.hostname === 'localhost' || location.hostname === '127.0.0.1')) { console.log('[FCP] Timestamp:', fcp.startTime); }
            try { window.__fcpStartTime = fcp ? fcp.startTime : null; } catch {}
          });
          fcpObserver.observe({ type: 'paint', buffered: true });

          window.addEventListener('load', function() {
            setTimeout(function() {
              if (lcpEntry) {
                if (location.hostname === 'localhost' || location.hostname === '127.0.0.1') { console.log('[LCP] Timestamp:', lcpEntry.startTime, 'Size:', lcpEntry.size); }
                try { window.__lcpStartTime = lcpEntry.startTime; } catch {}
              }
              try {
                window.__perfMetrics = {
                  fcp: window.__fcpStartTime || null,
                  lcp: window.__lcpStartTime || null,
                  fontReady: window.__fontReadyTime || null,
                  hydrationStart: window.__hydrationStart || null,
                  hydrationEnd: window.__hydrationEnd || null
                };
              } catch {}
            }, 0);
          });
        }
      } catch {}
    })();
  </script>


  <!-- Font preload removed - emergency fix for LCP -->
  <!-- <link rel="preload" href="https://fonts.gstatic.com/s/inter/v13/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2" as="font" type="font/woff2" crossorigin="anonymous" fetchpriority="high"> -->

  <!-- Critical font preconnect for LCP H1 optimization (already optimized at top) -->


  <!-- Prevent font loading layout shifts -->
  <style>
    /* Critical CSS to prevent FOUT/FOIT */
    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
    }

    /* Critical LCP H1 solid color rendering */
    .main-content-h1 {
      font-display: swap;
      text-rendering: optimizeSpeed;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      transform: translateZ(0);
      backface-visibility: hidden;
      contain: layout style paint;
      will-change: auto;
      color: #1f2937;
    }
    @media (prefers-color-scheme: dark) {
      .main-content-h1 { color: #f3f4f6; }
    }

    /* Reserve space for common elements */
    .loading-placeholder {
      min-height: 200px;
      background: #f3f4f6;
      animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    }

    @keyframes pulse {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: .5;
      }
    }

    /* Prevent layout shifts during initial load */
    #root {
      min-height: 100vh;
      contain: layout style;
    }
  </style>

  <!-- Favicon -->
  
  <!-- Critical inline styles -->
  <style>
    /* Critical CSS per evitare FOUC e ottimizzare LCP */
    :root {
      --primary-color: #3b82f6;
    }

    body {
      margin: 0;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      background-color: #ffffff;
      color: #1f2937;
      transition: background-color 0.2s, color 0.2s;
    }

    .dark body {
      background-color: #1f2937;
      color: #f9fafb;
    }

    #root {
      min-height: 100vh;
      contain: layout style paint;
    }

    /* LCP optimization - reserve space for logo */
    .logo-container {
      width: 128px;
      height: 128px;
      display: block;
      margin: 0 auto;
      background: #f3f4f6;
      border-radius: 50%;
      contain: layout style;
    }

    /* Critical above-the-fold styles */
    .hero-section {
      min-height: 60vh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      padding: 2rem 1rem;
    }

    .hero-title {
      font-size: 2.5rem;
      font-weight: 700;
      margin-bottom: 1rem;
      line-height: 1.2;
    }

    @media (min-width: 768px) {
      .hero-title {
        font-size: 3rem;
      }
    }

    /* Loading spinner critico */
    .page-loader {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 200px;
    }

    .spinner {
      width: 40px;
      height: 40px;
      border: 4px solid #f3f4f6;
      border-top: 4px solid var(--primary-color);
      border-radius: 50%;
      animation: spin 1s linear infinite;
    }

    @keyframes spin {
      0% {
        transform: rotate(0deg);
      }

      100% {
        transform: rotate(360deg);
      }
    }
  </style>

  <!-- Enhanced Critical CSS for Performance -->
  <style>
    /* ============================================
       CRITICAL CSS - Above the Fold Only
       Generated: 2025-11-15
       Size: ~8-12KB
       Expected: +2-3 Lighthouse points, -0.4 to -0.8s LCP
       ============================================ */

    /* Core layout and typography optimization */
    * {
      box-sizing: border-box;
    }

    /* Critical container and layout utilities */
    .container {
      width: 100%;
      margin-left: auto;
      margin-right: auto;
      padding-left: 1rem;
      padding-right: 1rem;
    }

    @media (min-width: 640px) {
      .container {
        max-width: 640px;
      }
    }

    @media (min-width: 768px) {
      .container {
        max-width: 768px;
      }
    }

    @media (min-width: 1024px) {
      .container {
        max-width: 1024px;
      }
    }

    /* Critical utility classes for above-fold content */
    .min-h-screen { min-height: 100vh; }
    .flex { display: flex; }
    .flex-col { flex-direction: column; }
    .items-center { align-items: center; }
    .justify-center { justify-content: center; }
    .text-center { text-align: center; }
    .p-4 { padding: 1rem; }
    .px-4 { padding-left: 1rem; padding-right: 1rem; }
    .py-8 { padding-top: 2rem; padding-bottom: 2rem; }
    .mx-auto { margin-left: auto; margin-right: auto; }
    .max-w-4xl { max-width: 56rem; }
    .w-full { width: 100%; }
    .h-full { height: 100%; }

    /* Critical text utilities for LCP optimization */
    .text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
    .text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
    .text-xl { font-size: 1.25rem; line-height: 1.75rem; }
    .text-lg { font-size: 1.125rem; line-height: 1.75rem; }
    .text-base { font-size: 1rem; line-height: 1.5rem; }
    .text-sm { font-size: 0.875rem; line-height: 1.25rem; }

    .font-bold { font-weight: 700; }
    .font-semibold { font-weight: 600; }
    .font-medium { font-weight: 500; }
    .font-normal { font-weight: 400; }

    /* Critical color utilities */
    .text-gray-900 { color: #111827; }
    .text-gray-800 { color: #1f2937; }
    .text-gray-700 { color: #374151; }
    .text-gray-600 { color: #4b5563; }
    .text-gray-500 { color: #6b7280; }

    .bg-white { background-color: #ffffff; }
    .bg-gray-50 { background-color: #f9fafb; }
    .bg-gray-100 { background-color: #f3f4f6; }
    .bg-transparent { background-color: transparent; }

    /* Critical navigation styles */
    nav, .nav-container {
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      justify-content: center;
      padding: 1rem;
    }

    .nav-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      min-width: 48px;
      padding: 8px 12px;
      color: #374151;
      text-decoration: none;
      border-radius: 0.375rem;
      transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
      font-weight: 500;
      font-family: Inter, 'Noto Sans Hebrew', 'Noto Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    }

    .nav-link:hover {
      color: #111827;
      background-color: rgba(0, 0, 0, 0.05);
    }

    /* Critical dark mode styles */
    .dark body {
      background: linear-gradient(135deg, #1f2937 0%, #111827 100%);
      color: #f9fafb;
    }

    .dark .hero-title {
      background: linear-gradient(135deg, #d4af37 0%, #f4e8d8 50%, #d4af37 100%);
      background-clip: text;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
    }

    .dark .nav-link {
      color: #d1d5db;
    }

    .dark .nav-link:hover {
      color: #ffffff;
      background-color: rgba(255, 255, 255, 0.1);
    }

    .dark .text-gray-900 { color: #f9fafb; }
    .dark .text-gray-800 { color: #e5e7eb; }
    .dark .text-gray-700 { color: #d1d5db; }
    .dark .text-gray-600 { color: #9ca3af; }
    .dark .text-gray-500 { color: #6b7280; }

    .dark .bg-white { background-color: #1f2937; }
    .dark .bg-gray-50 { background-color: #111827; }
    .dark .bg-gray-100 { background-color: #0f172a; }

    /* Critical archaeological theme */
    .archaeological-heading {
      font-family: Georgia, 'Times New Roman', serif;
      letter-spacing: 0.05em;
      color: #3d2817;
    }

    .archaeological-text {
      color: #3d2817;
      font-family: Georgia, 'Times New Roman', serif;
    }

    .dark .archaeological-heading,
    .dark .archaeological-text {
      color: #f4e8d8;
    }

    /* Critical button styles */
    .btn, .button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      min-width: 48px;
      padding: 8px 16px;
      border: none;
      border-radius: 0.375rem;
      font-family: inherit;
      font-size: 1rem;
      font-weight: 500;
      text-decoration: none;
      cursor: pointer;
      transition: all 0.15s ease-in-out;
    }

    /* Critical animations */
    @keyframes fade-in-up {
      from {
        opacity: 0;
        transform: translateY(10px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .animate-fade-in-up {
      animation: fade-in-up 0.3s ease-out;
      animation-delay: 0ms;
      will-change: transform, opacity;
    }

    /* Critical responsive utilities */
    @media (max-width: 640px) {
      .hero-section {
        min-height: 50vh;
        padding: 1.5rem 1rem;
      }
      
      h1, .hero-title {
        font-size: 2rem;
      }
      
      .nav-container {
        gap: 0.5rem;
      }
      
      .nav-link {
        font-size: 0.875rem;
        padding: 6px 10px;
        min-height: 44px;
        min-width: 44px;
      }
    }

    /* Critical print styles */
    @media print {
      body {
        background: white !important;
        color: black !important;
      }
    }

    /* Critical mobile ad reservation to prevent CLS */
    @media (max-width: 767px) {
      .header-ad-container[data-variant='leaderboard'] { min-height: 90px; height: 90px; width: 100%; max-width: 728px; margin: 0 auto; }
    }
  </style>

  <!-- Critical theme script inlined -->
  <script>
    (function () {
      // Enhanced dark mode detection to prevent flash
      const theme = localStorage.getItem('theme');
      const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
      
      if (theme === 'dark' || (!theme && prefersDark)) {
        document.documentElement.classList.add('dark');
        // Apply dark mode styles immediately to prevent flash
        document.documentElement.style.backgroundColor = '#0f172a';
        document.documentElement.style.color = '#f9fafb';
      } else {
        document.documentElement.style.backgroundColor = '#ffffff';
        document.documentElement.style.color = '#1f2937';
      }
      
      // Remove inline styles once CSS loads
      window.addEventListener('DOMContentLoaded', function() {
        document.documentElement.style.backgroundColor = '';
        document.documentElement.style.color = '';
      });
    })();
  </script>

  <!-- Debug script inlined -->
  <script>
    if (typeof window !== 'undefined') {
      window.DEBUG = false;
    }
  </script>

  <!-- Performance optimization script -->
  <!-- FORENSIC FIX (Phase 2): Removed dynamic preload script with /src/ paths -->
  <!-- Vite automatically handles module preloading during build process -->



  <!-- SEO Meta Tags -->
  <meta name="keywords" content="teologia, bibbia, salmi, catechesi, testi sacri, antica alleanza, nuova alleanza, mishnah, pedalion">
  <meta name="author" content="TeoCentro">

  <!-- Robots directives -->
  <meta name="robots" content="index, follow">
  <meta name="googlebot" content="index, follow">

  <title>TeoCentro</title>
  <!-- Schema.org JSON-LD -->
  <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "name": "TeoCentro",
      "url": "https://teologia1.it/",
      "description": "Archivio completo di testi sacri, salmi, catechesi e risorse teologiche",
      "publisher": {
        "@type": "Organization",
        "name": "TeoCentro",
        "url": "https://teologia1.it/"
      },
      "potentialAction": {
        "@type": "SearchAction",
        "target": "https://teologia1.it/search?q={search_term_string}",
        "query-input": "required name=search_term_string"
      }
    }
  </script>
  <script type="module" crossorigin="" src="/assets/index-T_Mdcp7i.js" defer=""></script>
  <link rel="modulepreload" crossorigin="" href="/assets/react-vendor-D49G9osq.js">
  <link rel="modulepreload" crossorigin="" href="/assets/router-vendor-BlAuTAik.js">
  <link rel="preload" as="style" href="/assets/index-CCk6sCdi.css" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/assets/index-CCk6sCdi.css"></noscript>
<link rel="modulepreload" as="script" crossorigin="" href="/assets/preloadOptimizations-luDzE369.js"><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9nrunKdU5m96PSN1XsSGr3qOP0lvPFUB2AiAylCDlN5DTl17uDFkpQuHj1AFtgWLxpLaiBZuhrtb2WOu7ofHwEAAACKeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiQUlQcm9tcHRBUElNdWx0aW1vZGFsSW5wdXQiLCJleHBpcnkiOjE3NzQzMTA0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A93bovR+QVXNx2/38qDbmeYYf1wdte9EO37K9eMq3r+541qo0byhYU899BhPB7Cv9QqD7wIbR1B6OAc9kEfYCA4AAACQeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiQUlQcm9tcHRBUElNdWx0aW1vZGFsSW5wdXQiLCJleHBpcnkiOjE3NzQzMTA0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A1S5fojrAunSDrFbD8OfGmFHdRFZymSM/1ss3G+NEttCLfHkXvlcF6LGLH8Mo5PakLO1sCASXU1/gQf6XGuTBgwAAACQeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXRhZ3NlcnZpY2VzLmNvbTo0NDMiLCJmZWF0dXJlIjoiQUlQcm9tcHRBUElNdWx0aW1vZGFsSW5wdXQiLCJleHBpcnkiOjE3NzQzMTA0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><link rel="modulepreload" as="script" crossorigin="" href="/assets/useGoogleAnalyticsOptimized-Cl8k9DLW.js"><link rel="preconnect" href="your_supabase_url_here" crossorigin="anonymous"><link rel="dns-prefetch" href="https://www.google-analytics.com"><link rel="dns-prefetch" href="https://pagead2.googlesyndication.com"><link rel="dns-prefetch" href="//www.googletagmanager.com"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&amp;display=optional"><link rel="modulepreload" as="script" crossorigin="" href="/assets/useWebVitals-Dd7eeDcR.js"></head>

<body class="has-header homepage-celestial-bg">
  
  <!-- Google Funding Choices - GDPR Consent Banner -->
  <!-- STEP 1: Registra callback PRIMA che FC carichi -->
  <script>
    window.googlefc = window.googlefc || {};
    window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
    
    // Callback per quando il consenso è pronto
    window.googlefc.callbackQueue.push({
      'CONSENT_DATA_READY': function() {
        console.log('[FC-HTML] CONSENT_DATA_READY fired');
        
        // Usa TCF API per leggere il consenso
        if (typeof window.__tcfapi === 'function') {
          window.__tcfapi('getTCData', 2, function(tcData, success) {
            console.log('[FC-HTML] TCF getTCData:', success, tcData);
            
            if (success && tcData.gdprApplies !== false) {
              var analytics = tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1] === true;
              var marketing = tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[4] === true;
              
              var consent = {
                necessary: true,
                analytics: analytics,
                marketing: marketing
              };
              
              localStorage.setItem('cookie-consent', JSON.stringify(consent));
              console.log('[FC-HTML] Consent saved to localStorage:', consent);
              
              // Dispatch custom event per notificare React
              window.dispatchEvent(new CustomEvent('fcConsentReady', { detail: consent }));
            } else if (success && tcData.gdprApplies === false) {
              // GDPR non si applica - consenso implicito
              var consentAll = { necessary: true, analytics: true, marketing: true };
              localStorage.setItem('cookie-consent', JSON.stringify(consentAll));
              console.log('[FC-HTML] GDPR not applicable, full consent:', consentAll);
              window.dispatchEvent(new CustomEvent('fcConsentReady', { detail: consentAll }));
            }
          });
        } else {
          console.warn('[FC-HTML] __tcfapi not available');
        }
      }
    });
    
    // Registra anche listener TCF per aggiornamenti successivi
    window.__tcfapiReadyCallbacks = window.__tcfapiReadyCallbacks || [];
    window.__tcfapiReadyCallbacks.push(function() {
      if (typeof window.__tcfapi === 'function') {
        window.__tcfapi('addEventListener', 2, function(tcData, success) {
          if (success && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete')) {
            var analytics = tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1] === true;
            var marketing = tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[4] === true;
            var consent = { necessary: true, analytics: analytics, marketing: marketing };
            localStorage.setItem('cookie-consent', JSON.stringify(consent));
            console.log('[FC-HTML] TCF event updated localStorage:', consent);
            window.dispatchEvent(new CustomEvent('fcConsentReady', { detail: consent }));
          }
        });
      }
    });
  </script>

  <!-- STEP 2: Carica FC script (dopo aver registrato callbacks) -->
  <script async="" src="https://fundingchoicesmessages.google.com/i/pub-5782099534387450?ers=1"></script>
  <script>
    (function() {
      function signalGooglefcPresent() {
        if (!window.frames['googlefcPresent']) {
          if (document.body) {
            var iframe = document.createElement('iframe');
            iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;';
            iframe.style.display = 'none';
            iframe.name = 'googlefcPresent';
            document.body.appendChild(iframe);
          } else {
            setTimeout(signalGooglefcPresent, 0);
          }
        }
      }
      signalGooglefcPresent();
      
      // Esegui callback quando __tcfapi è pronto
      var checkTcfApi = setInterval(function() {
        if (typeof window.__tcfapi === 'function') {
          clearInterval(checkTcfApi);
          (window.__tcfapiReadyCallbacks || []).forEach(function(cb) { cb(); });
        }
      }, 100);
      
      // Timeout dopo 5 secondi
      setTimeout(function() { clearInterval(checkTcfApi); }, 5000);
    })();
  </script><iframe name="googlefcPresent" style="width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px; display: none;"></iframe>
  <div id="root"><div class="flex flex-col min-h-[100dvh] dark:text-gray-100"><div class="md:hidden fixed top-0 left-0 right-0 z-[9999]" style="z-index: 750;"><div class="header-ad-container " data-variant="leaderboard" style="z-index: 750; position: relative; min-height: 90px; width: 100%; height: 90px; max-width: 728px; margin: 0px auto;"><div class="ad-placeholder hidden" style="min-height: 90px; width: 100%; max-width: 728px;"><div class="ad-placeholder-shimmer"></div></div><div id="header-ad-slot-leaderboard" class="header-ad-content flex items-center justify-center text-gray-500 text-sm bg-gray-50 dark:bg-gray-800 rounded" style="width: 100%; height: 90px; max-width: 728px; margin: 0px auto;"><div class="text-center"><div class="text-xs text-gray-400">Spazio Pubblicitario</div><div class="text-xs">Annunci non attivi</div></div></div><noscript></noscript></div></div><header class="fixed top-0 w-full h-14 bg-gradient-to-b from-black/5 to-transparent" role="banner" itemscope="" itemtype="https://schema.org/WPHeader" style="z-index: 600;"><nav class="flex items-center justify-between px-6 h-full" role="navigation" aria-label="Navigazione principale"><a class="flex items-center opacity-80 hover:opacity-100 transition no-underline" aria-label="Vai all archivio" href="/archivio/" data-discover="true"><div class="h-14" itemprop="logo"><div class="relative overflow-hidden h-14 w-auto object-contain" style="width: 56px; height: 56px; aspect-ratio: 1 / 1; min-height: 56px;"><img src="/images/logo_teocentro.png" alt="TeoCentro Logo" width="56" height="56" sizes="56px" loading="eager" decoding="async" class="
          w-full h-full object-cover
          transition-opacity duration-300 ease-in-out
          opacity-100
        " fetchpriority="high" style="position: absolute; top: 0px; left: 0px; will-change: auto;"></div></div></a><div class="absolute inset-x-0 flex justify-center z-10 pointer-events-none"><div class="pointer-events-auto"><div class="header-ad-container " data-variant="inline" style="z-index: 750; position: relative; min-height: 60px; width: 468px; height: 60px; max-width: none; margin: 0px;"><div class="ad-placeholder hidden" style="min-height: 60px; width: 468px; max-width: none;"><div class="ad-placeholder-shimmer"></div></div><div id="header-ad-slot-inline" class="header-ad-content flex items-center justify-center text-gray-500 text-sm bg-gray-50 dark:bg-gray-800 rounded" style="width: 468px; height: 60px; max-width: none; margin: 0px;"><div class="text-center"><div class="text-xs text-gray-400">Spazio Pubblicitario</div><div class="text-xs">Annunci non attivi</div></div></div><noscript></noscript></div></div></div><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 bg-white text-black px-4 py-2 rounded">Vai al contenuto principale</a><script type="application/ld+json">{
                "@context": "https://schema.org",
                "@type": "BreadcrumbList",
                "itemListElement": [{
                  "@type": "ListItem",
                  "position": 1,
                  "name": "Home",
                  "item": "http://localhost:5050"
                }]
              }</script><div class="flex gap-3" role="toolbar" aria-label="Controlli utente"><button class="p-2 rounded-full hover:bg-white/10 transition" aria-label="Cambia lingua" title="Cambia lingua"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages h-4 w-4 text-white/70"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg></button><button class="p-2 rounded-full hover:bg-white/10 flex items-center justify-center w-9 h-9" aria-label="Cambia tema" title="Cambia tema"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon w-5 h-5 text-white/70"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></button></div></nav></header><div id="main-content" class="flex-1 relative pt-32 md:pt-32"><div class="min-h-screen flex flex-col" style="position: relative;"><span role="heading" aria-level="1" class="sr-only">TeoCentro - Studio delle Radici Ebraiche del Cristianesimo</span><section class="flex flex-col items-center justify-center px-4 main-content-wrapper" style="min-height: 600px;"><div class="max-w-7xl w-full main-content-container bg-transparent"><div class="text-center mb-12"><h1 class="text-[min(2.5rem,5vw)] whitespace-nowrap font-light tracking-tight mb-4 text-gray-800 dark:text-gray-100 main-content-h1" style="contain: layout style paint; will-change: auto; text-rendering: optimizespeed; transform: translateZ(0px); backface-visibility: hidden;">Lo sapevi che...?</h1><div class="w-full px-4 search-container"><div class="flex justify-center mb-4"><div class="max-w-2xl mx-auto relative" style="min-height: 6rem;"><div class="bg-white/1 dark:bg-gray-800/2 rounded-2xl p-1 border border-white/1 dark:border-gray-700/5 hover:shadow-xl hover:shadow-purple-500/10 transition-all duration-300"><div class="relative mx-auto contain-layout" style="width: clamp(320px, 90vw, 680px); min-width: clamp(320px, 90vw, 680px); max-width: 680px;"><div class="relative w-full px-4 sm:px-6 pr-16 sm:pr-20 py-3 sm:py-4 text-[min(1.125rem,4vw)] rounded-full h-[4.75rem] sm:h-[4rem] flex items-center overflow-hidden transition-opacity" style="font-family: var(--archaeological-font-serif); contain: layout style;"><p aria-hidden="true" class="flex-1 leading-relaxed text-sm sm:text-base mobile-clamp-2 sm:whitespace-nowrap sm:overflow-hidden sm:text-ellipsis opacity-0 select-none pointer-events-none" style="font-family: var(--archaeological-font-serif);">Maddalena non scambiò Gesù per ortolano ma per guardiano sacro.</p><p class="absolute left-4 right-16 sm:left-6 sm:right-20 top-1/2 -translate-y-1/2 leading-relaxed text-sm sm:text-base mobile-clamp-2 sm:whitespace-nowrap sm:overflow-hidden sm:text-ellipsis text-[var(--cream-primary)]" style="font-family: var(--archaeological-font-serif);">Maddalena non scambiò Gesù per ortolano ma per guardiano sacro.</p></div><button class="absolute right-3 sm:right-4 top-1/2 transform -translate-y-1/2 w-[50px] h-[50px] rounded-full cursor-pointer bg-gradient-to-br from-[#d4af37] via-[#f4e8d8] to-[#d4af37] shadow-[0_5px_20px_rgba(212,175,55,0.4)] hover:scale-110 hover:shadow-[0_10px_30px_rgba(212,175,55,0.5)] transition-all duration-300 border-0 flex items-center justify-center z-10 " title="Esplora questo contenuto" aria-label="Vai all'articolo"><svg viewBox="0 0 24 24" class="w-6 h-6" fill="none"><circle cx="11" cy="11" r="8" stroke="white" stroke-width="2"></circle><path d="M21 21L16.65 16.65" stroke="white" stroke-width="2" stroke-linecap="round"></path></svg></button></div></div><div class="mt-4 rounded-full h-[1px] overflow-hidden progress-container-optimized" aria-hidden="false" style="height: 1px; background-color: rgba(244, 232, 216, 0.18);"><div class="w-full origin-left progress-fade progress-auto" style="height: 1px; transform-origin: left center; opacity: 1; background: linear-gradient(90deg, rgb(212, 175, 55) 0%, rgb(244, 232, 216) 50%, rgb(212, 175, 55) 100%);"></div></div></div></div></div><div class="mt-4 flex justify-center items-center space-x-6 reaction-buttons"><button class="group flex items-center gap-2 px-4 py-2 rounded-full bg-white/2 dark:bg-gray-800/5 border border-white/2 dark:border-gray-700/5 hover:scale-110 hover:-translate-y-1 transition-all duration-300 hover:shadow-lg"><span role="img" aria-label="mind blown" class="text-lg transition-transform duration-300 group-hover:scale-125 group-hover:rotate-12 group-hover:animate-bounce-custom ">🤯</span>0</button><button class="group flex items-center gap-2 px-4 py-2 rounded-full bg-white/2 dark:bg-gray-800/5 border border-white/2 dark:border-gray-700/5 hover:scale-110 hover:-translate-y-1 transition-all duration-300 hover:shadow-lg"><span role="img" aria-label="fire" class="text-lg transition-transform duration-300 group-hover:scale-125 group-hover:rotate-12 group-hover:animate-bounce-custom ">🔥</span>0</button></div></div><nav class="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-4xl mx-auto px-4 content-grid" aria-label="Site navigation"><section class="bg-white/1 dark:bg-gray-800/2 rounded-lg shadow-lg overflow-hidden"><button class="group relative w-full px-3 py-1.5 bg-white/2 dark:bg-gray-800/5 hover:bg-white/8 dark:hover:bg-gray-700/10 border rounded-xl shadow-sm hover:shadow-xl dark:hover:shadow-2xl dark:hover:shadow-black/50 hover:-translate-y-2 hover:scale-[1.02] transition-[transform,box-shadow,background-color] duration-250 ease-out overflow-hidden" style="border-color: rgba(212, 175, 55, 0.35);"><span class="absolute left-3 top-1/2 -translate-y-1/2 transform text-xl opacity-0 group-hover:opacity-100 transition-all duration-300">📖</span><div class="w-full text-center"><span class="font-medium">Fonti</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down absolute right-3 top-1/2 -translate-y-1/2 transform w-5 h-5 transition-transform duration-300  group-hover:text-purple-500"><path d="m6 9 6 6 6-6"></path></svg><div class="absolute bottom-0 left-1/2 transform -translate-x-1/2 w-0 group-hover:w-4/5 h-0.5 bg-gradient-to-r from-purple-600 to-blue-600 transition-all duration-300"></div></button><div class="transition-all duration-300 ease-in-out max-h-0 overflow-hidden"></div></section><section class="bg-white/1 dark:bg-gray-800/2 rounded-lg shadow-lg overflow-hidden"><button class="group relative w-full px-3 py-1.5 bg-white/2 dark:bg-gray-800/5 hover:bg-white/8 dark:hover:bg-gray-700/10 border rounded-xl shadow-sm hover:shadow-xl dark:hover:shadow-2xl dark:hover:shadow-black/50 hover:-translate-y-2 hover:scale-[1.02] transition-[transform,box-shadow,background-color] duration-250 ease-out overflow-hidden" style="border-color: rgba(212, 175, 55, 0.35);"><span class="absolute left-3 top-1/2 -translate-y-1/2 transform text-xl opacity-0 group-hover:opacity-100 transition-all duration-300">🤝</span><div class="w-full text-center"><span class="font-medium">Ortoprassi</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down absolute right-3 top-1/2 -translate-y-1/2 transform w-5 h-5 transition-transform duration-300  group-hover:text-purple-500"><path d="m6 9 6 6 6-6"></path></svg><div class="absolute bottom-0 left-1/2 transform -translate-x-1/2 w-0 group-hover:w-4/5 h-0.5 bg-gradient-to-r from-purple-600 to-blue-600 transition-all duration-300"></div></button><div class="transition-all duration-300 ease-in-out max-h-0 overflow-hidden"></div></section></nav><div class="mt-8 mb-24 flex justify-center"><button class="crystal-ethereal-button" aria-label="Quiz Teologico - Simbolo attuale: 📯" title="Avvia il Quiz Teologico Interattivo" type="button" data-lcp-optimization="false"><div class="crystal-base"></div><div class="crystal-refraction"></div><span class="emoji-rotator-optimized" aria-hidden="true" data-testid="emoji-rotating" data-transitioning="false" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: 1.5rem; line-height: 1; transition: opacity 0.25s ease-in-out; opacity: 1; transform: translate(-0.5px, -1px);">📯</span></button></div></div></section><div class="ad-placement ad-post-content my-4"><div class="adsbygoogle-container flex items-center justify-center text-gray-500 text-sm bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded" style="min-height: 250px;"><div class="text-center"><div class="text-xs text-gray-400 mb-1">Spazio Pubblicitario</div><div class="text-xs">Annunci non attivi</div></div></div></div></div></div><footer class="flex-shrink-0 backdrop-blur-md bg-gray-900/80 dark:bg-gray-950/80 border-t border-gray-700/30" role="contentinfo"><div class="container mx-auto px-4 py-8"><div class="flex flex-wrap justify-center gap-x-6 gap-y-2 mb-6"><a class="text-sm text-gray-400 hover:text-white transition-colors duration-300" href="/salmi/" data-discover="true">Salmi</a><a class="text-sm text-gray-400 hover:text-white transition-colors duration-300" href="/mishnah/" data-discover="true">Mishnah</a><a class="text-sm text-gray-400 hover:text-white transition-colors duration-300" href="/fonti/" data-discover="true">Fonti</a><a class="text-sm text-gray-400 hover:text-white transition-colors duration-300" href="/ortoprassi/halakhah/" data-discover="true">Halakhah</a><a class="text-sm text-gray-400 hover:text-white transition-colors duration-300" href="/quiz/" data-discover="true">Quiz</a></div><div class="flex flex-col md:flex-row justify-between items-center border-t border-gray-700/30 pt-6"><div class="mb-2 md:mb-0"><p class="text-xs text-gray-300">© 2026 TeoCentro. Tutti i diritti riservati.</p></div><div class="flex flex-wrap justify-center gap-x-4 gap-y-1"><a class="relative text-gray-300 hover:text-white transition-colors duration-300 after:content-[''] after:absolute after:bottom-0 after:left-0 after:w-0 after:h-0.5 after:bg-gradient-to-r after:from-purple-600 after:to-blue-600 hover:after:w-full after:transition-all after:duration-300" href="/chi-siamo/" data-discover="true">Chi Siamo</a><a class="relative text-gray-300 hover:text-white transition-colors duration-300 after:content-[''] after:absolute after:bottom-0 after:left-0 after:w-0 after:h-0.5 after:bg-gradient-to-r after:from-purple-600 after:to-blue-600 hover:after:w-full after:transition-all after:duration-300" href="/contatti/" data-discover="true">Contatti</a><a class="relative text-gray-300 hover:text-white transition-colors duration-300 after:content-[''] after:absolute after:bottom-0 after:left-0 after:w-0 after:h-0.5 after:bg-gradient-to-r after:from-purple-600 after:to-blue-600 hover:after:w-full after:transition-all after:duration-300" href="/privacy-policy/" data-discover="true">Privacy Policy</a><a class="relative text-gray-300 hover:text-white transition-colors duration-300 after:content-[''] after:absolute after:bottom-0 after:left-0 after:w-0 after:h-0.5 after:bg-gradient-to-r after:from-purple-600 after:to-blue-600 hover:after:w-full after:transition-all after:duration-300" href="/cookie-policy/" data-discover="true">Cookie Policy</a><a class="relative text-gray-300 hover:text-white transition-colors duration-300 after:content-[''] after:absolute after:bottom-0 after:left-0 after:w-0 after:h-0.5 after:bg-gradient-to-r after:from-purple-600 after:to-blue-600 hover:after:w-full after:transition-all after:duration-300" href="/termini-di-servizio/" data-discover="true">Termini di Servizio</a></div></div></div></footer></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"TeoCentro","description":"Portale dedicato alla teologia, archeologia biblica e studi religiosi","url":"http://localhost:5050","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http://localhost:5050/search?q={search_term_string}"},"query-input":"required name=search_term_string"},"publisher":{"@type":"Organization","name":"TeoCentro","logo":{"@type":"ImageObject","url":"http://localhost:5050/images/logo-teo.svg"}}}</script></div>

  <!-- CSS stylesheets -->
  <!-- FORENSIC FIX (Phase 2): Removed manual CSS links - Vite injects these automatically -->

  <!-- Main application script -->
  
  
  
  

  <script>
    (function(){
      var loaded=false
      function loadFonts(){
        if(loaded) return
        loaded=true
        var link=document.createElement('link')
        link.rel='stylesheet'
        link.href='https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=optional'
        document.head.appendChild(link)
      }
      if('PerformanceObserver' in window){
        try{
          var lcp=null
          var po=new PerformanceObserver(function(list){
            var entries=list.getEntries()
            lcp=entries[entries.length-1]||null
          })
          po.observe({type:'largest-contentful-paint',buffered:true})
          window.addEventListener('load',function(){
            setTimeout(function(){
              if(lcp){ loadFonts() } else { loadFonts() }
            },0)
          })
        }catch{ setTimeout(loadFonts,3000) }
      }else{
        setTimeout(loadFonts,3000)
      }
    })()
  </script>
  



<ins class="adsbygoogle adsbygoogle-noablate" data-adsbygoogle-status="done" style="display: none !important;" data-ad-status="unfilled"><div id="aswift_0_host" style="border: none; height: 0px; width: 0px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-block;"><iframe id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;border:0;width:undefinedpx;height:undefinedpx;min-height:auto;max-height:none;min-width:auto;max-width:none;" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allow="attribution-reporting; run-ad-auction" src="https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5782099534387450&amp;output=html&amp;adk=1812271804&amp;adf=3025194257&amp;lmt=1770991764&amp;plat=1%3A8%2C2%3A16777224%2C3%3A2162688%2C4%3A2162688%2C9%3A32776%2C16%3A8388608%2C17%3A32%2C24%3A32%2C25%3A32%2C30%3A1048576%2C32%3A32%2C41%3A32%2C42%3A32%2C43%3A32&amp;format=0x0&amp;url=http%3A%2F%2Flocalhost%3A5050%2F&amp;pra=5&amp;asro=0&amp;aiapm=0.1542&amp;aiapmd=0.1423&amp;aiapmi=0.16&amp;aiapmid=1&amp;aiact=0.5423&amp;aiactd=0.7&amp;aicct=0.7&amp;aicctd=0.5799&amp;ailct=0.5849&amp;ailctd=0.65&amp;aimart=4&amp;aimartd=4&amp;uach=WyJMaW51eCIsIiIsIng4NiIsIiIsIjE0My4wLjc0OTkuMTY5IixudWxsLDAsbnVsbCwiNjQiLFtbIkNocm9taXVtIiwiMTQzLjAuNzQ5OS4xNjkiXSxbIk5vdCBBKEJyYW5kIiwiMjQuMC4wLjAiXV0sMF0.&amp;abgtt=6&amp;dt=1770991764794&amp;bpp=5&amp;bdt=565&amp;idt=114&amp;shv=r20260211&amp;mjsv=m202602100101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie_enabled=1&amp;eoidce=1&amp;nras=1&amp;correlator=6272321193113&amp;frm=20&amp;pv=2&amp;u_tz=0&amp;u_his=2&amp;u_h=600&amp;u_w=800&amp;u_ah=600&amp;u_aw=800&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=-12245933&amp;ady=-12245933&amp;biw=800&amp;bih=600&amp;scr_x=0&amp;scr_y=0&amp;eid=31096620%2C42532523%2C95366177%2C95378425%2C95381489%2C95382730%2C95382846&amp;oid=2&amp;pvsid=8111033355422988&amp;tmod=736563304&amp;uas=0&amp;nvt=1&amp;fsapi=1&amp;fc=1920&amp;brdim=10%2C10%2C10%2C10%2C800%2C0%2C0%2C0%2C800%2C600&amp;vis=2&amp;rsz=%7C%7Cs%7C&amp;abl=NS&amp;fu=32768&amp;bc=31&amp;bz=0&amp;psd=W251bGwsW251bGwsbnVsbCxudWxsLCJkZXByZWNhdGVkX2thbm9uIl1d&amp;pgls=CAk.&amp;ifi=1&amp;uci=a!1&amp;fsb=1&amp;dtd=210" data-google-container-id="a!1" tabindex="0" title="Advertisement" aria-label="Advertisement" data-load-complete="true"></iframe></div></ins><iframe name="googlefcInactive" src="about:blank" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><iframe name="googlefcLoaded" src="about:blank" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><iframe src="https://www.google.com/recaptcha/api2/aframe" width="0" height="0" style="display: none;"></iframe></body><iframe id="google_esf" name="google_esf" src="https://googleads.g.doubleclick.net/pagead/html/r20260211/r20190131/zrt_lookup.html" style="display: none;"></iframe></html>