Lighthouse Desktop
· 0 checks — Desktop Lighthouse audit -- Performance, Accessibility, Best Practices, and SEO category breakdown.Detailed Report
Audit breakdown by category with detailed findings.
Performance
Insights
Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity.
Performance issues directly impact user engagement and conversion rates.
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers. Learn why most sites can deploy ES6+ code without transpiling
Performance issues directly impact user engagement and conversion rates.
3rd party code can significantly impact load performance. Reduce and defer loading of 3rd party code to prioritize your page's content.
Performance issues directly impact user engagement and conversion rates.
Layout shifts occur when elements move absent any user interaction. Investigate the causes of layout shifts, such as elements being added, removed, or their fonts changing as the page loads.
Performance issues directly impact user engagement and conversion rates.
A forced reflow occurs when JavaScript queries geometric properties (such as offsetWidth) after styles have been invalidated by a change to the DOM state. This can result in poor performance. Learn more about forced reflows and possible mitigations.
Performance issues directly impact user engagement and conversion rates.
Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
Performance issues directly impact user engagement and conversion rates.
A long cache lifetime can speed up repeat visits to your page. Learn more about caching.
Performance issues directly impact user engagement and conversion rates.
Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size
Performance issues directly impact user engagement and conversion rates.
| URL | Resource Size | Est Savings | |
|---|---|---|---|
Welcome to CreamPiled preview image div.card > a > div.card-media > img.h-100 | /1027d7986f7e92422868ac756d081f5c/.preview/.thumb-1600-90... | 143.4 KiB | 69.1 KiB |
CreamPiled Episode #76 preview image div.card > a > div.card-media > img.h-100 | /1ea7f95bc73f5dd36792d3ea3ef71fb4/.preview/.thumb-1600-90... | 88.2 KiB | 55.7 KiB |
CreamPiled Episode #70 preview image div.card > a > div.card-media > img.h-100 | /9d7d75d44867b672966770f575c63eb6/.preview/.thumb-800-450... | 57.2 KiB | 41.5 KiB |
CreamPiled Episode #71 preview image div.card > a > div.card-media > img.h-100 | /30a9564b85a000c1e125bfe36c35f0e6/.preview/.thumb-800-450... | 54.9 KiB | 39.9 KiB |
CreamPiled Vol #23 - Cumshot highlights preview image div.card > a > div.card-media > img.h-100 | /cp-cc-vol-23/.preview/.thumb-800-450-cover-ccvol23.webp?... | 54.1 KiB | 39.3 KiB |
CreamPiled Episode #62 preview image div.card > a > div.card-media > img.h-100 | /bb2cad4dca6e5b5032eee022d6ebadfc/.preview/.thumb-800-450... | 50.8 KiB | 36.9 KiB |
CreamPiled Episode #67 preview image div.card > a > div.card-media > img.h-100 | /afaa3d88364cb95a1a6eccedf784774d/.preview/.thumb-800-450... | 48.3 KiB | 35.1 KiB |
CreamPiled Episode #66 preview image div.card > a > div.card-media > img.h-100 | /f0cb8d4db450f5a395146a0899c407f7/.preview/.thumb-800-450... | 44.5 KiB | 32.3 KiB |
CreamPiled Vol #21 - Cumshot highlights preview image div.card > a > div.card-media > img.h-100 | /cp-cc-vol21/.preview/.thumb-800-450-cover-ccvol21.webp?e... | 42.6 KiB | 30.9 KiB |
CreamPiled Episode #64 preview image div.card > a > div.card-media > img.h-100 | /cp-brandis-main/.preview/.thumb-800-450-cover-Main.00_08... | 42.0 KiB | 30.5 KiB |
CreamPiled Episode #75 preview image div.card > a > div.card-media > img.h-100 | /d4550f982be3ebe659399bcc30d48390/.preview/.thumb-800-450... | 41.9 KiB | 30.4 KiB |
CreamPiled Episode #68 preview image div.card > a > div.card-media > img.h-100 | /cp-tinykhloe-main/.preview/.thumb-800-450-cover-main.web... | 41.8 KiB | 30.4 KiB |
CreamPiled Vol #22 - Cumshot highlights preview image div.card > a > div.card-media > img.h-100 | /cp-cc-vol22/.preview/.thumb-800-450-cover-ccvol22.webp?e... | 41.6 KiB | 30.2 KiB |
CreamPiled Episode #63 preview image div.card > a > div.card-media > img.h-100 | /cp-SatineS2-Main/.preview/.thumb-800-450-cover-Main.00_1... | 41.2 KiB | 29.9 KiB |
CreamPiled Episode #74 preview image div.card > a > div.card-media > img.h-100 | /cp-miaj-main/.preview/.thumb-800-450-cover-Main.00_08_35... | 41.1 KiB | 29.8 KiB |
CreamPiled Episode #72 preview image div.card > a > div.card-media > img.h-100 | /21af778ce2a5191fa1a72938811a3088/.preview/.thumb-800-450... | 40.4 KiB | 29.4 KiB |
CreamPiled Episode #69 preview image div.card > a > div.card-media > img.h-100 | /e7f9462bc538910f4bfdafd0ba1aa515/.preview/.thumb-800-450... | 39.5 KiB | 28.7 KiB |
CreamPiled Vol #20 - Cumshot highlights preview image div.card > a > div.card-media > img.h-100 | /cp-cc-vol20/.preview/.thumb-800-450-cover-cp-ccvol20.web... | 38.4 KiB | 27.9 KiB |
CreamPiled Episode #73 preview image div.card > a > div.card-media > img.h-100 | /cp-kittyc-main/.preview/.thumb-800-450-cover-Main.00_29_... | 38.3 KiB | 27.8 KiB |
CreamPiled Episode #65 preview image div.card > a > div.card-media > img.h-100 | /a72150324ebdc2e31c36bff42f6bc55a/.preview/.thumb-800-450... | 34.4 KiB | 25.0 KiB |
CreamPiled Episode #76 preview image div.card > a > div.card-media > img.h-100 | /3ef32b8edcce32a6da0f766190f30f2e/.preview/.thumb-800-450... | 48.5 KiB | 16.6 KiB |
BTS - Chastity 2 preview image div.card > a > div.card-media > img.h-100 | /cp-chastityd-bts2/.preview/.thumb-400-225-cover-bts.00_0... | 17.4 KiB | 8.7 KiB |
First Look - Maria preview image div.card > a > div.card-media > img.h-100 | /ee59dbf7c5a0e7084e8627fbcb68e1b5/.preview/.thumb-400-225... | 16.8 KiB | 8.1 KiB |
First Look - Reya preview image div.card > a > div.card-media > img.h-100 | /cp-reyal-fl/.preview/.thumb-400-225-cover-FirstLook.00_0... | 15.9 KiB | 7.2 KiB |
CreamPiled Pre-scene Episode #76 preview image div.card > a > div.card-media > img.h-100 | /77595b8fd07347033a669e7a8bf829f4/.preview/.thumb-400-225... | 14.8 KiB | 6.1 KiB |
Harlow Wilde div.card > a > div.card-media > img.background | /resource/6/609/609339ec44f8504a3600fc624f2f9ec7/.preview... | 10.7 KiB | 6.0 KiB |
CreamPiled Pre-scene Episode #76 preview image div.card > a > div.card-media > img.h-100 | /f989e4eb4fd3096df7561649c5f0acaf/.preview/.thumb-400-225... | 13.9 KiB | 5.7 KiB |
Mira Luv div.card > a > div.card-media > img.background | /resource/a/a5b/a5bae4aed35b8343532891496d052ab5/.preview... | 10.2 KiB | 5.5 KiB |
CreamPiled Pre-scene Episode #75 preview image div.card > a > div.card-media > img.h-100 | /253f7b8a72ec0a85264ce6f2d6a2605f/.preview/.thumb-400-225... | 13.1 KiB | 5.4 KiB |
Elizabeth Skylar div.card > a > div.card-media > img.background | /resource/f/f7a/f7af7b3ec2e0b34fc05ce4d625b4f605/.preview... | 10.1 KiB | 5.3 KiB |
Journey Love div.card > a > div.card-media > img.background | /resource/b/b31/b310c64385b4e02089c77bdd86657a18/.preview... | 9.3 KiB | 4.8 KiB |
Delilah Dagger div.card > a > div.card-media > img.background | /resource/9/97a/97a96f9afa0c8bc5cf1804575584bbd2/.preview... | 9.2 KiB | 4.8 KiB |
Brandi Swan div.card > a > div.card-media > img.background | /resource/d/dae/dae7ca613b1aba05c74cb1503584b422/.preview... | 9.0 KiB | 4.5 KiB |
div.content-box > div.modal-content > div.modal-header > img.img-fluid div.content-box > div.modal-content > div.modal-header > img.img-fluid | creampiled.com/custom_assets/creampiled-logo4.png | 6.0 KiB | 4.5 KiB |
Doxy div.card > a > div.card-media > img.background | /resource/9/9e8/9e822e8575d109c90e65935fcf16dcd0/.preview... | 8.5 KiB | 4.4 KiB |
Kiki King div.card > a > div.card-media > img.background | /resource/e/ec2/ec255fb88c9b4ad7de49439b99084f44/.preview... | 7.8 KiB | 4.1 KiB |
These insights are also available in the Chrome DevTools Performance Panel - record a trace to view more detailed information.
These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these layout shifts may not be included in the CLS metric value due to windowing. Learn how to improve CLS
Performance issues directly impact user engagement and conversion rates.
| Element | Layout shift score |
|---|---|
CreamPiled Exclusives
40:08
221
CreamPiled Episode #76
Jul 17, 2026
The insat… nats-component-loader > div.components-wrapper > div > div#block-136381-page-102251-layout | 0.722 |
CreamPiled Exclusives
40:08
221
CreamPiled Episode #76
Jul 17, 2026
The insat… div#block-136381 > nats-set-list > block-layout > div.set-list | 0.279 |
| 0.125 |
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
Performance issues directly impact user engagement and conversion rates.
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
Performance issues directly impact user engagement and conversion rates.
Diagnostics
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.
Performance issues directly impact user engagement and conversion rates.
| URL | Transfer Size | Est Savings |
|---|---|---|
| creampiled.com/natscms-app/styles-KXRL3ZR4.css | 27.7 KiB | 22.9 KiB |
Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work
Performance issues directly impact user engagement and conversion rates.
| Category | Time Spent |
|---|---|
| Script Evaluation | 1.2 s |
| Other | 573 ms |
| Parse HTML & CSS | 310 ms |
| Style & Layout | 304 ms |
| Rendering | 91 ms |
| Garbage Collection | 41 ms |
| Script Parsing & Compilation | 31 ms |
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.
Performance issues directly impact user engagement and conversion rates.
| URL | Transfer Size | Est Savings |
|---|---|---|
| www.googletagmanager.com/gtag/js?id=G-RKW1M7TJDJ | 162.6 KiB | 68.4 KiB |
| creampiled.com/natscms-app/chunk-DV5By-zB.js | 52.1 KiB | 27.3 KiB |
Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.
Performance issues directly impact user engagement and conversion rates.
Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions
Performance issues directly impact user engagement and conversion rates.
| URL | |
|---|---|
div.content-box > div.modal-content > div.modal-header > img.img-fluid div.content-box > div.modal-content > div.modal-header > img.img-fluid | creampiled.com/custom_assets/creampiled-logo4.png |
Logo nav.navbar > div.min-h-60px > a.navbar-brand > img | creampiled.com/custom_assets/creampiled-logo4.png |
Logo nav.navbar > div.min-h-60px > a.navbar-brand > img | creampiled.com/custom_assets/creampiled-logo4.png |
More information about the performance of your application. These numbers don't directly affect the Performance score.
Accessibility
These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.
Contrast
Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
ENTER div.content-box > div.modal-content > div.modal-footer > button.btn |
Exit div.content-box > div.modal-content > div.modal-footer > a.btn |
GET ACCESS li.nav-item > a.btn > nats-menu-item-text-icon > span.menu-item-text-icon |
GET ACCESS div.html > div.container-fluid > div > a.joinBar |
GET ACCESS div.html > div.container-fluid > div > a.joinBar |
GET ACCESS div.html > div.container-fluid > div > a.joinBar |
GET ACCESS li.nav-item > a.btn > nats-menu-item-text-icon > span.menu-item-text-icon |
These are opportunities to improve the legibility of your content.
Internationalization and localization
If a page doesn't specify a `lang` attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. Learn more about the `lang` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
html html |
These are opportunities to improve the interpretation of your content by users in different locales.
Names and labels
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the `alt` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
div.content-box > div.modal-content > div.modal-header > img.img-fluid div.content-box > div.modal-content > div.modal-header > img.img-fluid |
Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. Learn how to make links accessible.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
ul.menu-b > nats-menu-item > li.nav-item > a.nav-link ul.menu-b > nats-menu-item > li.nav-item > a.nav-link |
ul.menu-b > nats-menu-item > li.nav-item > a.nav-link ul.menu-b > nats-menu-item > li.nav-item > a.nav-link |
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.
Tables and lists
Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. Learn more about proper list structure.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Home
Videos
Talent
Free Photos
News
VOD nav.navbar > div.min-h-60px > div.collapse > ul.me-auto |
GET ACCESS
Members nav.navbar > div.min-h-60px > div.collapse > ul.menu-b |
Home
Videos
Talent
Free Photos
News
VOD nav.navbar > div.min-h-60px > div.collapse > ul.me-auto |
GET ACCESS
Members nav.navbar > div.min-h-60px > div.collapse > ul.menu-b |
Members
Support
Links
Reviews
Join nav.navbar > div.min-h-60px > div.collapse > ul.menu-a |
Screen readers require list items (`<li>`) to be contained within a parent `<ul>`, `<ol>` or `<menu>` to be announced properly. Learn more about proper list structure.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Home div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
Videos div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
Talent div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
Free Photos div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
News div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
VOD div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
div.collapse > ul.menu-b > nats-menu-item > li.nav-item div.collapse > ul.menu-b > nats-menu-item > li.nav-item |
GET ACCESS div.collapse > ul.menu-b > nats-menu-item > li.nav-item |
Members div.collapse > ul.menu-b > nats-menu-item > li.nav-item |
Home div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
Videos div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
Talent div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
Free Photos div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
News div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
VOD div.collapse > ul.me-auto > nats-menu-item > li.nav-item |
div.collapse > ul.menu-b > nats-menu-item > li.nav-item div.collapse > ul.menu-b > nats-menu-item > li.nav-item |
GET ACCESS div.collapse > ul.menu-b > nats-menu-item > li.nav-item |
Members div.collapse > ul.menu-b > nats-menu-item > li.nav-item |
Members div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Support div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Links div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Reviews div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
Join div.collapse > ul.menu-a > nats-menu-item > li.nav-item |
These are opportunities to improve the experience of reading tabular or list data using assistive technology, like a screen reader.
Best Practices
SEO
These checks ensure that your page is following basic search engine optimization advice. There are many additional factors Lighthouse does not score here that may affect your search ranking, including performance on Core Web Vitals. Learn more about Google Search Essentials.
Content Best Practices
Descriptive link text helps search engines understand your content. Learn how to make links more accessible.
Performance issues directly impact user engagement and conversion rates.
| Link destination | Link Text |
|---|---|
| creampiled.com/testimonials | Read More |
Informative elements should aim for short, descriptive alternate text. Decorative elements can be ignored with an empty alt attribute. Learn more about the `alt` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
div.content-box > div.modal-content > div.modal-header > img.img-fluid div.content-box > div.modal-content > div.modal-header > img.img-fluid |
Format your HTML in a way that enables crawlers to better understand your app’s content.
Crawling and Indexing
Search engines may use `href` attributes on links to crawl websites. Ensure that the `href` attribute of anchor elements links to an appropriate destination, so more pages of the site can be discovered. Learn how to make links crawlable
Performance issues directly impact user engagement and conversion rates.
| Uncrawlable Link |
|---|
<< pagination.ng-untouched > ul.pagination > li.pagination-first > a.page-link |
< pagination.ng-untouched > ul.pagination > li.pagination-prev > a.page-link |
1 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
2 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
3 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
4 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
5 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
6 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
... pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
> pagination.ng-untouched > ul.pagination > li.pagination-next > a.page-link |
>> pagination.ng-untouched > ul.pagination > li.pagination-last > a.page-link |
<< pagination.ng-untouched > ul.pagination > li.pagination-first > a.page-link |
< pagination.ng-untouched > ul.pagination > li.pagination-prev > a.page-link |
1 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
2 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
3 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
4 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
5 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
6 pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
... pagination.ng-untouched > ul.pagination > li.pagination-page > a.page-link |
> pagination.ng-untouched > ul.pagination > li.pagination-next > a.page-link |
>> pagination.ng-untouched > ul.pagination > li.pagination-last > a.page-link |
If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. Learn more about robots.txt.
Performance issues directly impact user engagement and conversion rates.
| Line # | Content | Error |
|---|---|---|
| 1 | <!doctype html> | Syntax not understood |
| 2 | <html lang="en" data-beasties-container> | Syntax not understood |
| 3 | <head> | Syntax not understood |
| 4 | <meta charset="utf-8"> | Syntax not understood |
| 5 | <title></title> | Syntax not understood |
| 6 | <base href="/natscms-app/"> | Syntax not understood |
| 7 | <meta name="viewport" content="width=device-width, initial-scale=1"> | Syntax not understood |
| 8 | <!-- <link rel="icon" type="image/x-icon" href="favicon.ico" /> --> | Syntax not understood |
| 9 | <style>: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:#014474;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:1, 68, 116;--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:rgb(.4, 27.2, 46.4);--bs-secondary-text-emphasis:rgb(43.2, 46.8, 50);--bs-success-text-emphasis:rgb(10, 54, 33.6);--bs-info-text-emphasis:rgb(5.2, 80.8, 96);--bs-warning-text-emphasis:rgb(102, 77.2, 2.8);--bs-danger-text-emphasis:rgb(88, 21.2, 27.6);--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:rgb(204.2, 217.6, 227.2);--bs-secondary-bg-subtle:rgb(225.6, 227.4, 229);--bs-success-bg-subtle:rgb(209, 231, 220.8);--bs-info-bg-subtle:rgb(206.6, 244.4, 252);--bs-warning-bg-subtle:rgb(255, 242.6, 205.4);--bs-danger-bg-subtle:rgb(248, 214.6, 217.8);--bs-light-bg-subtle:rgb(251.5, 252, 252.5);--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:rgb(153.4, 180.2, 199.4);--bs-secondary-border-subtle:rgb(196.2, 199.8, 203);--bs-success-border-subtle:rgb(163, 207, 186.6);--bs-info-border-subtle:rgb(158.2, 233.8, 249);--bs-warning-border-subtle:rgb(255, 230.2, 155.8);--bs-danger-border-subtle:rgb(241, 174.2, 180.6);--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:#014474;--bs-link-color-rgb:1, 68, 116;--bs-link-decoration:underline;--bs-link-hover-color:rgb(.8, 54.4, 92.8);--bs-link-hover-color-rgb:1, 54, 93;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:rgb(255, 242.6, 205.4);--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(1, 68, 116, .25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}*,*:before,*:after{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:rgba(0,0,0,0)}: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}:root{--bs-btn-close-filter: }@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}:root{--cms-consent-modal-background:var(--cms-background);--cms-consent-modal-foreground:var(--cms-foreground)}html{scroll-behavior:auto!important}body{font-family:Roboto Condensed,sans-serif;background-color:var(--cms-page-background);color:var(--cms-page-foreground)}body{overflow-x:hidden}</style><link rel="stylesheet" href="styles-KXRL3ZR4.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-KXRL3ZR4.css"></noscript></head> | Unknown directive |
| 10 | <body> | Syntax not understood |
| 11 | <nats-tours-root></nats-tours-root> | Syntax not understood |
| 13 | <script> | Syntax not understood |
| 14 | if (window) { | Syntax not understood |
| 15 | <!--Move this to main if SSR-ed--> | Syntax not understood |
| 17 | window['_natsCode'] = getNatsCode(); | Syntax not understood |
| 18 | window['_natsCodeCookie'] = getCookie('nats'); | Syntax not understood |
| 20 | function getNatsPreviewThemeData() { | Syntax not understood |
| 21 | let secretCode = | Syntax not understood |
| 22 | getParam('x-nats-cms-area-preview') || getCookie('nats_preview_data_secret_code'); | Syntax not understood |
| 23 | let themeId = | Syntax not understood |
| 24 | getParam('x-nats-cms-area-preview-theme') || getCookie('nats_preview_data_theme_id'); | Syntax not understood |
| 25 | return secretCode && themeId ? { secretCode, themeId } : null; | Unknown directive |
| 26 | } | Syntax not understood |
| 28 | window['_natsPreviewTheme'] = getNatsPreviewThemeData(); | Syntax not understood |
| 30 | function boot() { | Syntax not understood |
| 31 | return new Promise((resolve, reject) => { | Syntax not understood |
| 32 | Promise.all([ | Syntax not understood |
| 33 | fetch('./config.json').then(res => res.json()), | Syntax not understood |
| 34 | fetch('./version.json') | Syntax not understood |
| 35 | .then(res => res.json()) | Syntax not understood |
| 36 | .catch(() => ({ version: '0' })), | Unknown directive |
| 37 | ]) | Syntax not understood |
| 38 | .then(([conf, versionData]) => { | Syntax not understood |
| 39 | window['_config'] = conf; | Syntax not understood |
| 40 | window['_version'] = versionData; | Syntax not understood |
| 41 | const natsCode = window['_natsCode']; | Syntax not understood |
| 43 | const loadSite = () => { | Syntax not understood |
| 44 | window['_siteData'] = loadSiteData(conf, natsCode, window['_natsPreviewTheme']); | Syntax not understood |
| 45 | resolve(conf); | Syntax not understood |
| 46 | }; | Syntax not understood |
| 48 | const natsParam = getParam('nats'); | Syntax not understood |
| 49 | if (!natsParam) { | Syntax not understood |
| 50 | // if angular can read nats cookie, send it to tracking script as natscode=xxxx | Syntax not understood |
| 51 | // if angular can not read the nats_unique cookie, send unique=1 to the tracking script | Syntax not understood |
| 52 | trackCall(conf, window['_natsCodeCookie'], !getCookie('nats_unique')).then(() => | Syntax not understood |
| 53 | loadSite() | Syntax not understood |
| 54 | ); | Syntax not understood |
| 55 | } else { | Syntax not understood |
| 56 | loadSite(); | Syntax not understood |
| 57 | } | Syntax not understood |
| 58 | }) | Syntax not understood |
| 59 | .catch(err => { | Syntax not understood |
| 60 | console.error(err); | Syntax not understood |
| 61 | reject(err); | Syntax not understood |
| 62 | }); | Syntax not understood |
| 63 | }); | Syntax not understood |
| 64 | } | Syntax not understood |
| 66 | function loadSiteData(config, natsCode, previewThemeData) { | Syntax not understood |
| 67 | const version = window['_version']?.version || '0'; | Syntax not understood |
| 68 | const path = `${config.natsUrl}/tour_api.php/content/config?cms_area_id=${config.cms_area_id}&version=${version}`; | Syntax not understood |
| 69 | const headers = { | Syntax not understood |
| 70 | 'X-NATS-cms-area-id': config.cms_area_id, | Unknown directive |
| 71 | 'X-nats-entity-decode': '1', | Unknown directive |
| 72 | 'x-nats-natscode': natsCode || getCookie('nats') || '', | Unknown directive |
| 73 | }; | Syntax not understood |
| 75 | if (previewThemeData) { | Syntax not understood |
| 76 | headers['x-nats-cms-area-preview'] = previewThemeData.secretCode; | Syntax not understood |
| 77 | headers['x-nats-cms-area-preview-theme'] = previewThemeData.themeId; | Syntax not understood |
| 78 | } | Syntax not understood |
| 79 | return fetch(path, { headers }).then(res => res.json()); | Syntax not understood |
| 80 | } | Syntax not understood |
| 82 | function trackCall(config, natsCodeCookie, unique) { | Syntax not understood |
| 83 | let path = `${config.natsUrl}/track_cms.php?cms_area_id=${config.cms_area_id}`; | Syntax not understood |
| 84 | if (natsCodeCookie) path += `&natscode=${natsCodeCookie}`; | Syntax not understood |
| 85 | if (unique) path += `&unique=1`; | Syntax not understood |
| 87 | const headers = { 'X-NATS-cms-area-id': config.cms_area_id, 'X-nats-entity-decode': '1' }; | Unknown directive |
| 89 | return fetch(path, { headers }) | Syntax not understood |
| 90 | .then(res => res.json()) | Syntax not understood |
| 91 | .then(res => { | Syntax not understood |
| 92 | if (res && res.cookies && res.natscode) { | Syntax not understood |
| 93 | const { nats_unique: natsUniqueExpiration, nats: natsExpiration } = res.cookies; | Unknown directive |
| 94 | natsUniqueExpiration && | Syntax not understood |
| 95 | setCookie('nats_unique', res.natscode, natsUniqueExpiration); | Syntax not understood |
| 96 | natsExpiration && setCookie('nats', res.natscode, natsExpiration); | Syntax not understood |
| 97 | window['_natsCodeCookie'] = res.natscode; | Syntax not understood |
| 98 | } | Syntax not understood |
| 99 | }); | Syntax not understood |
| 100 | } | Syntax not understood |
| 102 | window['_boot'] = boot(); | Syntax not understood |
| 103 | } else { | Syntax not understood |
| 104 | fetch('./config.json').then(res => res.json()); | Syntax not understood |
| 105 | } | Syntax not understood |
| 107 | function getParam(name) { | Syntax not understood |
| 108 | const url = new URL(window.location.href); | Syntax not understood |
| 109 | return url.searchParams.get(name); | Syntax not understood |
| 110 | } | Syntax not understood |
| 112 | function getCookie(name) { | Syntax not understood |
| 113 | const value = `; ${document.cookie}`; | Syntax not understood |
| 114 | const parts = value.split(`; ${name}=`); | Syntax not understood |
| 115 | if (parts.length === 2) { | Syntax not understood |
| 116 | return parts.pop().split(';').shift(); | Syntax not understood |
| 117 | } | Syntax not understood |
| 118 | return null; | Syntax not understood |
| 119 | } | Syntax not understood |
| 121 | function setCookie(name, value, expiration) { | Syntax not understood |
| 122 | const d = new Date(); | Syntax not understood |
| 123 | d.setTime(expiration * 1000); | Syntax not understood |
| 124 | const expires = `expires=${d.toUTCString()}`; | Syntax not understood |
| 125 | document.cookie = `${name}=${value};${expires};path=/;`; | Syntax not understood |
| 126 | } | Syntax not understood |
| 128 | function getNatsCode() { | Syntax not understood |
| 129 | const natsCode = getParam('nats'); | Syntax not understood |
| 130 | // TODO: check this if SSR is implemented | Unknown directive |
| 131 | if (natsCode) { | Syntax not understood |
| 132 | sessionStorage.setItem('natsCode', natsCode); | Syntax not understood |
| 133 | return natsCode; | Syntax not understood |
| 134 | } else { | Syntax not understood |
| 135 | return sessionStorage.getItem('natsCode'); | Syntax not understood |
| 136 | } | Syntax not understood |
| 137 | } | Syntax not understood |
| 138 | </script> | Syntax not understood |
| 139 | <script src="main-SAOZX4LC.js" type="module"></script></body> | Syntax not understood |
| 140 | </html> | Syntax not understood |
To appear in search results, crawlers need access to your app.