Outiref
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<title>Luke Littler World Champion Dartboard Surround Set | Toulouse darts academie</title>
<script type="text/javascript">
    window.bubble_session_uid = '1787483591934x794517744462302800';
</script>
<script type="text/javascript">
    window.headers_source_maps = [["plugin_main_headers_1515787032525x876315403042684900",214,216],["plugin_main_headers_1580238841425x582072028873097200",217,248],["plugin_main_headers_1658328157117x953686184769617900",249,251],["plugin_page_headers_AAa",252,254],["custom_page_header",256,749],["custom_app_header",750,800]]
</script>
<script type="text/javascript">
function make_proxy(target, name) {
  return new Proxy(target, {
    get: function(target, prop) {
      if (prop in target) {
        return target[prop];
      }
      throw new Error('The variable ' + name + ' is not fully initialized yet');
    }
  });
}
window.appquery = make_proxy({
  app_version: function() { return "live"; },
  last_change: function() { return "61854543536";},
}, 'appquery');
window.Lib = new Proxy(function() {}, {
  get: function(target, prop) {
    if (prop === 'is_skeleton') {
      return true;
    }
    throw new Error('The variable ' + Lib + ' is not fully initialized yet');
  },
  apply: function() {
    return make_proxy({
      current_user: function() {
        return make_proxy({ id: "1787483591934x794517744462302800" }, 'Lib().current_user');
      }
    }, 'Lib()');
  }
});
</script>
<script type="text/javascript">
function load_error_function (event) {
  return window.load_error_log.push({ msg: event.message, error_url: event.filename, line: event.lineno, col: event.colno })
}
window.load_error_log = [];
window.addEventListener('error', load_error_function);
window.disableLoadErrorFunction = function () {
  window.removeEventListener('error', load_error_function);
}
</script>
<meta name="referrer" content="origin">
<script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['pre_early_js'] = Date.now();
</script><script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/early_js/05ae9fe83d6b755291132aab9d325d70918aafd336da1bd91a41a31c8b25734b/early.js"></script><script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['post_early_js'] = Date.now();
</script>
<script type="text/javascript">(function () {
    function onWebFontFinish () {
        window.google_web_fonts_active = true;
if (window.google_web_fonts_active_cb) {
    window.google_web_fonts_active_cb();
}
        (function fontface_loaded_snippet (font) {
  if (window.fontface_loaded == null) {
    window.fontface_loaded = {}
  }
  if (font != null) {
    window.fontface_loaded[font] = true
  } else {
    window.all_fontface_loaded = true
  }
  if (window.fontface_webfonts_loaded_cb) {
    return window.fontface_webfonts_loaded_cb(font)
  }
})()
    }
    const WebFontConfig = {'google': { families: ["Balthazar:400","Inter:regular","Inter:600","Inter:800","Lato:regular","Lato:regular","Lato:900","Syne:regular","Syne:regular","Syne:500","Syne:600","Syne:600","Syne:700","Syne:700","Syne:800","Syne:800"] },
        active: function() {
            onWebFontFinish()
        },
        inactive: function() {
            console.log('Failed to load all the fonts');
            onWebFontFinish()
        },
        fontinactive: function(family_name, fvd) {
            console.log('fontinactive being called for ' + family_name + ', Google says the fonts didnt render');
            onWebFontFinish()
        }
    }
        window.WebFont.load(WebFontConfig);
})();</script>
<script>
(function initialize_data() {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (this.readyState === 4 && this.status === 200) {
        const data = JSON.parse(this.responseText);

        function init_data() {
            data.forEach(function(d) {
                Lib().db_instance().initialize_data(d.id, d.data, d.type, d.version);
            })
        }

        if (window.Lib && window.Lib.is_skeleton == null) {
            init_data();
        } else {
            window.Lib_post_load = init_data;
        }
    }
};
xhr.open("GET", "https://toulousedartsacademie.fr/api/1.1/init/data?location=" + encodeURIComponent(window.location.href), true);
xhr.send();
})();
</script>
<script type="text/javascript">window.gm_key = "AIzaSyBcv6WQA_G3vXVwlV2Ik2m2-vKxl45GT1o";</script>
<script type="text/javascript">window.glrl_key_status = false;</script>
<script type="text/javascript">window.bubble_page_load_id = "1787483592036x538";</script>
<script type="text/javascript">window.bubble_plp_token = "txnuXaE70hz38hJ1L45FLkvbhctnXYXxnDnCuyr+RIs=";</script>
<script type="text/javascript">window.bubble_is_leanjs = false;</script>
<script type="text/javascript">window.bubble_shim_modules = true;</script>
<link rel="icon" type="image/png" href="https://bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/cdn-cgi/image/w=128,h=,f=auto,dpr=1,fit=contain/f1770881431031x756346930591944600/Favicon%20TDA.png" />
<meta name="fragment" content="!">
<meta name="description" content="Découvrez le Luke Littler World Champion Dartboard Surround Set disponible chez Toulouse Darts Académie.">
<meta property="og:title" content="Luke Littler World Champion Dartboard Surround Set" />
<meta name="twitter:title" content="Luke Littler World Champion Dartboard Surround Set" />
<meta property="og:site_name" content="Toulouse Darts Académie" />
<meta name="twitter:site_name" content="Toulouse Darts Académie" />
<meta property="og:description" content="Découvrez le Luke Littler World Champion Dartboard Surround Set disponible chez Toulouse Darts Académie." />
<meta name="twitter:description" content="Découvrez le Luke Littler World Champion Dartboard Surround Set disponible chez Toulouse Darts Académie." />
<link rel="image_src" href="https://bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1778395236995x245855622813986100/luke-littler-world-champion-dartboard-surround-set-b02b2d8fe8c04ceb88d39bf725de9e7e.jpg" />
<meta property="og:image" content="https://bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1778395236995x245855622813986100/luke-littler-world-champion-dartboard-surround-set-b02b2d8fe8c04ceb88d39bf725de9e7e.jpg" />
<meta name="twitter:image:src" content="https://bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1778395236995x245855622813986100/luke-littler-world-champion-dartboard-surround-set-b02b2d8fe8c04ceb88d39bf725de9e7e.jpg" />
<meta property="og:url" content="https://toulousedartsacademie.fr/article/1778395164184x913661027655614500" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<script type="text/javascript">window._p = '{"id":"app_starter_2023","no_branding":true,"import_export_csv":true,"custom_domain":true}';</script>
<script type="text/javascript">window.bubble_page_name = "article";</script>
<script type="text/javascript">window.__bubble_module_mode = false;</script>
<link type="text/css" href="/package/run_css/30629365701a0e3f4c7b66d86421253877bf43d25e13e568ab2b29a5d7d0055f/toulouse-darts-acadmie/live/article/xfalse/xfalse/run.css" rel="stylesheet">
<script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['pre_run_js'] = Date.now();
</script>
<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/pre_run_jquery_js/dee903a9e36db713e4c86d0cdd96d921e37be0c1293ed8dee29e2e4d7713b9ff/pre_run_jquery.js"></script>
<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/run_js/cc45337595b9912aab9ccf7c103a9d60c8b27fd7649e8adfe7ef4e47a25b0758/xtrue/x33/run.js"></script>
<script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['post_run_js'] = Date.now();
</script>
<script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['pre_static_js'] = Date.now();
</script><script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/static_js/0620ab70e1c24e7a70f07c51339d50fa633076098d488b8072a6942047438e42/toulouse-darts-acadmie/live/article/xnull/xfalse/xfalse/xtrue/static.js"></script><script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['post_static_js'] = Date.now();
</script>
<script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['pre_dynamic_js'] = Date.now();
</script><script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/dynamic_js/bc5fb8db985cb0943c0b85e90ebc1347df98cea1663ce5382d4d15a1ae415fb1/toulouse-darts-acadmie/live/article/xnull/xfalse/xtrue/fr_fr/xfalse/xfalse/dynamic.js"></script><script type="text/javascript">
if (!window._bubble_page_load_data) {
  window._bubble_page_load_data = {}
}
if (!window._bubble_page_load_data.js_execution_timings) {
  window._bubble_page_load_data.js_execution_timings = {}
}
window._bubble_page_load_data.js_execution_timings['post_dynamic_js'] = Date.now();
</script>
<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_start_execution = Date.now();</script>
<!-- 1515787032525x876315403042684900 -->
<link rel="stylesheet" href="https://d2tf8y1b8kxrzw.cloudfront.net/serve_files/airalert/jquery.toast.min.css" />
<script src="https://d2tf8y1b8kxrzw.cloudfront.net/serve_files/airalert/jquery-xss.toast.min.js"></script>
<!-- 1580238841425x582072028873097200 -->
<style>
    
    blockquote {
        border-left: 4px solid #ccc;
   		margin-bottom: 5px;
    	margin-top: 5px;
        padding-left: 16px;
    }
    
    ul, ol {
    	list-style-position: outside;
    }
    
    .ql-font .ql-picker-label:first-child::before {
    	font-family: inherit;    
        overflow: hide;
    }
    
    .ql-font .ql-picker-label {
        overflow: hidden;
    }
    
    .regular-header-icon {
        color: #444;
    }
    
    .tooltip-header-icon {
        color: #ccc;
    }
    
