1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <title>Lumitela</title> 7 <!-- The signed-in app shell. The backend also returns it (200) for any 8 unknown path, so it must never be indexed as a page of its own. --> 9 <meta name="robots" content="noindex" /> 10 <link rel="icon" type="image/svg+xml" href="/lumitela-mark.svg" /> 11
11<script> 12 // Pre-paint: ground colour before React mounts (no dark-mode flash). 13 // Default LIGHT always â OS preference never consulted (design.md). 14 // Honours a cached palette override's background.default (spec 15 // 2026-07-17) so an overridden ground can't flash the built-in first. 16 (function () { 17 var dark = false, ground = null; 18 try { dark = localStorage.getItem("lumitela.theme") === "dark"; } catch (e) {} 19 try { 20 var o = JSON.parse(localStorage.getItem("lumitela.theme-overrides") || "null"); 21 var m = o && o[dark ? "dark" : "light"]; 22 if (m && typeof m["background.default"] === "string") ground = m["background.default"]; 23 } catch (e) {} 24 document.documentElement.style.backgroundColor = ground || (dark ? "#1D1610" : "#F7F2E8"); 25 })(); 26 </script>
26 27 <!-- Umami (cloud) â tracks SPA route changes natively; data-domains keeps 28 dev/localhost out. SYNC POINT: same tag in landing.html and 29 scripts/docs/template.mjs. --> 30
30<script 31 defer 32 src="https://cloud.umami.is/script.js" 33 data-website-id="63105b75-fb3c-4aec-b93b-ec8c29d271df" 34 data-domains="lumitela.com,www.lumitela.com" 35 ></script>
35 36 <!-- Google tag (gtag.js) for Google Ads (AW-587773518). SYNC POINT: same 37 tag in index.html, landing.html and scripts/docs/template.mjs. The 38 signup conversion itself fires from src/lib/adsConversion.ts. -->
vendor: 68 bytes, lines 38-39
38 39 <script async src="https://www.googletagmanager.com/gtag/js?id=
39AW-587773518
vendor: 16 bytes, lines 39-40
39"></script> 40
40<script> 41
vendor: 145 bytes, lines 41-44
41window.dataLayer = window.dataLayer || []; 42 function gtag(){dataLayer.push(arguments);} 43 gtag('js', new Date()); 44 gtag('config', '
44AW-587773518
vendor: 8 bytes, lines 44-45
44'); 45
45</script>
45 46
46<script type="module" crossorigin src="/assets/main-DQNcH4zr.js"></script>
46 47 <link rel="modulepreload" crossorigin href="/assets/overrides-Q_fa2RnQ.js"> 48 <link rel="stylesheet" crossorigin href="/assets/overrides-B0O3th79.css"> 49 </head> 50 <body> 51 <div id="root"></div> 52
52<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"0e4c4f3d57644fd4bb37ba68cf15b62c","r":1,"spa":2}' crossorigin="anonymous"></script>
52 53</body> 54</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.