PageSourceSearch

https://eatcleanchicago.com/

html eatcleanchicago.com collected 2026-09-24 13:38:21 UTC 16,030 bytes, 203 lines download raw bytes

1<!doctype html>
2<html lang="en" data-beasties-container>
3<head>
4  <meta charset="utf-8">
5  <title>Eat Clean Chicago - Changing the way you eat, one meal at a time.</title>
6  <meta name="description" content="Changing the way you eat, one meal at a time.">
7  <meta name="keywords" content>
8  <base href="/">
9  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
10
11  <!-- Open Graph / Facebook -->
12  <meta property="og:type" content="website">
13  <meta property="og:site_name" content="Eat Clean Chicago">
14  <meta property="og:title" content="Eat Clean Chicago - Changing the way you eat, one meal at a time.">
15  <meta property="og:description" content="Changing the way you eat, one meal at a time.">
16  <meta property="og:image" content="https://happy-management-bucket.s3.amazonaws.com/tenants/tenant52/266/ecc-share-min-1773422052.png">
17
18  <!-- Twitter -->
19  <meta name="twitter:card" content="summary_large_image">
20  <meta name="twitter:title" content="Eat Clean Chicago - Changing the way you eat, one meal at a time.">
21  <meta name="twitter:description" content="Changing the way you eat, one meal at a time.">
22  <meta name="twitter:image" content="https://happy-management-bucket.s3.amazonaws.com/tenants/tenant52/266/ecc-share-min-1773422052.png">
23
24  <link rel="icon" type="image/png" href="https://happy-management-bucket.s3.amazonaws.com/tenants/tenant52/269/faviconv2-1773421516.png">
25
26  <!--
27    Preconnect to critical third-party origins (DNS + TLS handshake early).
28    Lighthouse recommends ≤4 preconnects — listed in priority order.
29    S3 origin is accessed via wsrv.nl CDN proxy so only wsrv.nl matters for images.
30  -->
31  <link rel="preconnect" href="https://fonts.googleapis.com">
32  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
33  <link rel="preconnect" href="https://wsrv.nl" crossorigin>
34  <link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
35  <!-- dns-prefetch only (no TLS) for less critical origins -->
36  <link rel="dns-prefetch" href="https://happy-management-bucket.s3.amazonaws.com">
37
38  <!-- Google Fonts loaded async to avoid render-blocking (was @import in styles.scss) -->
39  <link rel="preload" href="https://fonts.googleapis.com/css2?family=Allura&amp;family=Cormorant+Garamond:wght@500;600;700&amp;
39family=Playfair+Display:wght@500;600;700&amp;display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
40  <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Allura&family=Cormorant+Garamond:wght@500;600;700&family=Playfair+Display:wght@500;600;700&display=swap"></noscript>
41
42  <!-- Preload critical local fonts (WOFF2 — ~50KB each vs ~155KB TTF) to prevent FOUT on hard refresh -->
43  <link rel="preload" href="/assets/fonts/Poppins/Poppins-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
44  <link rel="preload" href="/assets/fonts/Poppins/Poppins-Medium.woff2" as="font" type="font/woff2" crossorigin="anonymous">
45  <link rel="preload" href="/assets/fonts/Poppins/Poppins-SemiBold.woff2" as="font" type="font/woff2" crossorigin="anonymous">
46  <link rel="preload" href="/assets/fonts/Poppins/Poppins-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous">
47
48  <!-- Font Awesome loaded async to avoid render-blocking -->
49  <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
50  <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"></noscript>
51<style>@font-face{font-family:Helvetica;src:local("Helvetica"),url("./media/Helvetica-L5QV36CN.woff2") format("woff2"),url("./media/Helvetica-ITLZU67G.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Helvetica;src:local("Helvetica Oblique"),local("Helvetica-Oblique"),url("./media/Helvetica-Oblique-5FZVUTG4.woff2") format("woff2"),url("./media/Helvetica-Oblique-TNVRDCCP.woff") format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Helvetica;src:local("Helvetica Bold Oblique"),local("Helvetica-BoldOblique"),url("./media/Helvetica-BoldOblique-WNENZM4W.woff2") format("woff2"),url("./media/Helvetica-BoldOblique-SYNB2XYY.woff") format("woff");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Helvetica;src:local("Helvetica Light"),local("Helvetica-Light"),url("./media/Helvetica-Light-EM6GKDOG.woff2") format("woff2"),url("./media/Helvetica-Light-RI34VUPG.woff") format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Helvetica;src:local("Helvetica Bold"),local("Helvetica-Bold"),url("./media/Helvetica-Bold-QUY6WUNW.woff2") format("woff2"),url("./media/Helvetica-Bold-EHPXNHAD.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Helvetica;src:local("Helvetica Light Oblique"),local("Helvetica-LightOblique"),url("./media/Helvetica-LightOblique-MNR7LXDQ.woff2") format("woff2"),url("./media/Helvetica-LightOblique-U7ENJJVV.woff") format("woff");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-Regular-FMYECYQ6.woff2") format("woff2"),url("./media/Poppins-Regular-JNHL4IDV.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-Italic-3OF7FTIW.woff2") format("woff2"),url("./media/Poppins-Italic-WLX3LTPH.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-Light-RLIPIOZ7.woff2") format("woff2"),url("./media/Poppins-Light-RMQAEPUP.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-LightItalic-POXDCG3Y.woff2") format("woff2"),url("./media/Poppins-LightItalic-VTL7PH46.ttf") format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-Medium-GSMFCECS.woff2") format("woff2"),url("./media/Poppins-Medium-UUWQX4EV.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-MediumItalic-XLUQ7PEA.woff2") format("woff2"),url("./media/Poppins-MediumItalic-GSTDJYPJ.ttf") format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-SemiBold-XW7OMJFY.woff2") format("woff2"),url("./media/Poppins-SemiBold-TBISX6G2.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-SemiBoldItalic-NGIK3XXZ.woff2") format("woff2"),url("./media/Poppins-SemiBoldItalic-KATDLEJV.ttf") format("truetype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-Bold-QNQ7VQ2H.woff2") format("woff2"),url("./media/Poppins-Bold-QAA2AGZS.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-BoldItalic-DKKNES3Q.woff2") format("woff2"),url("./media/Poppins-BoldItalic-DIK4LTR6.ttf") format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Poppins;
51src:url("./media/Poppins-ExtraBold-B2OVMRHE.woff2") format("woff2"),url("./media/Poppins-ExtraBold-OVZKTNJI.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-ExtraBoldItalic-YJEHX3JT.woff2") format("woff2"),url("./media/Poppins-ExtraBoldItalic-SZLJQHPN.ttf") format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-Black-BPN4KQWY.woff2") format("woff2"),url("./media/Poppins-Black-U4YX6GHD.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-BlackItalic-DVWAALY4.woff2") format("woff2"),url("./media/Poppins-BlackItalic-A4MUAHEW.ttf") format("truetype");font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-ExtraLight-TM2XMBHF.woff2") format("woff2"),url("./media/Poppins-ExtraLight-SEBPXBAV.ttf") format("truetype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-ExtraLightItalic-24LLOOKM.woff2") format("woff2"),url("./media/Poppins-ExtraLightItalic-FTSQIRMY.ttf") format("truetype");font-weight:200;font-style:italic;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-Thin-LHUXUIZL.woff2") format("woff2"),url("./media/Poppins-Thin-MBJSJ55P.ttf") format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url("./media/Poppins-ThinItalic-DATA73QQ.woff2") format("woff2"),url("./media/Poppins-ThinItalic-56ERCFD6.ttf") format("truetype");font-weight:100;font-style:italic;font-display:swap}:root{--primary:#EA432C;--primary-hover:#c0392b;--primary-light:#fff2f2;--btn-primary:var(--primary);--btn-primary-hover:var(--primary-hover);--secondary:#6c757d;--secondary-hover:#5a6268;--secondary-light:#f8f9fa;--success:#31d376;--danger:#ff4d4d;--warning:#ffb700;--info:#3b82f6;--white:#ffffff;--black:#000000;--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#495057;--gray-800:#343a40;--gray-900:#212529;--page-bg:#ffffff;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:9999px;--font-family-sans:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-title:"Poppins", sans-serif;--font-subtitle:"Poppins", sans-serif;--font-body:"Poppins", sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:30px;--shadow-sm:0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg:0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--transition-fast:.15s ease-in-out;--transition-base:.3s ease-in-out;--scrollbar-size:6px;--scrollbar-track:var(--gray-100);--scrollbar-thumb:var(--primary);--scrollbar-thumb-hover:var(--primary-hover);--scrollbar-radius:3px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{touch-action:manipulation}body{font-family:var(--font-body);background-color:var(--page-bg);color:var(--gray-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%;min-height:100vh}button{font-family:inherit}@media(max-width:768px){body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}button{min-height:44px;min-width:44px}*{-webkit-overflow-scrolling:touch}}</style><link rel="stylesheet" href="styles-ZCS6JHHK.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-ZCS6JHHK.css"></noscript></head>
52<body>
53  <!-- Tenant config must load before Angular bundles (blocking, from public/). -->
54  
54<script src="runtime-config.js"></script>
54
55
56  <style>
57    #app-boot-fallback {
58      align-items: center;
59      background: #ffffff;
60      color: #1a1a1a;
61      display: flex;
62      flex-direction: column;
63      font-family: Arial, sans-serif;
64      gap: 16px;
65      inset: 0;
66      justify-content: center;
67      padding: 24px;
68      position: fixed;
69      text-align: center;
70      z-index: 9999;
71    }
72
73    #app-boot-fallback[hidden] {
74      display: none;
75    }
76
77    #app-boot-fallback button {
78      background: #333333;
79      border: 0;
80      border-radius: 8px;
81      color: #fff;
82      cursor: pointer;
83      font-size: 16px;
84      padding: 12px 20px;
85    }
86  </style>
87
88  <div id="app-boot-fallback" hidden>
89    <p data-boot-message>Still loading...</p>
90    <button type="button" onclick="window.location.reload()">Reload page</button>
91  </div>
92
93  <app-root></app-root>
94
95  
95<script>
96    (function () {
97      var CHUNK_RELOAD_STORAGE_KEY = 'hmp_chunk_reload_attempted';
98      var fallback = document.getElementById('app-boot-fallback');
99      var messageEl = fallback.querySelector('[data-boot-message]');
100
101      function showFallback(message) {
102        if (messageEl) {
103          messageEl.textContent = message;
104        }
105
106        fallback.hidden = false;
107      }
108
109      function isUnsupportedBrowser() {
110        var ua = navigator.userAgent;
111        return /MSIE\s|Trident\/|MSIE\d/.test(ua);
112      }
113
114      function isChunkLoadMessage(message) {
115        if (!message) {
116          return false;
117        }
118
119        var lower = String(message).toLowerCase();
120        return lower.indexOf('failed to load module script') !== -1 ||
121          lower.indexOf('loading chunk') !== -1 ||
122          lower.indexOf('mime type') !== -1 ||
123          lower.indexOf('failed to fetch dynamically imported module') !== -1;
124      }
125
126      function reloadOnceForChunkError() {
127        try {
128          if (sessionStorage.getItem(CHUNK_RELOAD_STORAGE_KEY) === 'true') {
129            showFallback(
130              'We could not load the latest version. Please hard refresh (Ctrl+F5) or clear your browser cache, then try again.'
131            );
132            return;
133          }
134
135          sessionStorage.setItem(CHUNK_RELOAD_STORAGE_KEY, 'true');
136          window.location.reload();
137        } catch (error) {
138          window.location.reload();
139        }
140      }
141
142      function isSameOriginScriptTarget(target) {
143        if (!target || target.tagName !== 'SCRIPT' || !target.src) {
144          return false;
145        }
146
147        try {
148          var scriptUrl = new URL(target.src, window.location.href);
149          return scriptUrl.origin === window.location.origin;
150        } catch (error) {
151          return true;
152        }
153      }
154
155      if (isUnsupportedBrowser()) {
156        showFallback(
157          'This browser is not supported. Please use a current version of Chrome, Firefox, Safari, or Edge.'
158        );
159        return;
160      }
161
162      window.addEventListener('error', function (event) {
163        if (isChunkLoadMessage(event.message)) {
164          reloadOnceForChunkError();
165          return;
166        }
167
168        if (isSameOriginScriptTarget(event.target)) {
169          reloadOnceForChunkError();
170        }
171      }, true);
172
173      window.addEventListener('unhandledrejection', function (event) {
174        var reason = event.reason;
175        var message = reason && reason.message ? reason.message : 
175String(reason || '');
176
177        if (isChunkLoadMessage(message)) {
178          reloadOnceForChunkError();
179        }
180      });
181
182      var bootTimer = window.setTimeout(function () {
183        var appRoot = document.querySelector('app-root');
184
185        if (!appRoot || !appRoot.children.length) {
186          showFallback('Still loading...');
187        }
188      }, 25000);
189
190      window.addEventListener('app-bootstrapped', function () {
191        window.clearTimeout(bootTimer);
192        fallback.hidden = true;
193
194        try {
195          sessionStorage.removeItem(CHUNK_RELOAD_STORAGE_KEY);
196        } catch (error) {
197          // Ignore storage errors in private browsing modes.
198        }
199      });
200    })();
201  </script>
201
202<link rel="modulepreload" href="chunk-EK6K46QA.js"><link rel="modulepreload" href="chunk-6YIYMUXP.js"><link rel="modulepreload" href="chunk-QODTGSN5.js"><link rel="modulepreload" href="chunk-RQPB2DNY.js"><link rel="modulepreload" href="chunk-WVFVJA36.js"><link rel="modulepreload" href="chunk-BWDQI4XG.js"><link rel="modulepreload" href="chunk-7DLZNXJY.js"><link rel="modulepreload" href="chunk-65C56LPO.js"><link rel="modulepreload" href="chunk-336NVX74.js"><link rel="modulepreload" href="chunk-3NDRJOCT.js">
202<script src="main-HRYF5M3T.js" type="module"></script>
202</body>
203</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.