1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 4-5
4 5 <script async src="https://www.googletagmanager.com/gtag/js?id=
5G-MGFF0K8FF5
vendor: 16 bytes, lines 5-6
5"></script> 6
6<script> 7
vendor: 146 bytes, lines 7-11
7window.dataLayer = window.dataLayer || []; 8 function gtag(){dataLayer.push(arguments);} 9 gtag('js', new Date()); 10 11 gtag('config', '
11G-MGFF0K8FF5
vendor: 8 bytes, lines 11-12
11'); 12
12</script>
12 13 <meta charset="UTF-8" /> 14<!-- This site is hosted on Netlify. Anyone can build and deploy a site 15 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=353830f6-bd26-4550-ad22-23120aa7ebef 16 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --> 17 <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 18 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 19 <title>ECO-STAR North Innovation Methodology</title> 20
20<script src="https://cdn.tailwindcss.com"></script>
20 21 22 <!-- Quill.js Rich Text Editor --> 23 <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet"> 24
24<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
24 25 26 <!-- JSZip for creating zip files --> 27
27<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
27 28 <!-- FileSaver.js for saving files --> 29
29<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.0/FileSaver.min.js"></script>
29 30 31 <style> 32 /* For custom scrollbar styling - Light Theme */ 33 ::-webkit-scrollbar { 34 width: 8px; 35 } 36 ::-webkit-scrollbar-track { 37 background: #f1f5f9; /* slate-100 */ 38 } 39 ::-webkit-scrollbar-thumb { 40 background: #cbd5e1; /* slate-300 */ 41 border-radius: 4px; 42 } 43 ::-webkit-scrollbar-thumb:hover { 44 background: #94a3b8; /* slate-400 */ 45 } 46 47 /* Custom prose styles for professional spacing - Light Theme adjustments */ 48 .prose { 49 color: #334155 !important; /* slate-700 */ 50 } 51 .prose strong { 52 color: #0f172a !important; /* slate-900 */ 53 } 54 .prose a { 55 color: #0284c7 !important; /* sky-600 */ 56 text-decoration: underline; 57 } 58 .prose p { 59 margin-top: 1.5rem !important; 60 margin-bottom: 1.5rem !important; 61 line-height: 1.8 !important; 62 } 63 .prose blockquote { 64 font-size: 1.25em !important; 65 margin-top: 2.5rem !important; 66 margin-bottom: 2.5rem !important; 67 color: #475569 !important; /* slate-600 */ 68 border-left-width: 4px !important; 69 font-style: italic; 70 background: #f8fafc; /* slate-50 */ 71 padding: 1.5rem 2rem !important; 72 border-radius: 0 0.5rem 0.5rem 0; 73 } 74 /* Custom styles for manifesto headings */ 75 .prose h1, .prose h2, .prose h3, .prose h4 { 76 color: #1e293b !important; /* slate-800 */ 77 font-weight: 700 !important; 78 } 79 .prose h3 { 80 margin-top: 3rem !important; 81 margin-bottom: 1.25rem !important; 82 font-size: 1.5em !important; 83 letter-spacing: -0.025em !important; 84 } 85 /* Custom styles for manifesto list items */ 86 .prose ul { 87 list-style-type: disc !important; 88 padding-left: 2rem !important; 89 } 90 .prose ul > li { 91 margin-top: 0.5rem !important; 92 margin-bottom: 0.5rem !important; 93 padding-left: 0.5rem !important; 94 } 95 .prose ul > li::marker { 96 color: #94a3b8; /* slate-400 */ 97 } 98 99 /* Remove extra margins to prevent double-spacing */ 100 .prose > :first-child { 101 margin-top: 0 !important; 102 } 103 .prose > :last-child { 104 margin-bottom: 0 !important; 105 } 106 107 /* Blockquote border colors to match article themes - Darker shades for light mode */ 108 .prose-cyan blockquote { border-left-color: #06b6d4 !important; background: #ecfeff !important; } 109 .prose-rose blockquote { border-left-color: #f43f5e !important; background: #fff1f2 !important; } 110 .prose-amber blockquote { border-left-color: #d97706 !important; background: #fffbeb !important; } 111 .prose-indigo blockquote { border-left-color: #6366f1 !important; background: #eef2ff !important; } 112 .prose-lime blockquote { border-left-color: #84cc16 !important; background: #f7fee7 !important; } 113 .prose-teal blockquote { border-left-color: #14b8a6 !important; background: #f0fdfa !important; } 114 .prose-orange blockquote { border-left-color: #f97316 !important; background: #fff7ed !important; } 115 .prose-yellow blockquote { border-left-color: #eab308 !important; background: #fefce8 !important; } 116 .prose-pink blockquote { border-left-color: #ec4899 !important; background: #fdf2f8 !important; } 117 .prose-violet blockquote { border-left-color: #8b5cf6 !important; background: #f5f3ff !important; } 118 .prose-red blockquote { border-left-color: #ef4444 !important; background: #fef2f2 !important; } 119 .prose-emerald blockquote { border-left-color: #10b981 !important; background: #ecfdf5 !important; } 120 121 122 /* Custom heading colors to match article themes - Darker/Rich colors for light mode */ 123 .prose-teal h3 { color: #0f766e !important; } /* teal-700 */ 124 .prose-cyan h3 { color: #0e7490 !important; } /* cyan-700 */ 125 .prose-rose h3 { color: #be123c !important; } /* rose-700 */ 126 .prose-amber h3 { color: #b45309 !important; } /* amber-700 */ 127 .prose-indigo h3 { color: #4338ca !important; } /* indigo-700 */ 128 .prose-lime h3 { color: #4d7c0f !important; } /* lime-700 */ 129 .prose-fuchsia h3 { color: #a21caf !important; } /* fuchsia-700 */ 130 .prose-sky h3 { color: #0369a1 !important; } /* sky-700 */ 131 .prose-purple h3 { color: #7e22ce !important; } /* purple-700 */ 132 .prose-green h3 { color: #15803d !important; } /* green-700 */ 133 .prose-slate h3 { color: #334155 !important; } /* slate-700 */ 134 .prose-orange h3 { color: #c2410c !important; } /* orange-700 */ 135 .prose-yellow h3 { color: #a16207 !important; } /* yellow-700 */ 136 .prose-pink h3 { color: #be185d !important; } /* pink-700 */ 137 .prose-violet h3 { color: #6d28d9 !important; } /* violet-700 */ 138 .prose-red h3 { color: #b91c1c !important; } /* red-700 */ 139 .prose-emerald h3 { color: #047857 !important; } /* emerald-700 */ 140 141 /* Animation for a graceful page load */ 142 @keyframes fadeIn { 143 from { opacity: 0; transform: translateY(10px); } 144 to { opacity: 1; transform: translateY(0); } 145 } 146 .animate-fade-in { 147 animation: fadeIn 0.8s ease-out forwards; 148 } 149 150 /* Custom styles for Quill editor - Light Theme */ 151 .ql-toolbar { 152 background-color: #f8fafc; /* slate-50 */ 153 border-color: #cbd5e1 !important; /* slate-300 */ 154 border-top-left-radius: 0.5rem; 155 border-top-right-radius: 0.5rem; 156 } 157 .ql-toolbar .ql-stroke { stroke: #475569; } 158 .ql-toolbar .ql-fill { fill: #475569; } 159 .ql-toolbar .ql-picker-label { color: #475569; } 160 .ql-container { 161 border-color: #cbd5e1 !important; /* slate-300 */ 162 border-bottom-left-radius: 0.5rem; 163 border-bottom-right-radius: 0.5rem; 164 background-color: #ffffff; 165 } 166 .ql-editor { 167 height: 250px !important; 168 overflow-y: auto !important; 169 background-color: #ffffff; /* white */ 170 color: #334155; /* slate-700 */ 171 font-family: inherit; 172 font-size: 1rem; 173 } 174 .ql-editor.ql-blank::before { 175 color: #94a3b8; /* slate-400 */ 176 font-style: normal; 177 } 178 </style> 179 180<link rel="stylesheet" href="/index.css"> 181
181<script type="importmap"> 182{ 183 "imports": { 184 "react/": "https://aistudiocdn.com/react@^19.2.0/", 185 "react": "https://aistudiocdn.com/react@^19.2.0", 186 "react-dom/": "https://aistudiocdn.com/react-dom@^19.2.0/", 187 "@google/genai": "https://aistudiocdn.com/@google/genai@^1.27.0", 188 "@supabase/supabase-js": "https://cdn.jsdelivr.net/npm/@supabase/[email protected]/+esm" 189 } 190} 191</script>
191 192
192<script type="module" crossorigin src="/assets/index-8YpX2PMV.js"></script>
192 193</head> 194 <body class="bg-slate-50 text-slate-600 antialiased"> 195 <div id="root"></div> 196 </body> 197</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.