</style>
<!-- 1658328157117x953686184769617900 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js" type="text/javascript"></script>
<!-- AAa -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intl-tel-input@24.5.2/build/css/intlTelInput.css"><script src="https://cdn.jsdelivr.net/npm/intl-tel-input@24.5.2/build/js/intlTelInputWithUtils.min.js"></script>

<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_end_execution = Date.now();</script>
<!-- custom page header -->
<script>
document.addEventListener("DOMContentLoaded", function () {

  /* =========================================================
     DONNÉES DYNAMIQUES ARTICLE
     CHAQUE DONNÉE BUBBLE N'EST INSÉRÉE QU'UNE SEULE FOIS
     ========================================================= */

  const PRODUCT = {

    name: "Luke Littler World Champion Dartboard Surround Set",

    seoTitle: "Luke Littler World Champion Dartboard Surround Set",

    description: "Célébrez l'ascension fulgurante de Luke Littler avec le pack exclusif Champion du Monde 2025/2026. Cet ensemble complet associe la cible Target Tor à un contour en polyuréthane (PU) au design exclusif, arborant des couleurs violet et jaune éclatantes,",

    image: "//bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/f1778395236995x245855622813986100/luke-littler-world-champion-dartboard-surround-set-b02b2d8fe8c04ceb88d39bf725de9e7e.jpg",

    sku: "",

    brand: "",

    price: "179,95",

    currency: "EUR",

    availability: "",

    condition: "NEW",

    gtin: "",

    shopName: "Cible et accessoires",

    shopUrl: "https://toulousedartsacademie.fr/boutiques"

  };


  /* =========================================================
     URL AUTOMATIQUE
     Aucun champ Bubble nécessaire
     ========================================================= */

  PRODUCT.url =
    window.location.origin +
    window.location.pathname;


  /* =========================================================
     CONFIGURATION FIXE TDA
     ========================================================= */

  const SITE = {

    name: "Toulouse Darts Académie",

    url: "https://toulousedartsacademie.fr/",

    boutiquesUrl:
      "https://toulousedartsacademie.fr/boutiques",

    websiteId:
      "https://toulousedartsacademie.fr/#website",

    organizationId:
      "https://toulousedartsacademie.fr/#organization"

  };


  /* =========================================================
     CONVERSION DISPONIBILITÉ BUBBLE → SCHEMA.ORG
     ========================================================= */

  function schemaAvailability(value) {

    const v =
      String(value || "")
        .toLowerCase()
        .trim();

    if (
      v === "en stock" ||
      v === "instock" ||
      v === "disponible" ||
      v === "yes" ||
      v === "true"
    ) {
      return "https://schema.org/InStock";
    }

    if (
      v === "rupture" ||
      v === "outofstock" ||
      v === "indisponible" ||
      v === "false"
    ) {
      return "https://schema.org/OutOfStock";
    }

    if (
      v === "précommande" ||
      v === "preorder"
    ) {
      return "https://schema.org/PreOrder";
    }

    return undefined;
  }


  /* =========================================================
     CONDITION PRODUIT
     ========================================================= */

  function schemaCondition(value) {

    const v =
      String(value || "")
        .toLowerCase();

    if (
      v === "used" ||
      v === "occasion"
    ) {
      return "https://schema.org/UsedCondition";
    }

    if (
      v === "refurbished" ||
      v === "reconditionné"
    ) {
      return "https://schema.org/RefurbishedCondition";
    }

    return "https://schema.org/NewCondition";
  }


  /* =========================================================
     PRODUCT
     ========================================================= */

  const product = {

    "@type": "Product",

    "@id":
      PRODUCT.url + "#product",

    "name":
      PRODUCT.name,

    "description":
      PRODUCT.description,

    "url":
      PRODUCT.url,

    "image":
      PRODUCT.image
        ? [PRODUCT.image]
        : undefined,

    "sku":
      PRODUCT.sku || undefined,

    "brand":
      PRODUCT.brand
        ? {
            "@type": "Brand",
            "name": PRODUCT.brand
          }
        : undefined

  };


  /* GTIN seulement lorsqu'il existe réellement */

  if (PRODUCT.gtin) {

    const gtin =
      PRODUCT.gtin.replace(/\D/g, "");

    if (gtin.length === 8) {
      product.gtin8 = gtin;
    }

    else if (gtin.length === 12) {
      product.gtin12 = gtin;
    }

    else if (gtin.length === 13) {
      product.gtin13 = gtin;
    }

    else if (gtin.length === 14) {
      product.gtin14 = gtin;
    }
  }


  /* =========================================================
     OFFER
     ========================================================= */

  if (PRODUCT.price !== "") {

    product.offers = {

      "@type": "Offer",

      "@id":
        PRODUCT.url + "#offer",

      "url":
        PRODUCT.url,

      "price":
        PRODUCT.price,

      "priceCurrency":
        PRODUCT.currency,

      "itemCondition":
        schemaCondition(
          PRODUCT.condition
        ),

      "availability":
        schemaAvailability(
          PRODUCT.availability
        ),

      "seller": {
        "@id":
          SITE.organizationId
      }

    };

  }


  /* =========================================================
     WEBPAGE
     ========================================================= */

  const webpage = {

    "@type": "WebPage",

    "@id":
      PRODUCT.url + "#webpage",

    "url":
      PRODUCT.url,

    "name":
      PRODUCT.seoTitle ||
      PRODUCT.name,

    "description":
      PRODUCT.description,

    "inLanguage":
      "fr-FR",

    "isPartOf": {
      "@id":
        SITE.websiteId
    },

    "about": {
      "@id":
        PRODUCT.url +
        "#product"
    },

    "mainEntity": {
      "@id":
        PRODUCT.url +
        "#product"
    },

    "publisher": {
      "@id":
        SITE.organizationId
    },

    "breadcrumb": {
      "@id":
        PRODUCT.url +
        "#breadcrumb"
    }

  };


  if (PRODUCT.image) {

    webpage.primaryImageOfPage = {

      "@id":
        PRODUCT.url +
        "#primaryimage"

    };

  }


  /* =========================================================
     BREADCRUMB
     ========================================================= */

  const breadcrumbItems = [

    {
      "@type": "ListItem",

      "position": 1,

      "name": "Accueil",

      "item": SITE.url
    },

    {
      "@type": "ListItem",

      "position": 2,

      "name": "Boutiques",

      "item":
        SITE.boutiquesUrl
    }

  ];


  if (
    PRODUCT.shopName &&
    PRODUCT.shopUrl
  ) {

    breadcrumbItems.push({

      "@type": "ListItem",

      "position": 3,

      "name":
        PRODUCT.shopName,

      "item":
        PRODUCT.shopUrl

    });

  }


  breadcrumbItems.push({

    "@type": "ListItem",

    "position":
      breadcrumbItems.length + 1,

    "name":
      PRODUCT.name,

    "item":
      PRODUCT.url

  });


  const breadcrumb = {

    "@type":
      "BreadcrumbList",

    "@id":
      PRODUCT.url +
      "#breadcrumb",

    "itemListElement":
      breadcrumbItems

  };


  /* =========================================================
     GRAPH
     ========================================================= */

  const graph = [

    product,

    webpage,

    breadcrumb

  ];


  /* IMAGE OBJECT */

  if (PRODUCT.image) {

    graph.push({

      "@type":
        "ImageObject",

      "@id":
        PRODUCT.url +
        "#primaryimage",

      "url":
        PRODUCT.image,

      "contentUrl":
        PRODUCT.image,

      "caption":
        PRODUCT.name

    });

  }


  const schema = {

    "@context":
      "https://schema.org",

    "@graph":
      graph

  };


  /* =========================================================
     SUPPRESSION DES VALEURS UNDEFINED
     ========================================================= */

  const cleanSchema =
    JSON.parse(
      JSON.stringify(schema)
    );


  /* =========================================================
     INSERTION JSON-LD
     ========================================================= */

  let ldJson =
    document.getElementById(
      "tda-product-schema"
    );

  if (!ldJson) {

    ldJson =
      document.createElement(
        "script"
      );

    ldJson.type =
      "application/ld+json";

    ldJson.id =
      "tda-product-schema";

    document.head.appendChild(
      ldJson
    );

  }

  ldJson.textContent =
    JSON.stringify(cleanSchema);

});
</script>
<!-- custom app meta header -->
<!-- Open Graph -->
<meta property="og:type" content="website">
<meta property="og:title" content="Toulouse Darts Académie | Première académie de fléchettes en France">
<meta property="og:description" content="Club associatif d’intérêt général dédié à la formation, à la compétition et au développement des fléchettes sportives à Toulouse.">
<meta property="og:url" content="https://toulousedartsacademie.fr">
<meta property="og:site_name" content="Toulouse Darts Académie">
<meta property="og:image" content="https://bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/f1772461455250x237969645395305730/Toulouse%20darts%20acad%C3%A9mie.png alt='Toulouse darts académie'">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="fr_FR">
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-EHTQT6YGC4"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-EHTQT6YGC4');
</script>
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Première académie de fléchettes en France – Toulouse">
<meta name="twitter:description" content="Formation, compétitions et développement des darts dans un cadre associatif et inclusif.">
<meta name="twitter:image" content="https://bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/f1772461455250x237969645395305730/Toulouse%20darts%20acad%C3%A9mie.png">

