PageSourceSearch

https://testprepgpt.ai/

html testprepgpt.ai collected 2026-10-05 14:24:02 UTC 67,662 bytes, 648 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head>
2    <meta charset="utf-8">
3    <!-- Domain split: must run before any other resources (portal host → student/partner portal paths). -->
4    
4<script>
5      (function () {
6        var portalRoots = ['studyabroad.center'];
7        var portalSite = 'https://studyabroad.center';
8        var legacyPortalHosts = {
9          'canameducation.co.in': 1,
10          'www.canameducation.co.in': 1,
11          'languagescoaching.center': 1,
12          'www.languagescoaching.center': 1
13        };
14        function isPortalHost(host) {
15          if (legacyPortalHosts[host]) return true;
16          for (var i = 0; i < portalRoots.length; i++) {
17            var portalRoot = portalRoots[i];
18            if (
19              host === portalRoot ||
20              host === 'www.' + portalRoot ||
21              host.slice(-(portalRoot.length + 1)) === '.' + portalRoot
22            ) {
23              return true;
24            }
25          }
26          return false;
27        }
28        function extractPartnerSlug(host) {
29          for (var i = 0; i < portalRoots.length; i++) {
30            var root = portalRoots[i];
31            if (host === root || host === 'www.' + root) return null;
32            var suffix = '.' + root;
33            if (host.length > suffix.length && host.slice(-suffix.length) === suffix) {
34              var sub = host.slice(0, -suffix.length);
35              if (sub && sub !== 'www' && sub.indexOf('.') === -1) return sub;
36            }
37          }
38          return null;
39        }
40        function mapPartnerSubdomainPath(slug, path) {
41          if (path === '/p' || path.indexOf('/p/') === 0) return null;
42          if (path === '/student-portal' || path.indexOf('/student-portal/') === 0) return null;
43          if (path === '/partner-live-admin' || path.indexOf('/partner-live-admin/') === 0) return null;
44          if (path === '/live-class-marketing-admin' || path.indexOf('/live-class-marketing-admin/') === 0) return null;
45          if (path === '/become-a-partner' || path.indexOf('/become-a-partner/') === 0) return null;
46          if (path === '/prep-lab' || path.indexOf('/prep-lab/') === 0) return null;
47          if (path === '/prep-lab-admin' || path.indexOf('/prep-lab-admin/') === 0) return null;
48          if (path === '/checkout' || path.indexOf('/checkout/') === 0) return null;
49          if (path === '/auth' || path.indexOf('/auth/') === 0) return null;
50          if (path === '/') return '/p/' + slug;
51          if (path === '/login' || path.indexOf('/login/') === 0) return '/p/' + slug + path;
52          if (path === '/student-login' || path.indexOf('/student-login') === 0) return '/p/' + slug + path;
53          if (path === '/registration-thank-you' || path.indexOf('/registration-thank-you/') === 0) {
54            return '/p/' + slug + path;
55          }
56          return null;
57        }
58        function legacyPartnerPathRedirect(host, path, qs) {
59          for (var i = 0; i < portalRoots.length; i++) {
60            var root = portalRoots[i];
61            if (host !== root && host !== 'www.' + root) continue;
62            if (path === '/' || path.indexOf('/student-portal') === 0 || path.indexOf('/partner-live-admin') === 0 ||
63                path.indexOf('/live-class-marketing-admin') === 0 || path === '/p' || path.indexOf('/p/') === 0 ||
64                path === '/become-a-partner' || path.indexOf('/become-a-partner/') === 0 ||
65                path === '/prep-lab' || path.indexOf('/prep-lab/') === 0 ||
66                path === '/prep-lab-admin' || path.indexOf('/prep-lab-admin/') === 0 ||
67                path === '/checkout' || path.indexOf('/checkout/') === 0) return null;
68            var m = path.match(/^\/([a-z0-9-]+)$/);
69            if (m) return 'https://' + m[1] + '.' + root + qs;
70          }
71          return null;
72        }
73        var host = (window.location.hostname || '').toLowerCase();
74        var path = window.location.pathname || '/';
75        if (path.charAt(0) !== '/') path = '/' + path;
76        path = path.replace(/\/+$/, '') || '/';
77        var qs = window.location.search || '';
78        var isLocal = host === 'localhost' || host === '127.0.0.1';
79        var prepLabSite = 'https://canameducation.info';
80        var isPrepLabHost = host === 'canameducation.info' || host === 'www.canameducation.info';
81        var isPrepLabPath =
82          path === '/prep-lab' || path.indexOf('/prep-lab/') === 0 ||
83          path === '/prep-lab-admin' || path.indexOf('/prep-lab-admin/') === 0;
84        if (!isLocal && isPrepLabHost && !isPrepLabPath) {
85          document.documentElement.setAttribute('data-portal-redirect', 'pending');
86          window.location.replace(prepLabSite + '/prep-lab' + qs);
87          return;
88        }
89        if (!isLocal && isPrepLabPath && !isPrepLabHost) {
90          document.documentElement.setAttribute('data-portal-redirect', 'pending');
91          window.location.replace(prepLabSite + path + qs);
92          return;
93        }
94        if (!isLocal && legacyPortalHosts[host]) {
95          document.documentElement.setAttribute('data-portal-redirect', 'pending');
96          window.location.replace(portalSite + path + qs);
97          return;
98        }
99        var partnerSlug = extractPartnerSlug(host);
100        if (!isLocal && partnerSlug) {
101          var mappedPath = mapPartnerSubdomainPath(partnerSlug, path);
102          if (mappedPath) {
103            document.documentElement.setAttribute('data-portal-redirect', 'pending');
104            window.location.replace(window.location.protocol + '//' + host + mappedPath + qs);
105            return;
106          }
107        }
108        var legacyPartnerUrl = legacyPartnerPathRedirect(host, path, qs);
109        if (!isLocal && legacyPartnerUrl) {
110          document.documentElement.setAttribute('data-portal-redirect', 'pending');
111          window.location.replace(legacyPartnerUrl);
112          return;
113        }
114        var onPortal = isPortalHost(host);
115        var isPortalPath =
116          path === '/student-portal' || path.indexOf('/student-portal/') === 0 ||
117          path === '/partner-live-admin' || path.indexOf('/partner-live-admin/') === 0 ||
118          path === '/live-class-marketing-admin' || path.indexOf('/live-class-marketing-admin/') === 0 ||
119          path === '/p' || path.indexOf('/p/') === 0 ||
120          path === '/auth' || path.indexOf('/auth/') === 0;
121        var isMarketingPath = path === '/become-a-partner' || path.indexOf('/become-a-partner/') === 0;
122        if (!isLocal && onPortal && !isPortalPath && !isMarketingPath && !partnerSlug) {
123          document.documentElement.setAttribute('data-portal-redirect', 'pending');
124          var portalLanding = '/become-a-partner';
125          var target = portalSite + (path === '/' ? portalLanding : '/student-portal') + qs;
126          window.location.replace(target);
127        }
128      })();
129    </script>
129
130    <style>html[data-portal-redirect="pending"] body { visibility: hidden; }</style>
131    <title>Testprep GPT | IELTS Practice Test</title>
132
133    <!-- Primary Meta Tags -->
134    <meta name="description" content="Boost your IELTS score with TestprepGPT! Get AI-powered study tool, free mock tests &amp; expert guidance. Start your personalized IELTS prep today!">
135    <meta name="keywords" content="AI-Powered IELTS Practice Tests, AI-based IELTS prep, free IELTS mock tests, IELTS practice tests, online IELTS preparation, IELTS practice with AI">
136    <meta name="author" content="TestprepGPT">
137    <meta name="robots" content="index, follow">
138    <meta name="googlebot" content="index, follow">
139    <meta name="theme-color" content="#4F46E5">
140
141    <!-- Canonical URL: defaults for /; inline script below sets path before Angular loads (crawler-safe) -->
142    <link rel="canonical" href="https://testprepgpt.ai/" id="canonical-url">
143
144    <!-- Open Graph -->
145    <meta property="og:type" content="website">
146    <meta property="og:site_name" content="TestprepGPT">
147    <meta property="og:title" content="Testprep GPT | IELTS Practice Test">
148    <meta property="og:description" content="Boost your IELTS score with TestprepGPT! Get AI-powered study tool, free mock tests &amp; expert guidance. Start your personalized IELTS prep today!">
149    <meta property="og:image" content="https://testprepgpt.ai/assets/images/gpt-og.png" id="og-image">
150    <meta property="og:image:width" content="1200" id="og-image-width">
151    <meta property="og:image:height" content="630" id="og-image-height">
152    <meta property="og:image:alt" content="TestprepGPT" id="og-image-alt">
153    <meta property="og:url" content="https://testprepgpt.ai/" id="og-url">
154    
154<script>
155      (function () {
156        var portalRoots = ['studyabroad.center'];
157        var portalSite = 'https://studyabroad.center';
158        var legacyPortalHosts = {
159          'canameducation.co.in': 1,
160          'www.canameducation.co.in': 1,
161          'languagescoaching.center': 1,
162          'www.languagescoaching.center': 1
163        };
164        function isPortalHost(host) {
165          if (legacyPortalHosts[host]) return true;
166          for (var i = 0; i < portalRoots.length; i++) {
167            var portalRoot = portalRoots[i];
168            if (
169              host === portalRoot ||
170              host === 'www.' + portalRoot ||
171              host.slice(-(portalRoot.length + 1)) === '.' + portalRoot
172            ) {
173              return true;
174            }
175          }
176          return false;
177        }
178        function extractPartnerSlug(host) {
179          for (var i = 0; i < portalRoots.length; i++) {
180            var root = portalRoots[i];
181            if (host === root || host === 'www.' + root) return null;
182            var suffix = '.' + root;
183            if (host.length > suffix.length && host.slice(-suffix.length) === suffix) {
184              var sub = host.slice(0, -suffix.length);
185              if (sub && sub !== 'www' && sub.indexOf('.') === -1) return sub;
186            }
187          }
188          return null;
189        }
190        function mapPartnerSubdomainPath(slug, path) {
191          if (path === '/p' || path.indexOf('/p/') === 0) return null;
192          if (path === '/student-portal' || path.indexOf('/student-portal/') === 0) return null;
193          if (path === '/partner-live-admin' || path.indexOf('/partner-live-admin/') === 0) return null;
194          if (path === '/live-class-marketing-admin' || path.indexOf('/live-class-marketing-admin/') === 0) return null;
195          if (path === '/become-a-partner' || path.indexOf('/become-a-partner/') === 0) return null;
196          if (path === '/prep-lab' || path.indexOf('/prep-lab/') === 0) return null;
197          if (path === '/prep-lab-admin' || path.indexOf('/prep-lab-admin/') === 0) return null;
198          if (path === '/checkout' || path.indexOf('/checkout/') === 0) return null;
199          if (path === '/auth' || path.indexOf('/auth/') === 0) return null;
200          if (path === '/') return '/p/' + slug;
201          if (path === '/login' || path.indexOf('/login/') === 0) return '/p/' + slug + path;
202          if (path === '/student-login' || path.indexOf('/student-login') === 0) return '/p/' + slug + path;
203          if (path === '/registration-thank-you' || path.indexOf('/registration-thank-you/') === 0) {
204            return '/p/' + slug + path;
205          }
206          return null;
207        }
208        function legacyPartnerPathRedirect(host, path, qs) {
209          for (var i = 0; i < portalRoots.length; i++) {
210            var root = portalRoots[i];
211            if (host !== root && host !== 'www.' + root) continue;
212            if (path === '/' || path.indexOf('/student-portal') === 0 || path.indexOf('/partner-live-admin') === 0 ||
213                path.indexOf('/live-class-marketing-admin') === 0 || path === '/p' || path.indexOf('/p/') === 0 ||
214                path === '/become-a-partner' || path.indexOf('/become-a-partner/') === 0 ||
215                path === '/prep-lab' || path.indexOf('/prep-lab/') === 0 ||
216                path === '/prep-lab-admin' || path.indexOf('/prep-lab-admin/') === 0 ||
217                path === '/checkout' || path.indexOf('/checkout/') === 0) return null;
218            var m = path.match(/^\/([a-z0-9-]+)$/);
219            if (m) return 'https://' + m[1] + '.' + root + qs;
220          }
221          return null;
222        }
223        var mainSite = 'https://testprepgpt.ai';
224        var prepLabSite = 'https://canameducation.info';
225        var host = (window.location.hostname || '').toLowerCase();
226        var path = window.location.pathname || '/';
227        if (path.charAt(0) !== '/') path = '/' + path;
228        path = path.replace(/\/+$/, '') || '/';
229        var qs = window.location.search || '';
230        var isLocal = host === 'localhost' || host === '127.0.0.1';
231        var isPrepLabHost = host === 'canameducation.info' || host === 'www.canameducation.info';
232        var isPrepLabPath =
233          path === '/prep-lab' || path.indexOf('/prep-lab/') === 0 ||
234          path === '/prep-lab-admin' || path.indexOf('/prep-lab-admin/') === 0;
235        var partnerSlug = extractPartnerSlug(host);
236        var onPortal = isPortalHost(host);
237        var isPortalPath =
238          path === '/student-portal' || path.indexOf('/student-portal/') === 0 ||
239          path === '/partner-live-admin' || path.indexOf('/partner-live-admin/') === 0 ||
240          path === '/live-class-marketing-admin' || path.indexOf('/live-class-marketing-admin/') === 0 ||
241          path === '/p' || path.indexOf('/p/') === 0 ||
242          path === '/auth' || path.indexOf('/auth/') === 0;
243        var isMarketingPath = path === '/become-a-partner' || path.indexOf('/become-a-partner/') === 0;
244        if (!isLocal) {
245          if (isPrepLabHost && !isPrepLabPath) {
246            window.location.replace(prepLabSite + '/prep-lab' + qs);
247            return;
248          }
249          if (isPrepLabPath && !isPrepLabHost) {
250            window.location.replace(prepLabSite + path + qs);
251            return;
252          }
253          if (legacyPortalHosts[host]) {
254            window.location.replace(portalSite + path + qs);
255            return;
256          }
257          if (partnerSlug) {
258            var mappedPath = mapPartnerSubdomainPath(partnerSlug, path);
259            if (mappedPath) {
260              window.location.replace(window.location.protocol + '//' + host + mappedPath + qs);
261              return;
262            }
263          }
264          var legacyPartnerUrl = legacyPartnerPathRedirect(host, path, qs);
265          if (legacyPartnerUrl) {
266            window.location.replace(legacyPartnerUrl);
267            return;
268          }
269          if (onPortal && !isPortalPath && !isMarketingPath && !partnerSlug) {
270            var portalLanding = '/become-a-partner';
271            window.location.replace(portalSite + (path === '/' ? portalLanding : '/student-portal') + qs);
272            return;
273          }
274          if (
275            isPortalPath &&
276            (host === 'testprepgpt.ai' || host === 'www.testprepgpt.ai' ||
277              host.indexOf('.web.app') !== -1 || host.indexOf('.firebaseapp.com') !== -1)
278          ) {
279            window.location.replace(portalSite + path + qs);
280            return;
281          }
282        }
283        var base = isPrepLabHost || isPrepLabPath
284          ? prepLabSite
285          : (partnerSlug
286          ? (window.location.protocol + '//' + host)
287          : (onPortal ? portalSite : mainSite));
288        var href = base + (path === '/' ? '/' : path);
289        var link = document.getElementById('canonical-url');
290        if (link) link.setAttribute('href', href);
291        var og = document.getElementById('og-url');
292        if (og) og.setAttribute('content', href);
293      })();
294    </script>
294
295
296    <!-- Twitter Card -->
297    <meta name="twitter:card" content="summary_large_image" id="twitter-card">
298    <meta name="twitter:site" content="@testprepgpt">
299    <meta name="twitter:title" content="Testprep GPT | IELTS Practice Test" id="twitter-title">
300    <meta name="twitter:description" content="Boost your IELTS score with TestprepGPT! Get AI-powered study tool, free mock tests &amp; expert guidance. Start your personalized IELTS prep today!" id="twitter-description">
301    <meta name="twitter:image" content="https://testprepgpt.ai/assets/images/gpt-og.png" id="twitter-image">
302
303    <!-- Viewport & Base -->
304    <base href="/">
305    <meta name="viewport" content="width=device-width, initial-scale=1.0">
306
307    <!-- Favicon -->
308    <link rel="icon" type="image/x-icon" href="favicon.ico" id="favicon-link">
309    <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.png" id="apple-touch-icon-link">
310
311    <!-- Portal branding (runs after all default meta / OG / Twitter tags) -->
312    
312<script>
313      (function () {
314        var portalRoots = ['studyabroad.center'];
315        var portalSite = 'https://studyabroad.center';
316        function isPortalHost(host) {
317          var legacyPortalHosts = {
318            'canameducation.co.in': 1,
319            'www.canameducation.co.in': 1,
320            'languagescoaching.center': 1,
321            'www.languagescoaching.center': 1
322          };
323          if (legacyPortalHosts[host]) return true;
324          for (var i = 0; i < portalRoots.length; i++) {
325            var portalRoot = portalRoots[i];
326            if (
327              host === portalRoot ||
328              host === 'www.' + portalRoot ||
329              host.slice(-(portalRoot.length + 1)) === '.' + portalRoot
330            ) {
331              return true;
332            }
333          }
334          return false;
335        }
336        var host = (window.location.hostname || '').toLowerCase();
337        var path = window.location.pathname || '/';
338        if (path.charAt(0) !== '/') path = '/' + path;
339        var isPrepLabHost = host === 'canameducation.info' || host === 'www.canameducation.info';
340        var isPrepLabPath =
341          path === '/prep-lab' || path.indexOf('/prep-lab/') === 0 ||
342          path === '/prep-lab-admin' || path.indexOf('/prep-lab-admin/') === 0;
343        if (isPrepLabHost || isPrepLabPath) {
344          document.title = 'PREP LAB';
345          return;
346        }
347        var onPortal = isPortalHost(host);
348        var isPortalPath =
349          path === '/student-portal' || path.indexOf('/student-portal/') === 0 ||
350          path === '/partner-live-admin' || path.indexOf('/partner-live-admin/') === 0 ||
351          path === '/live-class-marketing-admin' || path.indexOf('/live-class-marketing-admin/') === 0 ||
352          path === '/p' || path.indexOf('/p/') === 0 ||
353          path === '/auth' || path.indexOf('/auth/') === 0;
354        var isMarketingPath = path === '/become-a-partner' || path.indexOf('/become-a-partner/') === 0;
355        if (!onPortal && !isPortalPath && !isMarketingPath) return;
356
357        var portalTitle = 'Study Abroad Center | Student & Partner Portal';
358        var portalDesc =
359          'Access courses, live classes, batches, and your institute dashboard on Study Abroad Center — the portal for language coaching institutes and students.';
360        var portalKeywords =
361          'study abroad, language coaching, IELTS live classes, student portal, partner portal, institute dashboard, online language courses';
362        if (isMarketingPath) {
363          portalTitle = 'White-Label Language Training Partner Program | Study Abroad Center';
364          portalDesc =
365            'Launch your own branded IELTS, PTE, and language coaching business. White-label LMS, live trainers, mobile app, and full support — no content or tech build required.';
366          portalKeywords =
367            'White Label IELTS Coaching, White Label PTE Coaching, Language Training Partner Program, IELTS Franchise Alternative, White Label LMS for Language Institutes, Language Coaching Business Solution';
368        }
369        var portalAuthor = 'Study Abroad Center';
370        var portalOgImage = portalSite + '/assets/icons/lcc-logo.svg';
371        var portalTheme = '#3F37C9';
372
373        function setMetaAttr(attr, key, value) {
374          if (!value) return;
375          var sel = attr === 'name' ? 'meta[name="' + key + '"]' : 'meta[property="' + key + '"]';
376          var el = document.querySelector(sel);
377          if (!el) {
378            el = document.createElement('meta');
379            if (attr === 'name') el.setAttribute('name', key);
380            else el.setAttribute('property', key);
381            document.head.appendChild(el);
382          }
383          el.setAttribute('content', value);
384        }
385
386        function setMetaById(id, value) {
387          var el = document.getElementById(id);
388          if (el && value) el.setAttribute('content', value);
389        }
390
391        document.title = portalTitle;
392        setMetaAttr('name', 'description', portalDesc);
393        setMetaAttr('name', 'keywords', portalKeywords);
394        setMetaAttr('name', 'author', portalAuthor);
395        setMetaAttr('name', 'theme-color', portalTheme);
396        setMetaAttr('property', 'og:site_name', portalAuthor);
397        setMetaAttr('property', 'og:title', portalTitle);
398        setMetaAttr('property', 'og:description', portalDesc);
399        setMetaAttr('property', 'og:image', portalOgImage);
400        setMetaAttr('property', 'og:image:width', '300');
401        setMetaAttr('property', 'og:image:height', '300');
402        setMetaAttr('property', 'og:image:alt', portalAuthor + ' logo');
403        setMetaById('og-image', portalOgImage);
404        setMetaById('og-image-width', '300');
405        setMetaById('og-image-height', '300');
406        setMetaById('og-image-alt', portalAuthor + ' logo');
407        setMetaById('twitter-card', 'summary');
408        setMetaById('twitter-title', portalTitle);
409        setMetaById('twitter-description', portalDesc);
410        setMetaById('twitter-image', portalOgImage);
411        var twSite = document.querySelector('meta[name="twitter:site"]');
412        if (twSite) twSite.parentNode.removeChild(twSite);
413        var noindex = isMarketingPath ? 'index, follow' : 'noindex, nofollow';
414        var robotsMeta = document.querySelector('meta[name="robots"]');
415        if (robotsMeta) robotsMeta.setAttribute('content', noindex);
416        var googlebotMeta = document.querySelector('meta[name="googlebot"]');
417        if (googlebotMeta) googlebotMeta.setAttribute('content', noindex);
418        var favicon = document.getElementById('favicon-link');
419        if (favicon) {
420          favicon.setAttribute('href', '/assets/icons/lcc-fav-icon.svg');
421          favicon.setAttribute('type', 'image/svg+xml');
422        }
423        var appleTouch = document.getElementById('apple-touch-icon-link');
424        if (appleTouch) appleTouch.setAttribute('href', '/assets/icons/lcc-fav-icon.svg');
425      })();
426    </script>
426
427
428    <!-- Google Verification -->
429    <meta name="google-site-verification" content="5BiyyChO0EzDW6fg8rCsuw8HS21tTbFHoCv_wkdXlw8">
430
431    <!-- Fonts: preconnect first, then load -->
432    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
433    <link rel="preconnect" href="https://fonts.googleapis.com">
434    <style type="text/css">@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2zRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv27RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2_RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2HRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2zRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv27RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2_RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2HRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2zRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;
434src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv27RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2_RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2HRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2zRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv27RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2_RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2HRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2zRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv27RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2_RNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
434BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=LDIWaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU6vQTckyDQbQcCl6BIHv2HRNv7U-Jk&skey=ca4b9e62a7d41df5&v=v12) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5-fFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.
434com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn7ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn6efFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThnlufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThnhOfFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5efFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');
434unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5OfFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn6ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5-fFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn7ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn6efFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThnlufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThnhOfFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;
434src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5efFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5OfFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn6ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5-fFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn7ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn6efFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThnlufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThnhOfFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;
434src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5efFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn5OfFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=KFOBCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabQuYoPsOC-chym82KThn6ufFb_LiQw&skey=a0a0114a1dcab3ac&v=v51) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
435    <style type="text/css">@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format('woff2');}@font-face{font-family:'Material Icons Outlined';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsoutlined/v110/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUcel5euIg.woff2) format('woff2');}.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}.material-icons-outlined{font-family:'Material Icons Outlined';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style>
436
437    <!-- CSS: non-blocking stylesheets -->
438    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
439    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css">
440    <link href="https://unpkg.com/[email protected]/css/boxicons.min.css" rel="stylesheet">
441    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth.css">
442    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/6.2.0/css/flag-icons.min.css" integrity="sha512-uvXdJud8WaOlQFjlz9B15Yy2Au/bMAvz79F7Xa6OakCl2jvQPdHD0hb3dEqZRdSwG4/sknePXlE7GiarwA/9Wg==" crossorigin="anonymous" referrerpolicy="no-referrer">
443    <!-- jsmind CSS loaded only when mindmap route is active - kept here for global fallback -->
444    <link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/style/jsmind.css">
445
446    <!-- Google Analytics: testprepgpt.ai vs studyabroad.center (one property per hostname) -->
447    
447<script>
448      (function () {
449        var MAIN_GA = 'G-GBLF0NYLM8';
450        var PORTAL_GA = 'G-3MZ783LLBN';
451        var portalRoots = ['studyabroad.center'];
452        var legacyPortalHosts = {
453          'canameducation.co.in': 1,
454          'www.canameducation.co.in': 1,
455          'languagescoaching.center': 1,
456          'www.languagescoaching.center': 1
457        };
458
459        function isPortalHost(host) {
460          if (legacyPortalHosts[host]) return true;
461          for (var i = 0; i < portalRoots.length; i++) {
462            var root = portalRoots[i];
463            if (
464              host === root ||
465              host === 'www.' + root ||
466              host.slice(-(root.length + 1)) === '.' + root
467            ) {
468              return true;
469            }
470          }
471          return false;
472        }
473
474        var host = (window.location.hostname || '').toLowerCase();
475        var isLocal = host === 'localhost' || host === '127.0.0.1';
476        var measurementId = (!isLocal && isPortalHost(host)) ? PORTAL_GA : MAIN_GA;
477
478        window.dataLayer = window.dataLayer || [];
479        function gtag(){ dataLayer.push(arguments); }
480        window.gtag = gtag;
481        window.__GA_MEASUREMENT_ID__ = measurementId;
482
483        var s = document.createElement('script');
484        s.async = true;
485        s.src = 'https://www.googletagmanager.com/gtag/js?id=' + measurementId;
486        document.head.appendChild(s);
487
488        gtag('js', new Date());
489        gtag('config', measurementId, { send_page_view: false });
490      })();
491    </script>
491
492
493    <!-- MathJax: defer — only needed on specific pages, not homepage -->
494    
494<script defer id="MathJax-script" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
494
495
496    <!-- Razorpay checkout.js is loaded on demand in payment flows (see load-razorpay-script.ts) -->
497
498    <!-- reCAPTCHA v3: main site only (open-access AI); portal uses Firebase phone reCAPTCHA instead -->
499    
499<script>
500      (function () {
501        var portalRoots = ['studyabroad.center'];
502        var legacyPortalHosts = {
503          'canameducation.co.in': 1,
504          'www.canameducation.co.in': 1,
505          'languagescoaching.center': 1,
506          'www.languagescoaching.center': 1
507        };
508        var siteKey = '6LfVT3stAAAAAOGowK5J7oyvfu6qwhH-i-DdoOpt';
509
510        function isPortalHost(host) {
511          if (legacyPortalHosts[host]) return true;
512          for (var i = 0; i < portalRoots.length; i++) {
513            var root = portalRoots[i];
514            if (
515              host === root ||
516              host === 'www.' + root ||
517              host.slice(-(root.length + 1)) === '.' + root
518            ) {
519              return true;
520            }
521          }
522          return false;
523        }
524
525        var host = (window.location.hostname || '').toLowerCase();
526        var isLocal = host === 'localhost' || host === '127.0.0.1';
527        var isPrepLabHost = host === 'canameducation.info' || host === 'www.canameducation.info';
528        if (!isLocal && (isPortalHost(host) || isPrepLabHost)) {
529          return;
530        }
531
532        var s = document.createElement('script');
533        s.defer = true;
534        s.src = 'https://www.google.com/recaptcha/api.js?render=' + siteKey;
535        document.head.appendChild(s);
536      })();
537    </script>
537
538
539    <!-- TinyMCE: defer — only needed in blog editor/admin routes -->
540    
540<script defer src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/7.3.0/tinymce.min.js"></script>
540
541
542    <!-- Google Translate: defer to avoid render blocking -->
543    
543<script>
544      function googleTranslateElementInit() {
545        new google.translate.TranslateElement({
546          pageLanguage: 'en',
547          includedLanguages: 'ar,as,awa,bn,bho,zh-CN,cs,dog,nl,en,fr,fr-CA,de,gu,hi,it,ja,kn,ks,kok,ko,mai,ms,ml,mr,mwr,mni,np,or,pa,pt,pt-BR,ru,sat,sd,es,sw,ta,te,tr,ur,vi,si,ne,tl,th,kk,uz',
548          layout: google.translate.TranslateElement.InlineLayout.SIMPLE
549        }, 'google_translate_element');
550      }
551    </script>
551
552    
552<script defer src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
552
553
554    <!-- Student portal: purple background + splash before Angular boots (avoids white flash on refresh). -->
555    
555<script>
556      (function () {
557        var path = window.location.pathname || '/';
558        if (path.charAt(0) !== '/') path = '/' + path;
559        var isStudentPortal =
560          path === '/student-portal' || path.indexOf('/student-portal/') === 0;
561        var isPublicPortalRoute =
562          path === '/student-portal/login' ||
563          path.indexOf('/student-portal/login/') === 0 ||
564          path === '/student-portal/complete-profile' ||
565          path.indexOf('/student-portal/complete-profile/') === 0;
566        if (isStudentPortal && !isPublicPortalRoute) {
567          document.documentElement.setAttribute('data-portal-boot', '1');
568        }
569      })();
570    </script>
570
571    <style>
572      html[data-portal-boot='1'],
573      html[data-portal-boot='1'] body {
574        margin: 0;
575        background: linear-gradient(135deg, #312e81 0%, #4c1d95 45%, #6d28d9 100%);
576      }
577      #student-portal-boot-splash {
578        position: fixed;
579        inset: 0;
580        z-index: 10000;
581        display: flex;
582        align-items: center;
583        justify-content: center;
584        background: linear-gradient(135deg, #312e81 0%, #4c1d95 45%, #6d28d9 100%);
585        color: #fff;
586        font-family: 'Segoe UI', system-ui, sans-serif;
587      }
588      .student-portal-boot-splash__inner {
589        display: flex;
590        flex-direction: column;
591        align-items: center;
592        gap: 1.25rem;
593        text-align: center;
594        padding: 1.5rem;
595      }
596      .student-portal-boot-splash__spinner {
597        width: 44px;
598        height: 44px;
599        border: 3px solid rgba(255, 255, 255, 0.25);
600        border-top-color: #fff;
601        border-radius: 50%;
602        animation: student-portal-boot-spin 0.75s linear infinite;
603      }
604      .student-portal-boot-splash__text {
605        margin: 0;
606        font-size: 0.95rem;
607        font-weight: 500;
608        letter-spacing: 0.02em;
609        opacity: 0.92;
610      }
611      @keyframes student-portal-boot-spin {
612        to { transform: rotate(360deg); }
613      }
614    </style>
615
616  <style>@font-face{font-family:Axiforma;src:url(/assets/images/fonts/Axiforma-Light.woff) format("woff")!important;font-weight:300!important;font-style:normal!important}@font-face{font-family:Axiforma!important;src:url(/assets/images/fonts/Axiforma-Regular.woff) format("woff")!important;font-weight:400!important;font-style:normal!important}@font-face{font-family:Axiforma!important;src:url(/assets/images/fonts/Axiforma-Medium.woff) format("woff")!important;font-weight:500!important;font-style:normal!important}@font-face{font-family:Axiforma!important;src:url(/assets/images/fonts/Axiforma-SemiBold.woff) format("woff")!important;font-weight:600!important;font-style:normal!important}@font-face{font-family:Axiforma!important;src:url(/assets/images/fonts/Axiforma-Bold.woff) format("woff")!important;font-weight:700!important;font-style:normal!important}@font-face{font-family:Axiforma!important;src:url(/assets/images/fonts/Axiforma-Regular.woff) format("woff")!important;font-weight:350!important;font-style:normal!important}*{font-family:Axiforma}:root{--app-fixed-header-h:75px}@media (max-width: 720px){:root{--app-fixed-header-h:60px}}body{margin:0;font-family:Axiforma!important;src:url(/assets/images/fonts/Axiforma-Regular.woff) format("woff")!important;overscroll-behavior:contain}@font-face{font-family:Axiforma;src:url(Axiforma-Light.b42d7f7d2e0f6472.woff2) format("woff2"),url(Axiforma-Light.576432eaed17cdf9.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-Heavy.b7aca8fe3b0560a1.woff2) format("woff2"),url(Axiforma-Heavy.0d30cb07f2942f0c.woff) format("woff");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-ExtraBold.24fee138243dde35.woff2) format("woff2"),url(Axiforma-ExtraBold.bd5836e3cd5802d7.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-MediumItalic.52724ca9425b8cce.woff2) format("woff2"),url(Axiforma-MediumItalic.6f9a052841462c8d.woff) format("woff");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-Italic.4bb9878bf155b524.woff2) format("woff2"),url(Axiforma-Italic.e6319da96928e8dd.woff) format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-Medium.f028494e918fe671.woff2) format("woff2"),url(Axiforma-Medium.c2579822bf03dceb.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-HeavyItalic.1effc182663e30c9.woff2) format("woff2"),url(Axiforma-HeavyItalic.926fc7400bb28998.woff) format("woff");font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-ExtraBoldItalic.0f75f04a0f53349b.woff2) format("woff2"),url(Axiforma-ExtraBoldItalic.23b7856b3fd768d9.woff) format("woff");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-LightItalic.ac596dc6a53d3d00.woff2) format("woff2"),url(Axiforma-LightItalic.481761b0a7ad1c2b.woff) format("woff");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-Regular.60d5c1ccccb7d007.woff2) format("woff2"),url(Axiforma-Regular.bddf8f2dd453757e.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-Thin.2b2dee879a694ca0.woff2) format("woff2"),url(Axiforma-Thin.bdacebbd0008bacd.woff) format("woff");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-SemiBold.26e91137bc8df04d.woff2) format("woff2"),url(Axiforma-SemiBold.66b8cb3e590c0f67.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-ThinItalic.dd155bfb5f104211.woff2) format("woff2"),url(Axiforma-ThinItalic.5347ea06270424d8.woff) format("woff");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:Axiforma;src:url(Axiforma-SemiBoldItalic.1383009eab18e92b.woff2) format("woff2"),url(Axiforma-SemiBoldItalic.252db43fb257a5c4.woff) format("woff");font-weight:600;font-style:italic;font-display:swap}
616@charset "UTF-8";:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, .75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, .5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, .175);--bs-border-radius:.375rem;--bs-border-radius-sm:.25rem;--bs-border-radius-lg:.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm:0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width:.25rem;--bs-focus-ring-opacity:.25;--bs-focus-ring-color:rgba(13, 110, 253, .25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}p{margin-top:0;margin-bottom:1rem}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}</style><link rel="stylesheet" href="styles.54ce4f5fe24f98ce.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.54ce4f5fe24f98ce.css"></noscript></head>
617
618  <body>
619    <div id="student-portal-boot-splash" style="display:none" aria-live="polite" aria-busy="true">
620      <div class="student-portal-boot-splash__inner">
621        <div class="student-portal-boot-splash__spinner" aria-hidden="true"></div>
622        <p class="student-portal-boot-splash__text">Loading your courses…</p>
623      </div>
624    </div>
625    
625<script>
626      (function () {
627        if (document.documentElement.getAttribute('data-portal-boot') === '1') {
628          var splash = document.getElementById('student-portal-boot-splash');
629          if (splash) splash.style.display = 'flex';
630        }
631      })();
632    </script>
632
633    <app-root></app-root>
634  
634<script src="runtime.e4a65927e975d1eb.js" type="module"></script>
634<script src="polyfills.96f7eb241c95816d.js" type="module"></script>
634<script src="scripts.79f974a3208dd13f.js" defer></script>
634<script src="vendor.1f2e2428b55d0976.js" type="module"></script>
634<script src="main.6f4ecc355de7b7c4.js" type="module"></script>
634
635
636  
637  
637<script defer src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
637
638  
638<script defer src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
638
639  
639<script defer src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
639
640  
640<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap-select.min.js"></script>
640
641  
641<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
641
642  
642<script defer src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
642
643  
643<script defer src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha512-T/tUfKSV1bihCnd+MxKD0Hm1uBBroVYBOYSk1knyvQ9VyZJpc/ALb4P0r6ubwVPSGB2GvjeoMAJJImBG12TiaQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
643
644  
644<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/js/jsmind.js"></script>
644
645  
645<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/js/jsmind.draggable.js"></script>
645
646
647
648</body><!-- Non-critical JS: all deferred so they don't block render --></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.