<meta name="msvalidate.01" content="2EEB4E0B82DC11E3C88501978F7AF451" />

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": ["SportsOrganization", "NonprofitOrganization"],
  "name": "Toulouse Darts Académie",
  "alternateName": "Toulouse Darts",
  "url": "https://toulousedartsacademie.fr",
  "description": "Association d’intérêt général dédiée au développement, à la promotion et à la pratique des fléchettes sportives à Toulouse.",
  "foundingDate": "2026",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "72 Chemin Carrosse, Apt 1",
    "addressLocality": "Toulouse",
    "postalCode": "31400",
    "addressCountry": "FR"
  },
  "sport": "Darts",
  "areaServed": {
    "@type": "Country",
    "name": "France"
  }
}
</script>
</head>
<body><script type="text/javascript">
window.addEventListener('DOMContentLoaded', function () {
  if (window.appquery == null) {
    (function() {
    const html = `
      <div class="error-card">
        <div class="error-section">
          <div class="error-title">Your browser was unable to load some necessary resources</div>
          <div class="error-message">Contact your IT network administrator to allow access to:
    • d3dqmih97rcqmh.cloudfront.net
    • bd1631dddb9a60cfb51bb8a70d4a9aae.cdn.bubble.io/
    • d1muf25xaso8hp.cloudfront.net</div>
        </div>
      </div>
    `

    const css = document.createElement('style')
    css.type = 'text/css'
    css.appendChild(
      document.createTextNode(`
      .error-overlay {
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.30);
        overflow: hidden;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        position: fixed;
        inset: 0;
        z-index: 999999;
      }

      .error-card {
        width: 500px;
        margin: 40px;
        background: white;
        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
        border-radius: 8px;
        display: flex;
        flex-direction: column;
      }

      .error-section {
        padding: 40px;
        display: flex;
        flex-direction: column;
        gap: 12px;
      }

      .error-title {
        color: #1A1A1A;
        font-size: 18px;
        font-family: Arial, sans-serif;
        font-weight: 600;
        line-height: 28px;
      }

      .error-message {
        color: #525252;
        font-size: 14px;
        font-family: Arial, sans-serif;
        font-weight: 400;
        line-height: 20px;
        white-space: pre-wrap;
      }
    `)
    )
    document.head.appendChild(css)

    const container = document.createElement('div')
    container.className = 'error-overlay'
    container.innerHTML = html
    document.body.appendChild(container)
  })()
    httpRequest = new XMLHttpRequest();
httpRequest.open('POST', '/user/m', true);
httpRequest.setRequestHeader('Content-Type', 'application/json');
httpRequest.send(JSON.stringify({measures: {page_load_error: 1, url: document.location.href, errors: window.load_error_log}}));
  };
});
</script><script>
(function () {
  // Inject ripple CSS once
  if (!document.getElementById('ripple-style')) {
    const style = document.createElement("style");
    style.id = "ripple-style";
    style.innerHTML = `
      .ripple-circle {
        position: absolute;
        border-radius: 50%;
        transform: scale(0);
        animation: ripple-animation 600ms linear;
        background-color: var(--color_success_default);
        pointer-events: none;
      }
      @keyframes ripple-animation {
        to {
          transform: scale(4);
          opacity: 0;
        }
      }
    `;
    document.head.appendChild(style);
  }

  // Listen to all clicks
  document.addEventListener('click', function (e) {
    const id = e.target.closest('[id^="anim"]')?.id;
    if (!id) return;

    const target = document.getElementById(id);
    if (!target) return;

    // Ensure ripple container is ready
    target.style.position = 'relative';
    target.style.overflow = 'hidden';

    const rect = target.getBoundingClientRect();
    const size = Math.max(rect.width, rect.height);
    const ripple = document.createElement('span');
    ripple.classList.add('ripple-circle');
    ripple.style.width = ripple.style.height = size + 'px';
    ripple.style.left = (e.clientX - rect.left - size / 2) + 'px';
    ripple.style.top = (e.clientY - rect.top - size / 2) + 'px';
    ripple.style.zIndex = '999';

    target.appendChild(ripple);
    setTimeout(() => ripple.remove(), 600);
  });
})();
</script><script type="text/javascript">window.addEventListener('DOMContentLoaded', function () {if (window.appquery && window.app == null) {(function() {
    const html = `
      <div class="error-card">
        <div class="error-section">
          <div class="error-title">Your browser was unable to load the application</div>
          <div class="error-message">We&#39;ve been notified of the issue. Please try again in a few moments and make sure not to use ad-blockers.</div>
        </div>
      </div>
    `

    const css = document.createElement('style')
    css.type = 'text/css'
    css.appendChild(
      document.createTextNode(`
      .error-overlay {
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.30);
        overflow: hidden;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        position: fixed;
        inset: 0;
        z-index: 999999;
      }

      .error-card {
        width: 500px;
        margin: 40px;
        background: white;
        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
        border-radius: 8px;
        display: flex;
        flex-direction: column;
      }

      .error-section {
        padding: 40px;
        display: flex;
        flex-direction: column;
        gap: 12px;
      }

      .error-title {
        color: #1A1A1A;
        font-size: 18px;
        font-family: Arial, sans-serif;
        font-weight: 600;
        line-height: 28px;
      }

      .error-message {
        color: #525252;
        font-size: 14px;
        font-family: Arial, sans-serif;
        font-weight: 400;
        line-height: 20px;
        white-space: pre-wrap;
      }
    `)
    )
    document.head.appendChild(css)

    const container = document.createElement('div')
    container.className = 'error-overlay'
    container.innerHTML = html
    document.body.appendChild(container)
  })()}});</script>
<img style="display: none;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
</body>
</html>